diff --git a/src/plugins/e-acsl/read_header.ml b/src/plugins/e-acsl/read_header.ml index 369c5d481b70ea9830a65c0dc9504a2079cee7ad..426a62eb438bab216cc5c9f76fc1ed54e44526ca 100644 --- a/src/plugins/e-acsl/read_header.ml +++ b/src/plugins/e-acsl/read_header.ml @@ -39,10 +39,10 @@ let put_file_in_buffer fname buf = (* TODO: must be project-compliant. The memoized buffer should be reset when we have to redo the visitor in a different setting. *) - +(* let add_include buf hfile = Buffer.add_string buf (Format.sprintf "#include %S\n" hfile) - + *) let text = let buf = Buffer.create 97 in fun () -> diff --git a/src/plugins/e-acsl/tests/e-acsl-reject/oracle/valid_index.err.oracle b/src/plugins/e-acsl/tests/e-acsl-reject/oracle/valid_index.err.oracle deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/src/plugins/e-acsl/tests/e-acsl-reject/oracle/valid_index.res.oracle b/src/plugins/e-acsl/tests/e-acsl-reject/oracle/valid_index.res.oracle deleted file mode 100644 index 5bf750cbbec2c7bd0f762c4848b1fccca4b22ec5..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-reject/oracle/valid_index.res.oracle +++ /dev/null @@ -1,3 +0,0 @@ -tests/e-acsl-reject/valid_index.i:5:[e-acsl] warning: E-ACSL construct `\valid' is not yet supported. Ignoring annotation. -[e-acsl] 0 annotation was ignored, being untypable. -[e-acsl] 1 annotation was ignored, being unsupported. diff --git a/src/plugins/e-acsl/tests/e-acsl-reject/oracle/valid_range.err.oracle b/src/plugins/e-acsl/tests/e-acsl-reject/oracle/valid_range.err.oracle deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/src/plugins/e-acsl/tests/e-acsl-reject/oracle/valid_range.res.oracle b/src/plugins/e-acsl/tests/e-acsl-reject/oracle/valid_range.res.oracle deleted file mode 100644 index f0201b41da74ebba101865216bb1d901c5e11b2a..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-reject/oracle/valid_range.res.oracle +++ /dev/null @@ -1,3 +0,0 @@ -tests/e-acsl-reject/valid_range.i:5:[e-acsl] warning: E-ACSL construct `\valid' is not yet supported. Ignoring annotation. -[e-acsl] 0 annotation was ignored, being untypable. -[e-acsl] 1 annotation was ignored, being unsupported. diff --git a/src/plugins/e-acsl/tests/e-acsl-reject/valid_index.i b/src/plugins/e-acsl/tests/e-acsl-reject/valid_index.i deleted file mode 100644 index 307fc8697fd3444e47de73efc64a2a42cf5bb75d..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-reject/valid_index.i +++ /dev/null @@ -1,7 +0,0 @@ -/* run.config - COMMENT: \valid_index */ - -void main(int *x, int i) { - /*@ assert \valid_index(x, i); */ - return; -} diff --git a/src/plugins/e-acsl/tests/e-acsl-reject/valid_range.i b/src/plugins/e-acsl/tests/e-acsl-reject/valid_range.i deleted file mode 100644 index cc6e5a855c8b6ff63495629959eeb67926bfdfe3..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-reject/valid_range.i +++ /dev/null @@ -1,7 +0,0 @@ -/* run.config - COMMENT: \valid_range */ - -void main(int *x, int a, int b) { - /*@ assert \valid_range(x, a, b); */ - return; -} 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 16d73e9cd0aa0fb47897fff5fe3ff5717cd14f94..75b3cb71bc4f6aed90824e48a98fbfac5ca3119b 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,7 @@ /* run.config COMMENT: addrOf - EXECNOW: LOG gen_addrOf.c BIN gen_addrOf.out FRAMAC_SHARE=./share @frama-c@ ./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 -pedantic -o ./tests/e-acsl-runtime/result/gen_addrOf.out ./tests/e-acsl-runtime/result/gen_addrOf.c && ./tests/e-acsl-runtime/result/gen_addrOf.out - EXECNOW: LOG gen_addrOf2.c BIN gen_addrOf2.out FRAMAC_SHARE=./share @frama-c@ ./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 -pedantic -o ./tests/e-acsl-runtime/result/gen_addrOf2.out ./tests/e-acsl-runtime/result/gen_addrOf2.c && ./tests/e-acsl-runtime/result/gen_addrOf2.out + 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 -pedantic -o ./tests/e-acsl-runtime/result/gen_addrOf.out ./tests/e-acsl-runtime/result/gen_addrOf.c && ./tests/e-acsl-runtime/result/gen_addrOf.out + 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 -pedantic -o ./tests/e-acsl-runtime/result/gen_addrOf2.out ./tests/e-acsl-runtime/result/gen_addrOf2.c && ./tests/e-acsl-runtime/result/gen_addrOf2.out */ int main(void) { diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/arith.i b/src/plugins/e-acsl/tests/e-acsl-runtime/arith.i index 0942b226fd367351adbea2828276394b017b323d..8467353a0621a40f0abe04fd63c0c1101282fc26 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/arith.i +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/arith.i @@ -1,8 +1,8 @@ /* run.config COMMENT: arithmetic operations COMMENT: add the last assertion when fixing BTS #751 - EXECNOW: LOG gen_arith.c BIN gen_arith.out FRAMAC_SHARE=./share @frama-c@ ./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 -pedantic -Wno-long-long -o ./tests/e-acsl-runtime/result/gen_arith.out ./tests/e-acsl-runtime/result/gen_arith.c -lgmp && ./tests/e-acsl-runtime/result/gen_arith.out - EXECNOW: LOG gen_arith2.c BIN gen_arith2.out FRAMAC_SHARE=./share @frama-c@ ./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 -pedantic -Wno-long-long -o ./tests/e-acsl-runtime/result/gen_arith2.out ./tests/e-acsl-runtime/result/gen_arith2.c -lgmp && ./tests/e-acsl-runtime/result/gen_arith2.out + 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 -pedantic -Wno-long-long -o ./tests/e-acsl-runtime/result/gen_arith.out ./tests/e-acsl-runtime/result/gen_arith.c -lgmp && ./tests/e-acsl-runtime/result/gen_arith.out + 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 -pedantic -Wno-long-long -o ./tests/e-acsl-runtime/result/gen_arith2.out ./tests/e-acsl-runtime/result/gen_arith2.c -lgmp && ./tests/e-acsl-runtime/result/gen_arith2.out */ int main(void) { diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/array.i b/src/plugins/e-acsl/tests/e-acsl-runtime/array.i index 0bc00ae3a3be30e2d085b28a1761794cab52c54d..0d54884cede93ecc89d55f4f6b0585bb4f01ed80 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/array.i +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/array.i @@ -1,7 +1,7 @@ /* run.config COMMENT: arrays - EXECNOW: LOG gen_array.c BIN gen_array.out FRAMAC_SHARE=./share @frama-c@ ./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 -pedantic -o ./tests/e-acsl-runtime/result/gen_array.out ./tests/e-acsl-runtime/result/gen_array.c -lgmp && ./tests/e-acsl-runtime/result/gen_array.out - EXECNOW: LOG gen_array2.c BIN gen_array2.out FRAMAC_SHARE=./share @frama-c@ ./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 -pedantic -o ./tests/e-acsl-runtime/result/gen_array2.out ./tests/e-acsl-runtime/result/gen_array2.c -lgmp && ./tests/e-acsl-runtime/result/gen_array2.out + 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 -pedantic -o ./tests/e-acsl-runtime/result/gen_array.out ./tests/e-acsl-runtime/result/gen_array.c -lgmp && ./tests/e-acsl-runtime/result/gen_array.out + 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 -pedantic -o ./tests/e-acsl-runtime/result/gen_array2.out ./tests/e-acsl-runtime/result/gen_array2.c -lgmp && ./tests/e-acsl-runtime/result/gen_array2.out */ int T1[3],T2[4]; diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/at.i b/src/plugins/e-acsl/tests/e-acsl-runtime/at.i index bdbdb5a109bd541af93cd971343a07fdcd4760f2..281f6d35f1f1ab978e22a6dbc165f9022bfa2233 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/at.i +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/at.i @@ -1,7 +1,7 @@ /* run.config COMMENT: \at - EXECNOW: LOG gen_at.c BIN gen_at.out FRAMAC_SHARE=./share @frama-c@ ./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 -pedantic -Wno-long-long -o ./tests/e-acsl-runtime/result/gen_at.out ./tests/e-acsl-runtime/result/gen_at.c -lgmp && ./tests/e-acsl-runtime/result/gen_at.out - EXECNOW: LOG gen_at2.c BIN gen_at2.out FRAMAC_SHARE=./share @frama-c@ ./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 -pedantic -Wno-long-long -o ./tests/e-acsl-runtime/result/gen_at2.out ./tests/e-acsl-runtime/result/gen_at2.c -lgmp && ./tests/e-acsl-runtime/result/gen_at2.out + 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 -pedantic -Wno-long-long -o ./tests/e-acsl-runtime/result/gen_at.out ./tests/e-acsl-runtime/result/gen_at.c -lgmp && ./tests/e-acsl-runtime/result/gen_at.out + 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 -pedantic -Wno-long-long -o ./tests/e-acsl-runtime/result/gen_at2.out ./tests/e-acsl-runtime/result/gen_at2.c -lgmp && ./tests/e-acsl-runtime/result/gen_at2.out */ int A = 0; diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/cast.i b/src/plugins/e-acsl/tests/e-acsl-runtime/cast.i index 241b55c97db71117054af1d6dfe783835dbb2a27..730411fd4be280974144862a05d8692815ac2a46 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/cast.i +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/cast.i @@ -1,7 +1,7 @@ /* run.config COMMENT: cast - EXECNOW: LOG gen_cast.c BIN gen_cast.out FRAMAC_SHARE=./share @frama-c@ ./tests/e-acsl-runtime/cast.i -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_cast.c > /dev/null && gcc -pedantic -o ./tests/e-acsl-runtime/result/gen_cast.out ./tests/e-acsl-runtime/result/gen_cast.c -lgmp && ./tests/e-acsl-runtime/result/gen_cast.out - EXECNOW: LOG gen_cast2.c BIN gen_cast2.out FRAMAC_SHARE=./share @frama-c@ ./tests/e-acsl-runtime/cast.i -e-acsl-gmp-only -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_cast2.c > /dev/null && gcc -pedantic -o ./tests/e-acsl-runtime/result/gen_cast2.out ./tests/e-acsl-runtime/result/gen_cast2.c -lgmp && ./tests/e-acsl-runtime/result/gen_cast2.out + 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 -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_cast.c > /dev/null && gcc -pedantic -o ./tests/e-acsl-runtime/result/gen_cast.out ./tests/e-acsl-runtime/result/gen_cast.c -lgmp && ./tests/e-acsl-runtime/result/gen_cast.out + 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 -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_cast2.c > /dev/null && gcc -pedantic -o ./tests/e-acsl-runtime/result/gen_cast2.out ./tests/e-acsl-runtime/result/gen_cast2.c -lgmp && ./tests/e-acsl-runtime/result/gen_cast2.out */ int main(void) { diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/comparison.i b/src/plugins/e-acsl/tests/e-acsl-runtime/comparison.i index defe8bebc70e77c58dd7f0d004c2bd1bd3928ca1..54a4ca7e3daa59df63f6bd3c09e6c15cd29533a1 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/comparison.i +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/comparison.i @@ -1,7 +1,7 @@ /* run.config COMMENT: comparison operators - EXECNOW: LOG gen_comparison.c BIN gen_comparison.out FRAMAC_SHARE=./share @frama-c@ ./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 -pedantic -o ./tests/e-acsl-runtime/result/gen_comparison.out ./tests/e-acsl-runtime/result/gen_comparison.c -lgmp && ./tests/e-acsl-runtime/result/gen_comparison.out - EXECNOW: LOG gen_comparison2.c BIN gen_comparison2.out FRAMAC_SHARE=./share @frama-c@ ./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 -pedantic -o ./tests/e-acsl-runtime/result/gen_comparison2.out ./tests/e-acsl-runtime/result/gen_comparison2.c -lgmp && ./tests/e-acsl-runtime/result/gen_comparison2.out + 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 -pedantic -o ./tests/e-acsl-runtime/result/gen_comparison.out ./tests/e-acsl-runtime/result/gen_comparison.c -lgmp && ./tests/e-acsl-runtime/result/gen_comparison.out + 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 -pedantic -o ./tests/e-acsl-runtime/result/gen_comparison2.out ./tests/e-acsl-runtime/result/gen_comparison2.c -lgmp && ./tests/e-acsl-runtime/result/gen_comparison2.out */ int main(void) { 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 2175d76f16b98677585db94550ff0b5aae17c69d..27d617e1ade449698b3c1a9d1fe9f287cf7494e7 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,7 @@ /* run.config COMMENT: assert \false - EXECNOW: LOG gen_false.c BIN gen_false.out FRAMAC_SHARE=./share @frama-c@ ./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 -pedantic -o ./tests/e-acsl-runtime/result/gen_false.out ./tests/e-acsl-runtime/result/gen_false.c && ./tests/e-acsl-runtime/result/gen_false.out - EXECNOW: LOG gen_false2.c BIN gen_false2.out FRAMAC_SHARE=./share @frama-c@ ./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 -pedantic -o ./tests/e-acsl-runtime/result/gen_false2.out ./tests/e-acsl-runtime/result/gen_false2.c && ./tests/e-acsl-runtime/result/gen_false2.out + 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 -pedantic -o ./tests/e-acsl-runtime/result/gen_false.out ./tests/e-acsl-runtime/result/gen_false.c && ./tests/e-acsl-runtime/result/gen_false.out + 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 -pedantic -o ./tests/e-acsl-runtime/result/gen_false2.out ./tests/e-acsl-runtime/result/gen_false2.c && ./tests/e-acsl-runtime/result/gen_false2.out */ int main(void) { int x = 0; 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 50278e074e50d061e347d39c59361d01886c264c..e3002072d798c5c8aa42a6664015e5675e016be9 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,7 @@ /* run.config COMMENT: function contract - EXECNOW: LOG gen_function_contract.c BIN gen_function_contract.out FRAMAC_SHARE=./share @frama-c@ ./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 -pedantic -Wno-long-long -o ./tests/e-acsl-runtime/result/gen_function_contract.out ./tests/e-acsl-runtime/result/gen_function_contract.c -lgmp && ./tests/e-acsl-runtime/result/gen_function_contract.out - EXECNOW: LOG gen_function_contract2.c BIN gen_function_contract2.out FRAMAC_SHARE=./share @frama-c@ ./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 -pedantic -Wno-long-long -o ./tests/e-acsl-runtime/result/gen_function_contract2.out ./tests/e-acsl-runtime/result/gen_function_contract2.c -lgmp && ./tests/e-acsl-runtime/result/gen_function_contract2.out + 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 -pedantic -Wno-long-long -o ./tests/e-acsl-runtime/result/gen_function_contract.out ./tests/e-acsl-runtime/result/gen_function_contract.c -lgmp && ./tests/e-acsl-runtime/result/gen_function_contract.out + 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 -pedantic -Wno-long-long -o ./tests/e-acsl-runtime/result/gen_function_contract2.out ./tests/e-acsl-runtime/result/gen_function_contract2.c -lgmp && ./tests/e-acsl-runtime/result/gen_function_contract2.out */ int X = 0, Y = 2; 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 index 40fb7213f0505052fd7cb75f293a44e6a3922ca6..449478a0340130e90872cfce01ad32c1c21d233f 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/integer_constant.i +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/integer_constant.i @@ -1,8 +1,8 @@ /* run.config COMMENT: integer constant + a stmt after the assertion COMMENT: waiting for fixing BTS #745 - EXECNOW: LOG gen_integer_constant.c BIN gen_integer_constant.out FRAMAC_SHARE=./share @frama-c@ ./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 -pedantic -Wno-long-long -o ./tests/e-acsl-runtime/result/gen_integer_constant.out ./tests/e-acsl-runtime/result/gen_integer_constant.c -lgmp && ./tests/e-acsl-runtime/result/gen_integer_constant.out - EXECNOW: LOG gen_integer_constant2.c BIN gen_integer_constant2.out FRAMAC_SHARE=./share @frama-c@ ./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 -pedantic -Wno-long-long -o ./tests/e-acsl-runtime/result/gen_integer_constant2.out ./tests/e-acsl-runtime/result/gen_integer_constant2.c -lgmp && ./tests/e-acsl-runtime/result/gen_integer_constant2.out + 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 -pedantic -Wno-long-long -o ./tests/e-acsl-runtime/result/gen_integer_constant.out ./tests/e-acsl-runtime/result/gen_integer_constant.c -lgmp && ./tests/e-acsl-runtime/result/gen_integer_constant.out + 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 -pedantic -Wno-long-long -o ./tests/e-acsl-runtime/result/gen_integer_constant2.out ./tests/e-acsl-runtime/result/gen_integer_constant2.c -lgmp && ./tests/e-acsl-runtime/result/gen_integer_constant2.out */ int main(void) { int x; 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 35cc1d9107cd1aa1bac6e12e0b197910b10c9c31..7d25adf08cdb802cdeb8988cc84b233dcf8e5174 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/invariant.i +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/invariant.i @@ -1,7 +1,7 @@ /* run.config COMMENT: invariant - EXECNOW: LOG gen_invariant.c BIN gen_invariant.out FRAMAC_SHARE=./share @frama-c@ ./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 -pedantic -o ./tests/e-acsl-runtime/result/gen_invariant.out ./tests/e-acsl-runtime/result/gen_invariant.c -lgmp && ./tests/e-acsl-runtime/result/gen_invariant.out - EXECNOW: LOG gen_invariant2.c BIN gen_invariant2.out FRAMAC_SHARE=./share @frama-c@ ./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 -pedantic -o ./tests/e-acsl-runtime/result/gen_invariant2.out ./tests/e-acsl-runtime/result/gen_invariant2.c -lgmp && ./tests/e-acsl-runtime/result/gen_invariant2.out + 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 -pedantic -o ./tests/e-acsl-runtime/result/gen_invariant.out ./tests/e-acsl-runtime/result/gen_invariant.c -lgmp && ./tests/e-acsl-runtime/result/gen_invariant.out + 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 -pedantic -o ./tests/e-acsl-runtime/result/gen_invariant2.out ./tests/e-acsl-runtime/result/gen_invariant2.c -lgmp && ./tests/e-acsl-runtime/result/gen_invariant2.out */ int main(void) { int x = 0; 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 fe23e93377d0095d0482be8ba3e62125259ef32e..6002e91d58964859104eceebef879b97681d6be5 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,7 @@ /* run.config COMMENT: labeled stmt and gotos - EXECNOW: LOG gen_labeled_stmt.c BIN gen_labeled_stmt.out FRAMAC_SHARE=./share @frama-c@ ./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 -pedantic -o ./tests/e-acsl-runtime/result/gen_labeled_stmt.out ./tests/e-acsl-runtime/result/gen_labeled_stmt.c -lgmp && ./tests/e-acsl-runtime/result/gen_labeled_stmt.out - EXECNOW: LOG gen_labeled_stmt2.c BIN gen_labeled_stmt2.out FRAMAC_SHARE=./share @frama-c@ ./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 -pedantic -o ./tests/e-acsl-runtime/result/gen_labeled_stmt2.out ./tests/e-acsl-runtime/result/gen_labeled_stmt2.c -lgmp && ./tests/e-acsl-runtime/result/gen_labeled_stmt2.out + 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 -pedantic -o ./tests/e-acsl-runtime/result/gen_labeled_stmt.out ./tests/e-acsl-runtime/result/gen_labeled_stmt.c -lgmp && ./tests/e-acsl-runtime/result/gen_labeled_stmt.out + 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 -pedantic -o ./tests/e-acsl-runtime/result/gen_labeled_stmt2.out ./tests/e-acsl-runtime/result/gen_labeled_stmt2.c -lgmp && ./tests/e-acsl-runtime/result/gen_labeled_stmt2.out */ 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 8dc2a3b17bbd896c8f1f743f7049fe626d40372d..de5b1f69fd8f681a7ec18c08050a6bac7ad9708e 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,7 @@ /* run.config COMMENT: terms and predicates using lazy operators - EXECNOW: LOG gen_lazy.c BIN gen_lazy.out FRAMAC_SHARE=./share @frama-c@ ./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 -pedantic -o ./tests/e-acsl-runtime/result/gen_lazy.out ./tests/e-acsl-runtime/result/gen_lazy.c -lgmp 2> /dev/null && ./tests/e-acsl-runtime/result/gen_lazy.out - EXECNOW: LOG gen_lazy2.c BIN gen_lazy2.out FRAMAC_SHARE=./share @frama-c@ ./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 -pedantic -o ./tests/e-acsl-runtime/result/gen_lazy2.out ./tests/e-acsl-runtime/result/gen_lazy2.c -lgmp 2> /dev/null && ./tests/e-acsl-runtime/result/gen_lazy2.out + 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 -pedantic -o ./tests/e-acsl-runtime/result/gen_lazy.out ./tests/e-acsl-runtime/result/gen_lazy.c -lgmp 2> /dev/null && ./tests/e-acsl-runtime/result/gen_lazy.out + 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 -pedantic -o ./tests/e-acsl-runtime/result/gen_lazy2.out ./tests/e-acsl-runtime/result/gen_lazy2.c -lgmp 2> /dev/null && ./tests/e-acsl-runtime/result/gen_lazy2.out */ 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 75bf70bacf2a7ddec405c19f3f7811d127d165ba..8c4a3650b23e0da13ed7815688e8ed2ca55319e3 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,7 @@ /* run.config COMMENT: linear search (example of the TAP'12 article) - EXECNOW: LOG gen_linear_search.c BIN gen_linear_search.out FRAMAC_SHARE=./share @frama-c@ ./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 -pedantic -o ./tests/e-acsl-runtime/result/gen_linear_search.out ./tests/e-acsl-runtime/result/gen_linear_search.c -lgmp && ./tests/e-acsl-runtime/result/gen_linear_search.out - EXECNOW: LOG gen_linear_search2.c BIN gen_linear_search2.out FRAMAC_SHARE=./share @frama-c@ ./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 -pedantic -Wno-long-long -o ./tests/e-acsl-runtime/result/gen_linear_search2.out ./tests/e-acsl-runtime/result/gen_linear_search2.c -lgmp && ./tests/e-acsl-runtime/result/gen_linear_search2.out + 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 -pedantic -o ./tests/e-acsl-runtime/result/gen_linear_search.out ./tests/e-acsl-runtime/result/gen_linear_search.c -lgmp && ./tests/e-acsl-runtime/result/gen_linear_search.out + 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 -pedantic -Wno-long-long -o ./tests/e-acsl-runtime/result/gen_linear_search2.out ./tests/e-acsl-runtime/result/gen_linear_search2.c -lgmp && ./tests/e-acsl-runtime/result/gen_linear_search2.out */ int A[10]; 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 1be16d7cf5b879a2bd86ca93a6fee84c97c24528..ae5104404b742d5d9d7141d9463a623160e98d41 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,7 @@ /* run.config COMMENT: structured stmt with several code annotations inside - EXECNOW: LOG gen_nested_code_annot.c BIN gen_nested_code_annot.out FRAMAC_SHARE=./share @frama-c@ ./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 -pedantic -o ./tests/e-acsl-runtime/result/gen_nested_code_annot.out ./tests/e-acsl-runtime/result/gen_nested_code_annot.c -lgmp && ./tests/e-acsl-runtime/result/gen_nested_code_annot.out - EXECNOW: LOG gen_nested_code_annot2.c BIN gen_nested_code_annot2.out FRAMAC_SHARE=./share @frama-c@ ./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 -pedantic -o ./tests/e-acsl-runtime/result/gen_nested_code_annot2.out ./tests/e-acsl-runtime/result/gen_nested_code_annot2.c -lgmp && ./tests/e-acsl-runtime/result/gen_nested_code_annot2.out + 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 -pedantic -o ./tests/e-acsl-runtime/result/gen_nested_code_annot.out ./tests/e-acsl-runtime/result/gen_nested_code_annot.c -lgmp && ./tests/e-acsl-runtime/result/gen_nested_code_annot.out + 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 -pedantic -o ./tests/e-acsl-runtime/result/gen_nested_code_annot2.out ./tests/e-acsl-runtime/result/gen_nested_code_annot2.c -lgmp && ./tests/e-acsl-runtime/result/gen_nested_code_annot2.out */ 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 index 4012c7bdadd35260876bc58e760ddf94e8bf65f6..6280913c7f707956042ab4da35609f5896f9a169 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/not.i +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/not.i @@ -1,7 +1,7 @@ /* run.config COMMENT: predicate [!p] - EXECNOW: LOG gen_not.c BIN gen_not.out FRAMAC_SHARE=./share @frama-c@ ./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 -pedantic -o ./tests/e-acsl-runtime/result/gen_not.out ./tests/e-acsl-runtime/result/gen_not.c && ./tests/e-acsl-runtime/result/gen_not.out - EXECNOW: LOG gen_not2.c BIN gen_not2.out FRAMAC_SHARE=./share @frama-c@ ./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 -pedantic -o ./tests/e-acsl-runtime/result/gen_not2.out ./tests/e-acsl-runtime/result/gen_not2.c -lgmp && ./tests/e-acsl-runtime/result/gen_not2.out + 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 -pedantic -o ./tests/e-acsl-runtime/result/gen_not.out ./tests/e-acsl-runtime/result/gen_not.c && ./tests/e-acsl-runtime/result/gen_not.out + 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 -pedantic -o ./tests/e-acsl-runtime/result/gen_not2.out ./tests/e-acsl-runtime/result/gen_not2.c -lgmp && ./tests/e-acsl-runtime/result/gen_not2.out */ int main(void) { int x = 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 2b04ba44e00daef119cf76db2a8bc0c8412a2b80..281ac755a1dfbbacbc76f88054a6484ea75fd09f 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,7 @@ /* run.config COMMENT: assert \null == 0 - EXECNOW: LOG gen_null.c BIN gen_null.out FRAMAC_SHARE=./share @frama-c@ ./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 -pedantic -o ./tests/e-acsl-runtime/result/gen_null.out ./tests/e-acsl-runtime/result/gen_null.c -lgmp && ./tests/e-acsl-runtime/result/gen_null.out - EXECNOW: LOG gen_null2.c BIN gen_null2.out FRAMAC_SHARE=./share @frama-c@ ./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 -pedantic -o ./tests/e-acsl-runtime/result/gen_null2.out ./tests/e-acsl-runtime/result/gen_null2.c -lgmp && ./tests/e-acsl-runtime/result/gen_null2.out + 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 -pedantic -o ./tests/e-acsl-runtime/result/gen_null.out ./tests/e-acsl-runtime/result/gen_null.c -lgmp && ./tests/e-acsl-runtime/result/gen_null.out + 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 -pedantic -o ./tests/e-acsl-runtime/result/gen_null2.out ./tests/e-acsl-runtime/result/gen_null2.c -lgmp && ./tests/e-acsl-runtime/result/gen_null2.out */ int main(void) { 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 index 3bd2589edfffa65dbdef2cee69c3e76cb69454da..a2d9b51febce6783602fc15c5a0c7b27631d782c 100644 --- 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 @@ -16,6 +16,109 @@ PROJECT_FILE.i:221:[value] Function e_acsl_assert: precondition got status valid __retres ∈ {0} x ∈ {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; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ requires \valid(x); + assigns *x; */ +extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z1); + requires \valid(z2); + assigns \nothing; */ +extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 index 3bd2589edfffa65dbdef2cee69c3e76cb69454da..a2d9b51febce6783602fc15c5a0c7b27631d782c 100644 --- 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 @@ -16,6 +16,109 @@ PROJECT_FILE.i:221:[value] Function e_acsl_assert: precondition got status valid __retres ∈ {0} x ∈ {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; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ requires \valid(x); + assigns *x; */ +extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z1); + requires \valid(z2); + assigns \nothing; */ +extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/arith.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/arith.1.res.oracle index 737b404ffa08317e61499a5b3405a889302e9b9e..6d5c2538d2094f294baae8a539c9da7544bba187 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/arith.1.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/arith.1.res.oracle @@ -5,14 +5,17 @@ PROJECT_FILE.i:237:[value] Assertion got status valid. [value] computing for function __gmpz_init_set_si <- main. Called from PROJECT_FILE.i:243. +[value] using specification for function __gmpz_init_set_si PROJECT_FILE.i:82:[value] Function __gmpz_init_set_si: postcondition got status valid. [value] Done for function __gmpz_init_set_si [value] computing for function __gmpz_init <- main. Called from PROJECT_FILE.i:244. +[value] using specification for function __gmpz_init PROJECT_FILE.i:69:[value] Function __gmpz_init: postcondition got status valid. [value] Done for function __gmpz_init [value] computing for function __gmpz_neg <- main. Called from PROJECT_FILE.i:245. +[value] using specification for function __gmpz_neg PROJECT_FILE.i:128:[value] Function __gmpz_neg: precondition got status valid. PROJECT_FILE.i:129:[value] Function __gmpz_neg: precondition got status valid. [value] Done for function __gmpz_neg @@ -21,6 +24,7 @@ PROJECT_FILE.i:129:[value] Function __gmpz_neg: precondition got status valid. [value] Done for function __gmpz_init_set_si [value] computing for function __gmpz_cmp <- main. Called from PROJECT_FILE.i:247. +[value] using specification for function __gmpz_cmp PROJECT_FILE.i:119:[value] Function __gmpz_cmp: precondition got status valid. PROJECT_FILE.i:120:[value] Function __gmpz_cmp: precondition got status valid. [value] Done for function __gmpz_cmp @@ -31,6 +35,7 @@ PROJECT_FILE.i:221:[value] Function e_acsl_assert: precondition got status unkno [value] Done for function e_acsl_assert [value] computing for function __gmpz_clear <- main. Called from PROJECT_FILE.i:249. +[value] using specification for function __gmpz_clear PROJECT_FILE.i:111:[value] Function __gmpz_clear: precondition got status valid. [value] Done for function __gmpz_clear [value] computing for function __gmpz_clear <- main. @@ -77,6 +82,7 @@ PROJECT_FILE.i:273:[value] Assertion got status valid. [value] Done for function __gmpz_init [value] computing for function __gmpz_com <- main. Called from PROJECT_FILE.i:280. +[value] using specification for function __gmpz_com PROJECT_FILE.i:167:[value] Function __gmpz_com: precondition got status valid. PROJECT_FILE.i:168:[value] Function __gmpz_com: precondition got status valid. [value] Done for function __gmpz_com @@ -105,6 +111,7 @@ PROJECT_FILE.i:288:[value] Assertion got status valid. [value] Done for function __gmpz_init [value] computing for function __gmpz_add <- main. Called from PROJECT_FILE.i:299. +[value] using specification for function __gmpz_add PROJECT_FILE.i:133:[value] Function __gmpz_add: precondition got status valid. PROJECT_FILE.i:134:[value] Function __gmpz_add: precondition got status valid. PROJECT_FILE.i:135:[value] Function __gmpz_add: precondition got status valid. @@ -152,6 +159,7 @@ PROJECT_FILE.i:313:[value] Assertion got status valid. [value] Done for function __gmpz_init [value] computing for function __gmpz_sub <- main. Called from PROJECT_FILE.i:324. +[value] using specification for function __gmpz_sub PROJECT_FILE.i:139:[value] Function __gmpz_sub: precondition got status valid. PROJECT_FILE.i:140:[value] Function __gmpz_sub: precondition got status valid. PROJECT_FILE.i:141:[value] Function __gmpz_sub: precondition got status valid. @@ -199,6 +207,7 @@ PROJECT_FILE.i:338:[value] Assertion got status valid. [value] Done for function __gmpz_init [value] computing for function __gmpz_mul <- main. Called from PROJECT_FILE.i:349. +[value] using specification for function __gmpz_mul PROJECT_FILE.i:145:[value] Function __gmpz_mul: precondition got status valid. PROJECT_FILE.i:146:[value] Function __gmpz_mul: precondition got status valid. PROJECT_FILE.i:147:[value] Function __gmpz_mul: precondition got status valid. @@ -257,6 +266,7 @@ PROJECT_FILE.i:378:[value] Assertion got status valid. [value] Done for function e_acsl_assert [value] computing for function __gmpz_tdiv_q <- main. Called from PROJECT_FILE.i:380. +[value] using specification for function __gmpz_tdiv_q PROJECT_FILE.i:151:[value] Function __gmpz_tdiv_q: precondition got status valid. PROJECT_FILE.i:152:[value] Function __gmpz_tdiv_q: precondition got status valid. PROJECT_FILE.i:153:[value] Function __gmpz_tdiv_q: precondition got status valid. @@ -298,6 +308,7 @@ PROJECT_FILE.i:153:[value] Function __gmpz_tdiv_q: precondition got status valid PROJECT_FILE.i:395:[value] Assertion got status valid. [value] computing for function __gmpz_init_set_str <- main. Called from PROJECT_FILE.i:403. +[value] using specification for function __gmpz_init_set_str PROJECT_FILE.i:86:[value] Function __gmpz_init_set_str: postcondition got status valid. [value] Done for function __gmpz_init_set_str [value] computing for function __gmpz_init_set_si <- main. @@ -362,6 +373,7 @@ PROJECT_FILE.i:437:[value] Assertion got status valid. [value] Done for function e_acsl_assert [value] computing for function __gmpz_tdiv_r <- main. Called from PROJECT_FILE.i:439. +[value] using specification for function __gmpz_tdiv_r PROJECT_FILE.i:157:[value] Function __gmpz_tdiv_r: precondition got status valid. PROJECT_FILE.i:158:[value] Function __gmpz_tdiv_r: precondition got status valid. PROJECT_FILE.i:159:[value] Function __gmpz_tdiv_r: precondition got status valid. @@ -893,33 +905,67 @@ struct __anonstruct___mpz_struct_1 { typedef struct __anonstruct___mpz_struct_1 __mpz_struct; typedef __mpz_struct mpz_t[1]; /*@ ensures \valid(\old(x)); + allocates \nothing; assigns *x; */ extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); /*@ ensures \valid(\old(z)); assigns *z; assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + allocates \nothing; + assigns *z; + assigns *z \from n; +*/ extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); /*@ ensures \valid(\old(z)); + allocates \nothing; assigns *z; */ extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); /*@ requires \valid(x); + allocates \nothing; assigns *x; */ extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); /*@ requires \valid(z1); requires \valid(z2); - assigns \nothing; */ + allocates \nothing; + assigns \nothing; + +*/ extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2); /*@ requires \valid(z1); requires \valid(z2); - assigns *z1; */ + allocates \nothing; + assigns *z1; +*/ extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2); /*@ requires \valid(z1); requires \valid(z2); requires \valid(z3); - assigns *z1; + allocates \nothing; + assigns *z1; + */ extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2, @@ -927,7 +973,9 @@ extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, /*@ requires \valid(z1); requires \valid(z2); requires \valid(z3); - assigns *z1; + allocates \nothing; + assigns *z1; + */ extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2, @@ -935,7 +983,9 @@ extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, /*@ requires \valid(z1); requires \valid(z2); requires \valid(z3); - assigns *z1; + allocates \nothing; + assigns *z1; + */ extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2, @@ -943,7 +993,9 @@ extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, /*@ requires \valid(z1); requires \valid(z2); requires \valid(z3); - assigns *z1; + allocates \nothing; + assigns *z1; + */ extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2, @@ -951,16 +1003,26 @@ extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, /*@ requires \valid(z1); requires \valid(z2); requires \valid(z3); - assigns *z1; + allocates \nothing; + assigns *z1; + */ extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2, __mpz_struct const * /*[1]*/ z3); /*@ requires \valid(z1); requires \valid(z2); - assigns *z1; */ + allocates \nothing; + assigns *z1; +*/ extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/arith.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/arith.res.oracle index 051c837ec6807db027629b3a4b325a030838e694..7de092274cb3c24e15fbacaf6e884bff16e99dc3 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/arith.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/arith.res.oracle @@ -122,6 +122,109 @@ PROJECT_FILE.i:327:[value] Assertion got status valid. x ∈ {-3} y ∈ {2} /* 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; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ requires \valid(x); + assigns *x; */ +extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z1); + requires \valid(z2); + assigns \nothing; */ +extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/array.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/array.1.res.oracle index cf012ba073fbae0d3f3735538ae391b13f7fe72b..994ad872b432d0e4b4a5b429ae63902c2e14171d 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/array.1.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/array.1.res.oracle @@ -14,6 +14,7 @@ PROJECT_FILE.i:246:[value] entering loop for the first time PROJECT_FILE.i:253:[value] Assertion got status unknown. [value] computing for function __gmpz_init_set_si <- main. Called from PROJECT_FILE.i:258. +[value] using specification for function __gmpz_init_set_si PROJECT_FILE.i:82:[value] Function __gmpz_init_set_si: postcondition got status valid. [value] Done for function __gmpz_init_set_si [value] computing for function __gmpz_init_set_si <- main. @@ -21,6 +22,7 @@ PROJECT_FILE.i:82:[value] Function __gmpz_init_set_si: postcondition got status [value] Done for function __gmpz_init_set_si [value] computing for function __gmpz_cmp <- main. Called from PROJECT_FILE.i:260. +[value] using specification for function __gmpz_cmp PROJECT_FILE.i:119:[value] Function __gmpz_cmp: precondition got status valid. PROJECT_FILE.i:120:[value] Function __gmpz_cmp: precondition got status valid. [value] Done for function __gmpz_cmp @@ -31,6 +33,7 @@ PROJECT_FILE.i:221:[value] Function e_acsl_assert: precondition got status unkno [value] Done for function e_acsl_assert [value] computing for function __gmpz_clear <- main. Called from PROJECT_FILE.i:262. +[value] using specification for function __gmpz_clear PROJECT_FILE.i:111:[value] Function __gmpz_clear: precondition got status valid. [value] Done for function __gmpz_clear [value] computing for function __gmpz_clear <- main. @@ -74,18 +77,109 @@ struct __anonstruct___mpz_struct_1 { }; typedef struct __anonstruct___mpz_struct_1 __mpz_struct; typedef __mpz_struct mpz_t[1]; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); /*@ ensures \valid(\old(z)); assigns *z; assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + allocates \nothing; + assigns *z; + assigns *z \from n; +*/ extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); /*@ requires \valid(x); + allocates \nothing; assigns *x; */ extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); /*@ requires \valid(z1); requires \valid(z2); - assigns \nothing; */ + allocates \nothing; + assigns \nothing; + +*/ extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/array.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/array.res.oracle index 69e6c62edf44f23c2da0c9d0eb4b8d51bd607a9f..2b385ff3c649605e81774e47dccc8bcf8aabe89b 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/array.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/array.res.oracle @@ -33,6 +33,109 @@ PROJECT_FILE.i:256:[value] Assertion got status unknown. [1..3] ∈ {0; 2; 4; 6} __retres ∈ {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; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ requires \valid(x); + assigns *x; */ +extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z1); + requires \valid(z2); + assigns \nothing; */ +extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/at.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/at.1.res.oracle index a1153e3a661105a046f6e342511eda8cb023a340..399b44fc764c07acec092f1d873b3a378d4802cb 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/at.1.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/at.1.res.oracle @@ -11,6 +11,7 @@ tests/e-acsl-runtime/at.i:34:[e-acsl] warning: missing guard for ensuring that p A ∈ {0} [value] computing for function __gmpz_init_set_si <- main. Called from PROJECT_FILE.i:390. +[value] using specification for function __gmpz_init_set_si PROJECT_FILE.i:82:[value] Function __gmpz_init_set_si: postcondition got status valid. [value] Done for function __gmpz_init_set_si [value] computing for function __gmpz_init_set_si <- main. @@ -18,21 +19,25 @@ PROJECT_FILE.i:82:[value] Function __gmpz_init_set_si: postcondition got status [value] Done for function __gmpz_init_set_si [value] computing for function __gmpz_init <- main. Called from PROJECT_FILE.i:392. +[value] using specification for function __gmpz_init PROJECT_FILE.i:69:[value] Function __gmpz_init: postcondition got status valid. [value] Done for function __gmpz_init [value] computing for function __gmpz_add <- main. Called from PROJECT_FILE.i:393. +[value] using specification for function __gmpz_add PROJECT_FILE.i:133:[value] Function __gmpz_add: precondition got status valid. PROJECT_FILE.i:134:[value] Function __gmpz_add: precondition got status valid. PROJECT_FILE.i:135:[value] Function __gmpz_add: precondition got status valid. [value] Done for function __gmpz_add [value] computing for function __gmpz_init_set <- main. Called from PROJECT_FILE.i:394. +[value] using specification for function __gmpz_init_set PROJECT_FILE.i:73:[value] Function __gmpz_init_set: precondition got status valid. PROJECT_FILE.i:74:[value] Function __gmpz_init_set: postcondition got status valid. [value] Done for function __gmpz_init_set [value] computing for function __gmpz_clear <- main. Called from PROJECT_FILE.i:395. +[value] using specification for function __gmpz_clear PROJECT_FILE.i:111:[value] Function __gmpz_clear: precondition got status valid. [value] Done for function __gmpz_clear [value] computing for function __gmpz_clear <- main. @@ -50,6 +55,7 @@ PROJECT_FILE.i:401:[value] Assertion got status valid. [value] Done for function __gmpz_init_set_si [value] computing for function __gmpz_cmp <- main. Called from PROJECT_FILE.i:408. +[value] using specification for function __gmpz_cmp PROJECT_FILE.i:119:[value] Function __gmpz_cmp: precondition got status valid. PROJECT_FILE.i:120:[value] Function __gmpz_cmp: precondition got status valid. [value] Done for function __gmpz_cmp @@ -317,33 +323,114 @@ struct __anonstruct___mpz_struct_1 { typedef struct __anonstruct___mpz_struct_1 __mpz_struct; typedef __mpz_struct mpz_t[1]; /*@ ensures \valid(\old(x)); + allocates \nothing; assigns *x; */ extern void __gmpz_init(__mpz_struct * /*[1]*/ x); /*@ requires \valid(z_orig); ensures \valid(\old(z)); - assigns *z; */ + allocates \nothing; + assigns *z; + +*/ extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, __mpz_struct const * /*[1]*/ z_orig); /*@ ensures \valid(\old(z)); assigns *z; assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + allocates \nothing; + assigns *z; + assigns *z \from n; +*/ extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); /*@ requires \valid(x); + allocates \nothing; assigns *x; */ extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); /*@ requires \valid(z1); requires \valid(z2); - assigns \nothing; */ + allocates \nothing; + assigns \nothing; + +*/ extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); /*@ requires \valid(z1); requires \valid(z2); requires \valid(z3); - assigns *z1; + allocates \nothing; + assigns *z1; + */ extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2, __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/at.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/at.res.oracle index 4901c0de27a9c93d2779c5596889d769861efe1a..a5c5c549f1c9a4cfaf798c1743800c7c74c28d22 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/at.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/at.res.oracle @@ -104,6 +104,109 @@ PROJECT_FILE.i:290:[value] Assertion got status unknown. __e_acsl_at_2 ∈ {1} __e_acsl_at_3 ∈ {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; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ requires \valid(x); + assigns *x; */ +extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z1); + requires \valid(z2); + assigns \nothing; */ +extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/cast.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/cast.1.res.oracle index 3daebf6c49c958b338dd1dff43fed6a7f02d6a60..11d52f4df4c21cc3001c83ca7c8ce23f5efabe9c 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/cast.1.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/cast.1.res.oracle @@ -7,6 +7,7 @@ tests/e-acsl-runtime/cast.i:19:[e-acsl] warning: missing guard for ensuring that PROJECT_FILE.i:237:[value] Assertion got status valid. [value] computing for function __gmpz_init_set_si <- main. Called from PROJECT_FILE.i:242. +[value] using specification for function __gmpz_init_set_si PROJECT_FILE.i:82:[value] Function __gmpz_init_set_si: postcondition got status valid. [value] Done for function __gmpz_init_set_si [value] computing for function __gmpz_init_set_si <- main. @@ -14,6 +15,7 @@ PROJECT_FILE.i:82:[value] Function __gmpz_init_set_si: postcondition got status [value] Done for function __gmpz_init_set_si [value] computing for function __gmpz_cmp <- main. Called from PROJECT_FILE.i:244. +[value] using specification for function __gmpz_cmp PROJECT_FILE.i:119:[value] Function __gmpz_cmp: precondition got status valid. PROJECT_FILE.i:120:[value] Function __gmpz_cmp: precondition got status valid. [value] Done for function __gmpz_cmp @@ -24,6 +26,7 @@ PROJECT_FILE.i:221:[value] Function e_acsl_assert: precondition got status unkno [value] Done for function e_acsl_assert [value] computing for function __gmpz_clear <- main. Called from PROJECT_FILE.i:246. +[value] using specification for function __gmpz_clear PROJECT_FILE.i:111:[value] Function __gmpz_clear: precondition got status valid. [value] Done for function __gmpz_clear [value] computing for function __gmpz_clear <- main. @@ -72,6 +75,7 @@ PROJECT_FILE.i:265:[value] Assertion got status valid. PROJECT_FILE.i:279:[value] Assertion got status valid. [value] computing for function __gmpz_init_set_ui <- main. Called from PROJECT_FILE.i:284. +[value] using specification for function __gmpz_init_set_ui PROJECT_FILE.i:78:[value] Function __gmpz_init_set_ui: postcondition got status valid. [value] Done for function __gmpz_init_set_ui [value] computing for function __gmpz_init_set_ui <- main. @@ -96,10 +100,12 @@ PROJECT_FILE.i:294:[value] Assertion got status valid. [value] Done for function __gmpz_init_set_si [value] computing for function __gmpz_init_set_str <- main. Called from PROJECT_FILE.i:302. +[value] using specification for function __gmpz_init_set_str PROJECT_FILE.i:86:[value] Function __gmpz_init_set_str: postcondition got status valid. [value] Done for function __gmpz_init_set_str [value] computing for function __gmpz_get_ui <- main. Called from PROJECT_FILE.i:303. +[value] using specification for function __gmpz_get_ui PROJECT_FILE.i:180:[value] Function __gmpz_get_ui: precondition got status valid. [value] Done for function __gmpz_get_ui [value] computing for function __gmpz_init_set_si <- main. @@ -166,27 +172,111 @@ struct __anonstruct___mpz_struct_1 { }; typedef struct __anonstruct___mpz_struct_1 __mpz_struct; typedef __mpz_struct mpz_t[1]; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); /*@ ensures \valid(\old(z)); + allocates \nothing; assigns *z; - assigns *z \from n; */ + assigns *z \from n; +*/ extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); /*@ ensures \valid(\old(z)); + allocates \nothing; assigns *z; - assigns *z \from n; */ + assigns *z \from n; +*/ extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); /*@ ensures \valid(\old(z)); + allocates \nothing; assigns *z; */ extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); /*@ requires \valid(x); + allocates \nothing; assigns *x; */ extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); /*@ requires \valid(z1); requires \valid(z2); - assigns \nothing; */ + allocates \nothing; + assigns \nothing; + +*/ extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); /*@ requires \valid(z); + allocates \nothing; assigns \nothing; */ extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/cast.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/cast.res.oracle index 6630d462341da870e290e7ba05dc0b7f491b9e08..54ffcc42b94437969809624374cde8198e5fcb6e 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/cast.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/cast.res.oracle @@ -42,6 +42,109 @@ PROJECT_FILE.i:254:[value] Assertion got status valid. x ∈ {0} y ∈ {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; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ requires \valid(x); + assigns *x; */ +extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z1); + requires \valid(z2); + assigns \nothing; */ +extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/comparison.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/comparison.1.res.oracle index 08952c52d4e40f46164b71aa5e71eb1ea32afc84..be718900a9126ecade137b82fd289d9579bf295f 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/comparison.1.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/comparison.1.res.oracle @@ -5,6 +5,7 @@ PROJECT_FILE.i:238:[value] Assertion got status valid. [value] computing for function __gmpz_init_set_si <- main. Called from PROJECT_FILE.i:243. +[value] using specification for function __gmpz_init_set_si PROJECT_FILE.i:82:[value] Function __gmpz_init_set_si: postcondition got status valid. [value] Done for function __gmpz_init_set_si [value] computing for function __gmpz_init_set_si <- main. @@ -12,6 +13,7 @@ PROJECT_FILE.i:82:[value] Function __gmpz_init_set_si: postcondition got status [value] Done for function __gmpz_init_set_si [value] computing for function __gmpz_cmp <- main. Called from PROJECT_FILE.i:245. +[value] using specification for function __gmpz_cmp PROJECT_FILE.i:119:[value] Function __gmpz_cmp: precondition got status valid. PROJECT_FILE.i:120:[value] Function __gmpz_cmp: precondition got status valid. [value] Done for function __gmpz_cmp @@ -22,6 +24,7 @@ PROJECT_FILE.i:221:[value] Function e_acsl_assert: precondition got status unkno [value] Done for function e_acsl_assert [value] computing for function __gmpz_clear <- main. Called from PROJECT_FILE.i:247. +[value] using specification for function __gmpz_clear PROJECT_FILE.i:111:[value] Function __gmpz_clear: precondition got status valid. [value] Done for function __gmpz_clear [value] computing for function __gmpz_clear <- main. @@ -218,10 +221,12 @@ PROJECT_FILE.i:382:[value] Assertion got status valid. [value] Done for function __gmpz_init_set_si [value] computing for function __gmpz_init <- main. Called from PROJECT_FILE.i:389. +[value] using specification for function __gmpz_init PROJECT_FILE.i:69:[value] Function __gmpz_init: postcondition got status valid. [value] Done for function __gmpz_init [value] computing for function __gmpz_neg <- main. Called from PROJECT_FILE.i:390. +[value] using specification for function __gmpz_neg PROJECT_FILE.i:128:[value] Function __gmpz_neg: precondition got status valid. PROJECT_FILE.i:129:[value] Function __gmpz_neg: precondition got status valid. [value] Done for function __gmpz_neg @@ -401,25 +406,111 @@ struct __anonstruct___mpz_struct_1 { typedef struct __anonstruct___mpz_struct_1 __mpz_struct; typedef __mpz_struct mpz_t[1]; /*@ ensures \valid(\old(x)); + allocates \nothing; assigns *x; */ extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); /*@ ensures \valid(\old(z)); assigns *z; assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + allocates \nothing; + assigns *z; + assigns *z \from n; +*/ extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); /*@ requires \valid(x); + allocates \nothing; assigns *x; */ extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); /*@ requires \valid(z1); requires \valid(z2); - assigns \nothing; */ + allocates \nothing; + assigns \nothing; + +*/ extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2); /*@ requires \valid(z1); requires \valid(z2); - assigns *z1; */ + allocates \nothing; + assigns *z1; +*/ extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/comparison.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/comparison.res.oracle index a58077a3990d63ef404c75602b003a2a5ba0a2c2..ea92e0e330db44f6e5a1517b37117c6f45d33ea2 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/comparison.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/comparison.res.oracle @@ -103,6 +103,109 @@ PROJECT_FILE.i:290:[value] Assertion got status valid. y ∈ {1} s ∈ {{ "toto" }} /* 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; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ requires \valid(x); + assigns *x; */ +extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z1); + requires \valid(z2); + assigns \nothing; */ +extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 index 9526b80c6209b5f42bb516e568b9589c7aa27a78..bc28b3d231f829d9920f0b69927da74fcde906ba 100644 --- 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 @@ -1,2 +1,122 @@ /* 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; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ requires \valid(x); + assigns *x; */ +extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z1); + requires \valid(z2); + assigns \nothing; */ +extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); +/*@ terminates \false; + ensures \false; + assigns \nothing; */ +extern void exit(int status); +/*@ assigns \nothing; */ +extern int printf(char const * , ...); +/*@ requires predicate ≢ 0; */ +void e_acsl_assert(int predicate, char *kind, char *pred_txt, int line) +{ + if (! predicate) { + printf("%s failed at line %d.\nThe failing predicate is:\n%s.\n",kind, + line,pred_txt); + exit(1); + } + return; +} + 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 index 2fff7cb272517de5f41d0b018024fabff4142bfe..1d8175ec54a9b6bb3ffe9d5ba91a48a565944dea 100644 --- 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 @@ -9,6 +9,109 @@ __retres ∈ {0} x ∈ {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; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ requires \valid(x); + assigns *x; */ +extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z1); + requires \valid(z2); + assigns \nothing; */ +extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 index 2fff7cb272517de5f41d0b018024fabff4142bfe..1d8175ec54a9b6bb3ffe9d5ba91a48a565944dea 100644 --- 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 @@ -9,6 +9,109 @@ __retres ∈ {0} x ∈ {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; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ requires \valid(x); + assigns *x; */ +extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z1); + requires \valid(z2); + assigns \nothing; */ +extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 index a0f2519f1800b7fd4af10559a314a6c6bd383f31..4ffb9069ff0a15f3beddd4cc3e77836209e0ad8e 100644 --- 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 @@ -8,6 +8,7 @@ Called from PROJECT_FILE.i:686. [value] computing for function __gmpz_init_set_si <- f <- main. Called from PROJECT_FILE.i:240. +[value] using specification for function __gmpz_init_set_si PROJECT_FILE.i:82:[value] Function __gmpz_init_set_si: postcondition got status valid. [value] Done for function __gmpz_init_set_si [value] computing for function __gmpz_init_set_si <- f <- main. @@ -15,6 +16,7 @@ PROJECT_FILE.i:82:[value] Function __gmpz_init_set_si: postcondition got status [value] Done for function __gmpz_init_set_si [value] computing for function __gmpz_cmp <- f <- main. Called from PROJECT_FILE.i:242. +[value] using specification for function __gmpz_cmp PROJECT_FILE.i:119:[value] Function __gmpz_cmp: precondition got status valid. PROJECT_FILE.i:120:[value] Function __gmpz_cmp: precondition got status valid. [value] Done for function __gmpz_cmp @@ -25,6 +27,7 @@ PROJECT_FILE.i:221:[value] Function e_acsl_assert: precondition got status unkno [value] Done for function e_acsl_assert [value] computing for function __gmpz_clear <- f <- main. Called from PROJECT_FILE.i:244. +[value] using specification for function __gmpz_clear PROJECT_FILE.i:111:[value] Function __gmpz_clear: precondition got status valid. [value] Done for function __gmpz_clear [value] computing for function __gmpz_clear <- f <- main. @@ -165,10 +168,12 @@ PROJECT_FILE.i:331:[value] Function j, behavior b2: precondition got status vali [value] Done for function __gmpz_init_set_si [value] computing for function __gmpz_init <- j <- main. Called from PROJECT_FILE.i:354. +[value] using specification for function __gmpz_init PROJECT_FILE.i:69:[value] Function __gmpz_init: postcondition got status valid. [value] Done for function __gmpz_init [value] computing for function __gmpz_add <- j <- main. Called from PROJECT_FILE.i:355. +[value] using specification for function __gmpz_add PROJECT_FILE.i:133:[value] Function __gmpz_add: precondition got status valid. PROJECT_FILE.i:134:[value] Function __gmpz_add: precondition got status valid. PROJECT_FILE.i:135:[value] Function __gmpz_add: precondition got status valid. @@ -629,28 +634,111 @@ struct __anonstruct___mpz_struct_1 { typedef struct __anonstruct___mpz_struct_1 __mpz_struct; typedef __mpz_struct mpz_t[1]; /*@ ensures \valid(\old(x)); + allocates \nothing; assigns *x; */ extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); /*@ ensures \valid(\old(z)); assigns *z; assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + allocates \nothing; + assigns *z; + assigns *z \from n; +*/ extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); /*@ requires \valid(x); + allocates \nothing; assigns *x; */ extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); /*@ requires \valid(z1); requires \valid(z2); - assigns \nothing; */ + allocates \nothing; + assigns \nothing; + +*/ extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); /*@ requires \valid(z1); requires \valid(z2); requires \valid(z3); - assigns *z1; + allocates \nothing; + assigns *z1; + */ extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2, __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 index 7d6e1928c16ca97f86daeb0ac90d2df551537093..400a73210d67fe9591165d4a0f6942778e4ec79d 100644 --- 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 @@ -159,6 +159,109 @@ PROJECT_FILE.i:352:[value] Function m, behavior b2: postcondition got status val X ∈ {7} __retres ∈ {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; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ requires \valid(x); + assigns *x; */ +extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z1); + requires \valid(z2); + assigns \nothing; */ +extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 dec62651953f11de2ceb357b67c7b89b28c739e5..02ba9483e3f9b18508716388fb244fb6e5204260 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,4 +1,107 @@ /* 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; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ requires \valid(x); + assigns *x; */ +extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z1); + requires \valid(z2); + assigns \nothing; */ +extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 index dec62651953f11de2ceb357b67c7b89b28c739e5..02ba9483e3f9b18508716388fb244fb6e5204260 100644 --- 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 @@ -1,4 +1,107 @@ /* 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; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ requires \valid(x); + assigns *x; */ +extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z1); + requires \valid(z2); + assigns \nothing; */ +extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 index 7c48658ca15b2a16ed9cc9330db96e364ba9c7cc..c90a8d89fb5c502482a42d795ea38bf3945f981b 100644 --- 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 @@ -1,4 +1,107 @@ /* 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; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ requires \valid(x); + assigns *x; */ +extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z1); + requires \valid(z2); + assigns \nothing; */ +extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_arith2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_arith2.c index 6c558cd24a38289a88e73fd9ba9b872d8dc98691..501472caadeb20736542557023d4352be16a2550 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_arith2.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_arith2.c @@ -9,6 +9,15 @@ typedef __mpz_struct mpz_t[1]; /*@ ensures \valid(\old(x)); assigns *x; */ extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); /*@ ensures \valid(\old(z)); assigns *z; assigns *z \from n; */ @@ -17,6 +26,19 @@ extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); assigns *z; */ extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); /*@ requires \valid(x); assigns *x; */ extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); @@ -75,6 +97,12 @@ extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, assigns *z1; */ extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 index b83c4643cab6945777fcc9939176ec5ac17d9cb0..14f0858316d47218f3959f9e7b60b486cb6ca5b0 100644 --- 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 @@ -1,4 +1,107 @@ /* 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; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ requires \valid(x); + assigns *x; */ +extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z1); + requires \valid(z2); + assigns \nothing; */ +extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 index e491a9fd62d72a8f50638627493a19f4724b3f53..765225105ac4d6f9b842981fdaf902d88c559b1f 100644 --- 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 @@ -6,10 +6,39 @@ struct __anonstruct___mpz_struct_1 { }; typedef struct __anonstruct___mpz_struct_1 __mpz_struct; typedef __mpz_struct mpz_t[1]; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); /*@ ensures \valid(\old(z)); assigns *z; assigns *z \from n; */ extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); /*@ requires \valid(x); assigns *x; */ extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); @@ -18,6 +47,62 @@ extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); assigns \nothing; */ extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_at.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_at.c index a68e68da0b36e30b3a521d9577a18baf2f14b768..d10663b18a49aa426d7dae528fff99560d2dfcf6 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_at.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_at.c @@ -1,4 +1,107 @@ /* 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; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ requires \valid(x); + assigns *x; */ +extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z1); + requires \valid(z2); + assigns \nothing; */ +extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_at2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_at2.c index 616548f8c0ef0abdc456c33cb126556bfa095648..9fdc34f7abbded408a64a6910af183c2aec74f36 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_at2.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_at2.c @@ -14,10 +14,31 @@ extern void __gmpz_init(__mpz_struct * /*[1]*/ x); assigns *z; */ extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); /*@ ensures \valid(\old(z)); assigns *z; assigns *z \from n; */ extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); /*@ requires \valid(x); assigns *x; */ extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); @@ -26,6 +47,11 @@ extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); assigns \nothing; */ extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); /*@ requires \valid(z1); requires \valid(z2); requires \valid(z3); @@ -34,6 +60,49 @@ extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2, __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 index a073e25196f10bcab6a66613fa8a794270627d03..9951c989eddfe4ca350c1116061ef9eaf27d8acd 100644 --- 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 @@ -1,4 +1,107 @@ /* 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; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ requires \valid(x); + assigns *x; */ +extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z1); + requires \valid(z2); + assigns \nothing; */ +extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 index c655258bea30fdb4db4abfeae4753ebee3e90fe0..1d668b087d072ea6cc3157bff857416d8e033fcc 100644 --- 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 @@ -6,6 +6,14 @@ struct __anonstruct___mpz_struct_1 { }; typedef struct __anonstruct___mpz_struct_1 __mpz_struct; typedef __mpz_struct mpz_t[1]; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); /*@ ensures \valid(\old(z)); assigns *z; assigns *z \from n; */ @@ -18,6 +26,19 @@ extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); assigns *z; */ extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); /*@ requires \valid(x); assigns *x; */ extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); @@ -26,6 +47,59 @@ extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); assigns \nothing; */ extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); /*@ requires \valid(z); assigns \nothing; */ extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_comparison.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_comparison.c index dd4723386a5067b4251a3d60c3dfa55f341d249f..c6ac392a84a2a79bfb757b213e3e7331710ae0ac 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_comparison.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_comparison.c @@ -1,4 +1,107 @@ /* 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; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ requires \valid(x); + assigns *x; */ +extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z1); + requires \valid(z2); + assigns \nothing; */ +extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_comparison2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_comparison2.c index 256fd03e8b8196a0d74e45e9a2560c463ffc1136..028172b274e5e171c100b0923337b802cc62bf9a 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_comparison2.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_comparison2.c @@ -9,10 +9,36 @@ typedef __mpz_struct mpz_t[1]; /*@ ensures \valid(\old(x)); assigns *x; */ extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); /*@ ensures \valid(\old(z)); assigns *z; assigns *z \from n; */ extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); /*@ requires \valid(x); assigns *x; */ extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); @@ -26,6 +52,57 @@ extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, assigns *z1; */ extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 e0ed9f6404987d5108a3607de0a22ef2007d2b14..8e99a4e8bf799cf8296c5c0ead8d136f48edc868 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,4 +1,107 @@ /* 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; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ requires \valid(x); + assigns *x; */ +extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z1); + requires \valid(z2); + assigns \nothing; */ +extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 index e0ed9f6404987d5108a3607de0a22ef2007d2b14..8e99a4e8bf799cf8296c5c0ead8d136f48edc868 100644 --- 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 @@ -1,4 +1,107 @@ /* 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; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ requires \valid(x); + assigns *x; */ +extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z1); + requires \valid(z2); + assigns \nothing; */ +extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 503577c7bd27dcd9c8aba2b3eafe8325987b5197..c901731124a47b6e92b946245dba4b3c11d39ac6 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,4 +1,107 @@ /* 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; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ requires \valid(x); + assigns *x; */ +extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z1); + requires \valid(z2); + assigns \nothing; */ +extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 index 8ec3072d54d7957dee35c117d8bc6a92361f685e..30a7e26d4aee2b8df74db4e27c8860f5736c7117 100644 --- 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 @@ -9,10 +9,36 @@ typedef __mpz_struct mpz_t[1]; /*@ ensures \valid(\old(x)); assigns *x; */ extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); /*@ ensures \valid(\old(z)); assigns *z; assigns *z \from n; */ extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); /*@ requires \valid(x); assigns *x; */ extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); @@ -21,6 +47,11 @@ extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); assigns \nothing; */ extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); /*@ requires \valid(z1); requires \valid(z2); requires \valid(z3); @@ -29,6 +60,49 @@ extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2, __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 index 3268ebf06c12cad1ac7eb19e5517c467a1355bc8..485f4f20a61551ecbe780cca75552ce6becb5d05 100644 --- 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 @@ -1,4 +1,107 @@ /* 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; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ requires \valid(x); + assigns *x; */ +extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z1); + requires \valid(z2); + assigns \nothing; */ +extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 index caf494e2518f7687e5cc56831ce51bc1b125a5cb..09a6cc83032f454bb53ec33e2f5f88916a304504 100644 --- 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 @@ -6,6 +6,18 @@ struct __anonstruct___mpz_struct_1 { }; typedef struct __anonstruct___mpz_struct_1 __mpz_struct; typedef __mpz_struct mpz_t[1]; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); /*@ ensures \valid(\old(z)); assigns *z; assigns *z \from n; */ @@ -14,6 +26,19 @@ extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); assigns *z; */ extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); /*@ requires \valid(x); assigns *x; */ extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); @@ -22,6 +47,62 @@ extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); assigns \nothing; */ extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 6374b50c96289d3a918215d0b0c36a8ea134f8b7..685bd5edadd70a9c2db35cd6e101e67df24a10fc 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,4 +1,107 @@ /* 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; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ requires \valid(x); + assigns *x; */ +extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z1); + requires \valid(z2); + assigns \nothing; */ +extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 index 7eca3cd070cb77c1a7ae4c4abcfd6240a329a20a..e9f51efe58646bb551b3f58b91bc924148db1d5d 100644 --- 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 @@ -6,10 +6,39 @@ struct __anonstruct___mpz_struct_1 { }; typedef struct __anonstruct___mpz_struct_1 __mpz_struct; typedef __mpz_struct mpz_t[1]; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); /*@ ensures \valid(\old(z)); assigns *z; assigns *z \from n; */ extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); /*@ requires \valid(x); assigns *x; */ extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); @@ -18,6 +47,62 @@ extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); assigns \nothing; */ extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 8cfc0944f5e228b07434fcd66bf5eba06c5880e8..bb8aab64743fd1a484aefd71d76cf5ec86213bca 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,4 +1,107 @@ /* 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; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ requires \valid(x); + assigns *x; */ +extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z1); + requires \valid(z2); + assigns \nothing; */ +extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 index 9eb453927b04b8ed37ef9f2740265c14233b328b..30a9f60a01431446b1ed8fe4376ff4d51ca6da31 100644 --- 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 @@ -6,10 +6,39 @@ struct __anonstruct___mpz_struct_1 { }; typedef struct __anonstruct___mpz_struct_1 __mpz_struct; typedef __mpz_struct mpz_t[1]; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); /*@ ensures \valid(\old(z)); assigns *z; assigns *z \from n; */ extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); /*@ requires \valid(x); assigns *x; */ extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); @@ -18,6 +47,62 @@ extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); assigns \nothing; */ extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 a0097215fbde379705b61e88ee4a682369de8368..5c32aeb27d16cb611d0e271bac1d5fd6c961a05e 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,4 +1,107 @@ /* 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; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ requires \valid(x); + assigns *x; */ +extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z1); + requires \valid(z2); + assigns \nothing; */ +extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 index a8187ddaab8a4189b3de78436fc7340943423d34..b95fc7452179d3e5c633254ab35dacdad8ee7ba5 100644 --- 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 @@ -14,10 +14,31 @@ extern void __gmpz_init(__mpz_struct * /*[1]*/ x); assigns *z; */ extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); /*@ ensures \valid(\old(z)); assigns *z; assigns *z \from n; */ extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); /*@ requires \valid(x); assigns *x; */ extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); @@ -26,6 +47,35 @@ extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); assigns \nothing; */ extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); /*@ requires \valid(z1); requires \valid(z2); requires \valid(z3); @@ -34,6 +84,25 @@ extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2, __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 6c0a686341d62588646e2e285ea268fde613a943..1244d3b3c4cec8860e6821ea43126c95eef003c6 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,4 +1,107 @@ /* 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; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ requires \valid(x); + assigns *x; */ +extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z1); + requires \valid(z2); + assigns \nothing; */ +extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 index 00191ad4af0952fa78ce35b75c6af859296a2685..9d65a683fa5054b24f0f2b099353a2a8a6879f9c 100644 --- 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 @@ -9,15 +9,36 @@ typedef __mpz_struct mpz_t[1]; /*@ ensures \valid(\old(x)); assigns *x; */ extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); /*@ ensures \valid(\old(z)); assigns *z; assigns *z \from n; */ extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); /*@ requires \valid(z_orig); requires \valid(z); assigns *z; */ extern void __gmpz_set(__mpz_struct * /*[1]*/ z, __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); /*@ requires \valid(x); assigns *x; */ extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); @@ -26,6 +47,11 @@ extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); assigns \nothing; */ extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); /*@ requires \valid(z1); requires \valid(z2); requires \valid(z3); @@ -34,6 +60,46 @@ extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2, __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); /*@ requires \valid(z); assigns \nothing; */ extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); 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 bc68c1e9cb5de46a76f5b61ea74eb79c4e7850d1..24033162a7566cf584bedb73bf66e96e0ab79303 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,4 +1,107 @@ /* 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; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ requires \valid(x); + assigns *x; */ +extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z1); + requires \valid(z2); + assigns \nothing; */ +extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 index b6bfac7f56fe092fefb328a96db247183317f965..f89c038e6ebecc21ce75d8658911675e6536add3 100644 --- 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 @@ -6,10 +6,39 @@ struct __anonstruct___mpz_struct_1 { }; typedef struct __anonstruct___mpz_struct_1 __mpz_struct; typedef __mpz_struct mpz_t[1]; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); /*@ ensures \valid(\old(z)); assigns *z; assigns *z \from n; */ extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); /*@ requires \valid(x); assigns *x; */ extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); @@ -18,6 +47,62 @@ extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); assigns \nothing; */ extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 index 3d0bd39a388494496abcf795cfd6d5984174324a..1811eee6ea3f2651b7b20ad6ed523d16073be9d9 100644 --- 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 @@ -1,4 +1,107 @@ /* 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; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ requires \valid(x); + assigns *x; */ +extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z1); + requires \valid(z2); + assigns \nothing; */ +extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 index b5619eb2e9e9174f79ff5fa56bf23d26183091bc..6823615dfbd28ec9b82cecb25bcf6ef0fc74081d 100644 --- 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 @@ -6,10 +6,39 @@ struct __anonstruct___mpz_struct_1 { }; typedef struct __anonstruct___mpz_struct_1 __mpz_struct; typedef __mpz_struct mpz_t[1]; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); /*@ ensures \valid(\old(z)); assigns *z; assigns *z \from n; */ extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); /*@ requires \valid(x); assigns *x; */ extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); @@ -18,6 +47,62 @@ extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); assigns \nothing; */ extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 490d636953664638a5b5ecfa6b52d47a7124c706..fa38fe3696dac14c445945acd0025f3e133d40c9 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,4 +1,107 @@ /* 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; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ requires \valid(x); + assigns *x; */ +extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z1); + requires \valid(z2); + assigns \nothing; */ +extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 index 490d636953664638a5b5ecfa6b52d47a7124c706..fa38fe3696dac14c445945acd0025f3e133d40c9 100644 --- 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 @@ -1,4 +1,107 @@ /* 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; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ requires \valid(x); + assigns *x; */ +extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z1); + requires \valid(z2); + assigns \nothing; */ +extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 0f54974d2ae1be31beebdd3e1496ad90c02654f9..a0a6d367f998ab911ad66cbe94c32036c0d6bb62 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,8 +1,111 @@ /* 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; enum bool { false = 0, true = 1 }; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ requires \valid(x); + assigns *x; */ +extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z1); + requires \valid(z2); + assigns \nothing; */ +extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 index a8d921fdfcf0ca6379ec646a47b32e2855e65af4..3edbeb50aa1b93826de73c6bd0ddc06d6c896e5d 100644 --- 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 @@ -10,10 +10,39 @@ enum bool { false = 0, true = 1 }; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); /*@ ensures \valid(\old(z)); assigns *z; assigns *z \from n; */ extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); /*@ requires \valid(x); assigns *x; */ extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); @@ -22,6 +51,62 @@ extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); assigns \nothing; */ extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 d6f919c40a23c6d97762296798958a4e8a53e96d..21d918c42af3ca3b07677be9e349105805c52db6 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,4 +1,107 @@ /* 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; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ requires \valid(x); + assigns *x; */ +extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z1); + requires \valid(z2); + assigns \nothing; */ +extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 index 323797a2dbfa1e476e54944114eb20b5f57447f7..7f93020babbba6ed8a4e3394a548413cd710de28 100644 --- 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 @@ -9,10 +9,36 @@ typedef __mpz_struct mpz_t[1]; /*@ ensures \valid(\old(x)); assigns *x; */ extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); /*@ ensures \valid(\old(z)); assigns *z; assigns *z \from n; */ extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); /*@ requires \valid(x); assigns *x; */ extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); @@ -21,6 +47,11 @@ extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); assigns \nothing; */ extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); /*@ requires \valid(z1); requires \valid(z2); requires \valid(z3); @@ -53,6 +84,22 @@ extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2, __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); /*@ requires \valid(z); assigns \nothing; */ extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_quantif.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_quantif.c index 36fdd810dff083d81e8c9f8127f9f7945d7d8d47..5929b6d4a3f2909b4469b7ab11c8fc9a95d2961f 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_quantif.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_quantif.c @@ -1,4 +1,107 @@ /* 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; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ requires \valid(x); + assigns *x; */ +extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z1); + requires \valid(z2); + assigns \nothing; */ +extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_quantif2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_quantif2.c index d03eb4a343007e589a1905a5996647d09da590bc..5f77a0771d0af466f69e9609feff169cc8c4e220 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_quantif2.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_quantif2.c @@ -9,15 +9,36 @@ typedef __mpz_struct mpz_t[1]; /*@ ensures \valid(\old(x)); assigns *x; */ extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); /*@ ensures \valid(\old(z)); assigns *z; assigns *z \from n; */ extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); /*@ requires \valid(z_orig); requires \valid(z); assigns *z; */ extern void __gmpz_set(__mpz_struct * /*[1]*/ z, __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); /*@ requires \valid(x); assigns *x; */ extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); @@ -26,6 +47,11 @@ extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); assigns \nothing; */ extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); /*@ requires \valid(z1); requires \valid(z2); requires \valid(z3); @@ -39,6 +65,14 @@ extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, requires \valid(z3); assigns *z1; */ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2, __mpz_struct const * /*[1]*/ z3); @@ -58,6 +92,17 @@ extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2, __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 b90ab9275f7aecbd9caad649ba81d9eced616b9b..d14ec1e98d286b75ca0f6751f732fc1bbed736de 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,4 +1,107 @@ /* 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; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ requires \valid(x); + assigns *x; */ +extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z1); + requires \valid(z2); + assigns \nothing; */ +extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 index 03b6e2c8387dbadf8d6832013719d4b8dcc69f28..f320bab0f979cdcae9cc3775f77e42f92a98cf26 100644 --- 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 @@ -9,10 +9,36 @@ typedef __mpz_struct mpz_t[1]; /*@ ensures \valid(\old(x)); assigns *x; */ extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); /*@ ensures \valid(\old(z)); assigns *z; assigns *z \from n; */ extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); /*@ requires \valid(x); assigns *x; */ extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); @@ -21,6 +47,19 @@ extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); assigns \nothing; */ extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); /*@ requires \valid(z1); requires \valid(z2); requires \valid(z3); @@ -29,6 +68,38 @@ extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2, __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); /*@ requires \valid(z); assigns \nothing; */ extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); 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 859f8feea2c5624419188fd26c25d4af9c1299aa..e98523ada8e71be0f60935999814f90660f16f3f 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,4 +1,107 @@ /* 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; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ requires \valid(x); + assigns *x; */ +extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z1); + requires \valid(z2); + assigns \nothing; */ +extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 index f3946fef30245a65f984dbf55236460575c72e4c..ab47374b1cdc2af4fe4664310d52957fb75660b1 100644 --- 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 @@ -6,10 +6,39 @@ struct __anonstruct___mpz_struct_1 { }; typedef struct __anonstruct___mpz_struct_1 __mpz_struct; typedef __mpz_struct mpz_t[1]; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); /*@ ensures \valid(\old(z)); assigns *z; assigns *z \from n; */ extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); /*@ requires \valid(x); assigns *x; */ extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); @@ -18,6 +47,62 @@ extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); assigns \nothing; */ extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 de89196695b3b881595a9767e2e7298018120790..8914e200a4612449cd13d94a27baced2fb7eae8e 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,4 +1,107 @@ /* 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; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ requires \valid(x); + assigns *x; */ +extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z1); + requires \valid(z2); + assigns \nothing; */ +extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 index b00fbe8752b13eb355a185c16da15f3366d549b5..04395c4b086264d8f31008b361ad46affce69ef6 100644 --- 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 @@ -9,10 +9,36 @@ typedef __mpz_struct mpz_t[1]; /*@ ensures \valid(\old(x)); assigns *x; */ extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); /*@ ensures \valid(\old(z)); assigns *z; assigns *z \from n; */ extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); /*@ requires \valid(x); assigns *x; */ extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); @@ -21,6 +47,11 @@ extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); assigns \nothing; */ extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); /*@ requires \valid(z1); requires \valid(z2); requires \valid(z3); @@ -29,6 +60,49 @@ extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2, __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 7f65200db0b76ac11a9bf16e17c8cd6f5b2a9bcb..f331974893717c67d8d9631a76ec694a0aa07976 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,4 +1,107 @@ /* 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; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ requires \valid(x); + assigns *x; */ +extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z1); + requires \valid(z2); + assigns \nothing; */ +extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 index 7f65200db0b76ac11a9bf16e17c8cd6f5b2a9bcb..f331974893717c67d8d9631a76ec694a0aa07976 100644 --- 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 @@ -1,4 +1,107 @@ /* 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; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ requires \valid(x); + assigns *x; */ +extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z1); + requires \valid(z2); + assigns \nothing; */ +extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 415096f8544665e401ccb8ccf4c1bb39253c3987..c5f507b0e1d2b91080e07a96158b388f270fe6aa 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,5 +1,108 @@ /* 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 unsigned char uint8; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ requires \valid(x); + assigns *x; */ +extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z1); + requires \valid(z2); + assigns \nothing; */ +extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 index 4d3a6da84de1a443c694ecda63f771f36cafea19..7d2ad8916ee0142842bd898f63dbe3d3bf7ccc38 100644 --- 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 @@ -7,6 +7,14 @@ struct __anonstruct___mpz_struct_1 { typedef struct __anonstruct___mpz_struct_1 __mpz_struct; typedef __mpz_struct mpz_t[1]; typedef unsigned char uint8; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); /*@ ensures \valid(\old(z)); assigns *z; assigns *z \from n; */ @@ -15,6 +23,23 @@ extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); assigns *z; assigns *z \from n; */ extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); /*@ requires \valid(x); assigns *x; */ extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); @@ -23,6 +48,62 @@ extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); assigns \nothing; */ extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/integer_constant.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/integer_constant.1.res.oracle index b24f0f21fc0c27227ec3f43e62b57fac5c3cbfa3..8d9f88f762817b1eae42f3a710b18960b2be6ece 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/integer_constant.1.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/integer_constant.1.res.oracle @@ -5,10 +5,12 @@ PROJECT_FILE.i:234:[value] Assertion got status valid. [value] computing for function __gmpz_init_set_si <- main. Called from PROJECT_FILE.i:238. +[value] using specification for function __gmpz_init_set_si PROJECT_FILE.i:82:[value] Function __gmpz_init_set_si: postcondition got status valid. [value] Done for function __gmpz_init_set_si [value] computing for function __gmpz_cmp <- main. Called from PROJECT_FILE.i:239. +[value] using specification for function __gmpz_cmp PROJECT_FILE.i:119:[value] Function __gmpz_cmp: precondition got status valid. PROJECT_FILE.i:120:[value] Function __gmpz_cmp: precondition got status valid. [value] Done for function __gmpz_cmp @@ -19,6 +21,7 @@ PROJECT_FILE.i:221:[value] Function e_acsl_assert: precondition got status unkno [value] Done for function e_acsl_assert [value] computing for function __gmpz_clear <- main. Called from PROJECT_FILE.i:241. +[value] using specification for function __gmpz_clear PROJECT_FILE.i:111:[value] Function __gmpz_clear: precondition got status valid. [value] Done for function __gmpz_clear PROJECT_FILE.i:246:[value] Assertion got status valid. @@ -44,6 +47,7 @@ PROJECT_FILE.i:246:[value] Assertion got status valid. PROJECT_FILE.i:260:[value] Assertion got status valid. [value] computing for function __gmpz_init_set_str <- main. Called from PROJECT_FILE.i:264. +[value] using specification for function __gmpz_init_set_str PROJECT_FILE.i:86:[value] Function __gmpz_init_set_str: postcondition got status valid. [value] Done for function __gmpz_init_set_str [value] computing for function __gmpz_cmp <- main. @@ -71,22 +75,110 @@ struct __anonstruct___mpz_struct_1 { }; typedef struct __anonstruct___mpz_struct_1 __mpz_struct; typedef __mpz_struct mpz_t[1]; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); /*@ ensures \valid(\old(z)); assigns *z; assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + allocates \nothing; + assigns *z; + assigns *z \from n; +*/ extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); /*@ ensures \valid(\old(z)); + allocates \nothing; assigns *z; */ extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); /*@ requires \valid(x); + allocates \nothing; assigns *x; */ extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); /*@ requires \valid(z1); requires \valid(z2); - assigns \nothing; */ + allocates \nothing; + assigns \nothing; + +*/ extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/integer_constant.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/integer_constant.res.oracle index a9e4db13f8de8a7f7e7c6abb04173d35bf161a72..6b5660d54810c5bf0e0b93c092a85f6a4aeb736e 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/integer_constant.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/integer_constant.res.oracle @@ -26,6 +26,109 @@ PROJECT_FILE.i:241:[value] Assertion got status valid. __retres ∈ {0} x ∈ {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; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ requires \valid(x); + assigns *x; */ +extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z1); + requires \valid(z2); + assigns \nothing; */ +extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 index 5d6c7570081ae43758bb5aa21842c75353aa28a8..13d6eaa560323ae7e42d745c961f990d05346388 100644 --- 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 @@ -5,6 +5,7 @@ PROJECT_FILE.i:238:[value] entering loop for the first time [value] computing for function __gmpz_init_set_si <- main. Called from PROJECT_FILE.i:247. +[value] using specification for function __gmpz_init_set_si PROJECT_FILE.i:82:[value] Function __gmpz_init_set_si: postcondition got status valid. [value] Done for function __gmpz_init_set_si [value] computing for function __gmpz_init_set_si <- main. @@ -12,6 +13,7 @@ PROJECT_FILE.i:82:[value] Function __gmpz_init_set_si: postcondition got status [value] Done for function __gmpz_init_set_si [value] computing for function __gmpz_cmp <- main. Called from PROJECT_FILE.i:249. +[value] using specification for function __gmpz_cmp PROJECT_FILE.i:119:[value] Function __gmpz_cmp: precondition got status valid. PROJECT_FILE.i:120:[value] Function __gmpz_cmp: precondition got status valid. [value] Done for function __gmpz_cmp @@ -32,6 +34,7 @@ PROJECT_FILE.i:221:[value] Function e_acsl_assert: precondition got status inval PROJECT_FILE.i:257:[value] assigning non deterministic value for the first time [value] computing for function __gmpz_clear <- main. Called from PROJECT_FILE.i:258. +[value] using specification for function __gmpz_clear PROJECT_FILE.i:111:[value] Function __gmpz_clear: precondition got status valid. [value] Done for function __gmpz_clear [value] computing for function __gmpz_clear <- main. @@ -878,18 +881,109 @@ struct __anonstruct___mpz_struct_1 { }; typedef struct __anonstruct___mpz_struct_1 __mpz_struct; typedef __mpz_struct mpz_t[1]; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); /*@ ensures \valid(\old(z)); assigns *z; assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + allocates \nothing; + assigns *z; + assigns *z \from n; +*/ extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); /*@ requires \valid(x); + allocates \nothing; assigns *x; */ extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); /*@ requires \valid(z1); requires \valid(z2); - assigns \nothing; */ + allocates \nothing; + assigns \nothing; + +*/ extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 index dca00b248c813643a43de7097b2826c1fd5a9eb5..43471fb766e061672987a05819cd3d50ec6b86cc 100644 --- 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 @@ -143,6 +143,109 @@ PROJECT_FILE.i:249:[value] warning: 2's complement assumed for overflow __retres ∈ {0} x ∈ [--..--] /* 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; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ requires \valid(x); + assigns *x; */ +extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z1); + requires \valid(z2); + assigns \nothing; */ +extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 index ef7809ecd8936da083e2c7d4478acc6605a74370..b2c81c570229684518e6cd8a69e88bd5328c498b 100644 --- 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 @@ -6,6 +6,7 @@ PROJECT_FILE.i:237:[value] Assertion got status valid. [value] computing for function __gmpz_init_set_si <- main. Called from PROJECT_FILE.i:242. +[value] using specification for function __gmpz_init_set_si PROJECT_FILE.i:82:[value] Function __gmpz_init_set_si: postcondition got status valid. [value] Done for function __gmpz_init_set_si [value] computing for function __gmpz_init_set_si <- main. @@ -13,6 +14,7 @@ PROJECT_FILE.i:82:[value] Function __gmpz_init_set_si: postcondition got status [value] Done for function __gmpz_init_set_si [value] computing for function __gmpz_cmp <- main. Called from PROJECT_FILE.i:244. +[value] using specification for function __gmpz_cmp PROJECT_FILE.i:119:[value] Function __gmpz_cmp: precondition got status valid. PROJECT_FILE.i:120:[value] Function __gmpz_cmp: precondition got status valid. [value] Done for function __gmpz_cmp @@ -23,6 +25,7 @@ PROJECT_FILE.i:221:[value] Function e_acsl_assert: precondition got status unkno [value] Done for function e_acsl_assert [value] computing for function __gmpz_clear <- main. Called from PROJECT_FILE.i:246. +[value] using specification for function __gmpz_clear PROJECT_FILE.i:111:[value] Function __gmpz_clear: precondition got status valid. [value] Done for function __gmpz_clear [value] computing for function __gmpz_clear <- main. @@ -101,18 +104,109 @@ struct __anonstruct___mpz_struct_1 { }; typedef struct __anonstruct___mpz_struct_1 __mpz_struct; typedef __mpz_struct mpz_t[1]; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); /*@ ensures \valid(\old(z)); assigns *z; assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + allocates \nothing; + assigns *z; + assigns *z \from n; +*/ extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); /*@ requires \valid(x); + allocates \nothing; assigns *x; */ extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); /*@ requires \valid(z1); requires \valid(z2); - assigns \nothing; */ + allocates \nothing; + assigns \nothing; + +*/ extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 index 2b20402fe6d4972e3ae65f852ab1350eeed6061d..4f0037070f36d394e1fbe0a1b3d80e2aac44dc29 100644 --- 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 @@ -30,6 +30,109 @@ PROJECT_FILE.i:231:[value] Function main: postcondition got status valid. X ∈ {3} __retres ∈ {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; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ requires \valid(x); + assigns *x; */ +extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z1); + requires \valid(z2); + assigns \nothing; */ +extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 index 894c29aa4d08fc9698c0d366de74193398dec799..c8cee4189f95e5851889f2b2397948e9b33516bc 100644 --- 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 @@ -5,6 +5,7 @@ PROJECT_FILE.i:237:[value] Assertion got status valid. [value] computing for function __gmpz_init_set_si <- main. Called from PROJECT_FILE.i:243. +[value] using specification for function __gmpz_init_set_si PROJECT_FILE.i:82:[value] Function __gmpz_init_set_si: postcondition got status valid. [value] Done for function __gmpz_init_set_si [value] computing for function __gmpz_init_set_si <- main. @@ -12,6 +13,7 @@ PROJECT_FILE.i:82:[value] Function __gmpz_init_set_si: postcondition got status [value] Done for function __gmpz_init_set_si [value] computing for function __gmpz_cmp <- main. Called from PROJECT_FILE.i:245. +[value] using specification for function __gmpz_cmp PROJECT_FILE.i:119:[value] Function __gmpz_cmp: precondition got status valid. PROJECT_FILE.i:120:[value] Function __gmpz_cmp: precondition got status valid. [value] Done for function __gmpz_cmp @@ -27,6 +29,7 @@ PROJECT_FILE.i:120:[value] Function __gmpz_cmp: precondition got status valid. PROJECT_FILE.i:253:[value] assigning non deterministic value for the first time [value] computing for function __gmpz_clear <- main. Called from PROJECT_FILE.i:254. +[value] using specification for function __gmpz_clear PROJECT_FILE.i:111:[value] Function __gmpz_clear: precondition got status valid. [value] Done for function __gmpz_clear [value] computing for function __gmpz_clear <- main. @@ -67,6 +70,7 @@ PROJECT_FILE.i:264:[value] Assertion got status valid. [value] Done for function __gmpz_cmp [value] computing for function __gmpz_init <- main. Called from PROJECT_FILE.i:284. +[value] using specification for function __gmpz_init PROJECT_FILE.i:69:[value] Function __gmpz_init: postcondition got status valid. [value] Done for function __gmpz_init PROJECT_FILE.i:285:[value] Assertion got status invalid (stopping propagation). @@ -521,6 +525,7 @@ PROJECT_FILE.i:649:[value] Assertion got status valid. [value] Done for function __gmpz_init_set_si [value] computing for function __gmpz_init_set <- main. Called from PROJECT_FILE.i:666. +[value] using specification for function __gmpz_init_set PROJECT_FILE.i:73:[value] Function __gmpz_init_set: precondition got status valid. PROJECT_FILE.i:74:[value] Function __gmpz_init_set: postcondition got status valid. [value] Done for function __gmpz_init_set @@ -814,25 +819,85 @@ struct __anonstruct___mpz_struct_1 { typedef struct __anonstruct___mpz_struct_1 __mpz_struct; typedef __mpz_struct mpz_t[1]; /*@ ensures \valid(\old(x)); + allocates \nothing; assigns *x; */ extern void __gmpz_init(__mpz_struct * /*[1]*/ x); /*@ requires \valid(z_orig); ensures \valid(\old(z)); - assigns *z; */ + allocates \nothing; + assigns *z; + +*/ extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, __mpz_struct const * /*[1]*/ z_orig); /*@ ensures \valid(\old(z)); assigns *z; assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + allocates \nothing; + assigns *z; + assigns *z \from n; +*/ extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); /*@ requires \valid(x); + allocates \nothing; assigns *x; */ extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); /*@ requires \valid(z1); requires \valid(z2); - assigns \nothing; */ + allocates \nothing; + assigns \nothing; + +*/ extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); /*@ requires \valid(z1); requires \valid(z2); requires \valid(z3); @@ -841,6 +906,25 @@ extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2, __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 index bf61e8feb34c21f7b2da8edab965cda76e42549c..b3f0f2a984a6b0ba43195de944c51b86efa2112e 100644 --- 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 @@ -92,6 +92,109 @@ PROJECT_FILE.i:407:[value] Assertion got status valid. x ∈ {0} y ∈ {1} /* 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; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ requires \valid(x); + assigns *x; */ +extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z1); + requires \valid(z2); + assigns \nothing; */ +extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 index 7a60caee427cd463d4fa2b125e326041aab88ec7..d76477191ebfbaf3da6cba9371488cbd95dc89ac 100644 --- 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 @@ -17,19 +17,23 @@ PROJECT_FILE.i:491:[value] assigning non deterministic value for the first time PROJECT_FILE.i:231:[value] Function search: precondition got status unknown. [value] computing for function __gmpz_init <- search <- main. Called from PROJECT_FILE.i:252. +[value] using specification for function __gmpz_init PROJECT_FILE.i:69:[value] Function __gmpz_init: postcondition got status valid. [value] Done for function __gmpz_init [value] computing for function __gmpz_init_set_si <- search <- main. Called from PROJECT_FILE.i:255. +[value] using specification for function __gmpz_init_set_si PROJECT_FILE.i:82:[value] Function __gmpz_init_set_si: postcondition got status valid. [value] Done for function __gmpz_init_set_si [value] computing for function __gmpz_set <- search <- main. Called from PROJECT_FILE.i:256. +[value] using specification for function __gmpz_set PROJECT_FILE.i:94:[value] Function __gmpz_set: precondition got status valid. PROJECT_FILE.i:95:[value] Function __gmpz_set: precondition got status valid. [value] Done for function __gmpz_set [value] computing for function __gmpz_clear <- search <- main. Called from PROJECT_FILE.i:257. +[value] using specification for function __gmpz_clear PROJECT_FILE.i:111:[value] Function __gmpz_clear: precondition got status valid. [value] Done for function __gmpz_clear PROJECT_FILE.i:260:[value] entering loop for the first time @@ -38,6 +42,7 @@ PROJECT_FILE.i:260:[value] entering loop for the first time [value] Done for function __gmpz_init_set_si [value] computing for function __gmpz_cmp <- search <- main. Called from PROJECT_FILE.i:265. +[value] using specification for function __gmpz_cmp PROJECT_FILE.i:119:[value] Function __gmpz_cmp: precondition got status valid. PROJECT_FILE.i:120:[value] Function __gmpz_cmp: precondition got status valid. [value] Done for function __gmpz_cmp @@ -46,6 +51,7 @@ PROJECT_FILE.i:120:[value] Function __gmpz_cmp: precondition got status valid. [value] Done for function __gmpz_clear [value] computing for function __gmpz_get_ui <- search <- main. Called from PROJECT_FILE.i:278. +[value] using specification for function __gmpz_get_ui PROJECT_FILE.i:180:[value] Function __gmpz_get_ui: precondition got status valid. [value] Done for function __gmpz_get_ui PROJECT_FILE.i:279:[kernel] warning: accessing out of bounds index [0..4294967295]. assert __e_acsl_i_2 < 10; @@ -60,6 +66,7 @@ PROJECT_FILE.i:279:[kernel] warning: accessing out of bounds index [0..429496729 [value] Done for function __gmpz_init [value] computing for function __gmpz_add <- search <- main. Called from PROJECT_FILE.i:282. +[value] using specification for function __gmpz_add PROJECT_FILE.i:133:[value] Function __gmpz_add: precondition got status valid. PROJECT_FILE.i:134:[value] Function __gmpz_add: precondition got status valid. PROJECT_FILE.i:135:[value] Function __gmpz_add: precondition got status valid. @@ -591,34 +598,112 @@ struct __anonstruct___mpz_struct_1 { typedef struct __anonstruct___mpz_struct_1 __mpz_struct; typedef __mpz_struct mpz_t[1]; /*@ ensures \valid(\old(x)); + allocates \nothing; assigns *x; */ extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); /*@ ensures \valid(\old(z)); assigns *z; assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + allocates \nothing; + assigns *z; + assigns *z \from n; +*/ extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); /*@ requires \valid(z_orig); requires \valid(z); - assigns *z; */ + allocates \nothing; + assigns *z; +*/ extern void __gmpz_set(__mpz_struct * /*[1]*/ z, __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); /*@ requires \valid(x); + allocates \nothing; assigns *x; */ extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); /*@ requires \valid(z1); requires \valid(z2); - assigns \nothing; */ + allocates \nothing; + assigns \nothing; + +*/ extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); /*@ requires \valid(z1); requires \valid(z2); requires \valid(z3); - assigns *z1; + allocates \nothing; + assigns *z1; + */ extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2, __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); /*@ requires \valid(z); + allocates \nothing; assigns \nothing; */ extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; 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 index a73abc132a0ad5de2cd000073021b8049cb563d9..bf9aecd3cd3adba5c5660032de5d8dbdb031a983 100644 --- 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 @@ -76,6 +76,109 @@ PROJECT_FILE.i:353:[value] Assertion got status unknown. __retres ∈ {0} found ∈ {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; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ requires \valid(x); + assigns *x; */ +extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z1); + requires \valid(z2); + assigns \nothing; */ +extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 index a6cd77100c766b534b72bdfd4937fea71319a2bc..2772653ca1ded35812f52f62dcc70aed7ceb1e37 100644 --- 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 @@ -5,6 +5,7 @@ PROJECT_FILE.i:237:[value] Assertion got status valid. [value] computing for function __gmpz_init_set_si <- main. Called from PROJECT_FILE.i:242. +[value] using specification for function __gmpz_init_set_si PROJECT_FILE.i:82:[value] Function __gmpz_init_set_si: postcondition got status valid. [value] Done for function __gmpz_init_set_si [value] computing for function __gmpz_init_set_si <- main. @@ -12,6 +13,7 @@ PROJECT_FILE.i:82:[value] Function __gmpz_init_set_si: postcondition got status [value] Done for function __gmpz_init_set_si [value] computing for function __gmpz_cmp <- main. Called from PROJECT_FILE.i:244. +[value] using specification for function __gmpz_cmp PROJECT_FILE.i:119:[value] Function __gmpz_cmp: precondition got status valid. PROJECT_FILE.i:120:[value] Function __gmpz_cmp: precondition got status valid. [value] Done for function __gmpz_cmp @@ -22,6 +24,7 @@ PROJECT_FILE.i:221:[value] Function e_acsl_assert: precondition got status unkno [value] Done for function e_acsl_assert [value] computing for function __gmpz_clear <- main. Called from PROJECT_FILE.i:246. +[value] using specification for function __gmpz_clear PROJECT_FILE.i:111:[value] Function __gmpz_clear: precondition got status valid. [value] Done for function __gmpz_clear [value] computing for function __gmpz_clear <- main. @@ -157,18 +160,109 @@ struct __anonstruct___mpz_struct_1 { }; typedef struct __anonstruct___mpz_struct_1 __mpz_struct; typedef __mpz_struct mpz_t[1]; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); /*@ ensures \valid(\old(z)); assigns *z; assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + allocates \nothing; + assigns *z; + assigns *z \from n; +*/ extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); /*@ requires \valid(x); + allocates \nothing; assigns *x; */ extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); /*@ requires \valid(z1); requires \valid(z2); - assigns \nothing; */ + allocates \nothing; + assigns \nothing; + +*/ extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 index 445fa9ec137ec466d0a1e3a402c320e68fbb75b1..9224a7f034c0ffc56887848c94b992c7439554fa 100644 --- 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 @@ -41,6 +41,109 @@ PROJECT_FILE.i:221:[value] Function e_acsl_assert: precondition got status valid x ∈ {2} y ∈ {1} /* 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; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ requires \valid(x); + assigns *x; */ +extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z1); + requires \valid(z2); + assigns \nothing; */ +extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/not.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/not.1.res.oracle index 2caebeda7ab43fac94c5bdc3a2aee4757dc229ff..bf61d223e3bb0c3836a75eb0f075f8f5db45d935 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/not.1.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/not.1.res.oracle @@ -5,6 +5,7 @@ PROJECT_FILE.i:235:[value] Assertion got status valid. [value] computing for function __gmpz_init_set_si <- main. Called from PROJECT_FILE.i:240. +[value] using specification for function __gmpz_init_set_si PROJECT_FILE.i:82:[value] Function __gmpz_init_set_si: postcondition got status valid. [value] Done for function __gmpz_init_set_si [value] computing for function __gmpz_init_set_si <- main. @@ -12,6 +13,7 @@ PROJECT_FILE.i:82:[value] Function __gmpz_init_set_si: postcondition got status [value] Done for function __gmpz_init_set_si [value] computing for function __gmpz_cmp <- main. Called from PROJECT_FILE.i:242. +[value] using specification for function __gmpz_cmp PROJECT_FILE.i:119:[value] Function __gmpz_cmp: precondition got status valid. PROJECT_FILE.i:120:[value] Function __gmpz_cmp: precondition got status valid. [value] Done for function __gmpz_cmp @@ -22,6 +24,7 @@ PROJECT_FILE.i:221:[value] Function e_acsl_assert: precondition got status unkno [value] Done for function e_acsl_assert [value] computing for function __gmpz_clear <- main. Called from PROJECT_FILE.i:244. +[value] using specification for function __gmpz_clear PROJECT_FILE.i:111:[value] Function __gmpz_clear: precondition got status valid. [value] Done for function __gmpz_clear [value] computing for function __gmpz_clear <- main. @@ -42,18 +45,109 @@ struct __anonstruct___mpz_struct_1 { }; typedef struct __anonstruct___mpz_struct_1 __mpz_struct; typedef __mpz_struct mpz_t[1]; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); /*@ ensures \valid(\old(z)); assigns *z; assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + allocates \nothing; + assigns *z; + assigns *z \from n; +*/ extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); /*@ requires \valid(x); + allocates \nothing; assigns *x; */ extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); /*@ requires \valid(z1); requires \valid(z2); - assigns \nothing; */ + allocates \nothing; + assigns \nothing; + +*/ extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/not.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/not.res.oracle index 4a97d4b6fbfe38040eb61ce23aa8fc14dbfea9e4..4c3ac9bc97968ebd1adc20e0872fd0ed9f23ba98 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/not.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/not.res.oracle @@ -16,6 +16,109 @@ PROJECT_FILE.i:221:[value] Function e_acsl_assert: precondition got status valid __retres ∈ {0} x ∈ {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; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ requires \valid(x); + assigns *x; */ +extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z1); + requires \valid(z2); + assigns \nothing; */ +extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 index aec6c5c837d3d4741dd0b331f64611b924fcb0b0..ab6c33e94b536cc1218655382dcdf359fccfeebb 100644 --- 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 @@ -15,6 +15,109 @@ PROJECT_FILE.i:221:[value] Function e_acsl_assert: precondition got status valid [value] Values at end of function main: __retres ∈ {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; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ requires \valid(x); + assigns *x; */ +extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z1); + requires \valid(z2); + assigns \nothing; */ +extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 index aec6c5c837d3d4741dd0b331f64611b924fcb0b0..ab6c33e94b536cc1218655382dcdf359fccfeebb 100644 --- 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 @@ -15,6 +15,109 @@ PROJECT_FILE.i:221:[value] Function e_acsl_assert: precondition got status valid [value] Values at end of function main: __retres ∈ {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; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ requires \valid(x); + assigns *x; */ +extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z1); + requires \valid(z2); + assigns \nothing; */ +extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 index 8db164854d363f9090077b466b3f55fcc790d6b2..1deb1f69c3cf3b2a30451be0a15f58caa7d6d54a 100644 --- 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 @@ -11,10 +11,12 @@ PROJECT_FILE.i:221:[value] Function e_acsl_assert: precondition got status valid PROJECT_FILE.i:240:[value] Assertion got status valid. [value] computing for function __gmpz_init_set_si <- main. Called from PROJECT_FILE.i:244. +[value] using specification for function __gmpz_init_set_si PROJECT_FILE.i:82:[value] Function __gmpz_init_set_si: postcondition got status valid. [value] Done for function __gmpz_init_set_si [value] computing for function __gmpz_cmp <- main. Called from PROJECT_FILE.i:245. +[value] using specification for function __gmpz_cmp PROJECT_FILE.i:119:[value] Function __gmpz_cmp: precondition got status valid. PROJECT_FILE.i:120:[value] Function __gmpz_cmp: precondition got status valid. [value] Done for function __gmpz_cmp @@ -25,6 +27,7 @@ PROJECT_FILE.i:221:[value] Function e_acsl_assert: precondition got status unkno [value] Done for function e_acsl_assert [value] computing for function __gmpz_clear <- main. Called from PROJECT_FILE.i:247. +[value] using specification for function __gmpz_clear PROJECT_FILE.i:111:[value] Function __gmpz_clear: precondition got status valid. [value] Done for function __gmpz_clear PROJECT_FILE.i:251:[value] Assertion got status valid. @@ -65,18 +68,109 @@ enum bool { false = 0, true = 1 }; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); /*@ ensures \valid(\old(z)); assigns *z; assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + allocates \nothing; + assigns *z; + assigns *z \from n; +*/ extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); /*@ requires \valid(x); + allocates \nothing; assigns *x; */ extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); /*@ requires \valid(z1); requires \valid(z2); - assigns \nothing; */ + allocates \nothing; + assigns \nothing; + +*/ extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 index 7c9a6c3c1cdf95030c51738a880af97eab6ab109..9f3ef2a8c533ce12f3f122c3662efedc4543fa50 100644 --- 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 @@ -25,10 +25,113 @@ PROJECT_FILE.i:243:[value] Assertion got status valid. [value] Values at end of function main: __retres ∈ {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; enum bool { false = 0, true = 1 }; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ requires \valid(x); + assigns *x; */ +extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z1); + requires \valid(z2); + assigns \nothing; */ +extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 index 1fefc463b8b9cbbc89dec198901862fa8bafb71d..17573c0bd0746d8b38b55d5e8d74d2a007eb10d6 100644 --- 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 @@ -18,6 +18,7 @@ tests/e-acsl-runtime/ptr.i:27:[e-acsl] warning: missing guard for ensuring that PROJECT_FILE.i:241:[value] Assertion got status valid. [value] computing for function __gmpz_init_set_si <- main. Called from PROJECT_FILE.i:246. +[value] using specification for function __gmpz_init_set_si PROJECT_FILE.i:82:[value] Function __gmpz_init_set_si: postcondition got status valid. [value] Done for function __gmpz_init_set_si [value] computing for function __gmpz_init_set_si <- main. @@ -25,6 +26,7 @@ PROJECT_FILE.i:82:[value] Function __gmpz_init_set_si: postcondition got status [value] Done for function __gmpz_init_set_si [value] computing for function __gmpz_cmp <- main. Called from PROJECT_FILE.i:248. +[value] using specification for function __gmpz_cmp PROJECT_FILE.i:119:[value] Function __gmpz_cmp: precondition got status valid. PROJECT_FILE.i:120:[value] Function __gmpz_cmp: precondition got status valid. [value] Done for function __gmpz_cmp @@ -35,6 +37,7 @@ PROJECT_FILE.i:221:[value] Function e_acsl_assert: precondition got status unkno [value] Done for function e_acsl_assert [value] computing for function __gmpz_clear <- main. Called from PROJECT_FILE.i:250. +[value] using specification for function __gmpz_clear PROJECT_FILE.i:111:[value] Function __gmpz_clear: precondition got status valid. [value] Done for function __gmpz_clear [value] computing for function __gmpz_clear <- main. @@ -89,10 +92,12 @@ PROJECT_FILE.i:283:[value] Assertion got status valid. [value] Done for function __gmpz_init_set_si [value] computing for function __gmpz_init <- main. Called from PROJECT_FILE.i:298. +[value] using specification for function __gmpz_init PROJECT_FILE.i:69:[value] Function __gmpz_init: postcondition got status valid. [value] Done for function __gmpz_init [value] computing for function __gmpz_mul <- main. Called from PROJECT_FILE.i:299. +[value] using specification for function __gmpz_mul PROJECT_FILE.i:145:[value] Function __gmpz_mul: precondition got status valid. PROJECT_FILE.i:146:[value] Function __gmpz_mul: precondition got status valid. PROJECT_FILE.i:147:[value] Function __gmpz_mul: precondition got status valid. @@ -116,12 +121,14 @@ PROJECT_FILE.i:304:[value] Assertion got status valid. [value] Done for function e_acsl_assert [value] computing for function __gmpz_tdiv_q <- main. Called from PROJECT_FILE.i:307. +[value] using specification for function __gmpz_tdiv_q PROJECT_FILE.i:151:[value] Function __gmpz_tdiv_q: precondition got status valid. PROJECT_FILE.i:152:[value] Function __gmpz_tdiv_q: precondition got status valid. PROJECT_FILE.i:153:[value] Function __gmpz_tdiv_q: precondition got status valid. [value] Done for function __gmpz_tdiv_q [value] computing for function __gmpz_get_ui <- main. Called from PROJECT_FILE.i:308. +[value] using specification for function __gmpz_get_ui PROJECT_FILE.i:180:[value] Function __gmpz_get_ui: precondition got status valid. [value] Done for function __gmpz_get_ui PROJECT_FILE.i:309:[kernel] warning: accessing out of bounds index [0..4294967295]. assert __e_acsl_9 < 3; @@ -178,6 +185,7 @@ PROJECT_FILE.i:331:[value] Assertion got status valid. [value] Done for function __gmpz_init [value] computing for function __gmpz_add <- main. Called from PROJECT_FILE.i:342. +[value] using specification for function __gmpz_add PROJECT_FILE.i:133:[value] Function __gmpz_add: precondition got status valid. PROJECT_FILE.i:134:[value] Function __gmpz_add: precondition got status valid. PROJECT_FILE.i:135:[value] Function __gmpz_add: precondition got status valid. @@ -213,6 +221,7 @@ PROJECT_FILE.i:352:[value] Assertion got status valid. [value] Done for function __gmpz_init [value] computing for function __gmpz_sub <- main. Called from PROJECT_FILE.i:365. +[value] using specification for function __gmpz_sub PROJECT_FILE.i:139:[value] Function __gmpz_sub: precondition got status valid. PROJECT_FILE.i:140:[value] Function __gmpz_sub: precondition got status valid. PROJECT_FILE.i:141:[value] Function __gmpz_sub: precondition got status valid. @@ -458,24 +467,64 @@ struct __anonstruct___mpz_struct_1 { typedef struct __anonstruct___mpz_struct_1 __mpz_struct; typedef __mpz_struct mpz_t[1]; /*@ ensures \valid(\old(x)); + allocates \nothing; assigns *x; */ extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); /*@ ensures \valid(\old(z)); assigns *z; assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + allocates \nothing; + assigns *z; + assigns *z \from n; +*/ extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); /*@ requires \valid(x); + allocates \nothing; assigns *x; */ extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); /*@ requires \valid(z1); requires \valid(z2); - assigns \nothing; */ + allocates \nothing; + assigns \nothing; + +*/ extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); /*@ requires \valid(z1); requires \valid(z2); requires \valid(z3); - assigns *z1; + allocates \nothing; + assigns *z1; + */ extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2, @@ -483,7 +532,9 @@ extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, /*@ requires \valid(z1); requires \valid(z2); requires \valid(z3); - assigns *z1; + allocates \nothing; + assigns *z1; + */ extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2, @@ -491,7 +542,9 @@ extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, /*@ requires \valid(z1); requires \valid(z2); requires \valid(z3); - assigns *z1; + allocates \nothing; + assigns *z1; + */ extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2, @@ -499,12 +552,31 @@ extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, /*@ requires \valid(z1); requires \valid(z2); requires \valid(z3); - assigns *z1; + allocates \nothing; + assigns *z1; + */ extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2, __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); /*@ requires \valid(z); + allocates \nothing; assigns \nothing; */ extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; 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 index 12003282f58b5fadf020c11798ab40c8279aa805..076fa27db9470179e35bdfe46d7eadd7d3000b59 100644 --- 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 @@ -89,6 +89,109 @@ PROJECT_FILE.i:285:[value] Assertion got status valid. [2] ∈ {5} p ∈ {{ &t + {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; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ requires \valid(x); + assigns *x; */ +extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z1); + requires \valid(z2); + assigns \nothing; */ +extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 index 798e024a66e36be6fa128f8e561b458cf31db3c3..8a0d0d725d714ba2a73d89c772ac1e9215c9f043 100644 --- 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 @@ -5,19 +5,23 @@ PROJECT_FILE.i:233:[value] Assertion got status unknown. [value] computing for function __gmpz_init <- main. Called from PROJECT_FILE.i:238. +[value] using specification for function __gmpz_init PROJECT_FILE.i:69:[value] Function __gmpz_init: postcondition got status valid. [value] Done for function __gmpz_init [value] computing for function __gmpz_init_set_si <- main. Called from PROJECT_FILE.i:241. +[value] using specification for function __gmpz_init_set_si PROJECT_FILE.i:82:[value] Function __gmpz_init_set_si: postcondition got status valid. [value] Done for function __gmpz_init_set_si [value] computing for function __gmpz_set <- main. Called from PROJECT_FILE.i:242. +[value] using specification for function __gmpz_set PROJECT_FILE.i:94:[value] Function __gmpz_set: precondition got status valid. PROJECT_FILE.i:95:[value] Function __gmpz_set: precondition got status valid. [value] Done for function __gmpz_set [value] computing for function __gmpz_clear <- main. Called from PROJECT_FILE.i:243. +[value] using specification for function __gmpz_clear PROJECT_FILE.i:111:[value] Function __gmpz_clear: precondition got status valid. [value] Done for function __gmpz_clear PROJECT_FILE.i:246:[value] entering loop for the first time @@ -26,6 +30,7 @@ PROJECT_FILE.i:246:[value] entering loop for the first time [value] Done for function __gmpz_init_set_si [value] computing for function __gmpz_cmp <- main. Called from PROJECT_FILE.i:251. +[value] using specification for function __gmpz_cmp PROJECT_FILE.i:119:[value] Function __gmpz_cmp: precondition got status valid. PROJECT_FILE.i:120:[value] Function __gmpz_cmp: precondition got status valid. [value] Done for function __gmpz_cmp @@ -62,6 +67,7 @@ PROJECT_FILE.i:268:[value] assigning non deterministic value for the first time [value] Done for function __gmpz_init [value] computing for function __gmpz_add <- main. Called from PROJECT_FILE.i:283. +[value] using specification for function __gmpz_add PROJECT_FILE.i:133:[value] Function __gmpz_add: precondition got status valid. PROJECT_FILE.i:134:[value] Function __gmpz_add: precondition got status valid. PROJECT_FILE.i:135:[value] Function __gmpz_add: precondition got status valid. @@ -511,6 +517,7 @@ PROJECT_FILE.i:689:[value] Assertion got status valid. [value] Done for function e_acsl_assert [value] computing for function __gmpz_tdiv_r <- main. Called from PROJECT_FILE.i:691. +[value] using specification for function __gmpz_tdiv_r PROJECT_FILE.i:157:[value] Function __gmpz_tdiv_r: precondition got status valid. PROJECT_FILE.i:158:[value] Function __gmpz_tdiv_r: precondition got status valid. PROJECT_FILE.i:159:[value] Function __gmpz_tdiv_r: precondition got status valid. @@ -577,6 +584,7 @@ PROJECT_FILE.i:717:[value] Assertion got status valid. [value] Done for function e_acsl_assert [value] computing for function __gmpz_tdiv_q <- main. Called from PROJECT_FILE.i:720. +[value] using specification for function __gmpz_tdiv_q PROJECT_FILE.i:151:[value] Function __gmpz_tdiv_q: precondition got status valid. PROJECT_FILE.i:152:[value] Function __gmpz_tdiv_q: precondition got status valid. PROJECT_FILE.i:153:[value] Function __gmpz_tdiv_q: precondition got status valid. @@ -610,6 +618,7 @@ PROJECT_FILE.i:153:[value] Function __gmpz_tdiv_q: precondition got status valid [value] Done for function __gmpz_clear [value] computing for function __gmpz_mul <- main. Called from PROJECT_FILE.i:735. +[value] using specification for function __gmpz_mul PROJECT_FILE.i:145:[value] Function __gmpz_mul: precondition got status valid. PROJECT_FILE.i:146:[value] Function __gmpz_mul: precondition got status valid. PROJECT_FILE.i:147:[value] Function __gmpz_mul: precondition got status valid. @@ -669,29 +678,66 @@ struct __anonstruct___mpz_struct_1 { typedef struct __anonstruct___mpz_struct_1 __mpz_struct; typedef __mpz_struct mpz_t[1]; /*@ ensures \valid(\old(x)); + allocates \nothing; assigns *x; */ extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); /*@ ensures \valid(\old(z)); assigns *z; assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + allocates \nothing; + assigns *z; + assigns *z \from n; +*/ extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); /*@ requires \valid(z_orig); requires \valid(z); - assigns *z; */ + allocates \nothing; + assigns *z; +*/ extern void __gmpz_set(__mpz_struct * /*[1]*/ z, __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); /*@ requires \valid(x); + allocates \nothing; assigns *x; */ extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); /*@ requires \valid(z1); requires \valid(z2); - assigns \nothing; */ + allocates \nothing; + assigns \nothing; + +*/ extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); /*@ requires \valid(z1); requires \valid(z2); requires \valid(z3); - assigns *z1; + allocates \nothing; + assigns *z1; + */ extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2, @@ -701,13 +747,25 @@ extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, requires \valid(z3); assigns *z1; */ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + allocates \nothing; + assigns *z1; + +*/ extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2, __mpz_struct const * /*[1]*/ z3); /*@ requires \valid(z1); requires \valid(z2); requires \valid(z3); - assigns *z1; + allocates \nothing; + assigns *z1; + */ extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2, @@ -715,11 +773,24 @@ extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, /*@ requires \valid(z1); requires \valid(z2); requires \valid(z3); - assigns *z1; + allocates \nothing; + assigns *z1; + */ extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2, __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/quantif.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/quantif.res.oracle index de94afd00acee4364f139a2a6caa96186ecb4de9..6f90ee2cb0f5a5e869b5c3d2787e7e0ec8f19924 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/quantif.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/quantif.res.oracle @@ -115,6 +115,109 @@ PROJECT_FILE.i:409:[value] Assertion got status valid. [value] Values at end of function main: __retres ∈ {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; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ requires \valid(x); + assigns *x; */ +extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z1); + requires \valid(z2); + assigns \nothing; */ +extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 index 1eabe282a154a051234fbdf74f87b4a21f089223..f01ff012335edb9f16b4f0d53c1d0afa648930e9 100644 --- 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 @@ -8,6 +8,7 @@ tests/e-acsl-runtime/result.i:7:[e-acsl] warning: missing guard for ensuring tha Called from PROJECT_FILE.i:305. [value] computing for function __gmpz_init_set_si <- f <- main. Called from PROJECT_FILE.i:245. +[value] using specification for function __gmpz_init_set_si PROJECT_FILE.i:82:[value] Function __gmpz_init_set_si: postcondition got status valid. [value] Done for function __gmpz_init_set_si [value] computing for function __gmpz_init_set_si <- f <- main. @@ -15,16 +16,19 @@ PROJECT_FILE.i:82:[value] Function __gmpz_init_set_si: postcondition got status [value] Done for function __gmpz_init_set_si [value] computing for function __gmpz_init <- f <- main. Called from PROJECT_FILE.i:247. +[value] using specification for function __gmpz_init PROJECT_FILE.i:69:[value] Function __gmpz_init: postcondition got status valid. [value] Done for function __gmpz_init [value] computing for function __gmpz_sub <- f <- main. Called from PROJECT_FILE.i:248. +[value] using specification for function __gmpz_sub PROJECT_FILE.i:139:[value] Function __gmpz_sub: precondition got status valid. PROJECT_FILE.i:140:[value] Function __gmpz_sub: precondition got status valid. PROJECT_FILE.i:141:[value] Function __gmpz_sub: precondition got status valid. [value] Done for function __gmpz_sub [value] computing for function __gmpz_get_ui <- f <- main. Called from PROJECT_FILE.i:249. +[value] using specification for function __gmpz_get_ui PROJECT_FILE.i:180:[value] Function __gmpz_get_ui: precondition got status valid. [value] Done for function __gmpz_get_ui [value] computing for function __gmpz_init_set_si <- f <- main. @@ -32,6 +36,7 @@ PROJECT_FILE.i:180:[value] Function __gmpz_get_ui: precondition got status valid [value] Done for function __gmpz_init_set_si [value] computing for function __gmpz_cmp <- f <- main. Called from PROJECT_FILE.i:251. +[value] using specification for function __gmpz_cmp PROJECT_FILE.i:119:[value] Function __gmpz_cmp: precondition got status valid. PROJECT_FILE.i:120:[value] Function __gmpz_cmp: precondition got status valid. [value] Done for function __gmpz_cmp @@ -42,6 +47,7 @@ PROJECT_FILE.i:221:[value] Function e_acsl_assert: precondition got status unkno [value] Done for function e_acsl_assert [value] computing for function __gmpz_clear <- f <- main. Called from PROJECT_FILE.i:254. +[value] using specification for function __gmpz_clear PROJECT_FILE.i:111:[value] Function __gmpz_clear: precondition got status valid. [value] Done for function __gmpz_clear [value] computing for function __gmpz_clear <- f <- main. @@ -129,29 +135,110 @@ struct __anonstruct___mpz_struct_1 { typedef struct __anonstruct___mpz_struct_1 __mpz_struct; typedef __mpz_struct mpz_t[1]; /*@ ensures \valid(\old(x)); + allocates \nothing; assigns *x; */ extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); /*@ ensures \valid(\old(z)); assigns *z; assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + allocates \nothing; + assigns *z; + assigns *z \from n; +*/ extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); /*@ requires \valid(x); + allocates \nothing; assigns *x; */ extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); /*@ requires \valid(z1); requires \valid(z2); - assigns \nothing; */ + allocates \nothing; + assigns \nothing; + +*/ extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); /*@ requires \valid(z1); requires \valid(z2); requires \valid(z3); assigns *z1; */ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + allocates \nothing; + assigns *z1; + +*/ extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2, __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); /*@ requires \valid(z); + allocates \nothing; assigns \nothing; */ extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; 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 index ce1128caba2e3b8d919d4bb9d9fe14c257f83561..bb6f07a5fded769c379206f3ab5a075fac083fb8 100644 --- 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 @@ -45,6 +45,109 @@ PROJECT_FILE.i:251:[value] Function h: postcondition got status valid. [value] Values at end of function main: __retres ∈ {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; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ requires \valid(x); + assigns *x; */ +extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z1); + requires \valid(z2); + assigns \nothing; */ +extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 index 61632acf3c0a6d244828402d4373b5074c4f6144..a86fb6666f0bef5e73ba42250e8b6de576f87d13 100644 --- 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 @@ -5,6 +5,7 @@ PROJECT_FILE.i:235:[value] Assertion got status valid. [value] computing for function __gmpz_init_set_si <- main. Called from PROJECT_FILE.i:240. +[value] using specification for function __gmpz_init_set_si PROJECT_FILE.i:82:[value] Function __gmpz_init_set_si: postcondition got status valid. [value] Done for function __gmpz_init_set_si [value] computing for function __gmpz_init_set_si <- main. @@ -12,6 +13,7 @@ PROJECT_FILE.i:82:[value] Function __gmpz_init_set_si: postcondition got status [value] Done for function __gmpz_init_set_si [value] computing for function __gmpz_cmp <- main. Called from PROJECT_FILE.i:242. +[value] using specification for function __gmpz_cmp PROJECT_FILE.i:119:[value] Function __gmpz_cmp: precondition got status valid. PROJECT_FILE.i:120:[value] Function __gmpz_cmp: precondition got status valid. [value] Done for function __gmpz_cmp @@ -22,6 +24,7 @@ PROJECT_FILE.i:221:[value] Function e_acsl_assert: precondition got status unkno [value] Done for function e_acsl_assert [value] computing for function __gmpz_clear <- main. Called from PROJECT_FILE.i:245. +[value] using specification for function __gmpz_clear PROJECT_FILE.i:111:[value] Function __gmpz_clear: precondition got status valid. [value] Done for function __gmpz_clear [value] computing for function __gmpz_clear <- main. @@ -62,18 +65,109 @@ struct __anonstruct___mpz_struct_1 { }; typedef struct __anonstruct___mpz_struct_1 __mpz_struct; typedef __mpz_struct mpz_t[1]; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); /*@ ensures \valid(\old(z)); assigns *z; assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + allocates \nothing; + assigns *z; + assigns *z \from n; +*/ extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); /*@ requires \valid(x); + allocates \nothing; assigns *x; */ extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); /*@ requires \valid(z1); requires \valid(z2); - assigns \nothing; */ + allocates \nothing; + assigns \nothing; + +*/ extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 index 2b518ac5d9fa5ba50d0a34b77b1c806b01c3375b..a5e581636b3907e3a7e4dfb274a401fdda6de4a9 100644 --- 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 @@ -21,6 +21,109 @@ PROJECT_FILE.i:238:[value] Assertion got status valid. __retres ∈ {0} x ∈ {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; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ requires \valid(x); + assigns *x; */ +extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z1); + requires \valid(z2); + assigns \nothing; */ +extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/stmt_contract.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/stmt_contract.1.res.oracle index 29d612138e12390fa4615a88297399991dedbb9a..0d645b4a265e8e7b07e10ad86faad5ebaf911b73 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/stmt_contract.1.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/stmt_contract.1.res.oracle @@ -4,6 +4,7 @@ [value] Values of globals at initialization [value] computing for function __gmpz_init_set_si <- main. Called from PROJECT_FILE.i:243. +[value] using specification for function __gmpz_init_set_si PROJECT_FILE.i:82:[value] Function __gmpz_init_set_si: postcondition got status valid. [value] Done for function __gmpz_init_set_si [value] computing for function __gmpz_init_set_si <- main. @@ -11,6 +12,7 @@ PROJECT_FILE.i:82:[value] Function __gmpz_init_set_si: postcondition got status [value] Done for function __gmpz_init_set_si [value] computing for function __gmpz_cmp <- main. Called from PROJECT_FILE.i:245. +[value] using specification for function __gmpz_cmp PROJECT_FILE.i:119:[value] Function __gmpz_cmp: precondition got status valid. PROJECT_FILE.i:120:[value] Function __gmpz_cmp: precondition got status valid. [value] Done for function __gmpz_cmp @@ -21,6 +23,7 @@ PROJECT_FILE.i:221:[value] Function e_acsl_assert: precondition got status unkno [value] Done for function e_acsl_assert [value] computing for function __gmpz_clear <- main. Called from PROJECT_FILE.i:247. +[value] using specification for function __gmpz_clear PROJECT_FILE.i:111:[value] Function __gmpz_clear: precondition got status valid. [value] Done for function __gmpz_clear [value] computing for function __gmpz_clear <- main. @@ -136,10 +139,12 @@ PROJECT_FILE.i:111:[value] Function __gmpz_clear: precondition got status valid. [value] Done for function __gmpz_init_set_si [value] computing for function __gmpz_init <- main. Called from PROJECT_FILE.i:344. +[value] using specification for function __gmpz_init PROJECT_FILE.i:69:[value] Function __gmpz_init: postcondition got status valid. [value] Done for function __gmpz_init [value] computing for function __gmpz_add <- main. Called from PROJECT_FILE.i:345. +[value] using specification for function __gmpz_add PROJECT_FILE.i:133:[value] Function __gmpz_add: precondition got status valid. PROJECT_FILE.i:134:[value] Function __gmpz_add: precondition got status valid. PROJECT_FILE.i:135:[value] Function __gmpz_add: precondition got status valid. @@ -449,28 +454,111 @@ struct __anonstruct___mpz_struct_1 { typedef struct __anonstruct___mpz_struct_1 __mpz_struct; typedef __mpz_struct mpz_t[1]; /*@ ensures \valid(\old(x)); + allocates \nothing; assigns *x; */ extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); /*@ ensures \valid(\old(z)); assigns *z; assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + allocates \nothing; + assigns *z; + assigns *z \from n; +*/ extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); /*@ requires \valid(x); + allocates \nothing; assigns *x; */ extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); /*@ requires \valid(z1); requires \valid(z2); - assigns \nothing; */ + allocates \nothing; + assigns \nothing; + +*/ extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); /*@ requires \valid(z1); requires \valid(z2); requires \valid(z3); - assigns *z1; + allocates \nothing; + assigns *z1; + */ extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2, __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 index 3dcea3b26f42306e40db9cb3c846e959348f6c45..b88df09198c04377dd6495293249d1e73f60074b 100644 --- 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 @@ -84,6 +84,109 @@ PROJECT_FILE.i:221:[value] Function e_acsl_assert: precondition got status valid x ∈ {7} y ∈ {2} /* 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; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ requires \valid(x); + assigns *x; */ +extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z1); + requires \valid(z2); + assigns \nothing; */ +extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 index 33190956028542ba90e005e2b29c30c44f25dff5..51e4462d8b056700a6681e77d7e6c10e9107193b 100644 --- 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 @@ -16,6 +16,109 @@ PROJECT_FILE.i:221:[value] Function e_acsl_assert: precondition got status valid __retres ∈ {0} x ∈ {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; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ requires \valid(x); + assigns *x; */ +extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z1); + requires \valid(z2); + assigns \nothing; */ +extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 index 33190956028542ba90e005e2b29c30c44f25dff5..51e4462d8b056700a6681e77d7e6c10e9107193b 100644 --- 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 @@ -16,6 +16,109 @@ PROJECT_FILE.i:221:[value] Function e_acsl_assert: precondition got status valid __retres ∈ {0} x ∈ {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; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ requires \valid(x); + assigns *x; */ +extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z1); + requires \valid(z2); + assigns \nothing; */ +extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 index cf851039bd9d1ec1bdea16d4929fb9fa18b47c3e..8449ee85fd09156876c5c597f4749d6bafb7b372 100644 --- 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 @@ -5,14 +5,17 @@ PROJECT_FILE.i:236:[value] Assertion got status valid. [value] computing for function __gmpz_init_set_ui <- main. Called from PROJECT_FILE.i:241. +[value] using specification for function __gmpz_init_set_ui PROJECT_FILE.i:78:[value] Function __gmpz_init_set_ui: postcondition got status valid. [value] Done for function __gmpz_init_set_ui [value] computing for function __gmpz_init_set_si <- main. Called from PROJECT_FILE.i:242. +[value] using specification for function __gmpz_init_set_si PROJECT_FILE.i:82:[value] Function __gmpz_init_set_si: postcondition got status valid. [value] Done for function __gmpz_init_set_si [value] computing for function __gmpz_cmp <- main. Called from PROJECT_FILE.i:243. +[value] using specification for function __gmpz_cmp PROJECT_FILE.i:119:[value] Function __gmpz_cmp: precondition got status valid. PROJECT_FILE.i:120:[value] Function __gmpz_cmp: precondition got status valid. [value] Done for function __gmpz_cmp @@ -23,6 +26,7 @@ PROJECT_FILE.i:221:[value] Function e_acsl_assert: precondition got status unkno [value] Done for function e_acsl_assert [value] computing for function __gmpz_clear <- main. Called from PROJECT_FILE.i:245. +[value] using specification for function __gmpz_clear PROJECT_FILE.i:111:[value] Function __gmpz_clear: precondition got status valid. [value] Done for function __gmpz_clear [value] computing for function __gmpz_clear <- main. @@ -44,22 +48,111 @@ struct __anonstruct___mpz_struct_1 { typedef struct __anonstruct___mpz_struct_1 __mpz_struct; typedef __mpz_struct mpz_t[1]; typedef unsigned char uint8; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); /*@ ensures \valid(\old(z)); + allocates \nothing; assigns *z; - assigns *z \from n; */ + assigns *z \from n; +*/ extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); /*@ ensures \valid(\old(z)); + allocates \nothing; assigns *z; - assigns *z \from n; */ + assigns *z \from n; +*/ extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); /*@ requires \valid(x); + allocates \nothing; assigns *x; */ extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); /*@ requires \valid(z1); requires \valid(z2); - assigns \nothing; */ + allocates \nothing; + assigns \nothing; + +*/ extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 index c46b994892b42b98015da0fe783ab59a81e567b2..4f3305384f5bd76e7a408bd701c0a3e7773822df 100644 --- 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 @@ -16,7 +16,110 @@ PROJECT_FILE.i:221:[value] Function e_acsl_assert: precondition got status valid __retres ∈ {0} x ∈ {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 unsigned char uint8; +/*@ ensures \valid(\old(x)); + assigns *x; */ +extern void __gmpz_init(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z_orig); + ensures \valid(\old(z)); + assigns *z; */ +extern void __gmpz_init_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ ensures \valid(\old(z)); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ ensures \valid(\old(z)); + assigns *z; */ +extern int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, char const *str, + int base); +/*@ requires \valid(z_orig); + requires \valid(z); + assigns *z; */ +extern void __gmpz_set(__mpz_struct * /*[1]*/ z, + __mpz_struct const * /*[1]*/ z_orig); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_ui(__mpz_struct * /*[1]*/ z, unsigned long n); +/*@ requires \valid(z); + assigns *z; + assigns *z \from n; */ +extern void __gmpz_set_si(__mpz_struct * /*[1]*/ z, long n); +/*@ requires \valid(x); + assigns *x; */ +extern void __gmpz_clear(__mpz_struct * /*[1]*/ x); +/*@ requires \valid(z1); + requires \valid(z2); + assigns \nothing; */ +extern int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern void __gmpz_neg(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_add(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_sub(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_mul(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + requires \valid(z3); + assigns *z1; +*/ +extern void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2, + __mpz_struct const * /*[1]*/ z3); +/*@ requires \valid(z1); + requires \valid(z2); + assigns *z1; */ +extern int __gmpz_com(__mpz_struct * /*[1]*/ z1, + __mpz_struct const * /*[1]*/ z2); +/*@ requires \valid(z); + assigns \nothing; */ +extern long __gmpz_get_si(__mpz_struct const * /*[1]*/ z); +/*@ requires \valid(z); + assigns \nothing; */ +extern unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); /*@ terminates \false; ensures \false; assigns \nothing; */ 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 53506aef6a1bf432b594d4bff084dde92f62e0a3..b26c6e51ea5e98bd71d4ef669155599c7b83bc13 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,7 @@ /* run.config COMMENT: non integer constants - EXECNOW: LOG gen_other_constants.c BIN gen_other_constants.out FRAMAC_SHARE=./share @frama-c@ ./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 -pedantic -o ./tests/e-acsl-runtime/result/gen_other_constants.out ./tests/e-acsl-runtime/result/gen_other_constants.c -lgmp && ./tests/e-acsl-runtime/result/gen_other_constants.out - EXECNOW: LOG gen_other_constants2.c BIN gen_other_constants2.out FRAMAC_SHARE=./share @frama-c@ ./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 -pedantic -o ./tests/e-acsl-runtime/result/gen_other_constants2.out ./tests/e-acsl-runtime/result/gen_other_constants2.c -lgmp && ./tests/e-acsl-runtime/result/gen_other_constants2.out + 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 -pedantic -o ./tests/e-acsl-runtime/result/gen_other_constants.out ./tests/e-acsl-runtime/result/gen_other_constants.c -lgmp && ./tests/e-acsl-runtime/result/gen_other_constants.out + 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 -pedantic -o ./tests/e-acsl-runtime/result/gen_other_constants2.out ./tests/e-acsl-runtime/result/gen_other_constants2.c -lgmp && ./tests/e-acsl-runtime/result/gen_other_constants2.out */ 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 bbeded7a8bffb4bce009f0533a0c00d632205556..48b5eba57b8f84210addb0f86c2ff0172bc5173a 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,7 @@ /* run.config COMMENT: pointers and pointer arithmetic - EXECNOW: LOG gen_ptr.c BIN gen_ptr.out FRAMAC_SHARE=./share @frama-c@ ./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 -pedantic -Wno-long-long -o ./tests/e-acsl-runtime/result/gen_ptr.out ./tests/e-acsl-runtime/result/gen_ptr.c -lgmp && ./tests/e-acsl-runtime/result/gen_ptr.out - EXECNOW: LOG gen_ptr2.c BIN gen_ptr2.out FRAMAC_SHARE=./share @frama-c@ ./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 -pedantic -Wno-long-long -o ./tests/e-acsl-runtime/result/gen_ptr2.out ./tests/e-acsl-runtime/result/gen_ptr2.c -lgmp && ./tests/e-acsl-runtime/result/gen_ptr2.out + 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 -pedantic -Wno-long-long -o ./tests/e-acsl-runtime/result/gen_ptr.out ./tests/e-acsl-runtime/result/gen_ptr.c -lgmp && ./tests/e-acsl-runtime/result/gen_ptr.out + 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 -pedantic -Wno-long-long -o ./tests/e-acsl-runtime/result/gen_ptr2.out ./tests/e-acsl-runtime/result/gen_ptr2.c -lgmp && ./tests/e-acsl-runtime/result/gen_ptr2.out */ int main(void) { diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/quantif.i b/src/plugins/e-acsl/tests/e-acsl-runtime/quantif.i index bff75f39b0440108da65869c53abd713a3632574..466552b8ae8e29c14080cd5d91055103c1f00dbe 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/quantif.i +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/quantif.i @@ -1,7 +1,7 @@ /* run.config COMMENT: quantifiers - EXECNOW: LOG gen_quantif.c BIN gen_quantif.out FRAMAC_SHARE=./share @frama-c@ ./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 -pedantic -o ./tests/e-acsl-runtime/result/gen_quantif.out ./tests/e-acsl-runtime/result/gen_quantif.c -lgmp && ./tests/e-acsl-runtime/result/gen_quantif.out - EXECNOW: LOG gen_quantif2.c BIN gen_quantif2.out FRAMAC_SHARE=./share @frama-c@ ./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 -pedantic -Wno-long-long -o ./tests/e-acsl-runtime/result/gen_quantif2.out ./tests/e-acsl-runtime/result/gen_quantif2.c -lgmp && ./tests/e-acsl-runtime/result/gen_quantif2.out + 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 -pedantic -o ./tests/e-acsl-runtime/result/gen_quantif.out ./tests/e-acsl-runtime/result/gen_quantif.c -lgmp && ./tests/e-acsl-runtime/result/gen_quantif.out + 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 -pedantic -Wno-long-long -o ./tests/e-acsl-runtime/result/gen_quantif2.out ./tests/e-acsl-runtime/result/gen_quantif2.c -lgmp && ./tests/e-acsl-runtime/result/gen_quantif2.out */ int main(void) { 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 b90f3b93ebc27413632e0808a78be3acb53ef9a1..d160c8b00bd8521c259bab96522031c7dd01574c 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,7 @@ /* run.config COMMENT: \result - EXECNOW: LOG gen_result.c BIN gen_result.out FRAMAC_SHARE=./share @frama-c@ ./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 -pedantic -Wno-long-long -o ./tests/e-acsl-runtime/result/gen_result.out ./tests/e-acsl-runtime/result/gen_result.c -lgmp && ./tests/e-acsl-runtime/result/gen_result.out - EXECNOW: LOG gen_result2.c BIN gen_result2.out FRAMAC_SHARE=./share @frama-c@ ./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 -pedantic -Wno-long-long -o ./tests/e-acsl-runtime/result/gen_result2.out ./tests/e-acsl-runtime/result/gen_result2.c -lgmp && ./tests/e-acsl-runtime/result/gen_result2.out + 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 -pedantic -Wno-long-long -o ./tests/e-acsl-runtime/result/gen_result.out ./tests/e-acsl-runtime/result/gen_result.c -lgmp && ./tests/e-acsl-runtime/result/gen_result.out + 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 -pedantic -Wno-long-long -o ./tests/e-acsl-runtime/result/gen_result2.out ./tests/e-acsl-runtime/result/gen_result2.c -lgmp && ./tests/e-acsl-runtime/result/gen_result2.out */ /*@ 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 31c48a7c5ffb7da841ac92f479b7ac3857516913..f1846fc53e1a7fd601e7fdecf24d80b3b835198e 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,7 @@ /* run.config COMMENT: sizeof - EXECNOW: LOG gen_sizeof.c BIN gen_sizeof.out FRAMAC_SHARE=./share @frama-c@ ./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 -pedantic -o ./tests/e-acsl-runtime/result/gen_sizeof.out ./tests/e-acsl-runtime/result/gen_sizeof.c -lgmp && ./tests/e-acsl-runtime/result/gen_sizeof.out - EXECNOW: LOG gen_sizeof2.c BIN gen_sizeof2.out FRAMAC_SHARE=./share @frama-c@ ./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 -pedantic -o ./tests/e-acsl-runtime/result/gen_sizeof2.out ./tests/e-acsl-runtime/result/gen_sizeof2.c -lgmp && ./tests/e-acsl-runtime/result/gen_sizeof2.out + 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 -pedantic -o ./tests/e-acsl-runtime/result/gen_sizeof.out ./tests/e-acsl-runtime/result/gen_sizeof.c -lgmp && ./tests/e-acsl-runtime/result/gen_sizeof.out + 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 -pedantic -o ./tests/e-acsl-runtime/result/gen_sizeof2.out ./tests/e-acsl-runtime/result/gen_sizeof2.c -lgmp && ./tests/e-acsl-runtime/result/gen_sizeof2.out */ int main(void) { 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 80339ee75da6355e57f90949f4671b74107a4271..28095ad45147cf43c380529a6f29098062852a8a 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,7 +1,7 @@ /* run.config COMMENT: stmt contract - EXECNOW: LOG gen_stmt_contract.c BIN gen_stmt_contract.out FRAMAC_SHARE=./share @frama-c@ ./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 -pedantic -Wno-long-long -o ./tests/e-acsl-runtime/result/gen_stmt_contract.out ./tests/e-acsl-runtime/result/gen_stmt_contract.c -lgmp && ./tests/e-acsl-runtime/result/gen_stmt_contract.out - EXECNOW: LOG gen_stmt_contract2.c BIN gen_stmt_contract2.out FRAMAC_SHARE=./share @frama-c@ ./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 -pedantic -Wno-long-long -o ./tests/e-acsl-runtime/result/gen_stmt_contract2.out ./tests/e-acsl-runtime/result/gen_stmt_contract2.c -lgmp && ./tests/e-acsl-runtime/result/gen_stmt_contract2.out + 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 -pedantic -Wno-long-long -o ./tests/e-acsl-runtime/result/gen_stmt_contract.out ./tests/e-acsl-runtime/result/gen_stmt_contract.c -lgmp && ./tests/e-acsl-runtime/result/gen_stmt_contract.out + 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 -pedantic -Wno-long-long -o ./tests/e-acsl-runtime/result/gen_stmt_contract2.out ./tests/e-acsl-runtime/result/gen_stmt_contract2.c -lgmp && ./tests/e-acsl-runtime/result/gen_stmt_contract2.out */ int main(void) { int x = 0, y = 2; 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 266b8915cd3ed89106f0bb09f0973d5d45e41c92..e265bc72c001e225af34df15e2db2c6f45aff558 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,7 @@ /* run.config COMMENT: assert \true - EXECNOW: LOG gen_true.c BIN gen_true.out FRAMAC_SHARE=./share @frama-c@ ./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 -pedantic -o ./tests/e-acsl-runtime/result/gen_true.out ./tests/e-acsl-runtime/result/gen_true.c && ./tests/e-acsl-runtime/result/gen_true.out - EXECNOW: LOG gen_true2.c BIN gen_true2.out FRAMAC_SHARE=./share @frama-c@ ./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 -pedantic -o ./tests/e-acsl-runtime/result/gen_true2.out ./tests/e-acsl-runtime/result/gen_true2.c && ./tests/e-acsl-runtime/result/gen_true2.out + 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 -pedantic -o ./tests/e-acsl-runtime/result/gen_true.out ./tests/e-acsl-runtime/result/gen_true.c && ./tests/e-acsl-runtime/result/gen_true.out + 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 -pedantic -o ./tests/e-acsl-runtime/result/gen_true2.out ./tests/e-acsl-runtime/result/gen_true2.c && ./tests/e-acsl-runtime/result/gen_true2.out */ 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 096dd94d635ee82fb4ce5f3c3f27eda2992cc695..e1b344d879a43e65399b6d2d7ad946dd24a61e82 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,7 @@ /* run.config COMMENT: typedef (from a Bernard's bug report) - EXECNOW: LOG gen_typedef.c BIN gen_typedef.out FRAMAC_SHARE=./share @frama-c@ ./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 -pedantic -o ./tests/e-acsl-runtime/result/gen_typedef.out ./tests/e-acsl-runtime/result/gen_typedef.c -lgmp && ./tests/e-acsl-runtime/result/gen_typedef.out - EXECNOW: LOG gen_typedef2.c BIN gen_typedef2.out FRAMAC_SHARE=./share @frama-c@ ./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 -pedantic -o ./tests/e-acsl-runtime/result/gen_typedef2.out ./tests/e-acsl-runtime/result/gen_typedef2.c -lgmp && ./tests/e-acsl-runtime/result/gen_typedef2.out + 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 -pedantic -o ./tests/e-acsl-runtime/result/gen_typedef.out ./tests/e-acsl-runtime/result/gen_typedef.c -lgmp && ./tests/e-acsl-runtime/result/gen_typedef.out + 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 -pedantic -o ./tests/e-acsl-runtime/result/gen_typedef2.out ./tests/e-acsl-runtime/result/gen_typedef2.c -lgmp && ./tests/e-acsl-runtime/result/gen_typedef2.out */ typedef unsigned char uint8; diff --git a/src/plugins/e-acsl/tests/test_config.in b/src/plugins/e-acsl/tests/test_config.in index ce1cb611b7a648bb9aadf0f414971944c2705073..febb6081e032faaf673e96249bb32fb8379949f3 100644 --- a/src/plugins/e-acsl/tests/test_config.in +++ b/src/plugins/e-acsl/tests/test_config.in @@ -1,3 +1,3 @@ -CMD: FRAMAC_SHARE=./share @frama-c@ -cpp-command="gcc -C -E -I${FRAMAC_SHARE}" +CMD: @frama-c@ -e-acsl-share ./share/e-ascl -cpp-command="gcc -C -E -I${FRAMAC_SHARE}" OPT: -e-acsl-check -FILTER:@SEDCMD@ -e "s|${FRAMAC_SHARE}|FRAMAC_SHARE|g" -e "s|[a-zA-Z/\\]\+frama_c_project_e-acsl_[a-z0-9]*|PROJECT_FILE|" +FILTER:@SEDCMD@ -e "s|[a-zA-Z/\\]\+frama_c_project_e-acsl_[a-z0-9]*|PROJECT_FILE|" diff --git a/src/plugins/e-acsl/typing.ml b/src/plugins/e-acsl/typing.ml index 1384ff91496a1a49a04abee5734525e20a69e6f5..8a393c7d64e9eee02b9e04e5ab092268b6b04298 100644 --- a/src/plugins/e-acsl/typing.ml +++ b/src/plugins/e-acsl/typing.ml @@ -254,6 +254,7 @@ let rec type_term t = (try join ty2 ty3 with Cannot_compare -> assert false) | Tat(t, _) -> type_term t | Tbase_addr _ -> Error.not_yet "\\base_addr" + | Toffset _ -> Error.not_yet "\\offset" | Tblock_length _ -> Error.not_yet "\\block_length" | Tnull -> int_to_interv 0 | TCoerce _ -> Error.not_yet "coercion" (* Jessie specific *) @@ -301,6 +302,7 @@ and type_term_offset = function | TIndex(t, o) -> ignore (type_term t); type_term_offset o + | TModel _ -> Error.not_yet "model" and unary_arithmetic op t = let ty = type_term t in @@ -384,6 +386,9 @@ let rec type_predicate_named p = match p.content with | Pexists _ -> Error.not_yet "unguarded \\exists quantification" | Pat(p, _) -> type_predicate_named p | Pvalid _ -> Error.not_yet "\\valid" + | Pvalid_read _ -> Error.not_yet "\\valid_read" + | Pallocable _ -> Error.not_yet "\\allocate" + | Pfreeable _ -> Error.not_yet "\\free" | Pfresh _ -> Error.not_yet "\\fresh" | Psubtype _ -> Error.not_yet "subtyping relation" (* Jessie specific *) | Pinitialized _ -> Error.not_yet "\\initialized" diff --git a/src/plugins/e-acsl/visit.ml b/src/plugins/e-acsl/visit.ml index c520bdf5806aea091feb62b0b914706e7836f60f..d3826d9bbaae36cb593578eaff0cf2c5061f5383 100644 --- a/src/plugins/e-acsl/visit.ml +++ b/src/plugins/e-acsl/visit.ml @@ -130,6 +130,7 @@ and toffset_to_offset ?loc env = function d_term t; let offset, env = toffset_to_offset env offset in Index(e, offset), env + | TModel _ -> Error.not_yet "model" and tlval_to_lval env (host, offset) = let host, env, name = thost_to_host env host in @@ -321,6 +322,7 @@ and context_insensitive_term_to_exp env t = let e, env, is_mpz_string = at_to_exp env (Some t) label e in e, env, is_mpz_string, "" | Tbase_addr _ -> Error.not_yet "\\base_addr" + | Toffset _ -> Error.not_yet "\\offset" | Tblock_length _ -> Error.not_yet "\\block_length" | Tnull -> mkCast (zero ~loc) (TPtr(TVoid [], [])), env, false, "null" | TCoerce _ -> Error.not_yet "coercion" (* Jessie specific *) @@ -477,6 +479,9 @@ let rec named_predicate_to_exp ?name env p = assert (not is_string); e, env | Pvalid _ -> Error.not_yet "\\valid" + | Pvalid_read _ -> Error.not_yet "\\valid_read" + | Pallocable _ -> Error.not_yet "\\allocate" + | Pfreeable _ -> Error.not_yet "\\free" | Pfresh _ -> Error.not_yet "\\fresh" | Psubtype _ -> Error.not_yet "subtyping relation" (* Jessie specific *) | Pinitialized _ -> Error.not_yet "\\initialized"