diff --git a/.Makefile.lint b/.Makefile.lint index 02f30304acf47c9703833b05735857ad8beb7b97..88cc7104680acbd85c3660e8684056b124cfc446 100644 --- a/.Makefile.lint +++ b/.Makefile.lint @@ -14,8 +14,6 @@ ML_LINT_KO+=src/kernel_internals/typing/allocates.ml ML_LINT_KO+=src/kernel_internals/typing/alpha.ml ML_LINT_KO+=src/kernel_internals/typing/alpha.mli ML_LINT_KO+=src/kernel_internals/typing/asm_contracts.ml -ML_LINT_KO+=src/kernel_internals/typing/cabs2cil.ml -ML_LINT_KO+=src/kernel_internals/typing/cabs2cil.mli ML_LINT_KO+=src/kernel_internals/typing/cfg.ml ML_LINT_KO+=src/kernel_internals/typing/cfg.mli ML_LINT_KO+=src/kernel_internals/typing/frontc.mli @@ -196,8 +194,6 @@ ML_LINT_KO+=src/libraries/stdlib/FCSet.ml ML_LINT_KO+=src/libraries/stdlib/FCSet.mli ML_LINT_KO+=src/libraries/stdlib/extlib.ml ML_LINT_KO+=src/libraries/stdlib/extlib.mli -ML_LINT_KO+=src/libraries/stdlib/integer.ml -ML_LINT_KO+=src/libraries/stdlib/integer.mli ML_LINT_KO+=src/libraries/utils/bag.ml ML_LINT_KO+=src/libraries/utils/binary_cache.ml ML_LINT_KO+=src/libraries/utils/bitvector.ml @@ -217,7 +213,6 @@ ML_LINT_KO+=src/libraries/utils/hptset.ml ML_LINT_KO+=src/libraries/utils/hptset.mli ML_LINT_KO+=src/libraries/utils/indexer.ml ML_LINT_KO+=src/libraries/utils/indexer.mli -ML_LINT_KO+=src/libraries/utils/json.mli ML_LINT_KO+=src/libraries/utils/leftistheap.mli ML_LINT_KO+=src/libraries/utils/pretty_utils.ml ML_LINT_KO+=src/libraries/utils/pretty_utils.mli diff --git a/.gitignore b/.gitignore index 4f3187e4bfda68f31f40e7eed121bcf2dbb08854..0e333030f4d2f99767fd4ca245b5c91ccbfd7f55 100644 --- a/.gitignore +++ b/.gitignore @@ -200,3 +200,11 @@ hello-*.tar.gz ####################### # should remain empty # ####################### +/src/plugins/gui/GSourceView2.mli +/src/plugins/gui/GSourceView2.ml +/src/plugins/gui/dgraph.ml +/src/plugins/gui/dgraph.mli +/src/plugins/gui/gtk_compat.ml +/src/plugins/gui/GSourceView.ml +/src/plugins/gui/GSourceView.mli +/tests/crowbar/integer_bb_pretty diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 96c52af374c82f1c0bc8524cda90c91437398ab7..0f54bad033530b3a48bbc86e9e541750c5ac9676 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,225 +1,248 @@ stages: - - update_docker - - lint - - frama_c_and_plugins + - git-update + - build + - tests - distrib_and_compatibility -variables: - OPAM_PACKAGES: ocamlfind zarith ocamlgraph ocp-indent - -# update the cache -update_docker: - stage: update_docker - image: ocaml/opam:debian - variables: - GIT_STRATEGY: none - before_script: - - sudo apt-get install -y -qq rsync - - mkdir -p .gitlab_oci_cache/.opam/ - - rsync -a .gitlab_oci_cache/.opam/ /home/opam/.opam/ - - opam list - - opam depext -i $OPAM_PACKAGES - after_script: - - rsync -a --delete /home/opam/.opam/ .gitlab_oci_cache/.opam/ - cache: - key: "frama-c" - paths: - - .gitlab_oci_cache/ - script: - - exit 0 - tags: - - docker - -#lint uses the cache but doesn't modify it -lint: - stage: lint - image: ocaml/opam:debian - before_script: - - sudo apt-get install -y -qq rsync autoconf build-essential bc - - mkdir -p .gitlab_oci_cache/.opam/ - - rsync -a .gitlab_oci_cache/.opam/ /home/opam/.opam/ - - opam list - - opam depext -i $OPAM_PACKAGES - cache: - key: "frama-c" - paths: - - .gitlab_oci_cache/ - script: - - autoconf - - ./configure - - make lint - - make stats-lint -# - make check-headers OPEN_SOURCE=yes STRICT_HEADERS=yes - coverage: '/lint coverage: \d+\.\d+/' - tags: - - docker - - -frama-c-external: - stage: frama_c_and_plugins +#avoid a nix error https://github.com/NixOS/nix/issues/2087 +git-update: + stage: git-update + variables: + CURRENT: $CI_COMMIT_REF_NAME + DEFAULT: "master" + OCAML: "4_05" + FRAMA_CI_OPT: "--override frama-c:$CI_COMMIT_REF_NAME,$CI_COMMIT_SHA" script: - - ~oci/oci/bin/bf_client.native run --socket ~oci/data/oci-data/oci.socket --frama-c $CI_BUILD_REF --branch $CI_BUILD_REF_NAME frama-c-external --cppo 07d2bcee50670aecae7e094d92f68fd18314073a --ocamlgraph 9286b375c005d1d504a1def0c5986f54c7f12251 --url ocamlfind,git@git.frama-c.com:bobot/ocamlfind.git + - nix/frama-ci.sh instantiate --eval -A frama-c.src.outPath tags: - except: - - tags - retry: 2 + - nix frama-c: - stage: frama_c_and_plugins + stage: build + variables: + CURRENT: $CI_COMMIT_REF_NAME + DEFAULT: "master" + OCAML: "4_05" + FRAMA_CI_OPT: "--override frama-c:$CI_COMMIT_REF_NAME,$CI_COMMIT_SHA" script: - - ~oci/oci/bin/bf_client.native run --socket ~oci/data/oci-data/oci.socket --frama-c $CI_BUILD_REF --branch $CI_BUILD_REF_NAME frama-c --cppo 07d2bcee50670aecae7e094d92f68fd18314073a --ocamlgraph 9286b375c005d1d504a1def0c5986f54c7f12251 --url ocamlfind,git@git.frama-c.com:bobot/ocamlfind.git + - nix/frama-ci.sh build -A frama-c.installed tags: - except: - - tags - retry: 2 + - nix -frama-c-ocaml-4.03: - stage: distrib_and_compatibility +lint: + stage: build + variables: + CURRENT: $CI_COMMIT_REF_NAME + DEFAULT: "master" + OCAML: "4_05" + FRAMA_CI_OPT: "--override frama-c:$CI_COMMIT_REF_NAME,$CI_COMMIT_SHA" script: - - ~oci/oci/bin/bf_client.native run --socket ~oci/data/oci-data/oci.socket --ocaml 4.03 --camlp4 4.03 --frama-c $CI_BUILD_REF --branch $CI_BUILD_REF_NAME frama-c --cppo 07d2bcee50670aecae7e094d92f68fd18314073a --ocamlgraph 9286b375c005d1d504a1def0c5986f54c7f12251 --url ocamlfind,git@git.frama-c.com:bobot/ocamlfind.git + - nix/frama-ci.sh build -A frama-c.lint + coverage: '/lint coverage: \d+\.\d+/' tags: - except: - - tags - retry: 2 + - nix -frama-c-ocaml-4.04: - stage: distrib_and_compatibility +tests: + stage: tests + variables: + CURRENT: $CI_COMMIT_REF_NAME + DEFAULT: "master" + OCAML: "4_05" + FRAMA_CI_OPT: "--override frama-c:$CI_COMMIT_REF_NAME,$CI_COMMIT_SHA" script: - - ~oci/oci/bin/bf_client.native run --socket ~oci/data/oci-data/oci.socket --ocaml 4.04 --camlp4 4.04 --lablgtk 4bbd5cf1990aa8b775cf247fbfe5be321e13cc61 --frama-c $CI_BUILD_REF --branch $CI_BUILD_REF_NAME frama-c --cppo 07d2bcee50670aecae7e094d92f68fd18314073a --ocamlgraph 9286b375c005d1d504a1def0c5986f54c7f12251 --url ocamlfind,git@git.frama-c.com:bobot/ocamlfind.git + - nix/frama-ci.sh build -A frama-c.tests tags: - except: - - tags - retry: 2 + - nix -frama-c-ocaml-4.05: - stage: distrib_and_compatibility +wp-qualif: + stage: tests + variables: + CURRENT: $CI_COMMIT_REF_NAME + DEFAULT: "master" + OCAML: "4_05" + FRAMA_CI_OPT: "--override frama-c:$CI_COMMIT_REF_NAME,$CI_COMMIT_SHA" script: - - ~oci/oci/bin/bf_client.native run --socket ~oci/data/oci-data/oci.socket --ocaml 4.05 --camlp4 4.05 --lablgtk 4bbd5cf1990aa8b775cf247fbfe5be321e13cc61 --camomile 3f4d657d50c17213f3338ca75efb30d728704df3 --frama-c $CI_BUILD_REF --branch $CI_BUILD_REF_NAME frama-c --cppo 07d2bcee50670aecae7e094d92f68fd18314073a --ocamlgraph 9286b375c005d1d504a1def0c5986f54c7f12251 --url ocamlfind,git@git.frama-c.com:bobot/ocamlfind.git + - nix/frama-ci.sh build -A frama-c.wp-qualif tags: - except: - - tags - retry: 2 + - nix allow_failure: true -frama-c-internal: - stage: distrib_and_compatibility - script: - - ~oci/oci/bin/bf_client.native run --socket ~oci/data/oci-data/oci.socket --frama-c $CI_BUILD_REF --branch $CI_BUILD_REF_NAME frama-c-internal --cppo 07d2bcee50670aecae7e094d92f68fd18314073a --ocamlgraph 9286b375c005d1d504a1def0c5986f54c7f12251 --url ocamlfind,git@git.frama-c.com:bobot/ocamlfind.git - tags: - only: - - master - - stable/silicium - except: - - tags - retry: 2 - -frama-c-distrib: - stage: distrib_and_compatibility +genassigns: + stage: tests + variables: + CURRENT: $CI_COMMIT_REF_NAME + DEFAULT: "master" + OCAML: "4_05" + FRAMA_CI_OPT: "--override frama-c:$CI_COMMIT_REF_NAME,$CI_COMMIT_SHA" script: - - ~oci/oci/bin/bf_client.native run --socket ~oci/data/oci-data/oci.socket --frama-c $CI_BUILD_REF --branch $CI_BUILD_REF_NAME frama-c-distrib --cppo 07d2bcee50670aecae7e094d92f68fd18314073a --ocamlgraph 9286b375c005d1d504a1def0c5986f54c7f12251 --url ocamlfind,git@git.frama-c.com:bobot/ocamlfind.git + - nix/frama-ci.sh build -A genassigns.tests tags: - except: - - tags - retry: 2 + - nix - -Genassigns: - stage: frama_c_and_plugins +counter-examples: + stage: tests + variables: + CURRENT: $CI_COMMIT_REF_NAME + DEFAULT: "master" + OCAML: "4_05" + FRAMA_CI_OPT: "--override frama-c:$CI_COMMIT_REF_NAME,$CI_COMMIT_SHA" script: - - ~oci/oci/bin/bf_client.native run --socket ~oci/data/oci-data/oci.socket --frama-c $CI_BUILD_REF --branch $CI_BUILD_REF_NAME Genassigns --cppo 07d2bcee50670aecae7e094d92f68fd18314073a --ocamlgraph 9286b375c005d1d504a1def0c5986f54c7f12251 --url ocamlfind,git@git.frama-c.com:bobot/ocamlfind.git + - nix/frama-ci.sh build -A counter-examples.tests tags: - except: - - tags - retry: 2 + - nix -Mthread: - stage: frama_c_and_plugins +acsl-importer: + stage: tests + variables: + CURRENT: $CI_COMMIT_REF_NAME + DEFAULT: "master" + OCAML: "4_05" + FRAMA_CI_OPT: "--override frama-c:$CI_COMMIT_REF_NAME,$CI_COMMIT_SHA" script: - - ~oci/oci/bin/bf_client.native run --socket ~oci/data/oci-data/oci.socket --frama-c $CI_BUILD_REF --branch $CI_BUILD_REF_NAME Mthread --cppo 07d2bcee50670aecae7e094d92f68fd18314073a --ocamlgraph 9286b375c005d1d504a1def0c5986f54c7f12251 --url ocamlfind,git@git.frama-c.com:bobot/ocamlfind.git + - nix/frama-ci.sh build -A acsl-importer.tests tags: - except: - - tags - retry: 2 + - nix -a3export: - stage: frama_c_and_plugins +volatile: + stage: tests + variables: + CURRENT: $CI_COMMIT_REF_NAME + DEFAULT: "master" + OCAML: "4_05" + FRAMA_CI_OPT: "--override frama-c:$CI_COMMIT_REF_NAME,$CI_COMMIT_SHA" script: - - ~oci/oci/bin/bf_client.native run --socket ~oci/data/oci-data/oci.socket --frama-c $CI_BUILD_REF --branch $CI_BUILD_REF_NAME a3export --cppo 07d2bcee50670aecae7e094d92f68fd18314073a --ocamlgraph 9286b375c005d1d504a1def0c5986f54c7f12251 --url ocamlfind,git@git.frama-c.com:bobot/ocamlfind.git + - nix/frama-ci.sh build -A volatile.tests tags: - except: - - tags - retry: 2 + - nix -PathCrawler: - stage: frama_c_and_plugins +E-ACSL: + stage: tests + variables: + CURRENT: $CI_COMMIT_REF_NAME + DEFAULT: "master" + OCAML: "4_05" + FRAMA_CI_OPT: "--override frama-c:$CI_COMMIT_REF_NAME,$CI_COMMIT_SHA" script: - - ~oci/oci/bin/bf_client.native run --socket ~oci/data/oci-data/oci.socket --frama-c $CI_BUILD_REF --branch $CI_BUILD_REF_NAME PathCrawler --cppo 07d2bcee50670aecae7e094d92f68fd18314073a --ocamlgraph 9286b375c005d1d504a1def0c5986f54c7f12251 --url ocamlfind,git@git.frama-c.com:bobot/ocamlfind.git + - nix/frama-ci.sh build -A e-acsl.tests tags: - except: - - tags - retry: 2 + - nix Security: - stage: frama_c_and_plugins + stage: tests + variables: + CURRENT: $CI_COMMIT_REF_NAME + DEFAULT: "master" + OCAML: "4_05" + FRAMA_CI_OPT: "--override frama-c:$CI_COMMIT_REF_NAME,$CI_COMMIT_SHA" script: - - ~oci/oci/bin/bf_client.native run --socket ~oci/data/oci-data/oci.socket --frama-c $CI_BUILD_REF --branch $CI_BUILD_REF_NAME Security --cppo 07d2bcee50670aecae7e094d92f68fd18314073a --ocamlgraph 9286b375c005d1d504a1def0c5986f54c7f12251 --url ocamlfind,git@git.frama-c.com:bobot/ocamlfind.git + - nix/frama-ci.sh build -A security.tests tags: - except: - - tags - retry: 2 + - nix -E-ACSL: - stage: frama_c_and_plugins +CFP: + stage: tests + variables: + CURRENT: $CI_COMMIT_REF_NAME + DEFAULT: "master" + OCAML: "4_05" + FRAMA_CI_OPT: "--override frama-c:$CI_COMMIT_REF_NAME,$CI_COMMIT_SHA" script: - - ~oci/oci/bin/bf_client.native run --socket ~oci/data/oci-data/oci.socket --frama-c $CI_BUILD_REF --branch $CI_BUILD_REF_NAME E-ACSL --cppo 07d2bcee50670aecae7e094d92f68fd18314073a --ocamlgraph 9286b375c005d1d504a1def0c5986f54c7f12251 --url ocamlfind,git@git.frama-c.com:bobot/ocamlfind.git + - nix/frama-ci.sh build -A context-from-precondition.tests tags: - except: - - tags - allow_failure: true - retry: 2 + - nix -context-from-precondition: - stage: frama_c_and_plugins +internal: + stage: distrib_and_compatibility + variables: + CURRENT: $CI_COMMIT_REF_NAME + DEFAULT: "master" + OCAML: "4_05" + FRAMA_CI_OPT: "--override frama-c:$CI_COMMIT_REF_NAME,$CI_COMMIT_SHA" script: - - ~oci/oci/bin/bf_client.native run --socket ~oci/data/oci-data/oci.socket --frama-c $CI_BUILD_REF --branch $CI_BUILD_REF_NAME context-from-precondition --cppo 07d2bcee50670aecae7e094d92f68fd18314073a --ocamlgraph 9286b375c005d1d504a1def0c5986f54c7f12251 --url ocamlfind,git@git.frama-c.com:bobot/ocamlfind.git + - nix/frama-ci.sh build -A frama-c.internal tags: - except: - - tags - retry: 2 + - nix -open-source-case-studies: - stage: frama_c_and_plugins +.build_template: &frama-c-ocaml + stage: distrib_and_compatibility script: - - ~oci/oci/bin/bf_client.native run --socket ~oci/data/oci-data/oci.socket --frama-c $CI_BUILD_REF --url open-source-case-studies,git@git.frama-c.com:frama-c/open-source-case-studies.git --commit open-source-case-studies,master open-source-case-studies --cppo 07d2bcee50670aecae7e094d92f68fd18314073a --ocamlgraph 9286b375c005d1d504a1def0c5986f54c7f12251 --url ocamlfind,git@git.frama-c.com:bobot/ocamlfind.git + - nix/frama-ci.sh build -A frama-c.installed tags: - except: - - tags - when: manual - retry: 2 + - nix + + +frama-c-ocaml-4.02: + variables: + CURRENT: $CI_COMMIT_REF_NAME + DEFAULT: "master" + OCAML: "4_02" + FRAMA_CI_OPT: "--override frama-c:$CI_COMMIT_REF_NAME,$CI_COMMIT_SHA" + <<: *frama-c-ocaml -ACSL-importer: - stage: frama_c_and_plugins +frama-c-ocaml-4.03: + variables: + CURRENT: $CI_COMMIT_REF_NAME + DEFAULT: "master" + OCAML: "4_03" + FRAMA_CI_OPT: "--override frama-c:$CI_COMMIT_REF_NAME,$CI_COMMIT_SHA" + <<: *frama-c-ocaml + +frama-c-ocaml-4.04: + variables: + CURRENT: $CI_COMMIT_REF_NAME + DEFAULT: "master" + OCAML: "4_04" + FRAMA_CI_OPT: "--override frama-c:$CI_COMMIT_REF_NAME,$CI_COMMIT_SHA" + <<: *frama-c-ocaml + +frama-c-ocaml-4.06: + variables: + CURRENT: $CI_COMMIT_REF_NAME + DEFAULT: "master" + OCAML: "4_06" + FRAMA_CI_OPT: "--override frama-c:$CI_COMMIT_REF_NAME,$CI_COMMIT_SHA" + <<: *frama-c-ocaml + +frama-c-ocaml-4.07: + variables: + CURRENT: $CI_COMMIT_REF_NAME + DEFAULT: "master" + OCAML: "4_07" + FRAMA_CI_OPT: "--override frama-c:$CI_COMMIT_REF_NAME,$CI_COMMIT_SHA" + <<: *frama-c-ocaml + +caveat-importer: + stage: tests + variables: + CURRENT: $CI_COMMIT_REF_NAME + DEFAULT: "master" + OCAML: "4_05" + FRAMA_CI_OPT: "--override frama-c:$CI_COMMIT_REF_NAME,$CI_COMMIT_SHA" script: - - ~oci/oci/bin/bf_client.native run --socket ~oci/data/oci-data/oci.socket --frama-c $CI_BUILD_REF --branch $CI_BUILD_REF_NAME ACSL-importer --cppo 07d2bcee50670aecae7e094d92f68fd18314073a --ocamlgraph 9286b375c005d1d504a1def0c5986f54c7f12251 --url ocamlfind,git@git.frama-c.com:bobot/ocamlfind.git + - nix/frama-ci.sh build -A caveat-importer.tests tags: - except: - - tags - retry: 2 + - nix -Caveat-importer: - stage: frama_c_and_plugins +mthread: + stage: tests + variables: + CURRENT: $CI_COMMIT_REF_NAME + DEFAULT: "master" + OCAML: "4_05" + FRAMA_CI_OPT: "--override frama-c:$CI_COMMIT_REF_NAME,$CI_COMMIT_SHA" script: - - ~oci/oci/bin/bf_client.native run --socket ~oci/data/oci-data/oci.socket --frama-c $CI_BUILD_REF --branch $CI_BUILD_REF_NAME Caveat-importer --cppo 07d2bcee50670aecae7e094d92f68fd18314073a --ocamlgraph 9286b375c005d1d504a1def0c5986f54c7f12251 --url ocamlfind,git@git.frama-c.com:bobot/ocamlfind.git + - nix/frama-ci.sh build -A mthread.tests tags: - except: - - tags - retry: 2 + - nix -Volatile: - stage: frama_c_and_plugins +pathcrawler: + stage: tests + variables: + CURRENT: $CI_COMMIT_REF_NAME + DEFAULT: "master" + OCAML: "4_05" + FRAMA_CI_OPT: "--override frama-c:$CI_COMMIT_REF_NAME,$CI_COMMIT_SHA" script: - - ~oci/oci/bin/bf_client.native run --socket ~oci/data/oci-data/oci.socket --frama-c $CI_BUILD_REF --branch $CI_BUILD_REF_NAME Volatile --cppo 07d2bcee50670aecae7e094d92f68fd18314073a --ocamlgraph 9286b375c005d1d504a1def0c5986f54c7f12251 --url ocamlfind,git@git.frama-c.com:bobot/ocamlfind.git + - nix/frama-ci.sh build -A pathcrawler.tests tags: - except: - - tags - retry: 2 + - nix diff --git a/ALL_VERSIONS b/ALL_VERSIONS index 127fa685225b133394702ffd2819c5d442a72a21..d9447f7b7d320386cd109d9acaaefc53da5ca3c8 100644 --- a/ALL_VERSIONS +++ b/ALL_VERSIONS @@ -1,5 +1,6 @@ Version number Date of release Notes ============== =============== ===== +18.0 (Argon) 2018, November 29 Chlorine-20180502 2018, July 06 Bug fixed Chlorine-20180501 2018, June 01 Sulfur-20171101 2017, November 28 diff --git a/Changelog b/Changelog index 83bb566e5509290a1ceb7c67cd3aa0807ff9d94b..d95a4f95aa16899872a7884c3f1e4a8fe818cc8f 100644 --- a/Changelog +++ b/Changelog @@ -17,6 +17,14 @@ Open Source Release <next-release> ################################## +- Eva [2019/01/10] Improved precision on nested loops (by postponing + the widening on inner loops according to -eva-widening-period). +- Kernel [2019/01/03] Add attributes for loop statements to allow + distinguishing between for, while and dowhile loops. +-! Kernel [2019/01/03] Add statement attributes (sattr) to the AST. They + are not printed by default, use -kernel-msg-key printer:attrs +-! Kernel [2019/01/03] Improved precision of integer abstract bitwise + operators. ################################ Open Source Release 18.0 (Argon) @@ -69,6 +77,7 @@ o! Constant Propagation [2018/09/12] Removing Db API for Constant Propagation integer types when an alarm is emitted. - Metrics [2018/09/06] Add option -metrics-used-files, to help identify unnecessary files given in the command line +- RTE [2018/09/05] Remove option -rte-precond. - Eva [2018/08/31] Supports the ACSL functions \min and \max. - Eva [2018/08/30] Fixes the alarms on subtractions and comparisons of pointers on weak bases (created by allocations in loops). diff --git a/INSTALL.md b/INSTALL.md index 8cf06f616b8e35744731164d784424fbeb15b921..4fdc7fd8b309cc4cb7bbe1d53f719240657d6fa8 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -240,8 +240,8 @@ Arch Linux: `yaourt -S frama-c` 6. Optionally, test your installation by running: - frama-c -val tests/misc/CruiseControl*.c - frama-c-gui -val tests/misc/CruiseControl*.c # if frama-c-gui is available + frama-c -eva tests/misc/CruiseControl*.c + frama-c-gui -eva tests/misc/CruiseControl*.c # if frama-c-gui is available ### Full Compilation Guide @@ -313,8 +313,8 @@ This step is optional. Test your installation by running: - frama-c -val tests/misc/CruiseControl*.c - frama-c-gui -val tests/misc/CruiseControl*.c (if frama-c-gui is available) + frama-c -eva tests/misc/CruiseControl*.c + frama-c-gui -eva tests/misc/CruiseControl*.c (if frama-c-gui is available) diff --git a/Makefile b/Makefile index 983ae994ecc605769b3f0b70d0e5a69786920b8b..f46ae3125ffa34369d154fae7bace42882fa2aac 100644 --- a/Makefile +++ b/Makefile @@ -2,7 +2,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # @@ -189,7 +189,7 @@ THEME_ICONS_FLAT:= \ $(addprefix share/theme/flat/,$(THEME_ICON_NAMES)) ROOT_LIBC_DIR:= share/libc -LIBC_SUBDIRS:= sys netinet linux net arpa +LIBC_SUBDIRS:= sys netinet net arpa LIBC_DIR:= $(ROOT_LIBC_DIR) $(addprefix $(ROOT_LIBC_DIR)/,$(LIBC_SUBDIRS)) LIBC_FILES:= \ $(wildcard share/*.h share/*.c) \ @@ -253,10 +253,14 @@ DISTRIB_FILES:=\ VERSION VERSION_CODENAME $(wildcard licenses/*) \ $(LIBC_FILES) \ share/analysis-scripts/cmd-dep.sh \ + share/analysis-scripts/concat-csv.sh \ + $(wildcard share/analysis-scripts/examples/*) \ + share/analysis-scripts/find_fun.py \ share/analysis-scripts/flamegraph.pl \ share/analysis-scripts/frama-c.mk \ share/analysis-scripts/list_files.py \ share/analysis-scripts/parse-coverage.sh \ + share/analysis-scripts/summary.sh \ share/analysis-scripts/README.md \ share/analysis-scripts/template.mk \ $(wildcard share/emacs/*.el) share/autocomplete_frama-c \ @@ -371,7 +375,7 @@ ifeq ("$(DEVELOPMENT)","yes") all:: share/.gitignore endif -clean:: +clean_share_link: if test -f share/.gitignore; then \ for link in $$(cat share/.gitignore); do \ if test -L share$$link; then \ @@ -383,6 +387,8 @@ clean:: rm share/.gitignore; \ fi +clean:: clean_share_link + ############## # Ocamlgraph # ############## @@ -425,6 +431,7 @@ LIB_CMO =\ src/libraries/datatype/type \ src/libraries/datatype/descr \ src/libraries/utils/filepath \ + src/libraries/utils/sanitizer \ src/libraries/utils/pretty_utils \ src/libraries/utils/hook \ src/libraries/utils/bag \ @@ -679,8 +686,59 @@ STARTUP_CMX=$(STARTUP_CMO:.cmo=.cmx) WTOOLKIT= \ wutil widget wbox wfile wpane wpalette wtext wtable +ifeq ($(strip $(GTKSOURCEVIEW)),lablgtk3.sourceview3) + +src/plugins/gui/GSourceView.ml: src/plugins/gui/GSourceView3.ml.in + $(CP) $< $@ + $(CHMOD_RO) $@ + +src/plugins/gui/GSourceView.mli: src/plugins/gui/GSourceView3.mli.in + $(CP) $< $@ + $(CHMOD_RO) $@ + +else +src/plugins/gui/GSourceView.ml: src/plugins/gui/GSourceView2.ml.in + $(CP) $< $@ + $(CHMOD_RO) $@ + +src/plugins/gui/GSourceView.mli: src/plugins/gui/GSourceView2.mli.in + $(CP) $< $@ + $(CHMOD_RO) $@ + +endif + +SOURCEVIEWCOMPAT:=GSourceView +GENERATED+=src/plugins/gui/GSourceView.ml src/plugins/gui/GSourceView.mli + +DGRAPHCOMPAT:= +ifeq ($(HAS_GNOMECANVAS),no) +DGRAPHCOMPAT:=dgraph +src/plugins/gui/dgraph.ml: src/plugins/gui/dgraph.ml.in + $(CP) $< $@ + $(CHMOD_RO) $@ +src/plugins/gui/dgraph.mli: src/plugins/gui/dgraph.mli.in + $(CP) $< $@ + $(CHMOD_RO) $@ + +GENERATED+=src/plugins/gui/dgraph.ml src/plugins/gui/dgraph.mli +endif + +ifeq ($(LABLGTK),lablgtk3) +src/plugins/gui/gtk_compat.ml: src/plugins/gui/gtk_compat.3.ml + $(CP) $< $@ + $(CHMOD_RO) $@ +else +src/plugins/gui/gtk_compat.ml: src/plugins/gui/gtk_compat.2.ml + $(CP) $< $@ + $(CHMOD_RO) $@ +endif +GENERATED+=src/plugins/gui/gtk_compat.ml + SINGLE_GUI_CMO:= \ + gtk_compat \ $(WTOOLKIT) \ + $(SOURCEVIEWCOMPAT) \ + $(DGRAPHCOMPAT) \ gui_parameters \ gtk_helper gtk_form \ source_viewer pretty_source source_manager book_manager \ @@ -733,7 +791,12 @@ PLUGIN_NAME:=Callgraph PLUGIN_DISTRIBUTED:=yes PLUGIN_DIR:=src/plugins/callgraph PLUGIN_CMO:= options journalize subgraph cg services uses register +#GTK3: no DGraph available. +ifeq ($(HAS_GNOMECANVAS),yes) PLUGIN_GUI_CMO:=cg_viewer +else +PLUGIN_GUI_CMO:= +endif PLUGIN_CMI:= callgraph_api PLUGIN_INTERNAL_TEST:=yes PLUGIN_TESTS_DIRS:=callgraph @@ -864,6 +927,7 @@ PLUGIN_GUI_CMO:=$(VALUE_GUI_AUX) gui_files/gui_callstacks_manager \ gui_files/gui_red gui_files/register_gui PLUGIN_INTERNAL_TEST:= yes +PLUGIN_TESTS_LIB=tests/float/fval_test.ml PLUGIN_DISTRIBUTED:=yes VALUE_TYPES:=$(addprefix src/plugins/value_types/,\ cilE cvalue precise_locs value_types widen_type) @@ -898,6 +962,11 @@ PLUGIN_CMO:= options generator rte visit register PLUGIN_DISTRIBUTED:=yes PLUGIN_INTERNAL_TEST:=yes PLUGIN_TESTS_DIRS:=rte rte_manual +PLUGIN_TESTS_LIB:=\ + tests/rte/my_annotation/my_annotation.ml \ + tests/rte/rte_api/rte_get_annot.ml \ + tests/rte/compute_annot/compute_annot.ml \ + tests/rte/my_annot_proxy/my_annot_proxy.ml $(eval $(call include_generic_plugin_Makefile,$(PLUGIN_NAME))) ################# @@ -942,6 +1011,7 @@ $(eval $(call include_generic_plugin_Makefile,$(PLUGIN_NAME))) PLUGIN_ENABLE:=$(ENABLE_CONSTANT_PROPAGATION) PLUGIN_NAME:=Constant_Propagation PLUGIN_DIR:=src/plugins/constant_propagation +PLUGIN_TESTS_LIB:=tests/constant_propagation/introduction_of_non_explicit_cast.ml PLUGIN_CMO:= propagationParameters \ api PLUGIN_DISTRIBUTED:=yes @@ -1005,6 +1075,8 @@ $(eval $(call include_generic_plugin_Makefile,$(PLUGIN_NAME))) PLUGIN_ENABLE:=$(ENABLE_PDG) PLUGIN_NAME:=Pdg PLUGIN_DIR:=src/plugins/pdg +PLUGIN_TESTS_LIB:=tests/pdg/dyn_dpds.ml \ + tests/pdg/sets.ml PLUGIN_CMO:= pdg_parameters \ ctrlDpds \ pdg_state \ @@ -1033,6 +1105,8 @@ $(eval $(call include_generic_plugin_Makefile,$(PLUGIN_NAME))) PLUGIN_ENABLE:=$(ENABLE_SCOPE) PLUGIN_NAME:=Scope PLUGIN_DIR:=src/plugins/scope +PLUGIN_TESTS_LIB:=tests/scope/bts971.ml \ + tests/scope/zones.ml PLUGIN_CMO:= datascope zones defs PLUGIN_GUI_CMO:=dpds_gui PLUGIN_DEPENDENCIES:=Eva Inout @@ -1164,6 +1238,16 @@ bin/toplevel.opt$(EXE): $(ALL_BATCH_CMX) $(GEN_OPT_LIBS) \ $(PRINT_LINKING) $@ $(OCAMLOPT) $(OLINKFLAGS) -o $@ $(OPT_LIBS) $(ALL_BATCH_CMX) +LIB_KERNEL_CMO= $(filter-out src/kernel_internals/runtime/gui_init.cmo, $(CMO)) +LIB_KERNEL_CMX= $(filter-out src/kernel_internals/runtime/gui_init.cmx, $(CMX)) + +lib/fc/frama-c.cma: $(LIB_KERNEL_CMO) $(GEN_OPT_LIBS) $(LIB_KERNEL_CMX) lib/fc/META.frama-c + $(PRINT_LINKING) $@ and lib/fc/frama-c.cmxa + $(MKDIR) $(FRAMAC_LIB) + $(OCAMLMKLIB) -o lib/fc/frama-c $(OPT_LIBS) $(LIB_KERNEL_CMO) $(LIB_KERNEL_CMX) + +lib/fc/frama-c.cmxa: lib/fc/frama-c.cma + #################### # (Ocaml) Toplevel # #################### @@ -1331,17 +1415,18 @@ acsl_tests: byte $(PRINT_EXEC) acsl_tests find doc/speclang -name \*.c -exec ./bin/toplevel.byte$(EXE) {} \; > /dev/null -LONELY_TESTS_ML_FILES=$(wildcard $(TEST_DIRS_AS_PLUGIN:%=tests/%/*.ml)) -LONELY_TESTS_BYTE_FILES=$(LONELY_TESTS_ML_FILES:%.ml=%.cmo) -LONELY_TESTS_OPT_FILES=$(LONELY_TESTS_ML_FILES:%.ml=%.cmx) -LONELY_TESTS_DYN_FILES=$(LONELY_TESTS_ML_FILES:%.ml=%.cmxs) -$(LONELY_TESTS_BYTE_FILES): BFLAGS+=$(TEST_DIRS_AS_PLUGIN:%=-I tests/%) -$(LONELY_TESTS_OPT_FILES): OFLAGS+=$(TEST_DIRS_AS_PLUGIN:%=-I tests/%) -$(LONELY_TESTS_DYN_FILES): OFLAGS+=$(TEST_DIRS_AS_PLUGIN:%=-I tests/%) -.PRECIOUS: $(LONELY_TESTS_OPT_FILES) \ - $(LONELY_TESTS_DYN_FILES) \ - $(LONELY_TESTS_BYTE_FILES) \ - $(LONELY_TESTS_BYTE_FILES:%.cmo=%.cmi) +LONELY_TESTS_ML_FILES:=\ + $(shell find $(TEST_DIRS_AS_PLUGIN:%=tests/%) -name '*.ml') +$(foreach file,$(LONELY_TESTS_ML_FILES),\ + $(eval $(file:%.ml=%.cmo): BFLAGS+=-I $(dir $(file)))) +$(foreach file,$(LONELY_TESTS_ML_FILES),\ + $(eval $(file:%.ml=%.cmx): OFLAGS+=-I $(dir $(file)))) +$(foreach file,$(LONELY_TESTS_ML_FILES),\ + $(eval $(file:%.ml=%.cmxs): OFLAGS+=-I $(dir $(file)))) +.PRECIOUS: $(LONELY_TESTS_ML_FILES:%.ml=%.cmx) \ + $(LONELY_TESTS_DYN_FILES:%.ml=%.cmxs) \ + $(LONELY_TESTS_BYTE_FILES:%.ml=%.cmo) \ + $(LONELY_TESTS_BYTE_FILES:%.ml=%.cmi) bin/ocamldep_transitive_closure: devel_tools/ocamldep_transitive_closure.ml $(OCAMLOPT) -package ocamlgraph -package str -linkpkg -o $@ $< @@ -1791,6 +1876,7 @@ install-lib: clean-install $(PRINT_INSTALL) kernel API $(MKDIR) $(FRAMAC_LIBDIR) $(CP) $(LIB_BYTE_TO_INSTALL) $(LIB_OPT_TO_INSTALL) $(FRAMAC_LIBDIR) + $(CP) $(addprefix lib/fc/,dllframa-c.so libframa-c.a frama-c.cma frama-c.a frama-c.cmxa META.frama-c) $(FRAMAC_LIBDIR) install-doc-code: $(PRINT_INSTALL) API documentation @@ -1813,7 +1899,6 @@ install:: install-lib $(MKDIR) $(FRAMAC_DATADIR)/theme/flat $(MKDIR) $(FRAMAC_DATADIR)/libc/sys $(MKDIR) $(FRAMAC_DATADIR)/libc/netinet - $(MKDIR) $(FRAMAC_DATADIR)/libc/linux $(MKDIR) $(FRAMAC_DATADIR)/libc/net $(MKDIR) $(FRAMAC_DATADIR)/libc/arpa $(PRINT_INSTALL) shared files @@ -1825,13 +1910,19 @@ install:: install-lib $(FRAMAC_DATADIR) $(MKDIR) $(FRAMAC_DATADIR)/analysis-scripts $(CP) share/analysis-scripts/cmd-dep.sh \ + share/analysis-scripts/concat-csv.sh \ + share/analysis-scripts/find_fun.py \ share/analysis-scripts/flamegraph.pl \ share/analysis-scripts/frama-c.mk \ share/analysis-scripts/parse-coverage.sh \ share/analysis-scripts/README.md \ share/analysis-scripts/list_files.py \ + share/analysis-scripts/summary.sh \ share/analysis-scripts/template.mk \ $(FRAMAC_DATADIR)/analysis-scripts + $(MKDIR) $(FRAMAC_DATADIR)/analysis-scripts/examples + $(CP) share/analysis-scripts/examples/* \ + $(FRAMAC_DATADIR)/analysis-scripts/examples $(MKDIR) $(FRAMAC_DATADIR)/emacs $(CP) $(wildcard share/emacs/*.el) $(FRAMAC_DATADIR)/emacs $(CP) share/frama-c.rc $(ICONS) $(FRAMAC_DATADIR) @@ -1850,7 +1941,6 @@ install:: install-lib $(CP) share/libc/arpa/*.[ch] $(FRAMAC_DATADIR)/libc/arpa $(CP) share/libc/net/*.[ch] $(FRAMAC_DATADIR)/libc/net $(CP) share/libc/netinet/*.[ch] $(FRAMAC_DATADIR)/libc/netinet - $(CP) share/libc/linux/*.[ch] $(FRAMAC_DATADIR)/libc/linux $(PRINT_INSTALL) binaries $(CP) bin/toplevel.$(OCAMLBEST) $(BINDIR)/frama-c$(EXE) $(CP) bin/toplevel.byte$(EXE) $(BINDIR)/frama-c.byte$(EXE) @@ -2017,7 +2107,8 @@ check-headers: $(HDRCK) echo "Checking that distributed files do not use iso-8859..."; \ file --mime-encoding -f file_list_to_check.tmp | \ grep "iso-8859" \ - | $(SED) "s/^/error: invalid encoding in /;{q1}"; \ + | $(SED) "s/^/error: invalid encoding in /" \ + | ( ! grep "error: invalid encoding" ); \ else echo "command 'file' not found, skipping encoding checks"; \ fi $(HDRCK) \ @@ -2356,15 +2447,15 @@ clean-distrib: dist-clean create_lib_to_install_list = $(addprefix $(FRAMAC_LIB)/,$(call map,notdir,$(1))) -byte:: bin/toplevel.byte$(EXE) share/Makefile.dynamic_config \ +byte:: bin/toplevel.byte$(EXE) lib/fc/frama-c.cma share/Makefile.dynamic_config \ $(call create_lib_to_install_list,$(LIB_BYTE_TO_INSTALL)) \ - $(PLUGIN_META_LIST) + $(PLUGIN_META_LIST) lib/fc/META.frama-c -opt:: bin/toplevel.opt$(EXE) share/Makefile.dynamic_config \ +opt:: bin/toplevel.opt$(EXE) lib/fc/frama-c.cmxa share/Makefile.dynamic_config \ $(call create_lib_to_install_list,$(LIB_OPT_TO_INSTALL)) \ $(filter %.o %.cmi,\ $(call create_lib_to_install_list,$(LIB_BYTE_TO_INSTALL))) \ - $(PLUGIN_META_LIST) + $(PLUGIN_META_LIST) lib/fc/META.frama-c top: bin/toplevel.top$(EXE) \ $(call create_lib_to_install_list,$(LIB_BYTE_TO_INSTALL)) \ diff --git a/Makefile.generating b/Makefile.generating index a369e8ae688bdf5c7b4cf4707038da8b8b1b49a5..174a2b7bd4944525c884101148b7d1bf947bdb41 100644 --- a/Makefile.generating +++ b/Makefile.generating @@ -2,7 +2,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # @@ -41,6 +41,8 @@ tests/ptests_config: Makefile.generating share/Makefile.config $(CHMOD_RO) $@ ALL_LIBRARY_NAMES=$(shell ocamlfind query -r -p-format $(LIBRARY_NAMES) $(LIBRARY_NAMES_GUI)) +MAJOR_VERSION=$(shell $(SED) 's/^\([0-9]\+\)\..*/\1/' VERSION) +MINOR_VERSION=$(shell $(SED) 's/^[0-9]\+\.\([0-9]\+\).*/\1/' VERSION) $(CONFIG_FILE): $(CONFIG_FILE).in VERSION VERSION_CODENAME share/Makefile.config Makefile.generating configure.in $(SED) \ @@ -64,6 +66,8 @@ $(CONFIG_FILE): $(CONFIG_FILE).in VERSION VERSION_CODENAME share/Makefile.config -e "s|@OPTDOT@|$(OPTDOT)|" \ -e "s|@HAS_YOJSON@|$(if $(filter yes,$(HAS_YOJSON)),true,false)|" \ -e "s|@EXE@|$(EXE)|" \ + -e "s|@MAJOR_VERSION@|$(MAJOR_VERSION)|" \ + -e "s|@MINOR_VERSION@|$(MINOR_VERSION)|" \ $< > $@.tmp @touch -r $@.tmp $< $(CP_IF_DIFF) $@.tmp $@ @@ -205,6 +209,12 @@ ifeq ("$(DEVELOPMENT)","yes") all:: .merlin endif +lib/fc/META.frama-c: share/META.frama-c share/Makefile.config Makefile.generating + $(MKDIR) lib/fc/ + $(SED) $< -e "s/@REQUIRES/$(LIBRARY_NAMES)/" > $@ + +GENERATED += lib/fc/META.frama-c + # Local Variables: # mode: makefile diff --git a/README.md b/README.md index b3e8626a07754129acf3f849ad8c8c3538640d78..311311ec88e675bcba114a079bd908aa512a5064 100644 --- a/README.md +++ b/README.md @@ -57,7 +57,7 @@ The recommended usage for simple files is one of the following lines: frama-c-gui file.c Where `-<plugin>` is one of the several Frama-C plug-ins, -e.g. `-val`, or `-wp`, or `-metrics`, etc. +e.g. `-eva`, or `-wp`, or `-metrics`, etc. Plug-ins can also be run directly from the GUI. To list all plug-ins, run: diff --git a/bin/build-src-distrib.sh b/bin/build-src-distrib.sh index 67607a2e0835e5c71cbab3d6a56359f17830a6a4..111947be0a557a8aa3cd5d74275fc4987f32c2b5 100755 --- a/bin/build-src-distrib.sh +++ b/bin/build-src-distrib.sh @@ -36,7 +36,7 @@ FRAMAC_VERSION_CODENAME=$(cat VERSION_CODENAME) FRAMAC_VERSION_AND_CODENAME="${FRAMAC_VERSION}-${FRAMAC_VERSION_CODENAME}" TARGZ_FILENAME=frama-c-${FRAMAC_VERSION_AND_CODENAME}.tar.gz -VERSION_MODIFIER=$(cat VERSION | sed -e s/[A-Za-z]*-[0-9]*\\\(.*\\\)/\\1/) +VERSION_MODIFIER=$(cat VERSION | sed -e s/[0-9.]*\\\(.*\\\)/\\1/) if test -n "$VERSION_MODIFIER"; then FINAL_RELEASE=no; else FINAL_RELEASE=yes; fi @@ -313,7 +313,7 @@ case "${STEP}" in echo " - [$TARGZ_FILENAME](downloads/$TARGZ_FILENAME)" >> $WIKI_PAGE echo "" >> $WIKI_PAGE echo "## Manuals" >> $WIKI_PAGE - for f in "user-manual" "acsl-implementation" "value-analysis" "plugin-development-guide" "rte-manual" "wp-manual" "metrics-manual" "aorai-manual"; do + for f in "user-manual" "acsl-implementation" "eva-manual" "plugin-development-guide" "rte-manual" "wp-manual" "metrics-manual" "aorai-manual"; do echo "- [$f](manuals/$f-${FRAMAC_VERSION_AND_CODENAME}.pdf)" >> $WIKI_PAGE run "cp $MANUALS_DIR/$f.pdf $GITHUB_WIKI/manuals/$f-${FRAMAC_VERSION_AND_CODENAME}.pdf" run "git -C $GITHUB_WIKI add manuals/$f-${FRAMAC_VERSION_AND_CODENAME}.pdf" diff --git a/bin/developers-by-files.sh b/bin/developers-by-files.sh index 93f959d3b062080132e74522b633e935101de6e0..243e44b9ca5358fbb3a97c83593e1bef57c9745c 100755 --- a/bin/developers-by-files.sh +++ b/bin/developers-by-files.sh @@ -3,7 +3,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/bin/frama-c b/bin/frama-c index 6b918fd2926d34832952dcbc0c9dacf387ad90df..bbd1ca4a92948637a73e4e064a4e0344f53f0134 100755 --- a/bin/frama-c +++ b/bin/frama-c @@ -3,7 +3,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/bin/frama-c-config b/bin/frama-c-config index 9cd14c400d06bc466bc33c3766721af26a985dc4..9b70a6730f73da85d4c0ef85d9d1b2c67bf5971d 100755 --- a/bin/frama-c-config +++ b/bin/frama-c-config @@ -3,7 +3,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/bin/frama-c-gui b/bin/frama-c-gui index e60f5c809e8dce4711b0703a15ef21545cd4151a..b70c1b8f54a5b6caa12b3c86c82fc6543cc50f6b 100755 --- a/bin/frama-c-gui +++ b/bin/frama-c-gui @@ -3,7 +3,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/bin/frama-c-gui.byte b/bin/frama-c-gui.byte index 4ccc5fc3c0b61c77de7aca76fedfabec5fc7f92f..16a65b41eeb2dd6b82bbe0428585979e45c26468 100755 --- a/bin/frama-c-gui.byte +++ b/bin/frama-c-gui.byte @@ -3,7 +3,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/bin/frama-c-script b/bin/frama-c-script index da3742df5247a70f03b01d0a5b07d2ed7b21d55e..b46c6944edca65174b822f16b565189f6cc64d9f 100755 --- a/bin/frama-c-script +++ b/bin/frama-c-script @@ -3,7 +3,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # @@ -33,7 +33,7 @@ if [ $# -lt 1 ]; then echo "" echo " - make-template [dir]" echo " Interactively prepares a template for running analysis scripts," - echo " writing it to [dir/GNUmakefile]. [dir] is [.] if ommitted." + echo " writing it to [dir/GNUmakefile]. [dir] is [.] if omitted." echo "" echo " - make-path" echo " [for Frama-C developers and advanced users without Frama-C in the path]" @@ -49,6 +49,11 @@ if [ $# -lt 1 ]; then echo " Generates flamegraph.svg and flamegraph.html in [dir]" echo " (or in the FRAMAC_SESSION directory by default)." echo " Also opens it in a browser, unless variable NOGUI is set." + echo "" + echo " - find-fun <function-name> [dirs]" + echo " Lists files in [dirs] declaring or defining <function-name>" + echo " (defaults to PWD + /usr/include)." + echo " Heuristics-based: neither correct nor complete." exit fi @@ -188,6 +193,10 @@ case "$command" in shift; ${FRAMAC_SHARE}/analysis-scripts/list_files.py "$@"; ;; + "find-fun") + shift; + ${FRAMAC_SHARE}/analysis-scripts/find_fun.py "$@"; + ;; "flamegraph") shift; flamegraph "$@"; diff --git a/bin/frama-c.byte b/bin/frama-c.byte index 758f9da90fcb0eb738895c4781df0a50a8fe61c3..43e10b23f57f800a60962ed92946786bb38c1a73 100755 --- a/bin/frama-c.byte +++ b/bin/frama-c.byte @@ -3,7 +3,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/bin/frama-c.top b/bin/frama-c.top index 88158372025e40d2211f379c86976232556cdac2..7a149f2a74456a69741e219d055acafcd57d933a 100755 --- a/bin/frama-c.top +++ b/bin/frama-c.top @@ -3,7 +3,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/bin/local_export.sh b/bin/local_export.sh index cdac4fe533772ac1d2243b61ab0474980e4058b9..4f1e10eb7bfba0ad706c731bb2aa0863f93ffaaf 100644 --- a/bin/local_export.sh +++ b/bin/local_export.sh @@ -2,7 +2,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/bin/migration_scripts/aluminium2silicon.sh b/bin/migration_scripts/aluminium2silicon.sh index 72647a40813cc7046244113cd2a5ca3b406ca91f..7f7a4eb7cfbedf136fdc395a0e6ae445d59d40f0 100755 --- a/bin/migration_scripts/aluminium2silicon.sh +++ b/bin/migration_scripts/aluminium2silicon.sh @@ -3,7 +3,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/bin/migration_scripts/boron2carbon.sh b/bin/migration_scripts/boron2carbon.sh index 831a11f3da47bf9018053126042c06f957c4e8da..8b8b3ceec2953633d9468fc01011d768ab4e95a6 100755 --- a/bin/migration_scripts/boron2carbon.sh +++ b/bin/migration_scripts/boron2carbon.sh @@ -3,7 +3,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/bin/migration_scripts/carbon2nitrogen.sh b/bin/migration_scripts/carbon2nitrogen.sh index be6fb21b7920c04558dcb1ff06bf3b0c753140cd..42daa82f5dc12f58b6c8c10bbef61b4ade0c4905 100755 --- a/bin/migration_scripts/carbon2nitrogen.sh +++ b/bin/migration_scripts/carbon2nitrogen.sh @@ -3,7 +3,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/bin/migration_scripts/chlorine2argon.sh b/bin/migration_scripts/chlorine2argon.sh index 0c2d2a58fd439182bbe6fbfcc3d23f04b2137d1a..a010796bfd360277e043ea4c1362696090f974a9 100755 --- a/bin/migration_scripts/chlorine2argon.sh +++ b/bin/migration_scripts/chlorine2argon.sh @@ -3,7 +3,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/bin/migration_scripts/fluorine2neon.sh b/bin/migration_scripts/fluorine2neon.sh index c2791849cc2342ae72e5fd438c287277a6677c79..a13be5ef38fbad05c8e39bc21f001c1dcad3bafb 100755 --- a/bin/migration_scripts/fluorine2neon.sh +++ b/bin/migration_scripts/fluorine2neon.sh @@ -3,7 +3,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/bin/migration_scripts/lithium2beryllium.sh b/bin/migration_scripts/lithium2beryllium.sh index 7b03839b8aee5e4c6621fda83b332e5ae9154676..81da725617c6eb3270d20fe045dab83e0f6ebdf0 100755 --- a/bin/migration_scripts/lithium2beryllium.sh +++ b/bin/migration_scripts/lithium2beryllium.sh @@ -3,7 +3,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/bin/migration_scripts/magnesium2aluminium.sh b/bin/migration_scripts/magnesium2aluminium.sh index 2db830cf8c11855141db3797c5e0eddf0b11d601..b222dcc2f9365223b0785d370882fd2450a2a1b6 100755 --- a/bin/migration_scripts/magnesium2aluminium.sh +++ b/bin/migration_scripts/magnesium2aluminium.sh @@ -3,7 +3,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/bin/migration_scripts/neon2sodium.sh b/bin/migration_scripts/neon2sodium.sh index d8ffbdc05cc4b8a21422b3242d35368475b825d7..46d0904351693427578da8e7752aeaabcab1a610 100755 --- a/bin/migration_scripts/neon2sodium.sh +++ b/bin/migration_scripts/neon2sodium.sh @@ -3,7 +3,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/bin/migration_scripts/nitrogen2oxygen.sh b/bin/migration_scripts/nitrogen2oxygen.sh index 5f52bda0bd65a6e48abaf28d9662e5e423c28275..0808bb7dbb93ce290b938ef1c9ef229928de88da 100755 --- a/bin/migration_scripts/nitrogen2oxygen.sh +++ b/bin/migration_scripts/nitrogen2oxygen.sh @@ -3,7 +3,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/bin/migration_scripts/oxygen2fluorine.sh b/bin/migration_scripts/oxygen2fluorine.sh index 3d5bd058018bb375c337b95abb90e3a901453453..63e4bba7d2913157954c57c5dc04b783cc04767a 100755 --- a/bin/migration_scripts/oxygen2fluorine.sh +++ b/bin/migration_scripts/oxygen2fluorine.sh @@ -3,7 +3,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/bin/migration_scripts/phosphorus2sulfur.sh b/bin/migration_scripts/phosphorus2sulfur.sh index 400b953c2a19f52584a477657a4654e4fc23827b..6e0ae27792b1bf898698b72d82f87dffdf3db112 100755 --- a/bin/migration_scripts/phosphorus2sulfur.sh +++ b/bin/migration_scripts/phosphorus2sulfur.sh @@ -3,7 +3,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/bin/migration_scripts/silicon2phosphorus.sh b/bin/migration_scripts/silicon2phosphorus.sh index b72495c8a4e0d4655a4bb7ae074e78d8ea6d0750..a5ffae5bba6d87ee62833232dc466848beb5ef5c 100755 --- a/bin/migration_scripts/silicon2phosphorus.sh +++ b/bin/migration_scripts/silicon2phosphorus.sh @@ -3,7 +3,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/bin/migration_scripts/sodium2magnesium.sh b/bin/migration_scripts/sodium2magnesium.sh index ee4bf5a672a082c84de8d348bc947e0df9766384..a2f121c8cf7064aabf205e0b8b970fae6f0d645f 100755 --- a/bin/migration_scripts/sodium2magnesium.sh +++ b/bin/migration_scripts/sodium2magnesium.sh @@ -3,7 +3,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/bin/migration_scripts/sulfur2chlorine.sh b/bin/migration_scripts/sulfur2chlorine.sh index d2ee9da682bc4d45af4e9190c363ce9caa519417..f9710169d5a1549e116d99a6987f4d2c2b048f1d 100755 --- a/bin/migration_scripts/sulfur2chlorine.sh +++ b/bin/migration_scripts/sulfur2chlorine.sh @@ -3,7 +3,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/bin/test_all_plugins.sh b/bin/test_all_plugins.sh index 108cb1c37bf8c4e924329a00ebe2d7b5cb3da112..f1fe1811c914c25eda5a43dd952c67f186493b5c 100755 --- a/bin/test_all_plugins.sh +++ b/bin/test_all_plugins.sh @@ -3,7 +3,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/config.h.in b/config.h.in index 573fd99563a3230367c17ff646c8266f95752ec6..68114ae885e9005ad963539b511230bebafead47 100644 --- a/config.h.in +++ b/config.h.in @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/configure.in b/configure.in index bd9c9a010d412cff46fd8e5b9e979005f59cc462..988da1a7b0cada6cc5de981f4e790bc82aafdcb4 100644 --- a/configure.in +++ b/configure.in @@ -2,7 +2,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # INRIA (Institut National de Recherche en Informatique et en # @@ -741,7 +741,7 @@ plugin_require(from_analysis,callgraph) check_plugin(gui,src/plugins/gui,[support for gui],yes) plugin_require_external(gui,lablgtk) -plugin_require_external(gui,gnomecanvas) +plugin_use_external(gui,gnomecanvas) plugin_require_external(gui,gtksourceview) plugin_use_external(gui,dot) @@ -921,22 +921,46 @@ new_section "configure tools and libraries used by some plug-ins" # lablgtk2 ########## +define([ENABLE_LABLGTK3_HELP], + AC_HELP_STRING([--disable-lablgtk3], + [in case lablgtk2 and lablgtk3 are available, the default is to compile + against lablgtk3. Use this option to force compiling against lablgtk2])) + +AC_ARG_ENABLE( + lablgtk3,[ENABLE_LABLGTK3_HELP], + [ENABLE_LABLGTK3=$enableval],[ENABLE_LABLGTK3=yes]) + REQUIRE_LABLGTK="$REQUIRE_LABLGTK$REQUIRE_GNOMECANVAS" USE_LABLGTK="$USE_LABLGTK$USE_GNOMECANVAS" +LABLGTK_PATH="" + +if test "$ENABLE_LABLGTK3" = "yes"; then + LABLGTK_PATH=`ocamlfind query lablgtk3 | tr -d '\\r\\n'`; +fi + +if test "$LABLGTK_PATH" = ""; then + LABLGTK_VERSION=2 LABLGTK_PATH=`ocamlfind query lablgtk2 | tr -d '\\r\\n'` - if test "$LABLGTK_PATH" = "" -o "$LABLGTK_PATH" -ef "$OCAMLLIB/lablgtk2" ; then - echo "Ocamlfind -> using +lablgtk2.($LABLGTK_PATH,$OCAMLLIB/lablgtk2)" - LABLGTK_PATH=+lablgtk2 - LABLGTKPATH_FOR_CONFIGURE=$OCAMLLIB/lablgtk2 + if test "$LABLGTK_PATH" = "" -o \ + "$LABLGTK_PATH" -ef "$OCAMLLIB/lablgtk2" ; then + echo "Ocamlfind -> using +lablgtk2.($LABLGTK_PATH,$OCAMLLIB/lablgtk2)" + LABLGTK_PATH=+lablgtk2 + LABLGTKPATH_FOR_CONFIGURE=$OCAMLLIB/lablgtk2 else - echo "Ocamlfind -> using $LABLGTK_PATH" - LABLGTKPATH_FOR_CONFIGURE=$LABLGTK_PATH - fi + echo "Ocamlfind -> using $LABLGTK_PATH" + LABLGTKPATH_FOR_CONFIGURE=$LABLGTK_PATH + fi; +else + LABLGTK_VERSION=3 + echo "ocamlfind -> using $LABLGTK_PATH" + LABLGTKPATH_FOR_CONFIGURE=$LABLGTK_PATH; +fi configure_library([GTKSOURCEVIEW], - [$LABLGTKPATH_FOR_CONFIGURE/lablgtksourceview2.$LIB_SUFFIX], - [lablgtksourceview2.$LIB_SUFFIX not found], + [$LABLGTKPATH_FOR_CONFIGURE/lablgtksourceview2.$LIB_SUFFIX, + $LABLGTKPATH_FOR_CONFIGURE/lablgtksourceview3.$LIB_SUFFIX], + [lablgtksourceview not found], no) configure_library([GNOMECANVAS], @@ -991,6 +1015,7 @@ AC_SUBST(HAS_YOJSON) AC_SUBST(HAS_APRON) AC_SUBST(HAS_MPFR) AC_SUBST(HAS_LANDMARKS) +AC_SUBST(LABLGTK_VERSION) AC_SUBST(OCAMLBEST) AC_SUBST(OCAMLVERSION) AC_SUBST(OCAMLLIB) diff --git a/default.nix b/default.nix new file mode 100644 index 0000000000000000000000000000000000000000..e64150378a86d1a128776f31ba1f5912ea77af15 --- /dev/null +++ b/default.nix @@ -0,0 +1,15 @@ +# standalone derivation, for nix-build, nix-shell, etc +{ pkgs ? import <nixpkgs> {} }: +let + src = builtins.fetchGit { + "url" = ./.git; + "name" = "frama-c"; + "rev" = "ffa925f404779a3a0c4aacff5bd78b1c502def11"; + "ref" = "test-nix-fetchGit"; + }; + in + +pkgs.callPackage ./nix/default.nix { + opam2nix = pkgs.callPackage ../Frama-CI/opam2nix-packages.nix {}; + src = src; +} diff --git a/doc/Makefile b/doc/Makefile index de074ba66b8d858ba6ce46003caf5ed7d5b448be..9c59a4b6775dcf5996dfcb0658b53f27cebb11f9 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -2,7 +2,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # @@ -55,7 +55,7 @@ MANUALS=acsl #MANUALS that depend on the frama-c version VERSIONED_MANUALS=acsl-implementation aorai-manual rte-manual \ wp-manual metrics-manual user-manual \ - plugin-development-guide value-analysis + plugin-development-guide eva-manual FILES= $(addprefix manuals/, \ $(addsuffix -$(VERSION).pdf, $(VERSIONED_MANUALS)) \ diff --git a/doc/code/docgen.ml b/doc/code/docgen.ml index eb9be2be87495617d4ed7006bc0f3b3e86cd130e..31fa061f8b6f83ae9f745c3f6af26605ddb6bb4a 100644 --- a/doc/code/docgen.ml +++ b/doc/code/docgen.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/doc/code/intro_kernel_plugin.txt b/doc/code/intro_kernel_plugin.txt index 577af241540f45ee7662277e4c655d1417da13f7..ff0fe91bf6331afd9280b50b71ad931c3e7ee27c 100644 --- a/doc/code/intro_kernel_plugin.txt +++ b/doc/code/intro_kernel_plugin.txt @@ -2,7 +2,7 @@ #* # #* This file is part of Frama-C. # #* # -#* Copyright (C) 2007-2018 # +#* Copyright (C) 2007-2019 # #* CEA (Commissariat à l'énergie atomique et aux énergies # #* alternatives) # #* # diff --git a/doc/code/intro_occurrence.txt b/doc/code/intro_occurrence.txt index 23d2b25b672f763d0f436f4ceda21b6c511364b9..9c1ed182b9204ef7942ecf4b430ca1f9a6780c6a 100644 --- a/doc/code/intro_occurrence.txt +++ b/doc/code/intro_occurrence.txt @@ -2,7 +2,7 @@ #* # #* This file is part of Frama-C. # #* # -#* Copyright (C) 2007-2018 # +#* Copyright (C) 2007-2019 # #* CEA (Commissariat à l'énergie atomique et aux énergies # #* alternatives) # #* # diff --git a/doc/code/intro_pdg.txt b/doc/code/intro_pdg.txt index 0fc3b3e8a6275ba5679a61b77f3dcfd8eec0fecb..aa55601f1992cdda3ab8ca533133d667db81729c 100644 --- a/doc/code/intro_pdg.txt +++ b/doc/code/intro_pdg.txt @@ -2,7 +2,7 @@ #* # #* This file is part of Frama-C. # #* # -#* Copyright (C) 2007-2018 # +#* Copyright (C) 2007-2019 # #* CEA (Commissariat à l'énergie atomique et aux énergies # #* alternatives) # #* # diff --git a/doc/code/intro_plugin.txt b/doc/code/intro_plugin.txt index 160d2b3be6e478b7b024f58d04971eb00f02bbb2..2d6889a51af0e250e70a2c976a75100e022e1241 100644 --- a/doc/code/intro_plugin.txt +++ b/doc/code/intro_plugin.txt @@ -2,7 +2,7 @@ #* # #* This file is part of Frama-C. # #* # -#* Copyright (C) 2007-2018 # +#* Copyright (C) 2007-2019 # #* CEA (Commissariat à l'énergie atomique et aux énergies # #* alternatives) # #* # diff --git a/doc/code/intro_plugin_D_and_S.txt b/doc/code/intro_plugin_D_and_S.txt index e0fec19ddbfcf8945b8b98d7a5177f75a0af94b3..670f184b8793afe09a8dce2b5cc4227bdc9e4e9f 100644 --- a/doc/code/intro_plugin_D_and_S.txt +++ b/doc/code/intro_plugin_D_and_S.txt @@ -2,7 +2,7 @@ #* # #* This file is part of Frama-C. # #* # -#* Copyright (C) 2007-2018 # +#* Copyright (C) 2007-2019 # #* CEA (Commissariat à l'énergie atomique et aux énergies # #* alternatives) # #* # diff --git a/doc/code/intro_plugin_default.txt b/doc/code/intro_plugin_default.txt index 9b2190a4a2117e29018711ddfa25d5e3488e6824..17c8d92915305a5622a187d1e5087fc0a5c15a61 100644 --- a/doc/code/intro_plugin_default.txt +++ b/doc/code/intro_plugin_default.txt @@ -2,7 +2,7 @@ #* # #* This file is part of Frama-C. # #* # -#* Copyright (C) 2007-2018 # +#* Copyright (C) 2007-2019 # #* CEA (Commissariat à l'énergie atomique et aux énergies # #* alternatives) # #* # diff --git a/doc/code/intro_scope.txt b/doc/code/intro_scope.txt index 7ebffff7012059e60881cf4ec3f88262a182aa5b..a6efd13396fb61efb8b4a84a8fcafd8349b95a04 100644 --- a/doc/code/intro_scope.txt +++ b/doc/code/intro_scope.txt @@ -2,7 +2,7 @@ #* # #* This file is part of Frama-C. # #* # -#* Copyright (C) 2007-2018 # +#* Copyright (C) 2007-2019 # #* CEA (Commissariat à l'énergie atomique et aux énergies # #* alternatives) # #* # diff --git a/doc/code/intro_slicing.txt b/doc/code/intro_slicing.txt index 99bfb9b66bfe6572ef5c5451df2dd8d476ac91fe..707f0988c8f85483899fac5d5f321339717b3c6c 100644 --- a/doc/code/intro_slicing.txt +++ b/doc/code/intro_slicing.txt @@ -2,7 +2,7 @@ #* # #* This file is part of Frama-C. # #* # -#* Copyright (C) 2007-2018 # +#* Copyright (C) 2007-2019 # #* CEA (Commissariat à l'énergie atomique et aux énergies # #* alternatives) # #* # diff --git a/doc/code/intro_sparecode.txt b/doc/code/intro_sparecode.txt index 7eb41c1788e9c37c702d99e2f81299181c7b76a6..683cafefc103f3dd9d56a6aede60bba28e0f2fb1 100644 --- a/doc/code/intro_sparecode.txt +++ b/doc/code/intro_sparecode.txt @@ -2,7 +2,7 @@ #* # #* This file is part of Frama-C. # #* # -#* Copyright (C) 2007-2018 # +#* Copyright (C) 2007-2019 # #* CEA (Commissariat à l'énergie atomique et aux énergies # #* alternatives) # #* # diff --git a/doc/code/style.css b/doc/code/style.css index ee67a9792ae07d1147882a0fa41a121e6fcbb762..2e1c896b1a29bbd2757eb11a545185858600fc42 100644 --- a/doc/code/style.css +++ b/doc/code/style.css @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/doc/code/toc_head.htm b/doc/code/toc_head.htm index 6bc6f6cdc507f532e3488d58558e759b125e84b2..d7aafb105b7dbabb1c601e2932a3e0403bda9a2b 100644 --- a/doc/code/toc_head.htm +++ b/doc/code/toc_head.htm @@ -2,7 +2,7 @@ <!-- --> <!-- This file is part of Frama-C. --> <!-- --> -<!-- Copyright (C) 2007-2018 --> +<!-- Copyright (C) 2007-2019 --> <!-- CEA (Commissariat à l'énergie atomique et aux énergies --> <!-- alternatives) --> <!-- --> diff --git a/doc/code/toc_tail.htm b/doc/code/toc_tail.htm index a6f39e6fc6a69d5790b8428ed0072debbc12bcfe..87ef71351dee6426b95db1d20943cab093f7e69b 100644 --- a/doc/code/toc_tail.htm +++ b/doc/code/toc_tail.htm @@ -2,7 +2,7 @@ <!-- --> <!-- This file is part of Frama-C. --> <!-- --> -<!-- Copyright (C) 2007-2018 --> +<!-- Copyright (C) 2007-2019 --> <!-- CEA (Commissariat à l'énergie atomique et aux énergies --> <!-- alternatives) --> <!-- --> diff --git a/doc/developer/developer.bib b/doc/developer/developer.bib index 69d4aa57560e3129b6e730607fce0edd325f2387..7f4c8c58ecdc729975a21be0a0379d7799336ce8 100644 --- a/doc/developer/developer.bib +++ b/doc/developer/developer.bib @@ -35,7 +35,7 @@ title = {{Frama-C}'s value analysis plug-in}, year = 2015, month = feb, - note = {\mbox{\url{http://frama-c.com/download/frama-c-value-analysis.pdf}}}, + note = {\mbox{\url{http://frama-c.com/download/frama-c-eva-manual.pdf}}}, } @misc{slicing, diff --git a/doc/opam-version-correspondence.md b/doc/opam-version-correspondence.md new file mode 100644 index 0000000000000000000000000000000000000000..345459b4e68fe34a9dffc2683ebd91eee63ea5af --- /dev/null +++ b/doc/opam-version-correspondence.md @@ -0,0 +1,19 @@ +Correspondence between versions of Frama-C opam packages +======================================================== + +This file lists the mapping between "old numbering" of opam packages and +"new numbering", including the atomic element name. + +20111001 - 7.0 (Nitrogen) +20120901 - 8.0 (Oxygen) +20130501 - 9.0 (Fluorine) +20130601 - 9.1 (Fluorine) +20140301 - 10.0 (Neon) +20150201 - 11.0 (Sodium) +20151002 - 12.1 (Magnesium) +20160502 - 13.1 (Aluminium) +20161101 - 14.0 (Silicon) +20170501 - 15.0 (Phosphorus) +20171101 - 16.0 (Sulfur) +20180501 - 17.0 (Chlorine) +20180502 - 17.1 (Chlorine) diff --git a/doc/rte/biblio.bib b/doc/rte/biblio.bib index 12f5a2484516bc23f15dc83d1b406a3304890270..0bb03befc467bd8b9dfa10a17be6d55dd555205e 100644 --- a/doc/rte/biblio.bib +++ b/doc/rte/biblio.bib @@ -21,7 +21,7 @@ howpublished={\url{http://manju.cs.berkeley.edu/cil/}} title = {Frama-C's value analysis plug-in}, author={Pascal Cuoq and Boris Yakobowski and Virgile Prevosto}, organization = {CEA List, Software Reliability Laboratory}, - note = {\url{http://frama-c.com/download/frama-c-value-analysis.pdf}} + note = {\url{http://frama-c.com/download/frama-c-eva-manual.pdf}} } @MANUAL{framacwp, diff --git a/doc/userman/userman.bib b/doc/userman/userman.bib index 0237983740a880d86e59ceeeb8992efc446a8f44..a8abde0581e886288dc4526765a1013c7ad2d742 100644 --- a/doc/userman/userman.bib +++ b/doc/userman/userman.bib @@ -4,7 +4,7 @@ title = {{Frama-C Plug-in Development Guide}}, year = 2015, month = feb, - note = {\newline \url{http://frama-c.cea.fr/download/plugin-developer.pdf}}, + note = {\newline \url{http://frama-c.com/download/frama-c-plugin-development-guide.pdf}}, } @manual{value, @@ -12,7 +12,7 @@ title = {{Frama-C}'s value analysis plug-in}, year = 2015, month = feb, - note = {\mbox{\url{http://frama-c.cea.fr/download/value-analysis.pdf}}}, + note = {\mbox{\url{http://frama-c.com/download/frama-c-eva-manual.pdf}}}, } @manual{acsl, @@ -109,5 +109,5 @@ note={Extended version of \cite{sefm12}}, author = {Julien Signoles}, year = {2015}, month = feb, - note = {\url{http://frama-c.com/eacsl}}, + note = {\url{http://frama-c.com/eacsl.html}}, } diff --git a/doc/value/examples/parametrizing/context-depth.1.log b/doc/value/examples/parametrizing/context-depth.1.log index 9e6e7392399b0f3582264593baedaa2546956e1e..3f4497589cbc27fa521ad5ceb14ae2f1b9a7ea87 100644 --- a/doc/value/examples/parametrizing/context-depth.1.log +++ b/doc/value/examples/parametrizing/context-depth.1.log @@ -1,8 +1,8 @@ [kernel] Parsing context-depth.c (with preprocessing) -[value] Analyzing an incomplete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization +[eva] Analyzing an incomplete application starting at main +[eva] Computing initial state +[eva] Initial state computed +[eva:initial-state] Values of globals at initialization s.v ∈ [--..--] .next ∈ {{ NULL ; &S_next_s[0] }} S_next_s[0].v ∈ [--..--] @@ -73,8 +73,7 @@ WELL_next_1_S_next_1_S_next_1_S_next_s[bits 0 to ..] ∈ {{ garbled mix of &{WELL_next_1_S_next_1_S_next_1_S_next_s} (origin: Well) }} -[value] Recording results for main -[value] done for function main -[value] ====== VALUES COMPUTED ====== -[value] Values at end of function main: +[eva] done for function main +[eva] ====== VALUES COMPUTED ====== +[eva:final-states] Values at end of function main: diff --git a/doc/value/examples/parametrizing/context-depth.2.log b/doc/value/examples/parametrizing/context-depth.2.log index e07139ddb890ddab5e0b4374424afb9065caf6b5..aa40ac4e166ab6994dcc729eda29c971fbc26b9c 100644 --- a/doc/value/examples/parametrizing/context-depth.2.log +++ b/doc/value/examples/parametrizing/context-depth.2.log @@ -1,8 +1,8 @@ [kernel] Parsing context-depth.c (with preprocessing) -[value] Analyzing an incomplete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization +[eva] Analyzing an incomplete application starting at main +[eva] Computing initial state +[eva] Initial state computed +[eva:initial-state] Values of globals at initialization s.v ∈ [--..--] .next ∈ {{ NULL ; &S_next_s[0] }} S_next_s[0].v ∈ [--..--] @@ -12,10 +12,9 @@ {{ garbled mix of &{WELL_next_0_S_next_0_S_next_s} (origin: Well) }} WELL_next_0_S_next_0_S_next_s[bits 0 to ..] ∈ - {{ garbled mix of &{WELL_next_0_S_next_0_S_next_s} - (origin: Well) }} -[value] Recording results for main -[value] done for function main -[value] ====== VALUES COMPUTED ====== -[value] Values at end of function main: + {{ garbled mix of &{WELL_next_0_S_next_0_S_next_s} + (origin: Well) }} +[eva] done for function main +[eva] ====== VALUES COMPUTED ====== +[eva:final-states] Values at end of function main: diff --git a/doc/value/examples/parametrizing/context-depth.3.log b/doc/value/examples/parametrizing/context-depth.3.log index 42accb342e6f5ef03146b5c0be69c011d95b87b4..796a0b6e08f3e0952ff512a2f7bad3f25e026eda 100644 --- a/doc/value/examples/parametrizing/context-depth.3.log +++ b/doc/value/examples/parametrizing/context-depth.3.log @@ -1,16 +1,15 @@ [kernel] Parsing context-depth.c (with preprocessing) -[value] Analyzing an incomplete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization +[eva] Analyzing an incomplete application starting at main +[eva] Computing initial state +[eva] Initial state computed +[eva:initial-state] Values of globals at initialization s.v ∈ [--..--] .next ∈ {{ &S_next_s[0] }} S_next_s[0].v ∈ [--..--] [0].next ∈ {{ &S_next_0_S_next_s[0] }} S_next_0_S_next_s[0].v ∈ [--..--] [0].next ∈ {0} -[value] Recording results for main -[value] done for function main -[value] ====== VALUES COMPUTED ====== -[value] Values at end of function main: +[eva] done for function main +[eva] ====== VALUES COMPUTED ====== +[eva:final-states] Values at end of function main: diff --git a/doc/value/examples/parametrizing/context-width.log b/doc/value/examples/parametrizing/context-width.log index 10cbdc4a728b83db06d3afebada8d0bcc58be329..9edcb21f15572a56426ca9304f0d6863bad55b3e 100644 --- a/doc/value/examples/parametrizing/context-width.log +++ b/doc/value/examples/parametrizing/context-width.log @@ -1,19 +1,20 @@ [kernel] Parsing context-width.c (with preprocessing) -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization +[eva] Analyzing a complete application starting at main +[eva] Computing initial state +[eva] Initial state computed +[eva:initial-state] Values of globals at initialization -[value] DUMPING STATE of file context-width.c line 3 - t ∈ {{ NULL ; &S_t[0] }} - S_t[0] ∈ {{ NULL ; &S_0_S_t[0] }} - [1] ∈ {{ NULL ; &S_1_S_t[0] }} - [2..4] ∈ {{ NULL ; &S_0_S_t[0] ; &S_1_S_t[0] }} - S_0_S_t[0..1] ∈ [--..--] - S_1_S_t[0..1] ∈ [--..--] - =END OF DUMP== -[value] Recording results for main -[value] done for function main -[value] ====== VALUES COMPUTED ====== -[value] Values at end of function main: +[eva] context-width.c:3: + Frama_C_dump_each: + # Cvalue domain: + t ∈ {{ NULL ; &S_t[0] }} + S_t[0] ∈ {{ NULL ; &S_0_S_t[0] }} + [1] ∈ {{ NULL ; &S_1_S_t[0] }} + [2..4] ∈ {{ NULL ; &S_0_S_t[0] ; &S_1_S_t[0] }} + S_0_S_t[0..1] ∈ [--..--] + S_1_S_t[0..1] ∈ [--..--] + ==END OF DUMP== +[eva] done for function main +[eva] ====== VALUES COMPUTED ====== +[eva:final-states] Values at end of function main: diff --git a/doc/value/examples/parametrizing/global-initial-values.log b/doc/value/examples/parametrizing/global-initial-values.log index d2adc0cb4371927ddafaf69e2482f772f9a91664..f8a0ada3b0ebfb0280ec51512ac60ffbef5d0556 100644 --- a/doc/value/examples/parametrizing/global-initial-values.log +++ b/doc/value/examples/parametrizing/global-initial-values.log @@ -1,14 +1,13 @@ [kernel] Parsing global-initial-values.c (with preprocessing) -[value] Analyzing an incomplete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization +[eva] Analyzing an incomplete application starting at main +[eva] Computing initial state +[eva] Initial state computed +[eva:initial-state] Values of globals at initialization s.i ∈ [--..--] .f ∈ [-3.40282346639e+38 .. 3.40282346639e+38] .p ∈ {{ NULL ; &S_p_s[0] }} S_p_s[0..1] ∈ [--..--] -[value] Recording results for main -[value] done for function main -[value] ====== VALUES COMPUTED ====== -[value] Values at end of function main: +[eva] done for function main +[eva] ====== VALUES COMPUTED ====== +[eva:final-states] Values at end of function main: diff --git a/doc/value/examples/parametrizing/ilevel.1.log b/doc/value/examples/parametrizing/ilevel.1.log index 22fb68c066d64df8ce7d4527797edf3489ee9204..c24bbec5ea55aafd4dd4ec002f046c27471d5397 100644 --- a/doc/value/examples/parametrizing/ilevel.1.log +++ b/doc/value/examples/parametrizing/ilevel.1.log @@ -1,9 +1,8 @@ [kernel] Parsing ilevel.c (with preprocessing) -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - Frama_C_entropy_source ∈ [--..--] +[eva] Analyzing a complete application starting at main +[eva] Computing initial state +[eva] Initial state computed +[eva:initial-state] Values of globals at initialization t[0] ∈ {2} [1] ∈ {3} [2] ∈ {5} @@ -16,14 +15,9 @@ [9] ∈ {27} [10] ∈ {29} [11] ∈ {31} -[value] computing for function Frama_C_interval <- main. - Called from ilevel.c:7. -[value] using specification for function Frama_C_interval -FRAMAC_SHARE/libc/__fc_builtin.h:50:[value] function Frama_C_interval: precondition got status valid. -[value] Done for function Frama_C_interval -[value] Recording results for main -[value] done for function main -[value] ====== VALUES COMPUTED ====== -[value] Values at end of function main: +[eva] using specification for function Frama_C_interval +[eva] done for function main +[eva] ====== VALUES COMPUTED ====== +[eva:final-states] Values at end of function main: Frama_C_entropy_source ∈ [--..--] __retres ∈ [2..31] diff --git a/doc/value/examples/parametrizing/ilevel.2.log b/doc/value/examples/parametrizing/ilevel.2.log index 602d5fbffe8bf7f083dd918bf406082be0945f68..49de84286e0f1c25406f1f449e8623c106750a82 100644 --- a/doc/value/examples/parametrizing/ilevel.2.log +++ b/doc/value/examples/parametrizing/ilevel.2.log @@ -1,9 +1,8 @@ [kernel] Parsing ilevel.c (with preprocessing) -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - Frama_C_entropy_source ∈ [--..--] +[eva] Analyzing a complete application starting at main +[eva] Computing initial state +[eva] Initial state computed +[eva:initial-state] Values of globals at initialization t[0] ∈ {2} [1] ∈ {3} [2] ∈ {5} @@ -16,14 +15,9 @@ [9] ∈ {27} [10] ∈ {29} [11] ∈ {31} -[value] computing for function Frama_C_interval <- main. - Called from ilevel.c:7. -[value] using specification for function Frama_C_interval -FRAMAC_SHARE/libc/__fc_builtin.h:50:[value] function Frama_C_interval: precondition got status valid. -[value] Done for function Frama_C_interval -[value] Recording results for main -[value] done for function main -[value] ====== VALUES COMPUTED ====== -[value] Values at end of function main: +[eva] using specification for function Frama_C_interval +[eva] done for function main +[eva] ====== VALUES COMPUTED ====== +[eva:final-states] Values at end of function main: Frama_C_entropy_source ∈ [--..--] __retres ∈ {2; 3; 5; 7; 11; 13; 17; 19; 23; 27; 29; 31} diff --git a/doc/value/examples/parametrizing/nor.1.log b/doc/value/examples/parametrizing/nor.1.log index d5c74d7bee81da0cb01468630c74817905ceb060..d9202d664a9fe97e59eaea38a4e1256f1bb8fbd9 100644 --- a/doc/value/examples/parametrizing/nor.1.log +++ b/doc/value/examples/parametrizing/nor.1.log @@ -1,38 +1,33 @@ [kernel] Parsing nor.c (with preprocessing) -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization +[eva] Analyzing a complete application starting at main +[eva] Computing initial state +[eva] Initial state computed +[eva:initial-state] Values of globals at initialization t[0..1999] ∈ {0} i ∈ {0} -[value] computing for function irrelevant_function <- main. - Called from nor.c:11. -[value] Semantic level unrolling superposing up to 100 states -[value] Semantic level unrolling superposing up to 200 states -[value] Semantic level unrolling superposing up to 300 states -[value] Semantic level unrolling superposing up to 400 states -[value] Semantic level unrolling superposing up to 500 states -[value] Semantic level unrolling superposing up to 600 states -[value] Semantic level unrolling superposing up to 700 states -[value] Semantic level unrolling superposing up to 800 states -[value] Semantic level unrolling superposing up to 900 states -[value] Semantic level unrolling superposing up to 1000 states -[value] Semantic level unrolling superposing up to 1100 states -[value] Semantic level unrolling superposing up to 1200 states -[value] Semantic level unrolling superposing up to 1300 states -[value] Semantic level unrolling superposing up to 1400 states -[value] Semantic level unrolling superposing up to 1500 states -[value] Semantic level unrolling superposing up to 1600 states -[value] Semantic level unrolling superposing up to 1700 states -[value] Semantic level unrolling superposing up to 1800 states -[value] Semantic level unrolling superposing up to 1900 states -[value] Semantic level unrolling superposing up to 2000 states -[value] Recording results for irrelevant_function -[value] Done for function irrelevant_function -[value] Recording results for main -[value] done for function main -[value] ====== VALUES COMPUTED ====== -[value] Values at end of function irrelevant_function: +[eva] Semantic level unrolling superposing up to 100 states +[eva] Semantic level unrolling superposing up to 200 states +[eva] Semantic level unrolling superposing up to 300 states +[eva] Semantic level unrolling superposing up to 400 states +[eva] Semantic level unrolling superposing up to 500 states +[eva] Semantic level unrolling superposing up to 600 states +[eva] Semantic level unrolling superposing up to 700 states +[eva] Semantic level unrolling superposing up to 800 states +[eva] Semantic level unrolling superposing up to 900 states +[eva] Semantic level unrolling superposing up to 1000 states +[eva] Semantic level unrolling superposing up to 1100 states +[eva] Semantic level unrolling superposing up to 1200 states +[eva] Semantic level unrolling superposing up to 1300 states +[eva] Semantic level unrolling superposing up to 1400 states +[eva] Semantic level unrolling superposing up to 1500 states +[eva] Semantic level unrolling superposing up to 1600 states +[eva] Semantic level unrolling superposing up to 1700 states +[eva] Semantic level unrolling superposing up to 1800 states +[eva] Semantic level unrolling superposing up to 1900 states +[eva] Semantic level unrolling superposing up to 2000 states +[eva] done for function main +[eva] ====== VALUES COMPUTED ====== +[eva:final-states] Values at end of function irrelevant_function: t[0] ∈ {0} [1] ∈ {1} [2] ∈ {2} @@ -2034,7 +2029,7 @@ [1998] ∈ {1998} [1999] ∈ {1999} i ∈ {2000} -[value] Values at end of function main: +[eva:final-states] Values at end of function main: t[0] ∈ {0} [1] ∈ {1} [2] ∈ {2} @@ -4038,4 +4033,4 @@ i ∈ {2000} __retres ∈ {143} -user time: 2.86s +user time: 0.61s diff --git a/doc/value/examples/parametrizing/nor.2.log b/doc/value/examples/parametrizing/nor.2.log index ed27ea556f97efb04f0887466f9c788d5a21311e..d79d6ad6a29371e5d6322a3cb2cb57eade5733ba 100644 --- a/doc/value/examples/parametrizing/nor.2.log +++ b/doc/value/examples/parametrizing/nor.2.log @@ -1,38 +1,33 @@ [kernel] Parsing nor.c (with preprocessing) -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization +[eva] Analyzing a complete application starting at main +[eva] Computing initial state +[eva] Initial state computed +[eva:initial-state] Values of globals at initialization t[0..1999] ∈ {0} i ∈ {0} -[value] computing for function irrelevant_function <- main. - Called from nor.c:11. -[value] Semantic level unrolling superposing up to 100 states -[value] Semantic level unrolling superposing up to 200 states -[value] Semantic level unrolling superposing up to 300 states -[value] Semantic level unrolling superposing up to 400 states -[value] Semantic level unrolling superposing up to 500 states -[value] Semantic level unrolling superposing up to 600 states -[value] Semantic level unrolling superposing up to 700 states -[value] Semantic level unrolling superposing up to 800 states -[value] Semantic level unrolling superposing up to 900 states -[value] Semantic level unrolling superposing up to 1000 states -[value] Semantic level unrolling superposing up to 1100 states -[value] Semantic level unrolling superposing up to 1200 states -[value] Semantic level unrolling superposing up to 1300 states -[value] Semantic level unrolling superposing up to 1400 states -[value] Semantic level unrolling superposing up to 1500 states -[value] Semantic level unrolling superposing up to 1600 states -[value] Semantic level unrolling superposing up to 1700 states -[value] Semantic level unrolling superposing up to 1800 states -[value] Semantic level unrolling superposing up to 1900 states -[value] Semantic level unrolling superposing up to 2000 states -[value] Recording results for irrelevant_function -[value] Done for function irrelevant_function -[value] Recording results for main -[value] done for function main -[value] ====== VALUES COMPUTED ====== -[value] Values at end of function main: +[eva] Semantic level unrolling superposing up to 100 states +[eva] Semantic level unrolling superposing up to 200 states +[eva] Semantic level unrolling superposing up to 300 states +[eva] Semantic level unrolling superposing up to 400 states +[eva] Semantic level unrolling superposing up to 500 states +[eva] Semantic level unrolling superposing up to 600 states +[eva] Semantic level unrolling superposing up to 700 states +[eva] Semantic level unrolling superposing up to 800 states +[eva] Semantic level unrolling superposing up to 900 states +[eva] Semantic level unrolling superposing up to 1000 states +[eva] Semantic level unrolling superposing up to 1100 states +[eva] Semantic level unrolling superposing up to 1200 states +[eva] Semantic level unrolling superposing up to 1300 states +[eva] Semantic level unrolling superposing up to 1400 states +[eva] Semantic level unrolling superposing up to 1500 states +[eva] Semantic level unrolling superposing up to 1600 states +[eva] Semantic level unrolling superposing up to 1700 states +[eva] Semantic level unrolling superposing up to 1800 states +[eva] Semantic level unrolling superposing up to 1900 states +[eva] Semantic level unrolling superposing up to 2000 states +[eva] done for function main +[eva] ====== VALUES COMPUTED ====== +[eva:final-states] Values at end of function main: Cannot filter: dumping raw memory (including unchanged variables) t[0] ∈ {0} [1] ∈ {1} @@ -2037,4 +2032,4 @@ Cannot filter: dumping raw memory (including unchanged variables) i ∈ {2000} __retres ∈ {143} -user time: 0.42s +user time: 0.26s diff --git a/doc/value/examples/parametrizing/out-of-bound.log b/doc/value/examples/parametrizing/out-of-bound.log index c1f36ff5958f923dab86e05cb70ae85c29acb50e..06f21f7998e676d93d8c108dbcd2b48ef71f4447 100644 --- a/doc/value/examples/parametrizing/out-of-bound.log +++ b/doc/value/examples/parametrizing/out-of-bound.log @@ -1,13 +1,13 @@ [kernel] Parsing out-of-bound.c (with preprocessing) -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization +[eva] Analyzing a complete application starting at main +[eva] Computing initial state +[eva] Initial state computed +[eva:initial-state] Values of globals at initialization t[0..9][0..9] ∈ {0} -out-of-bound.c:4:[kernel] warning: accessing out of bounds index. assert 12 < 10; -[value] Recording results for main -[value] done for function main -out-of-bound.c:4:[value] assertion 'Value,index_bound' got final status invalid. -[value] ====== VALUES COMPUTED ====== -[value] Values at end of function main: +[eva:alarm] out-of-bound.c:4: Warning: + accessing out of bounds index. assert 12 < 10; +[eva] done for function main +[eva] out-of-bound.c:4: assertion 'Eva,index_bound' got final status invalid. +[eva] ====== VALUES COMPUTED ====== +[eva:final-states] Values at end of function main: NON TERMINATING FUNCTION diff --git a/doc/value/examples/parametrizing/simple-main.log b/doc/value/examples/parametrizing/simple-main.log index 5b648abf0e905c6fddd6f8f38bed8fd7e3abb85e..d7defe1645a43850de824800f0e19a9bb6aff94f 100644 --- a/doc/value/examples/parametrizing/simple-main.log +++ b/doc/value/examples/parametrizing/simple-main.log @@ -1,20 +1,21 @@ [kernel] Parsing simple-main.c (with preprocessing) -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization +[eva] Analyzing a complete application starting at main +[eva] Computing initial state +[eva] Initial state computed +[eva:initial-state] Values of globals at initialization -[value] DUMPING STATE of file simple-main.c line 3 - argc ∈ [--..--] - argv ∈ {{ NULL ; &S_argv[0] }} - __retres ∈ UNINITIALIZED - S_argv[0] ∈ {{ NULL ; &S_0_S_argv[0] }} - [1] ∈ {{ NULL ; &S_1_S_argv[0] }} - S_0_S_argv[0..1] ∈ [--..--] - S_1_S_argv[0..1] ∈ [--..--] - =END OF DUMP== -[value] Recording results for main -[value] done for function main -[value] ====== VALUES COMPUTED ====== -[value] Values at end of function main: +[eva] simple-main.c:3: + Frama_C_dump_each: + # Cvalue domain: + argc ∈ [--..--] + argv ∈ {{ NULL ; &S_argv[0] }} + __retres ∈ UNINITIALIZED + S_argv[0] ∈ {{ NULL ; &S_0_S_argv[0] }} + [1] ∈ {{ NULL ; &S_1_S_argv[0] }} + S_0_S_argv[0..1] ∈ [--..--] + S_1_S_argv[0..1] ∈ [--..--] + ==END OF DUMP== +[eva] done for function main +[eva] ====== VALUES COMPUTED ====== +[eva:final-states] Values at end of function main: __retres ∈ {0} diff --git a/doc/value/examples/parametrizing/slevel.1.log b/doc/value/examples/parametrizing/slevel.1.log index bfdcbf380ad646a6d887eda0154556262ee834f4..ca308071d5497e913e04fc07d678bf47f1c09be3 100644 --- a/doc/value/examples/parametrizing/slevel.1.log +++ b/doc/value/examples/parametrizing/slevel.1.log @@ -1,15 +1,14 @@ [kernel] Parsing slevel.c (with preprocessing) -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization +[eva] Analyzing a complete application starting at main +[eva] Computing initial state +[eva] Initial state computed +[eva:initial-state] Values of globals at initialization i ∈ {0} j ∈ {0} t[0..4][0..9] ∈ {0} -[value] Recording results for main -[value] done for function main -[value] ====== VALUES COMPUTED ====== -[value] Values at end of function main: +[eva] done for function main +[eva] ====== VALUES COMPUTED ====== +[eva:final-states] Values at end of function main: i ∈ {5} j ∈ {10} t[0..4][0..9] ∈ {1} diff --git a/doc/value/examples/parametrizing/slevel.2.log b/doc/value/examples/parametrizing/slevel.2.log index c0da12b59f83edbe957469cc516d5d864b21cae6..9459da3c9930632a9ddf3d8c636f893133700702 100644 --- a/doc/value/examples/parametrizing/slevel.2.log +++ b/doc/value/examples/parametrizing/slevel.2.log @@ -1,16 +1,15 @@ [kernel] Parsing slevel.c (with preprocessing) -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization +[eva] Analyzing a complete application starting at main +[eva] Computing initial state +[eva] Initial state computed +[eva:initial-state] Values of globals at initialization i ∈ {0} j ∈ {0} t[0..4][0..9] ∈ {0} -slevel.c:6:[value] entering loop for the first time -[value] Recording results for main -[value] done for function main -[value] ====== VALUES COMPUTED ====== -[value] Values at end of function main: +[eva] slevel.c:6: starting to merge loop iterations +[eva] done for function main +[eva] ====== VALUES COMPUTED ====== +[eva:final-states] Values at end of function main: i ∈ {5} j ∈ {10} t{[0..1][0..9]; [2][0..5]} ∈ {1} diff --git a/doc/value/examples/parametrizing/widen-hints.log b/doc/value/examples/parametrizing/widen-hints.log index 36982f044ef6797f6c62919a06be8804b9937509..9e760a40d3385119f17618e60c584b5e1c63d888 100644 --- a/doc/value/examples/parametrizing/widen-hints.log +++ b/doc/value/examples/parametrizing/widen-hints.log @@ -1,15 +1,14 @@ [kernel] Parsing widen-hints.c (with preprocessing) -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization +[eva] Analyzing a complete application starting at main +[eva] Computing initial state +[eva] Initial state computed +[eva:initial-state] Values of globals at initialization i ∈ {0} j ∈ {0} -widen-hints.c:7:[value] entering loop for the first time -[value] Recording results for main -[value] done for function main -[value] ====== VALUES COMPUTED ====== -[value] Values at end of function main: +[eva] widen-hints.c:6: starting to merge loop iterations +[eva] done for function main +[eva] ====== VALUES COMPUTED ====== +[eva:final-states] Values at end of function main: i ∈ {13} j ∈ [0..55] n ∈ {13} diff --git a/doc/value/main.tex b/doc/value/main.tex index 5ed9977fda4007c605d646093f84ff3dbe867d35..15d5553fb0a48ebc63c5c0bc8f0ab51525505895 100644 --- a/doc/value/main.tex +++ b/doc/value/main.tex @@ -450,9 +450,9 @@ Once we are convinced that all functions have either a body or a specification, we can focus on functions without bodies: \begin{listing-nonumber} grep "using specification for function" log -[value] using specification for function memset -[value] using specification for function memcpy -[value] using specification for function printf +[eva] using specification for function memset +[eva] using specification for function memcpy +[eva] using specification for function printf \end{listing-nonumber} We find three functions. Not having a body for \verb|printf| is fine, since calls to this function have no observable effects for the analysis. @@ -492,7 +492,10 @@ All functions included from \verb+string.h+ are undefined, but only \verb+memcpy+, \verb+memset+ and \verb+printf+ are called. -To handle the absence of functions \lstinline|memset| and \lstinline|memcpy|, +To handle the absence of functions \lstinline|memset| and \lstinline|memcpy|% +\footnote{Since \FramaC 18 (Argon), \Eva{} includes builtin functions for + \lstinline|memset| and \lstinline|memcpy|, + thus providing source code for them is no longer necessary.}, we will provide source code for them. Sometimes it is a good idea to provide the exact source code that will actually be used in an actual @@ -582,7 +585,7 @@ The next line in the log is a progression message, that indicates that \Eva{} has encountered a loop and is performing an approximations. Those messages can be ignored for now. \begin{logs} -lib.c:17:[value] entering loop for the first time +lib.c:17:[eva] entering loop for the first time \end{logs} The next log entry which is not a progression message is a @@ -798,14 +801,14 @@ but when it is almost done (after the analysis of function ... main_1.c:14:[kernel] warning: Neither code nor specification for function printf, generating default assigns from the prototype -[value] using specification for function printf -[value] Done for function printf -main_1.c:14:[value] completely invalid value in evaluation of - argument (int)hash[i] +[eva] using specification for function printf +[eva] Done for function printf +main_1.c:14:[eva] completely invalid value in evaluation of + argument (int)hash[i] main_1.c:14:[kernel] warning: accessing uninitialized left-value. - assert \initialized(&hash[i]); -[value] Recording results for main -[value] done for function main + assert \initialized(&hash[i]); +[eva] Recording results for main +[eva] done for function main ... \end{logs} @@ -1593,7 +1596,7 @@ range of the integer type it is converted to. ov_float_int.c:6:[kernel] warning: overflow in conversion from floating-point to integer. assert -2147483649 < f < 2147483648; -[value] Values at end of function main: +[eva] Values at end of function main: f $\in$ [2000000000. .. 3000000000.] __retres $\in$ [2000000000..2147483647] \end{logs} @@ -1876,15 +1879,15 @@ and \lstinline|int *| are \emph{not} compatible). \listinginput{1}{valid_function.c} \begin{logs} -valid_function.c:9:[kernel] warning: pointer to function with incompatible type. - assert \valid_function(p); -valid_function.c:9:[kernel] warning: Neither code nor specification for - function f1, generating default assigns from the prototype -[value] using specification for function f1 -valid_function.c:12:[kernel] warning: pointer to function with incompatible type. - assert \valid_function(p); -valid_function.c:12:[value] assertion 'Value,function_pointer' got final status - invalid. +[eva:alarm] valid_function.c:9: Warning: + pointer to function with incompatible type. assert \valid_function(p); +[kernel:annot:missing-spec] valid_function.c:9: Warning: + Neither code nor specification for function f1, generating default assigns from the prototype +[eva] using specification for function f1 +[eva:alarm] valid_function.c:12: Warning: + pointer to function with incompatible type. assert \valid_function(p); +[eva] valid_function.c:12: + assertion 'Eva,function_pointer' got final status invalid. \end{logs} %TODO: alarm for pointer subtraction @@ -1933,10 +1936,10 @@ is imprecise. Examples of messages that result from the apparition of imprecision in the analysis are: \begin{logs} -origin.c:14:[value] assigning imprecise value to pa1. +origin.c:14:[eva] assigning imprecise value to pa1. The imprecision originates from Arithmetic {origin.c:14} -origin.c:15:[value] writing somewhere in {ta1} +origin.c:15:[eva] writing somewhere in {ta1} because of Arithmetic {origin.c:14}. \end{logs} @@ -2202,7 +2205,7 @@ Besides, the source code of some of the functions used by the application may not be available (library functions for instance). The plug-in can be used, usually with more work, in all these circumstances. The options for specifying the entry point of the analysis are detailed -in this manual, section \ref{trait_fonctions}. +in this manual, section \ref{val-use-spec}. \subsection{Entry point of a complete application} @@ -2561,7 +2564,7 @@ the following program does not terminate: If this program is analyzed with the default options of \Eva{}, the analysis finds that every time execution reaches the end of \lstinline|main|, the value -of \lstinline|x| is in $\bropen 100..127\brclose$. This does +of \lstinline|x| is $\geq 100$. This does not mean that the function always terminates or even that it may sometimes terminate (it does neither). When \Eva{} proposes an interval for \lstinline|x| at a point P, @@ -2588,7 +2591,7 @@ int x, y, z; main(int c){ ... ... -/* At this point \Eva{} guarantees: +/* At this point Eva guarantees: x IN {0; 1} y IN {0; 1}; */ z = 10 / (x - y); @@ -2631,7 +2634,27 @@ Just in case.} \vspace{2cm} +Parameterization of \Eva{} involves two main kinds of options: +{\em correctness options} and {\em performance tuning options}. +The former require understanding of their meaning and of the extra hypotheses +they entail; used incorrectly, they can lead to a wrong analysis. +The latter control the tradeoff between the quality of the results and the +resources taken by the analyzer to provide them (CPU time and memory usage). +These options cannot be used wrongly, in the sense that they do not affect the +correctness of the results. However, using them efficiently is essential for +scalability of the analysis. + +Section \ref{command-line} presents the general usage options of \Eva{} in the +command-line. +The options described in section \ref{context} are correctness options, +while the remaining sections (\ref{boucles-traitement}, +\ref{controlling-approximations} and \ref{sec:eva}) deal with performance +tuning options. Finally, \ref{nonterm} presents a derived analysis to +obtain information about non-termination. + + \section{Command line} +\label{command-line} The parameters that determine Frama-C's behavior can be set through the command line. @@ -2795,7 +2818,7 @@ prototype of \lstinline|main| is: {examples/parametrizing/simple-main.c} The types of arguments \lstinline|argc| and \lstinline|argv| translate into the following initial values: -\lstinputlisting[linerange={9-15}] +\lstinputlisting[linerange={10-16}] {examples/parametrizing/simple-main.log} This is generally not what is wanted, but then again, embedded applications @@ -2903,7 +2926,7 @@ also decided by the value of option \lstinline|-eva-context-width|. Example: with the default value \lstinline|2| for option \lstinline|-eva-context-width|, the declaration \lstinline|int *(t[5]);| causes the following array to be allocated: -\lstinputlisting[linerange={9-14}] +\lstinputlisting[linerange={10-15}] {examples/parametrizing/context-width.log} Note that for both arrays of pointers and pointers to pointers, @@ -2930,7 +2953,7 @@ two is plenty for most programs. For instance, here is the initial state displayed by \Eva{} in \lstinline|-lib-entry| mode if a global variable \lstinline|s| has type \lstinline|struct S| defined above: -\lstinputlisting[linerange={7-13}] +\lstinputlisting[linerange={6-13}] {examples/parametrizing/context-depth.1.log} \lstinputlisting[linerange={17-20},breaklines=true] {examples/parametrizing/context-depth.1.log} @@ -2947,7 +2970,7 @@ Below are the initial contents for a variable \lstinline|s| of type \lstinline|s with options \lstinline|-eva-context-width 1| \lstinline|-eva-context-depth 1|: -\lstinputlisting[linerange={7-17}] +\lstinputlisting[linerange={6-16}] {examples/parametrizing/context-depth.2.log} \subsubsection{The possibility of invalid pointers} @@ -2982,7 +3005,7 @@ a variable \lstinline|s| of type \lstinline|struct S| receives the following initial contents, modeling a chained list of length exactly 3: -\lstinputlisting[linerange={7-12}] +\lstinputlisting[linerange={6-11}] {examples/parametrizing/context-depth.3.log} \subsection{State of the IEEE 754 environment} @@ -3148,24 +3171,58 @@ informed assumptions. However, no guarantee is made that those assumptions over-approximate the real behavior of the function. The inferred contract should be verified carefully by the user. +\subsection{Using the specification of a function instead of its body} +\label{val-use-spec} +In some cases, one can estimate that the analysis of a given function \verb+f+ +takes too much time. This can be caused by a very complex +function, or because \verb+f+ is called many times during the analysis. +Another situation is when a function already has a functional specification, +proved for instance with the \textsf{WP} plug-in, and we do not want/need +to analyze it with \Eva{}. -\section{Controlling approximations} +In the cases above, a somewhat radical +approach consists in replacing the entire body of the function +by an ACSL contract that describes its behavior. See for example +section~\ref{annot_assigns} for how to specify which values the function +reads and writes. -Unlike options of section \ref{context}, which used wrongly may cause -\Eva{} to produce incorrect results, all the options -in this section give the user control over the tradeoff between the -quality of the results and the resources taken by the analyzer to -provide them. The options described in this section can, so to speak, -not be used wrongly. They may cause Frama-C to exhaust the available -memory, to take a nearly infinite time, or, in the other direction, -to produce results so imprecise that they are useless, but {\bf never} -to produce incorrect results. - -\subsection{Treatment of loops} -\label{boucles-traitement} +Alternatively, one can leave the body of the function untouched, but +still write a contract. Then it is possible to use the option +\verb+-eva-use-spec f+. This instructs \Eva{} to use the +specification of \verb+f+ instead of its body each time a call to +\verb+f+ is encountered. This is equivalent\footnote{Except for a few + properties, as described in the next paragraph.} to deleting the body +of \verb+f+ for \Eva{}, but not for the other plug-ins of \FramaC, +that may study the body of \verb+f+ on their own. + +Notice that option \verb+-eva-use-spec f+ loses some guarantees. In particular, +the body of \verb+f+ is not studied at all by \Eva{}. Neither +are the functions that \verb+f+ calls, unless they are used by some other +functions than \verb+f+. Moreover, \Eva{} does not attempt +to check that \verb+f+ conforms to its specification. In particular, +postconditions are marked as {\em unknown} with \verb+-eva-use-spec+, +while they are {\em considered valid} for functions without body. +It is the responsibility +of the user to verify those facts, for example by studying \verb+f+ +on its own in a generic context. -\subsubsection{Default treatment of loops} + + +%\section{Controlling approximations} +% +%Unlike options of section \ref{context}, which used wrongly may cause +%\Eva{} to produce incorrect results, all the options +%in this section give the user control over the tradeoff between the +%quality of the results and the resources taken by the analyzer to +%provide them. The options described in this section can, so to speak, +%not be used wrongly. They may cause Frama-C to exhaust the available +%memory, to take a nearly infinite time, or, in the other direction, +%to produce results so imprecise that they are useless, but {\bf never} +%to produce incorrect results. + +\section{Improving precision in loops} +\label{boucles-traitement} The default treatment of loops by the analyzer may produce results that are too approximate. Tuning @@ -3178,8 +3235,181 @@ entering the loop. This englobing state may be too imprecise by construction: typically, if the analyzed loop is initializing an array, the user does not expect to see the initial values of the array appear in the state computed by the analyzer. -The solution in this case is to use one of the two unrolling options, -as described in this section. +The solution in this case is to either unroll loops, using one of several +available methods, or to add annotations (widening hints or loop invariants) +that enable the analyzer to maintain precision while ensuring the analysis +time remains bounded. + +\subsection{Loop unrolling} + +Loop unrolling is often easier to apply, since it does not require much +knowledge about the loop, other than an estimate of the number of iterations. +This estimate may not improve precision if too low +or lead to unnecessary work if too high, +but will never affect its correctness. + +\subsubsection{Loop unroll annotations} + +Whenever a loop has a fixed number of iterations (or a known upper bound), +an easy and precise way to handle it is to include a +\lstinline|loop unroll <n>| annotation, where +\lstinline|<n>| is the number of iterations of the loop. +It will indicate \Eva{} to analyze the loop by semantically unrolling each +iteration, avoiding merging states from different iterations. +This leads to increased cost in terms of analysis, but usually the cost +increase is worth the improvement in precision. + +Such annotations must be placed before just before the loop (i.e. before the +\lstinline|while|, \lstinline|for| or \lstinline|do| introducing the loop), +and one annotation is required per loop, including nested ones. For instance: + +\begin{lstlisting} +#define NROWS 10 +void main() { + int a[NROWS][20] = {0}; + //@ loop unroll NROWS; + for (int i = 0; i < 10; i++) { + //@ loop unroll (10+10); + for (int j = 0; j < 20; j++) { + a[i][j] += i + j; + } + } +} +\end{lstlisting} + +Note that constants obtained via \lstinline|#define| macros can be used in +annotations, as well as constant expressions. The annotations above will ensure +that \Eva{} will unroll the loops and keep the analysis precise; otherwise, +the array access \lstinline|a[i][j]| might generate alarms due to imprecisions. + +The unrolling mechanism is independent of \lstinline|-eva-slevel| +(see next subsection): annotated loops are always unrolled at least the specified +number of times. If the loop has not been entirely unrolled, however, +remaining \lstinline|-eva-slevel| may be used to unroll more iterations. + +While it is sometimes useful to unroll only the first iterations, the usual +objective is full unrolling; the user can enable option +\lstinline|-value-msg-key=loop-unroll| to be informed whenever the specified +unrolling value is insufficient to unroll the loop entirely: + +\begin{lstlisting} +void main() { + //@ loop unroll 20; // should be 21 + for (int i = 0 ; i <= 20 ; i ++) { + } +} +\end{lstlisting} + +\begin{lstlisting} +[eva:loop-unroll] insuf-loop.c:3: loop not completely unrolled +\end{lstlisting} + +Note that using an unrolling parameter which is higher than the actual number +of iterations of a loop doesn't generally have an effect on the analysis. +The analyzer will usually detect that further iterations are not useful. + +If all loops in a program need to be unrolled, one way to do it quickly +consists in using option \lstinline|-eva-min-loop-unroll <n>|, +where \lstinline|<n>| is the number of iterations to unroll in each loop. +This option has lower precedence than \lstinline|loop unroll| annotations: +\Eva{} will always consider the latter if it is present in a loop. +This allows, for instance, to prevent unrolling of an infinite loop by +adding \lstinline|loop unroll 0| before it, while unrolling the remaining +loops by the specified amount in \lstinline|-eva-min-loop-unroll|. + +\subsubsection{Unrolling via option {\em -eva-slevel}} +\label{slevel} + +The option \lstinline|-eva-slevel n| indicates that the analyzer is allowed +to separate, in each point of the analyzed code, +up to \lstinline|n| states from different execution paths before starting +to compute the unions of said states. An effect of this option +is that the states corresponding to the first, second,\ldots +iterations in a loop remain separated, as if the loop had been unrolled. + +Unlike with \lstinline|loop unroll| annotations, the number \lstinline|n| +to use with \lstinline|-eva-slevel| depends on the nature of the control flow +graph of the function to analyze. +If the only control structure is a loop of \lstinline|m| iterations, +then \texttt{-eva-slevel \textsf{m+1}} allows to unroll the loop completely. +The presence of other loops or of \lstinline|if-then-else| constructs +multiplies the number of paths a state may correspond to, +and thus the number of states it is necessary to keep separated +in order to unroll a loop completely. +For instance, the +nested simple loops in the following example require the +option \lstinline|-eva-slevel 55| in order to be completely unrolled: +\lstinputlisting[numbers=left] + {examples/parametrizing/slevel.c} + +When the loops are sufficiently unrolled, the result obtained for the +contents of array \lstinline|t| are the optimally precise: +\lstinputlisting[linerange={14-14}] + {examples/parametrizing/slevel.1.log} + +The number to pass the option \lstinline|-eva-slevel| is of the magnitude of +the number of values for \lstinline|i| (the 6 integers between 0 and 5) +times the number of possible values for \lstinline|j| (the 11 +integers comprised between 0 and 10). If a value much lower than +this is passed, the result of the initialization of array \lstinline|t| +will only be precise for the first cells. The option \lstinline|-eva-slevel 28| +gives for instance the following result for array \lstinline|t|: +\lstinputlisting[linerange={15-16}] + {examples/parametrizing/slevel.2.log} + +In this result, the effects of the first iterations of the loops +(for the whole of \lstinline|t[0]|, the whole of \lstinline|t[1]| and the first +half of \lstinline|t[2]|) have been computed precisely. The +effects on the rest of \lstinline|t| were computed with +approximations. Because of these approximations, the analyzer can not +tell whether each of those cells contains 1 or its original value 0. +The value proposed for the cells \lstinline|t[2][5]| and following +is imprecise but correct. The set \lstinline|{0; 1}| does +contain the actual value \lstinline|1| of the cells. + +The option \lstinline|-eva-slevel-function f:n| tells the analyzer to apply +semantic unrolling level \lstinline|n| to function \lstinline|f|. +This fine-tuning option allows to +force the analyzer to invest time precisely analyzing functions that matter, +for instance \lstinline|-eva-slevel-function crucial_initialization:2000|. +Oppositely, options \lstinline|-eva-slevel 100 -eva-slevel-function trifle:0| +can be used together to avoid squandering resources over irrelevant parts of +the analyzed application. The \lstinline|-eva-slevel-function| option can be used +several times to set the semantic unrolling level of several functions. + +Overall, \lstinline|-eva-slevel| has the advantage of being quick to setup. +However, it does not allow fine grained control as loop unrolling annotations, +it is context-dependent (e.g. for nested loops), unstable (minor changes in +control flow may affect the usage of slevel) and hard to estimate in presence +of complex control flows. + +\subsubsection{Syntactic unrolling} + +Syntactic unrolling (option \lstinline|-ulevel n|, provided by the \FramaC +kernel), while not recommended when using \Eva{}, is another way to unroll +loops for a more precise analysis. The only advantage of syntactic unrolling +is that the GUI will show separate statements, allowing +the user to see the values of variables at each iteration. +However, this method is slower and leads to code which may become less +readable, due to the introduction of extra variables, labels and statements. + +The value \lstinline$n$ is the number of times to unroll the loop before starting +any analysis (if larger than the number of loop iterations, the extra code will +still be generated, but it may end up being considered unreachable by \Eva{}). +In any case, a large value for \lstinline|n| makes the analyzed code larger, +especially for nested loops. This may cause the analyzer to use more time and +memory. + +It is possible to control syntactic unrolling for each loop in the analyzed code +with the annotation \lstinline|//@loop pragma UNROLL n;|, placed before the loop. + + +\subsection{Widening hints and loop invariants} + +Besides loop unrolling, another technique to improve precision in loops +consists in using the standard computation by accumulation mechanism present in +tools based on abstract interpretation. This mechanism requires a more involved +setup, but can lead to more efficient analyses. As compared to loop unrolling, the advantage of the computation by accumulation is that it generally requires less iterations @@ -3196,7 +3426,7 @@ parameters in the widening process, it may (rarely) be appropriate to help it by providing it with the bounds that are likely to be reached, for a given variable modified inside a loop. -\subsubsection{Stipulating bounds} +\subsubsection{Widening hints} \label{subsub:widen-hints} The user may place an annotation \lstinline|//@ widen_hints $v$, $e_1,\ldots,e_m$ ;| @@ -3268,103 +3498,10 @@ Example: \lstinputlisting[numbers=left] {examples/parametrizing/pragma-widen-hints.c} -\subsubsection{Loop unrolling}\label{deroulage} - -There are two different options for forcing \Eva{} -to unroll the effects of the body of the loop, as many times as -specified, in order to obtain a precise representation of the effects -of the loop itself. If the number of iterations is sufficient, -the analyzer is thus able to determine that each cell in the array -is initialized, as opposed to the approximation techniques -from the previous section. - -\paragraph{Syntactic unrolling} - -The option \lstinline|-ulevel n| indicates that Frama-C should unroll -the loops syntactically \lstinline$n$ times before starting any analysis. -If the provided number \lstinline|n| is larger than the number of iterations -of the loop, then the loop is completely unrolled and the analysis will -not observe any loop in that part of the code. - -Providing a large value for \lstinline|n| makes the analyzed code bigger: -this may cause the analyzer to use more time and memory. This option -can also make the code notably bigger in presence of -nested loops (polynomially bigger in the depth of nested loops). A large value -should therefore not be used in this case. - -It is possible to control the syntactic unrolling for each -loop in the analyzed code with the annotation -\lstinline|//@ loop pragma UNROLL n;|. The user should place -this annotation in the source code, just before -the loop. This annotation causes Frama-C's front-end to unroll -the loop \lstinline|n| times. - -\paragraph{Semantic unrolling} -\label{slevel} - -The option \lstinline|-eva-slevel n| indicates that the analyzer is allowed -to separate, in each point of the analyzed code, -up to \lstinline|n| states from different execution paths before starting -to compute the unions of said states. An effect of this option -is that the states corresponding to the first, second,\ldots -iterations in the loop remain separated, as if the loop had been -unrolled. - -The number \lstinline|n| to use depends on the -nature of the control flow graph of the function to analyze. -If the only control structure is a loop of \lstinline|m| iterations, -then \texttt{-eva-slevel \textsf{m+1}} allows to unroll the loop completely. -The presence of other loops or of \lstinline|if-then-else| constructs -multiplies the number of paths a state may correspond to, -and thus the number of states it is necessary to keep separated -in order to unroll a loop completely. -For instance, the -nested simple loops in the following example require the -option \lstinline|-eva-slevel 55| in order to be completely unrolled: -\lstinputlisting[numbers=left] - {examples/parametrizing/slevel.c} - -When the loops are sufficiently unrolled, the result obtained for the -contents of array \lstinline|t| are the optimally precise: -\lstinputlisting[linerange={16-16}] - {examples/parametrizing/slevel.1.log} - -The number to pass the option \lstinline|-eva-slevel| is of the magnitude of -the number of values for \lstinline|i| (the 6 integers between 0 and 5) -times the number of possible values for \lstinline|j| (the 11 -integers comprised between 0 and 10). If a value much lower than -this is passed, the result of the initialization of array \lstinline|t| -will only be precise for the first cells. The option \lstinline|-eva-slevel 28| -gives for instance the following result for array \lstinline|t|: -\lstinputlisting[linerange={17-18}] - {examples/parametrizing/slevel.2.log} - -In this result, the effects of the first iterations of the loops -(for the whole of \lstinline|t[0]|, the whole of \lstinline|t[1]| and the first -half of \lstinline|t[2]|) have been computed precisely. The -effects on the rest of \lstinline|t| were computed with -approximations. Because of these approximations, the analyzer can not -tell whether each of those cells contains 1 or its original value 0. -The value proposed for the cells \lstinline|t[2][5]| and following -is imprecise but correct. The set \lstinline|{0; 1}| does -contain the actual value \lstinline|1| of the cells. - -The option \lstinline|-eva-slevel-function f:n| tells the analyzer to apply -semantic unrolling level \lstinline|n| to function \lstinline|f|. -This fine-tuning option allows to -force the analyzer to invest time precisely analyzing functions that matter, -for instance \lstinline|-eva-slevel-function crucial_initialization:2000|. -Oppositely, options \lstinline|-eva-slevel 100 -eva-slevel-function trifle:0| -can be used together to avoid squandering resources over irrelevant parts of -the analyzed application. The \lstinline|-eva-slevel-function| option can be used -several times to set the semantic unrolling level of several functions. - - \subsubsection{Loop invariants} -A last technique, complementary to the unrolling ones above, -consists in using the loop invariant construct of ACSL. Loop invariants -describe some +A last technique consists in using the loop invariant construct of ACSL. +Loop invariants describe some properties that hold at the beginning of each execution of a loop, as explained in the ACSL specification, \S2.4.2. %\url{http://frama-c.com/download/acsl.pdf} @@ -3427,126 +3564,99 @@ We have effectively replaced an alarm, the possible out-of-bounds access at line~7, by an invariant, that remains to be proven. -\subsection{Treatment of functions} -\label{trait_fonctions} - -\subsubsection{Skipping the recording of the results of a function} -\label{noresults} - -When a function \lstinline|f| -is called many times, or, in presence of semantic unrolling, -if \lstinline|f| contains large/nested loops, significant -time may be spent recording the values taken by the program's variables -at each of \lstinline|f|'s statements. -If the user knows that these values will not be useful later, -ey can instruct \Eva{} not to record these with the -\lstinline|-eva-no-results-function f| option. -The \lstinline|-eva-no-results-function| option -can be used several times, to omit the results of several functions. -The option \lstinline|-eva-no-results| can be used to omit all -results. -The time savings can be important, as in the following example. - -\lstinputlisting[numbers=left] - {examples/parametrizing/nor.c} - -\begin{shell} -time frama-c -eva nor.c -eva-slevel 2001 -\end{shell} - -\lstinputlisting[linerange={36-39},numbers=left,firstnumber=36] - {examples/parametrizing/nor.1.log} -\lstinputlisting[linerange={2036-2041},numbers=left,firstnumber=2036] - {examples/parametrizing/nor.1.log} -\lstinputlisting[linerange={4038-4042},numbers=left,firstnumber=4038] - {examples/parametrizing/nor.1.log} - -Launched with option \lstinline|-eva-slevel 2001| so that the value returned -by \lstinline|main| can be computed precisely, the analysis takes 3 seconds. - Contrast with: - -\begin{shell} -time frama-c -eva nor.c -eva-slevel 2001 -eva-no-results-function irrelevant_function -\end{shell} - -\lstinputlisting[linerange={36-40},numbers=left,firstnumber=36] - {examples/parametrizing/nor.2.log} -\lstinputlisting[linerange={2037-2041},numbers=left,firstnumber=2037] - {examples/parametrizing/nor.2.log} - -When instructed, with -option \lstinline|-eva-no-results-function irrelevant_function|, -that the values for the function -\lstinline|irrelevant_function| do not need to be kept, \Eva{} -takes less than a second to produce its results. This shows -that in the earlier analysis, most of the time was not spent in the -analysis itself but in recording the values -of \lstinline|irrelevant_function|. - -Note that the function \lstinline|irrelevant_function| was analyzed with -as much precision as before, and that the result for \lstinline|main| is -as precise as before. The recording of some results -is omitted, but this does not cause any loss of precision {\em during} -the analysis\footnote{The emission of run-time error alarms and the evaluation -of user-provided ACSL properties are done during the analysis and are -not influenced by the {\tt -eva-no-results*} options. If you make use -of only these functionalities, then you can speed up the analysis -with option {\tt -eva-no-results} without detrimental effects.}. -The results for \verb|irrelevant_function| are, as expected, unavailable. -The ``outputs'' of \verb|main| (the ``outputs'' computation is -described in chapter \ref{inoutdeps}) cannot be computed, because -they depend on the outputs of \lstinline|irrelevant_function|, which -require the values of that function to be computed. -These outputs would automatically be used for -displaying only the relevant variables if they were available. -Instead, all the program's variables are displayed. - -The meaning of option \lstinline|-eva-no-results-function irrelevant_function| -is different from that of option -\lstinline|-eva-slevel-function irrelevant_function:0|. In the case of the latter, -values -are computed with less precision for \verb|irrelevant_function| -but the computed values are kept in memory as usual. -All derived analyses (such as outputs) -are available, but the values predicted by the analysis are -less precise, because \verb|irrelevant_function| has been analyzed -less precisely. - -\subsubsection{Using the specification of a function instead of its body} -\label{val-use-spec} +%% \section{Treatment of functions} +%% \label{trait_fonctions} + +%% Some \Eva{} options can be used to handle certain functions in a special +%% way, to improve the efficiency of the analysis. + + +%% \subsubsection{Skipping the recording of the results of a function} +%% \label{noresults} + +%% When a function \lstinline|f| +%% is called many times, or, in presence of semantic unrolling, +%% if \lstinline|f| contains large/nested loops, significant +%% time may be spent recording the values taken by the program's variables +%% at each of \lstinline|f|'s statements. +%% If the user knows that these values will not be useful later, +%% ey can instruct \Eva{} not to record these with the +%% \lstinline|-eva-no-results-function f| option. +%% The \lstinline|-eva-no-results-function| option +%% can be used several times, to omit the results of several functions. +%% The option \lstinline|-eva-no-results| can be used to omit all +%% results. +%% It can result in a significant saving of time, as in the following example. + +%% \lstinputlisting[numbers=left] +%% {examples/parametrizing/nor.c} + +%% \begin{shell} +%% time frama-c -eva nor.c -eva-slevel 2001 +%% \end{shell} + +%% \lstinputlisting[linerange={30-33},numbers=left,firstnumber=36] +%% {examples/parametrizing/nor.1.log} +%% \lstinputlisting[linerange={2032-2035},numbers=left,firstnumber=2036] +%% {examples/parametrizing/nor.1.log} +%% \lstinputlisting[linerange={4032-4036},numbers=left,firstnumber=4038] +%% {examples/parametrizing/nor.1.log} + +%% Launched with option \lstinline|-eva-slevel 2001| so that the value returned +%% by \lstinline|main| can be computed precisely, the analysis takes more than +%% half a second. +%% Contrast with: + +%% \begin{shell} +%% time frama-c -eva nor.c -eva-slevel 2001 -eva-no-results-function irrelevant_function +%% \end{shell} + +%% \lstinputlisting[linerange={30-34},numbers=left,firstnumber=36] +%% {examples/parametrizing/nor.2.log} +%% \lstinputlisting[linerange={2031-2035},numbers=left,firstnumber=2037] +%% {examples/parametrizing/nor.2.log} + +%% When instructed, with +%% option \lstinline|-eva-no-results-function irrelevant_function|, +%% that the values for the function +%% \lstinline|irrelevant_function| do not need to be kept, \Eva{} +%% takes less than half the time to produce its results. This shows +%% that in the earlier analysis, most of the time was not spent in the +%% analysis itself but in recording the values +%% of \lstinline|irrelevant_function|. + +%% Note that the function \lstinline|irrelevant_function| was analyzed with +%% as much precision as before, and that the result for \lstinline|main| is +%% as precise as before. The recording of some results +%% is omitted, but this does not cause any loss of precision {\em during} +%% the analysis\footnote{The emission of run-time error alarms and the evaluation +%% of user-provided ACSL properties are done during the analysis and are +%% not influenced by the {\tt -eva-no-results*} options. If you make use +%% of only these functionalities, then you can speed up the analysis +%% with option {\tt -eva-no-results} without detrimental effects.}. +%% The results for \verb|irrelevant_function| are, as expected, unavailable. +%% The ``outputs'' of \verb|main| (the ``outputs'' computation is +%% described in chapter \ref{inoutdeps}) cannot be computed, because +%% they depend on the outputs of \lstinline|irrelevant_function|, which +%% require the values of that function to be computed. +%% These outputs would automatically be used for +%% displaying only the relevant variables if they were available. +%% Instead, all the program's variables are displayed. + +%% The meaning of option \lstinline|-eva-no-results-function irrelevant_function| +%% is different from that of option +%% \lstinline|-eva-slevel-function irrelevant_function:0|. In the case of the latter, +%% values +%% are computed with less precision for \verb|irrelevant_function| +%% but the computed values are kept in memory as usual. +%% All derived analyses (such as outputs) +%% are available, but the values predicted by the analysis are +%% less precise, because \verb|irrelevant_function| has been analyzed +%% less precisely. -In some cases, one can estimate that the analysis of a given function \verb+f+ -takes too much time. This can be caused by a very complex -function, or because \verb+f+ is called many times during the analysis. -If the solutions of the previous section are not sufficient, a radical -approach consists in replacing the entire body of the function -by an ACSL contract, that describes its behavior. See for example -section~\ref{annot_assigns} for how to specify which values the function -reads and writes. -Alternatively, one can leave the body of the function untouched, but -still write a contract. Then it is possible to use the option -\verb+-eva-use-spec f+. This instructs \Eva{} to use the -specification of \verb+f+ instead of its body each time a call to -\verb+f+ is encountered. This is equivalent\footnote{Except for a few - properties, as described in the next paragraph.} to deleting the body -of \verb+f+ for \Eva{}, but not for the other plug-ins of \FramaC, -that may study the body of \verb+f+ on their own. - -Notice that option \verb+-eva-use-spec f+ loses some guarantees. In particular, -the body of \verb+f+ is not studied at all by \Eva{}. Neither -are the functions that \verb+f+ calls, unless they are used by some other -functions than \verb+f+. Moreover, \Eva{} does not attempt -to check that \verb+f+ conforms to its specification. In particular, -postconditions are marked as {\em unknown} with \verb+-eva-use-spec+, -while they are {\em considered valid} for functions without body. -It is the responsibility -of the user to verify those facts, for example by studying \verb+f+ -on its own in a generic context. - - - -\section{Analysis cutoff values} +\section{Controlling approximations} +\label{controlling-approximations} \subsection{Cutoff between integer sets and integer intervals} @@ -3562,16 +3672,46 @@ Example: With the default limit of 8 elements for sets of integers, the analysis of the program shows a correct but approximated result: -\lstinputlisting[linerange={28-30}] +\lstinputlisting[linerange={23-23}] {examples/parametrizing/ilevel.1.log} Studying the program, the user may decide to improve the precision of the result by adding \verb|-eva-ilevel 16| to the command line. The analysis result then becomes: -\lstinputlisting[linerange={28-30}] +\lstinputlisting[linerange={23-23}] {examples/parametrizing/ilevel.2.log} +\subsection{Maximum number of precise items in arrays} + +Option \verb|-eva-plevel <n>| is used to limit the number of elements +in an array that can be considered precisely during assignments. +When assigning a value to an array element, if the index is imprecise, +it may be very costly to update each array element individually. +Instead, if the range of indices to be accessed is larger than {\em plevel}, +some approximations are made and a message is emitted: + +\begin{lstlisting} +[kernel] arrays.c:32: + more than 200(300) elements to enumerate. Approximating. +\end{lstlisting} + +This message means that the array to be updated had 300 elements, and +\verb|-eva-plevel| was set to 200 (the default value). In this case, it +might be reasonable to increase the plevel to 300, especially if some alarms +could be caused by the imprecision. In other cases, however, there is little +hope of obtaining a reasonable bound: + +\begin{lstlisting} +more than 200(0x20000000) elements to enumerate. Approximating. +\end{lstlisting} + +In some cases, lowering the plevel can improve performance, but it is rarely +a significant factor. Most of the time, this option has little impact in the +analysis, both in terms of precision and performance. However, when dealing +with large arrays and matrices, it is worth considering its usage. + + \section{Advanced analyses} \label{sec:eva} @@ -3831,7 +3971,7 @@ interpreted as leading to any possible value. Moreover, the domain only infers error values for scalar variables. Structure and union fields, as well as arrays, are ignored. -\section{Non-termination} +\section{Non-termination}\label{nonterm} The parameterization of \Eva{} can lead to situations where the analysis stops abruptly due to the absence of valid states. For instance, @@ -4134,7 +4274,7 @@ to prove is therefore the assertion at line 8. \subsubsection{Case analysis} -When using {\em semantic unrolling} (section \ref{deroulage}), if an +When using {\em slevel-based unrolling} (section \ref{slevel}), if an assertion is a disjunction, then the reduction of the state by the assertion may be computed independently for each disjunct. This multiplies the number of states to propagate in the same way that @@ -4637,8 +4777,8 @@ analysis starts diverging, it will print (by default) several messages of this form: \begin{listing-nonumber} -[value] allocating variable __malloc_main_l42_2981 -[value] allocating variable __malloc_main_l42_2982 +[eva] allocating variable __malloc_main_l42_2981 +[eva] allocating variable __malloc_main_l42_2982 \end{listing-nonumber} This indicates that new bases are being created. diff --git a/doc/value/makefile b/doc/value/makefile index 63e44b450e00db4cbfd4306b1ad75eefdb415c50..01b7f9053b1dda140a0973bba93923607f0745c6 100644 --- a/doc/value/makefile +++ b/doc/value/makefile @@ -23,5 +23,5 @@ clean: rm -f $(GENERATED) install: - rm -f ../manuals/value-analysis.pdf - cp main.pdf ../manuals/value-analysis.pdf + rm -f ../manuals/eva-manual.pdf + cp main.pdf ../manuals/eva-manual.pdf diff --git a/headers/check-headers.sh b/headers/check-headers.sh index b88fa6305f5dd6a475b76a867a31a62f25a77b65..0a1a95e0b3512aa4609c4a20423f6e146db93bca 100755 --- a/headers/check-headers.sh +++ b/headers/check-headers.sh @@ -3,7 +3,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/headers/close-source/ACSL_EL b/headers/close-source/ACSL_EL index 9984ea26eef801b99be0c4f6907226321bb018aa..99fcded1099e2e97889204aeb4ba741d6e2be775 100644 --- a/headers/close-source/ACSL_EL +++ b/headers/close-source/ACSL_EL @@ -4,7 +4,7 @@ This file is part of Frama-C. Copyright (C) 2008-2011 Pierre Roux -Copyright (C) 2009-2018 +Copyright (C) 2009-2019 CEA LIST you can redistribute it and/or modify it under the terms of the GNU diff --git a/headers/close-source/AORAI_LGPL b/headers/close-source/AORAI_LGPL index ddcbbf500594d273881958a13ffee1e56bd1302f..a37f43ed4dbcdcde1649a901b47d1448db0434a8 100644 --- a/headers/close-source/AORAI_LGPL +++ b/headers/close-source/AORAI_LGPL @@ -1,7 +1,7 @@ This file is part of Aorai plug-in of Frama-C. -Copyright (C) 2007-2018 +Copyright (C) 2007-2019 CEA (Commissariat à l'énergie atomique et aux énergies alternatives) INRIA (Institut National de Recherche en Informatique et en diff --git a/headers/close-source/CEA_INRIA_LGPL b/headers/close-source/CEA_INRIA_LGPL index f71388de28872349b680152efd0418b1a7e49aa1..62bce5275ee7ad73c9f8b8b1ff70d75fd581e612 100644 --- a/headers/close-source/CEA_INRIA_LGPL +++ b/headers/close-source/CEA_INRIA_LGPL @@ -1,7 +1,7 @@ This file is part of Frama-C. -Copyright (C) 2007-2018 +Copyright (C) 2007-2019 CEA (Commissariat à l'énergie atomique et aux énergies alternatives) INRIA (Institut National de Recherche en Informatique et en diff --git a/headers/close-source/CEA_LGPL b/headers/close-source/CEA_LGPL index 236c12248780eadc45026e657f79dde38615ca27..87798be30e7cf28ebbd3b7c2365e95b7d2fad5a8 100644 --- a/headers/close-source/CEA_LGPL +++ b/headers/close-source/CEA_LGPL @@ -1,7 +1,7 @@ This file is part of Frama-C. -Copyright (C) 2007-2018 +Copyright (C) 2007-2019 CEA (Commissariat à l'énergie atomique et aux énergies alternatives) diff --git a/headers/close-source/CEA_LGPL_OR_PROPRIETARY b/headers/close-source/CEA_LGPL_OR_PROPRIETARY index 39bb899ccc59fce71bc7639790fd77a509eb5ad3..d592caa19b9f4fcfa3ecf8db45b1b68e8affe87b 100644 --- a/headers/close-source/CEA_LGPL_OR_PROPRIETARY +++ b/headers/close-source/CEA_LGPL_OR_PROPRIETARY @@ -1,7 +1,7 @@ This file is part of Frama-C. -Copyright (C) 2007-2018 +Copyright (C) 2007-2019 CEA (Commissariat à l'énergie atomique et aux énergies alternatives) diff --git a/headers/close-source/CEA_PROPRIETARY b/headers/close-source/CEA_PROPRIETARY index 39bb899ccc59fce71bc7639790fd77a509eb5ad3..d592caa19b9f4fcfa3ecf8db45b1b68e8affe87b 100644 --- a/headers/close-source/CEA_PROPRIETARY +++ b/headers/close-source/CEA_PROPRIETARY @@ -1,7 +1,7 @@ This file is part of Frama-C. -Copyright (C) 2007-2018 +Copyright (C) 2007-2019 CEA (Commissariat à l'énergie atomique et aux énergies alternatives) diff --git a/headers/close-source/CEA_WP b/headers/close-source/CEA_WP index 83802f3b8f0cbcbdff584ff08ba0177c7e766e67..079a10bf96bc6d3deaf3f65262a37ed59d8fe287 100644 --- a/headers/close-source/CEA_WP +++ b/headers/close-source/CEA_WP @@ -1,9 +1,10 @@ This file is part of WP plug-in of Frama-C. -Copyright (C) 2007-2018 - CEA (Commissariat a l'energie atomique et aux energies +Copyright (C) 2007-2019 + CEA (Commissariat a l'energie atomique et aux energies alternatives) All rights reserved. Contact CEA LIST for licensing. + diff --git a/headers/headache.sh b/headers/headache.sh index 4da5fb8b04fd05d32c10ca44bbe4cf3cc9213887..6231da5ef50c928990d2eceb54039d05879814db 100755 --- a/headers/headache.sh +++ b/headers/headache.sh @@ -3,7 +3,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/headers/header_spec.txt b/headers/header_spec.txt index 00e931434f42dad45be8966beb0e6c6210a2328c..76189d8ddf3835d62c239a835416b04df86f1530 100644 --- a/headers/header_spec.txt +++ b/headers/header_spec.txt @@ -116,9 +116,17 @@ share/_frama-c: CEA_LGPL share/analysis-scripts/frama-c.mk: CEA_LGPL share/analysis-scripts/README.md: .ignore share/analysis-scripts/cmd-dep.sh: .ignore +share/analysis-scripts/concat-csv.sh: .ignore +share/analysis-scripts/examples/example.c: .ignore +share/analysis-scripts/examples/example.mk: .ignore +share/analysis-scripts/examples/example-multi.mk: .ignore +share/analysis-scripts/examples/example-slevel.mk: .ignore +share/analysis-scripts/examples/Makefile: .ignore +share/analysis-scripts/find_fun.py: .ignore share/analysis-scripts/flamegraph.pl: CDDL share/analysis-scripts/list_files.py: .ignore share/analysis-scripts/parse-coverage.sh: .ignore +share/analysis-scripts/summary.sh: .ignore share/analysis-scripts/template.mk: .ignore share/autocomplete_frama-c: CEA_LGPL share/Makefile.clean: CEA_LGPL @@ -179,9 +187,10 @@ share/libc/__fc_define_uid_and_gid.h: CEA_LGPL share/libc/__fc_define_useconds_t.h: CEA_LGPL share/libc/__fc_define_wchar_t.h: CEA_LGPL share/libc/__fc_define_wint_t.h: CEA_LGPL +share/libc/__fc_gcc_builtins.h: CEA_LGPL share/libc/__fc_inet.h: CEA_LGPL share/libc/__fc_machdep.h: CEA_LGPL -share/libc/__fc_machdep_linux_gcc_shared.h: CEA_LGPL +share/libc/__fc_machdep_linux_shared.h: CEA_LGPL share/libc/__fc_select.h: CEA_LGPL share/libc/__fc_string_axiomatic.h: CEA_LGPL share/libc/alloca.h: CEA_LGPL @@ -215,13 +224,7 @@ share/libc/inttypes.c: CEA_LGPL share/libc/inttypes.h: CEA_LGPL share/libc/iso646.h: CEA_LGPL share/libc/libgen.h: CEA_LGPL -share/libc/libintl.h: CEA_LGPL share/libc/limits.h: CEA_LGPL -share/libc/linux/fs.h: CEA_LGPL -share/libc/linux/if_addr.h: CEA_LGPL -share/libc/linux/if_netlink.h: CEA_LGPL -share/libc/linux/netlink.h: CEA_LGPL -share/libc/linux/rtnetlink.h: CEA_LGPL share/libc/locale.c: CEA_LGPL share/libc/locale.h: CEA_LGPL share/libc/malloc.h: CEA_LGPL @@ -234,9 +237,6 @@ share/libc/net/if.h: CEA_LGPL share/libc/netdb.c: CEA_LGPL share/libc/netdb.h: CEA_LGPL share/libc/netinet/in.h: CEA_LGPL -share/libc/netinet/in_systm.h: CEA_LGPL -share/libc/netinet/ip.h: CEA_LGPL -share/libc/netinet/ip_icmp.h: CEA_LGPL share/libc/netinet/tcp.h: CEA_LGPL share/libc/nl_types.h: CEA_LGPL share/libc/poll.h: CEA_LGPL @@ -264,7 +264,6 @@ share/libc/sys/file.h: CEA_LGPL share/libc/sys/ioctl.h: CEA_LGPL share/libc/sys/ipc.h: CEA_LGPL share/libc/sys/mman.h: CEA_LGPL -share/libc/sys/param.h: CEA_LGPL share/libc/sys/random.h: CEA_LGPL share/libc/sys/resource.h: CEA_LGPL share/libc/sys/select.h: CEA_LGPL @@ -272,7 +271,6 @@ share/libc/sys/shm.h: CEA_LGPL share/libc/sys/signal.h: CEA_LGPL share/libc/sys/socket.h: CEA_LGPL share/libc/sys/stat.h: CEA_LGPL -share/libc/sys/sysctl.h: CEA_LGPL share/libc/sys/time.h: CEA_LGPL share/libc/sys/times.h: CEA_LGPL share/libc/sys/timex.h: CEA_LGPL @@ -284,8 +282,8 @@ share/libc/sys/wait.h: CEA_LGPL share/libc/syslog.h: CEA_LGPL share/libc/termios.h: CEA_LGPL share/libc/tgmath.h: CEA_LGPL +share/libc/time.c: CEA_LGPL share/libc/time.h: CEA_LGPL -share/libc/uchar.h: CEA_LGPL share/libc/unistd.h: CEA_LGPL share/libc/utime.h: CEA_LGPL share/libc/utmpx.h: CEA_LGPL @@ -661,12 +659,16 @@ src/libraries/utils/pretty_utils.ml: CEA_LGPL src/libraries/utils/pretty_utils.mli: CEA_LGPL src/libraries/utils/qstack.ml: CEA_LGPL src/libraries/utils/qstack.mli: CEA_LGPL +src/libraries/utils/sanitizer.ml: CEA_LGPL +src/libraries/utils/sanitizer.mli: CEA_LGPL src/libraries/utils/rangemap.ml: OCAML_STDLIB src/libraries/utils/rangemap.mli: OCAML_STDLIB src/libraries/utils/rgmap.ml: CEA_LGPL src/libraries/utils/rgmap.mli: CEA_LGPL src/libraries/utils/rich_text.ml: CEA_LGPL src/libraries/utils/rich_text.mli: CEA_LGPL +src/libraries/utils/sanitizer.ml: CEA_LGPL +src/libraries/utils/sanitizer.mli: CEA_LGPL src/libraries/utils/task.ml: CEA_LGPL src/libraries/utils/task.mli: CEA_LGPL src/libraries/utils/unicode.ml: CEA_LGPL @@ -749,6 +751,10 @@ src/plugins/from/from_register_gui.ml: CEA_LGPL_OR_PROPRIETARY src/plugins/from/from_register_gui.mli: CEA_LGPL_OR_PROPRIETARY src/plugins/from/functionwise.ml: CEA_LGPL_OR_PROPRIETARY src/plugins/from/functionwise.mli: CEA_LGPL_OR_PROPRIETARY +src/plugins/gui/GSourceView2.ml.in: CEA_LGPL_OR_PROPRIETARY +src/plugins/gui/GSourceView2.mli.in: CEA_LGPL_OR_PROPRIETARY +src/plugins/gui/GSourceView3.ml.in: CEA_LGPL_OR_PROPRIETARY +src/plugins/gui/GSourceView3.mli.in: CEA_LGPL_OR_PROPRIETARY src/plugins/gui/analyses_manager.ml: CEA_LGPL_OR_PROPRIETARY src/plugins/gui/analyses_manager.mli: CEA_LGPL_OR_PROPRIETARY src/plugins/gui/book_manager.ml: CEA_LGPL_OR_PROPRIETARY @@ -757,10 +763,15 @@ src/plugins/gui/debug_manager.ml: CEA_LGPL_OR_PROPRIETARY src/plugins/gui/debug_manager.mli: CEA_LGPL_OR_PROPRIETARY src/plugins/gui/design.ml: CEA_LGPL_OR_PROPRIETARY src/plugins/gui/design.mli: CEA_LGPL_OR_PROPRIETARY +src/plugins/gui/dgraph.ml.in: CEA_LGPL_OR_PROPRIETARY +src/plugins/gui/dgraph.mli.in: CEA_LGPL_OR_PROPRIETARY src/plugins/gui/file_manager.ml: CEA_LGPL_OR_PROPRIETARY src/plugins/gui/file_manager.mli: CEA_LGPL_OR_PROPRIETARY src/plugins/gui/filetree.ml: CEA_LGPL_OR_PROPRIETARY src/plugins/gui/filetree.mli: CEA_LGPL_OR_PROPRIETARY +src/plugins/gui/gtk_compat.mli: CEA_LGPL_OR_PROPRIETARY +src/plugins/gui/gtk_compat.2.ml: CEA_LGPL_OR_PROPRIETARY +src/plugins/gui/gtk_compat.3.ml: CEA_LGPL_OR_PROPRIETARY src/plugins/gui/gtk_form.ml: CEA_LGPL_OR_PROPRIETARY src/plugins/gui/gtk_form.mli: CEA_LGPL_OR_PROPRIETARY src/plugins/gui/gtk_helper.ml: CEA_LGPL_OR_PROPRIETARY @@ -984,8 +995,6 @@ src/plugins/report/csv.ml: CEA_LGPL_OR_PROPRIETARY src/plugins/report/csv.mli: CEA_LGPL_OR_PROPRIETARY src/plugins/report/dump.ml: CEA_LGPL_OR_PROPRIETARY src/plugins/report/dump.mli: CEA_LGPL_OR_PROPRIETARY -src/plugins/report/property_names.ml: CEA_LGPL_OR_PROPRIETARY -src/plugins/report/property_names.mli: CEA_LGPL_OR_PROPRIETARY src/plugins/report/register.ml: CEA_LGPL_OR_PROPRIETARY src/plugins/report/register.mli: CEA_LGPL_OR_PROPRIETARY src/plugins/report/report_parameters.ml: CEA_LGPL_OR_PROPRIETARY diff --git a/headers/open-source/ACSL_EL b/headers/open-source/ACSL_EL index 9984ea26eef801b99be0c4f6907226321bb018aa..99fcded1099e2e97889204aeb4ba741d6e2be775 100644 --- a/headers/open-source/ACSL_EL +++ b/headers/open-source/ACSL_EL @@ -4,7 +4,7 @@ This file is part of Frama-C. Copyright (C) 2008-2011 Pierre Roux -Copyright (C) 2009-2018 +Copyright (C) 2009-2019 CEA LIST you can redistribute it and/or modify it under the terms of the GNU diff --git a/headers/open-source/AORAI_LGPL b/headers/open-source/AORAI_LGPL index ddcbbf500594d273881958a13ffee1e56bd1302f..a37f43ed4dbcdcde1649a901b47d1448db0434a8 100644 --- a/headers/open-source/AORAI_LGPL +++ b/headers/open-source/AORAI_LGPL @@ -1,7 +1,7 @@ This file is part of Aorai plug-in of Frama-C. -Copyright (C) 2007-2018 +Copyright (C) 2007-2019 CEA (Commissariat à l'énergie atomique et aux énergies alternatives) INRIA (Institut National de Recherche en Informatique et en diff --git a/headers/open-source/CEA_INRIA_LGPL b/headers/open-source/CEA_INRIA_LGPL index f71388de28872349b680152efd0418b1a7e49aa1..62bce5275ee7ad73c9f8b8b1ff70d75fd581e612 100644 --- a/headers/open-source/CEA_INRIA_LGPL +++ b/headers/open-source/CEA_INRIA_LGPL @@ -1,7 +1,7 @@ This file is part of Frama-C. -Copyright (C) 2007-2018 +Copyright (C) 2007-2019 CEA (Commissariat à l'énergie atomique et aux énergies alternatives) INRIA (Institut National de Recherche en Informatique et en diff --git a/headers/open-source/CEA_LGPL b/headers/open-source/CEA_LGPL index 236c12248780eadc45026e657f79dde38615ca27..87798be30e7cf28ebbd3b7c2365e95b7d2fad5a8 100644 --- a/headers/open-source/CEA_LGPL +++ b/headers/open-source/CEA_LGPL @@ -1,7 +1,7 @@ This file is part of Frama-C. -Copyright (C) 2007-2018 +Copyright (C) 2007-2019 CEA (Commissariat à l'énergie atomique et aux énergies alternatives) diff --git a/headers/open-source/CEA_LGPL_OR_PROPRIETARY b/headers/open-source/CEA_LGPL_OR_PROPRIETARY index 236c12248780eadc45026e657f79dde38615ca27..87798be30e7cf28ebbd3b7c2365e95b7d2fad5a8 100644 --- a/headers/open-source/CEA_LGPL_OR_PROPRIETARY +++ b/headers/open-source/CEA_LGPL_OR_PROPRIETARY @@ -1,7 +1,7 @@ This file is part of Frama-C. -Copyright (C) 2007-2018 +Copyright (C) 2007-2019 CEA (Commissariat à l'énergie atomique et aux énergies alternatives) diff --git a/headers/open-source/CEA_PROPRIETARY b/headers/open-source/CEA_PROPRIETARY index 39bb899ccc59fce71bc7639790fd77a509eb5ad3..d592caa19b9f4fcfa3ecf8db45b1b68e8affe87b 100644 --- a/headers/open-source/CEA_PROPRIETARY +++ b/headers/open-source/CEA_PROPRIETARY @@ -1,7 +1,7 @@ This file is part of Frama-C. -Copyright (C) 2007-2018 +Copyright (C) 2007-2019 CEA (Commissariat à l'énergie atomique et aux énergies alternatives) diff --git a/headers/open-source/CEA_WP b/headers/open-source/CEA_WP index d123eedfb80180cfe70da25005e9d7354f3add47..19e59e23132d118cb7decbf6b6db039011fee1fc 100644 --- a/headers/open-source/CEA_WP +++ b/headers/open-source/CEA_WP @@ -1,7 +1,7 @@ This file is part of WP plug-in of Frama-C. -Copyright (C) 2007-2018 +Copyright (C) 2007-2019 CEA (Commissariat a l'energie atomique et aux energies alternatives) diff --git a/headers/updates-headers.sh b/headers/updates-headers.sh index 24e1946995422ccdf6d83b41509e37e3ebdcb818..c026810335e87bb18ad896f4befb6de1af44eaad 100755 --- a/headers/updates-headers.sh +++ b/headers/updates-headers.sh @@ -3,7 +3,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/man/frama-c.1 b/man/frama-c.1 index a6d2358f564f9634aba54f17efebc84c8bbb0015..8195efa760fefebbb1878eb745e3d32d4edca2a7 100644 --- a/man/frama-c.1 +++ b/man/frama-c.1 @@ -2,7 +2,7 @@ .\" .\" This file is part of Frama-C. .\" -.\" Copyright (C) 2007-2018 +.\" Copyright (C) 2007-2019 .\" CEA (Commissariat à l'énergie atomique et aux énergies .\" alternatives) .\" diff --git a/nix/default.nix b/nix/default.nix new file mode 100644 index 0000000000000000000000000000000000000000..3bc25269109649cda4fcd4975e348e46a170e8e7 --- /dev/null +++ b/nix/default.nix @@ -0,0 +1,238 @@ +# paramaterised derivation with dependencies injected (callPackage style) +{ pkgs, stdenv, src ? ../., opam2nix, ocaml_version ? "ocaml-ng.ocamlPackages_4_05.ocaml", plugins ? { } }: + +let mk_buildInputs = { opamPackages ? [] } : + [ pkgs.gnugrep pkgs.gnused pkgs.autoconf pkgs.gnumake pkgs.gcc pkgs.ncurses pkgs.time pkgs.python3 pkgs.perl] ++ opam2nix.build { + specs = opam2nix.toSpecs ([ "ocamlfind" "zarith" "ocamlgraph" + { name = "coq"; constraint = "=8.7.2"; } + ] ++ opamPackages ++ + (if ocaml_version == "pkgs.ocaml-ng.ocamlPackages_4_02.ocaml" + then [ { name = "ocamlbuild" ; constraint = "=0"; } ] else []) + ); + ocamlAttr = ocaml_version; + }; + +in + +rec { + inherit src; + buildInputs = mk_buildInputs {}; + installed = main.out; + main = stdenv.mkDerivation { + name = "frama-c"; + inherit src buildInputs; + outputs = [ "out" "build_dir" ]; + postPatch = '' + patchShebangs . + ''; + configurePhase = '' + unset CC + autoconf + ./configure --prefix=$out + ''; + buildPhase = '' + make -j 4 + ''; + installPhase = '' + make install + mkdir -p $build_dir + tar -cf $build_dir/dir.tar . + pwd > $build_dir/old_pwd + ''; + setupHook = pkgs.writeText "setupHook.sh" '' + addFramaCPath () { + if test -d "''$1/lib/frama-c/plugins"; then + export FRAMAC_PLUGIN="''${FRAMAC_PLUGIN}''${FRAMAC_PLUGIN:+:}''$1/lib/frama-c/plugins" + export OCAMLPATH="''${OCAMLPATH}''${OCAMLPATH:+:}''$1/lib/frama-c/plugins" + fi + + if test -d "''$1/lib/frama-c"; then + export OCAMLPATH="''${OCAMLPATH}''${OCAMLPATH:+:}''$1/lib/frama-c" + fi + + if test -d "''$1/share/frama-c/"; then + export FRAMAC_EXTRA_SHARE="''${FRAMAC_EXTRA_SHARE}''${FRAMAC_EXTRA_SHARE:+:}''$1/share/frama-c" + fi + + } + + addEnvHooks "$targetOffset" addFramaCPath + ''; + }; + + lint = stdenv.mkDerivation { + name = "frama-c-lint"; + inherit src; + buildInputs = (mk_buildInputs {opamPackages = [ "ocp-indent" ];} ) ++ [ pkgs.bc plugins.headache.installed pkgs.file ]; + outputs = [ "out" ]; + postPatch = '' + patchShebangs . + ''; + configurePhase = '' + unset CC + autoconf + ./configure --prefix=$out + ''; + buildPhase = '' + make lint + make stats-lint + make check-headers + ''; + installPhase = '' + true + ''; + }; + + tests = stdenv.mkDerivation { + name = "frama-c-test"; + inherit buildInputs; + build_dir = main.build_dir; + src = main.build_dir + "/dir.tar"; + sourceRoot = "."; + postUnpack = '' + find . \( -name "Makefile*" -or -name ".depend" -o -name "ptests_config" -o -name "config.status" \) -exec bash -c "t=\$(stat -c %y \"\$0\"); sed -i -e \"s&$(cat $build_dir/old_pwd)&$(pwd)&g\" \"\$0\"; touch -d \"\$t\" \"\$0\"" {} \; + ''; + configurePhase = '' + true + ''; + buildPhase = '' + make clean_share_link + make create_share_link + make tests -j4 PTESTS_OPTS="-error-code -j 4" + ''; + installPhase = '' + true + ''; + }; + + distrib = stdenv.mkDerivation { + name = "frama-c-distrib"; + inherit src; + buildInputs = buildInputs ++ [ plugins.headache.installed ]; + postPatch = '' + patchShebangs . + ''; + configurePhase = '' + unset CC + autoconf + ./configure --prefix=$out + ''; + buildPhase = '' + make DISTRIB="frama-c-archive" src-distrib + ''; + installPhase = '' + tar -C $out --strip-components=1 -xf frama-c-archive.tar.gz + ''; + }; + + tests-distrib = stdenv.mkDerivation { + name = "frama-c-tests-distrib"; + inherit distrib buildInputs; + outputs = [ "out" "build_dir" ]; + configurePhase = '' + unset CC + autoconf + ./configure --prefix=$out + ''; + buildPhase = '' + make -j 4 + make tests -j4 PTESTS_OPTS="-error-code -j 4" + ''; + installPhase = '' + make install + ''; + }; + + wp-qualif = stdenv.mkDerivation { + name = "frama-c-wp-qualif"; + buildInputs = mk_buildInputs { opamPackages = [ + { name = "alt-ergo"; constraint = "=2.0.0"; } + { name = "why3" ; constraint = "=0.88.3"; } + ]; }; + build_dir = main.build_dir; + src = main.build_dir + "/dir.tar"; + sourceRoot = "."; + postUnpack = '' + find . \( -name "Makefile*" -or -name ".depend" -o -name "ptests_config" -o -name "config.status" \) -exec bash -c "t=\$(stat -c %y \"\$0\"); sed -i -e \"s&$(cat $build_dir/old_pwd)&$(pwd)&g\" \"\$0\"; touch -d \"\$t\" \"\$0\"" {} \; + ''; + configurePhase = '' + true + ''; + buildPhase = '' + make clean_share_link + make create_share_link + mkdir home + HOME=$(pwd)/home + why3 config + bin/ptests.opt -error-code -config qualif src/plugins/wp/tests + ''; + installPhase = '' + true + ''; + }; + + internal = stdenv.mkDerivation { + name = "frama-c-internal"; + inherit src; + buildInputs = (mk_buildInputs { opamPackages = [ "xml-light" ];} ) ++ + [ pkgs.getopt pkgs.which + pkgs.libxslt pkgs.libxml2 pkgs.file pkgs.autoPatchelfHook stdenv.cc.cc.lib + ]; + counter_examples_src = plugins.counter-examples.src; + genassigns_src = plugins.genassigns.src; + pathcrawler_src = plugins.pathcrawler.src; + mthread_src = plugins.mthread.src; + caveat_importer_src = plugins.caveat-importer.src; + acsl_importer_src = plugins.acsl-importer.src; + volatile_src = plugins.volatile.src; + e_acsl_src = plugins.e-acsl.src; + security_src = plugins.security.src; + context_from_precondition_src = plugins.context-from-precondition.src; + postPatch = '' + patchShebangs . + ''; + postUnpack = '' + cp -r --preserve=mode "$counter_examples_src" "$sourceRoot/src/plugins/counter-examples" + chmod -R u+w -- "$sourceRoot/src/plugins/counter-examples" + cp -r --preserve=mode "$genassigns_src" "$sourceRoot/src/plugins/genassigns" + chmod -R u+w -- "$sourceRoot/src/plugins/genassigns" + cp -r --preserve=mode "$pathcrawler_src" "$sourceRoot/src/plugins/pathcrawler" + chmod -R u+w -- "$sourceRoot/src/plugins/pathcrawler" + cp -r --preserve=mode "$mthread_src" "$sourceRoot/src/plugins/mthread" + chmod -R u+w -- "$sourceRoot/src/plugins/mthread" + cp -r --preserve=mode "$caveat_importer_src" "$sourceRoot/src/plugins/caveat-importer" + chmod -R u+w -- "$sourceRoot/src/plugins/caveat-importer" + cp -r --preserve=mode "$volatile_src" "$sourceRoot/src/plugins/volatile" + chmod -R u+w -- "$sourceRoot/src/plugins/volatile" + cp -r --preserve=mode "$acsl_importer_src" "$sourceRoot/src/plugins/acsl-importer" + chmod -R u+w -- "$sourceRoot/src/plugins/acsl-importer" + cp -r --preserve=mode "$e_acsl_src" "$sourceRoot/src/plugins/e-acsl" + chmod -R u+w -- "$sourceRoot/src/plugins/e-acsl" + echo IN_FRAMA_CI=yes > "$sourceRoot/in_frama_ci" + cp -r --preserve=mode "$context_from_precondition_src" "$sourceRoot/src/plugins/context-from-precondition" + chmod -R u+w -- "$sourceRoot/src/plugins/context-from-precondition" + cp -r --preserve=mode "$security_src" "$sourceRoot/src/plugins/security" + chmod -R u+w -- "$sourceRoot/src/plugins/security" + ''; + + configurePhase = '' + unset CC + autoconf + ./configure --prefix=$out + ''; + buildPhase = '' + make unpack-eclipse + sed -i src/plugins/pathcrawler/extern/eclipseCLP/RUNME -e "s/chmod 2755/chmod 755/g" + rm src/plugins/pathcrawler/extern/eclipseCLP/lib/x86_64_linux/dbi_mysql.so + rm src/plugins/pathcrawler/extern/eclipseCLP/lib/x86_64_linux/ic.so + prefix="src/plugins/pathcrawler" autoPatchelf + make -j 4 + ln -sr src/plugins/pathcrawler/share share/pc + make tests -j4 PTESTS_OPTS="-error-code -j 4" + ''; + installPhase = '' + make install + ''; + }; + +} diff --git a/nix/empty b/nix/empty new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/nix/frama-ci.nix b/nix/frama-ci.nix new file mode 100644 index 0000000000000000000000000000000000000000..e26a55d0f058b25b43d59ddd40a3656c951ef440 --- /dev/null +++ b/nix/frama-ci.nix @@ -0,0 +1,15 @@ +#To copy in other repository +{ pkgs ? import <nixpkgs> {}, password}: + +let + src = builtins.fetchGit { + "url" = "https://bobot:${password}@git.frama-c.com/frama-c/Frama-CI.git"; + "name" = "Frama-CI"; + "rev" = "70045f4252e668e0facad12d7db2c6ab83fc813b"; + "ref" = "master"; + }; + in + { + src = src; + compiled = pkgs.callPackage "${src}/compile.nix" { inherit pkgs; }; + } diff --git a/nix/frama-ci.sh b/nix/frama-ci.sh new file mode 100755 index 0000000000000000000000000000000000000000..b4a69f90154968218273a70d50be6173a2909841 --- /dev/null +++ b/nix/frama-ci.sh @@ -0,0 +1,12 @@ +#!/bin/sh -eu + +DIR=$(dirname $0) + +export FRAMA_CI_NIX=$DIR/frama-ci.nix + +export FRAMA_CI=$(nix-instantiate --eval -E "((import <nixpkgs> {}).callPackage $FRAMA_CI_NIX { password = \"$TOKEN_FOR_API\";}).src.outPath") + +FRAMA_CI=${FRAMA_CI#\"} +FRAMA_CI=${FRAMA_CI%\"} + +$FRAMA_CI/compile.sh $@ diff --git a/opam/opam b/opam/opam index df7158ed6fb625a5804c020bf4ed21ce0b1e56f7..caef4a4893ad8ec34c890f659daddaaa9bc5a594 100644 --- a/opam/opam +++ b/opam/opam @@ -44,7 +44,7 @@ authors: [ homepage: "http://frama-c.com/" license: "GNU Lesser General Public License version 2.1" dev-repo: "git+https://github.com/Frama-C/Frama-C-snapshot.git#latest" -doc: "http://frama-c.com/download/user-manual-Chlorine-20180501.pdf" +doc: "http://frama-c.com/download/user-manual-18.0-Argon.pdf" bug-reports: "https://bts.frama-c.com/" tags: [ "deductive" @@ -104,7 +104,8 @@ depopts: [ ] conflicts: [ - "why3-base" { < "0.88" | >= "1.0.0" } #for WP plug-in + "why3-base" { < "0.88" } #for WP plug-in + "why3" { >= "1.0.0" } #for WP plug-in "coq" { < "8.4.6" } #for WP plug-in "lablgtk" { < "2.18.2" } #for ocaml >= 4.02.1 "frama-c-e-acsl" #avoid mixing old releases of E-ACSL, it is already diff --git a/ptests/ptests.ml b/ptests/ptests.ml index fc448fffbf8f80d8e7b1562f4c131138d711ac0b..ef9497abebbceba829913c2c4cf56847fd4b08ca 100644 --- a/ptests/ptests.ml +++ b/ptests/ptests.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -707,11 +707,12 @@ let config_options = (fun _ s current -> let new_top = List.map - (fun (cmd,opts, log) -> cmd, make_custom_opts opts s, current.dc_default_log) + (fun (cmd,opts, log) -> cmd, make_custom_opts opts s, log) !current_default_cmds in { current with dc_toplevels = new_top @ current.dc_toplevels; - dc_default_log = !current_default_log }); + dc_default_log = !current_default_log @ + current.dc_default_log }); "FILEREG", (fun _ s current -> { current with dc_test_regexp = s }); diff --git a/share/META.frama-c b/share/META.frama-c new file mode 100644 index 0000000000000000000000000000000000000000..be05739fdfee70b426d186932e71a06352db62e4 --- /dev/null +++ b/share/META.frama-c @@ -0,0 +1,16 @@ +description="frama-c" +version="" +requires="" + +package "kernel" ( + description="The kernel library of frama-c" + version="" + requires="@REQUIRES" + archive(byte) = "frama-c.cma" + plugin(byte) = "frama-c.cma" + archive(native) = "frama-c.cmxa" + plugin(native) = "frama-c.cmxs" + directory="" +) + +directory="" diff --git a/share/Makefile.clean b/share/Makefile.clean index 753e556ed8abc977081fd4d0df9745f16dcfa422..be4c0133cbdf239af6c1c3f19a59814226ebd651 100644 --- a/share/Makefile.clean +++ b/share/Makefile.clean @@ -2,7 +2,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/share/Makefile.common b/share/Makefile.common index d5061d699d1e11bbf51cdf910d717accfd93eccd..d89db19e691bc8da319a60cca8a8cab6e476ad3a 100644 --- a/share/Makefile.common +++ b/share/Makefile.common @@ -2,7 +2,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/share/Makefile.config.in b/share/Makefile.config.in index 993b677842a1f90c021bf18d911c88be1b97448a..9d321679ed94e0bd3c09e788c50172408cd44421 100644 --- a/share/Makefile.config.in +++ b/share/Makefile.config.in @@ -2,7 +2,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # @@ -38,10 +38,10 @@ prefix ?=@prefix@ exec_prefix ?=@exec_prefix@ datarootdir ?=@datarootdir@ datadir ?=@datadir@ -BINDIR ?="$(DESTDIR)@bindir@" -LIBDIR ?="$(DESTDIR)@libdir@" -DATADIR ?="$(DESTDIR)@datarootdir@" -MANDIR ?="$(DESTDIR)@mandir@" +BINDIR ?=$(DESTDIR)@bindir@ +LIBDIR ?=$(DESTDIR)@libdir@ +DATADIR ?=$(DESTDIR)@datarootdir@ +MANDIR ?=$(DESTDIR)@mandir@ FRAMAC_LIBDIR ?=$(LIBDIR)/frama-c FRAMAC_PLUGINDIR ?=$(FRAMAC_LIBDIR)/plugins @@ -65,6 +65,8 @@ OCAMLDEP ?=@OCAMLDEP@ -slash OCAMLLEX ?=@OCAMLLEX@ OCAMLYACC ?=@OCAMLYACC@ OCAMLMKTOP ?=@OCAMLMKTOP@ +OCAMLMKLIB ?=@OCAMLFIND@ ocamlmklib +OCAMLFIND ?=@OCAMLFIND@ OCAMLDOC ?=@OCAMLDOC@ OCAMLCP ?=@OCAMLCP@ @@ -102,10 +104,13 @@ DEVELOPMENT ?=@DEVELOPMENT@ HAS_LABLGTK ?=@HAS_LABLGTK@ HAS_LABLGTK_CUSTOM_MODEL ?=@HAS_LABLGTK@ LABLGTK_PATH ?=@LABLGTK_PATH@ - +LABLGTK ?= lablgtk@LABLGTK_VERSION@ # lablgtksourceview HAS_GTKSOURCEVIEW ?=@HAS_GTKSOURCEVIEW@ +GTKSOURCEVIEW:=\ + $(patsubst lablgtk%,$(LABLGTK).%,$(basename $(notdir @GTKSOURCEVIEW@))) + # lablgnomecanvas HAS_GNOMECANVAS ?=@HAS_GNOMECANVAS@ @@ -190,7 +195,10 @@ LIBRARY_NAMES += yojson endif ifneq ($(ENABLE_GUI),no) -LIBRARY_NAMES_GUI = lablgtk2 lablgtk2.gnomecanvas lablgtk2.sourceview2 + LIBRARY_NAMES_GUI = $(LABLGTK) $(GTKSOURCEVIEW) + ifeq ($(HAS_GNOMECANVAS),yes) + LIBRARY_NAMES_GUI+=lablgtk2.gnomecanvas + endif else LIBRARY_NAMES_GUI = endif diff --git a/share/Makefile.dynamic b/share/Makefile.dynamic index ab4f3647d3332669b6ba0eb414654b49d27ef231..4ebe6147bc6d2b7b10b77c5c0c9e035d93765a01 100644 --- a/share/Makefile.dynamic +++ b/share/Makefile.dynamic @@ -2,7 +2,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # @@ -46,6 +46,7 @@ ifeq ($(FRAMAC_INTERNAL),yes) PLUGIN_RESET :=yes else + # The plugin is compiled from an installed frama-c PLUGIN_RESET :=no include $(MAKECONFIG_DIR)/Makefile.common @@ -186,11 +187,11 @@ $(eval $(call include_generic_plugin_Makefile,$(PLUGIN_NAME))) TARGETS := $(TARGET_META) $(TARGET_CMI) TARGETS_TOP := $(TARGET_TOP_CMO) $(TARGET_TOP_CMX) \ - $(TARGET_TOP_CMA) $(TARGET_TOP_CMXS) + $(TARGET_TOP_CMA) $(TARGET_TOP_CMXS) $(TARGET_TOP_O) TARGETS_GUI_BYTE := $(TARGET_GUI_CMI) $(TARGET_GUI_CMO) -TARGETS_GUI := $(TARGETS_GUI_BYTE) $(TARGET_GUI_CMX) $(TARGET_GUI_CMXS) +TARGETS_GUI := $(TARGETS_GUI_BYTE) $(TARGET_GUI_CMX) $(TARGET_GUI_CMXS) $(TARGET_GUI_O) TARGETS_BYTE:= $(TARGET_META) $(TARGET_CMI) $(TARGET_TOP_CMO) $(TARGET_TOP_CMA) -TARGETS_OPT:= $(TARGET_META) $(TARGET_CMI) $(TARGET_TOP_CMX) $(TARGET_TOP_CMXS) +TARGETS_OPT:= $(TARGET_META) $(TARGET_CMI) $(TARGET_TOP_CMX) $(TARGET_TOP_CMXS) $(TARGET_TOP_O) byte:: $(TARGETS_BYTE) opt:: $(TARGETS_OPT) @@ -247,14 +248,24 @@ endif # PLUGIN_ENABLE <> no # Merlin # ########## -.PHONY: merlin_plugin -merlin_plugin:: - echo "B $(FRAMAC_LIBDIR)" > .merlin +.PHONY: create_merlin +create_merlin: +#create Merlin file for external plug-in + $(PRINT_MAKING) .merlin + echo "FLG -c $(FLAGS) $(FRAMAC_USER_MERLIN_FLAGS)" > .merlin + echo "B $(FRAMAC_LIBDIR)" >> .merlin echo "B $(FRAMAC_LIBDIR)/plugins" >> .merlin echo "B $(FRAMAC_LIBDIR)/plugins/gui" >> .merlin - echo "PKG ocamlgraph" >> .merlin - echo "PKG zarith" >> .merlin - echo "PKG lablgtk2" >> .merlin + for PKG in $(LIBRARY_NAMES); do echo PKG $$PKG >> .merlin; done + for PKG in $(LIBRARY_NAMES_GUI); do echo PKG $$PKG >> .merlin; done + for PKG in $(MERLIN_PACKAGES); do echo PKG $$PKG >> .merlin; done + for DIR in $(patsubst %/,%,$(sort $(dir $(PLUGIN_ML_SRC) $(PLUGIN_TESTS_LIB)))); do echo S $$DIR>> .merlin; echo B $$DIR >> .merlin; done + +# To allow completion of .merlin file +.PHONY: merlin +merlin:: create_merlin + +.merlin: merlin ############ # Cleaning # diff --git a/share/Makefile.dynamic_config.external b/share/Makefile.dynamic_config.external index 30f7f68761412daa0e71c005e97d382021a496bc..e76a1aa89899864ff5f1c29830e04a997b0f855c 100644 --- a/share/Makefile.dynamic_config.external +++ b/share/Makefile.dynamic_config.external @@ -2,7 +2,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # @@ -29,13 +29,16 @@ export FRAMAC_INCLUDES=-I "$(FRAMAC_LIBDIR)" export PTESTS=$(BINDIR)/ptests.$(PTESTSBEST)$(EXE) -export FRAMAC_LIB="$(FRAMAC_LIBDIR)" +export FRAMAC_LIB=$(FRAMAC_LIBDIR) export DOC_DIR=$(FRAMAC_SHARE)/doc/code export PLUGIN_LIB_DIR=$(PLUGIN_DIR) export FRAMAC_COMPILED_PLUGINDIR=$(FRAMAC_LIBDIR)/plugins +export OCAMLPATH:=$(FRAMAC_LIB):$(FRAMAC_PLUGINDIR)$(if $(OCAMLPATH),:,)$(OCAMLPATH) +export OCAMLFIND_IGNORE_DUPS_IN:=$(FRAMAC_LIB):$(FRAMAC_PLUGINDIR)$(if $(OCAMLFIND_IGNORE_DUPS_IN),:,)$(OCAMLFIND_IGNORE_DUPS_IN) + # fake target corresponding to the clean-install of Frama-C's Makefile .PHONY: clean-install clean-install: ; diff --git a/share/Makefile.dynamic_config.internal b/share/Makefile.dynamic_config.internal index a836f0ab98c5db3ca1986dad79435c3f076fb26c..6c50e7bba80c9ccea20a91c6c08111c773703ba3 100644 --- a/share/Makefile.dynamic_config.internal +++ b/share/Makefile.dynamic_config.internal @@ -2,7 +2,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # @@ -36,6 +36,9 @@ export PLUGIN_LIB_DIR=$(FRAMAC_ROOT_SRCDIR)/lib/plugins export FRAMAC_COMPILED_PLUGINDIR=$(FRAMAC_ROOT_SRCDIR)/lib/plugins +export OCAMLPATH:=$(FRAMAC_LIB):$(PLUGIN_LIB_DIR)$(if $(OCAMLPATH),:,)$(OCAMLPATH) +export OCAMLFIND_IGNORE_DUPS_IN:=$(FRAMAC_LIB):$(PLUGIN_LIB_DIR)$(if $(OCAMLFIND_IGNORE_DUPS_IN),:,)$(OCAMLFIND_IGNORE_DUPS_IN) + ########################################################################## # Local Variables: # mode: makefile diff --git a/share/Makefile.generic b/share/Makefile.generic index e201cab8cdc66454a8afaf51ba15c0825ce4f6a6..77074035606542c0cbb8638f9660d4ccc8c46b3f 100644 --- a/share/Makefile.generic +++ b/share/Makefile.generic @@ -2,7 +2,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/share/Makefile.plugin.template b/share/Makefile.plugin.template index f9bf4c671652122ce19b17d6032125fdef4939c2..df7931022fe0916c4305b2b531a9c302032d2a14 100644 --- a/share/Makefile.plugin.template +++ b/share/Makefile.plugin.template @@ -2,7 +2,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # @@ -183,18 +183,26 @@ PLUGIN_RESET?=yes # Set it to no in order to NOT reset plug-in variable. # ############################################################################### + +DEPEND_PKG := $(addprefix frama-c-, $(shell echo $(PLUGIN_DEPENDENCIES) | tr '[:upper:]' '[:lower:]')) + # Where the other plug-ins to load are already installed ifeq ($(FRAMAC_INTERNAL),yes) INSTALLED_PLUGIN_DIR:=$(FRAMAC_ROOT_SRCDIR)/lib/plugins # Also inform the main Makefile that there's another plug-in to be # considered PLUGIN_LIST+=$(PLUGIN_DIR)/@PLUGIN_NAME@ +PLUGIN_PACKAGES:=$(PLUGIN_REQUIRES) + else INSTALLED_PLUGIN_DIR:=$(PLUGIN_INSTALL_DIR) +PLUGIN_PACKAGES:=$(PLUGIN_REQUIRES) $(DEPEND_PKG) endif +PLUGIN_REQUIRES += $(DEPEND_PKG) + # The plugin types .cm* files PLUGIN_TYPES_CMO:=$(addsuffix .cmo,$(PLUGIN_TYPES_CMO)) PLUGIN_TYPES_CMX:=$(PLUGIN_TYPES_CMO:.cmo=.cmx) @@ -213,6 +221,8 @@ $(notdir $(patsubst %/,%,$(PLUGIN_DIR))))) PLUGIN_DEPENDS:=$(PLUGIN_DEPENDS) $(PLUGIN_DEPENDENCIES) + + ################ # ml sources # ################ @@ -268,6 +278,12 @@ endif ifneq ($(PLUGIN_DISTRIBUTED),no) PLUGIN_DISTRIBUTED_LIST += $(PLUGIN_SRC) +ifeq ($(ENABLE_GUI),no) +# Also include GUI files to be distributed, even if not currently used +PLUGIN_DISTRIBUTED_LIST += \ + $(patsubst %,$(PLUGIN_DIR)/%.ml*,$(PLUGIN_GUI_CMO)) \ + $(patsubst %,$(PLUGIN_DIR)/%.mli,$(PLUGIN_GUI_CMI)) +endif # VP: this needs to be adapted for external plugins. ifeq ($(PLUGIN_HAS_EXT_DOC),yes) @@ -383,6 +399,8 @@ endif # Some meta-variables for compilation flags NAME_BFLAGS :=@PLUGIN_NAME@_BFLAGS NAME_OFLAGS :=@PLUGIN_NAME@_OFLAGS +NAME_TEST_BFLAGS :=@PLUGIN_NAME@_TEST_BFLAGS +NAME_TEST_OFLAGS :=@PLUGIN_NAME@_TEST_OFLAGS TARGET_OFLAGS :=@PLUGIN_NAME@_TARGET_OFLAGS TARGET_BFLAGS :=@PLUGIN_NAME@_TARGET_BFLAGS ifeq ($(HAS_GUI),yes) @@ -418,12 +436,16 @@ endif PLUGIN_EXTRA_DIRS_INC:=$(patsubst %,-I $(PLUGIN_DIR)/% ,$(PLUGIN_EXTRA_DIRS)) # Set the compilation flags for the plugin -INCLUDE_FLAGS:=-I $(PLUGIN_DIR) -I $(INSTALLED_PLUGIN_DIR) \ - $(PLUGIN_EXTRA_DIRS_INC) \ - $(addprefix -package ,$(PLUGIN_REQUIRES) $(LIBRARY_NAMES)) - +INCLUDE_EXT_FLAGS:=-I $(INSTALLED_PLUGIN_DIR) \ + $(addprefix -package ,$(PLUGIN_PACKAGES) $(LIBRARY_NAMES)) +INCLUDE_FLAGS:=-I $(PLUGIN_DIR) $(PLUGIN_EXTRA_DIRS_INC) $(INCLUDE_EXT_FLAGS) $(NAME_BFLAGS):=$(BFLAGS) $(INCLUDE_FLAGS) $(PLUGIN_BFLAGS) $(NAME_OFLAGS):=$(OFLAGS) $(INCLUDE_FLAGS) $(PLUGIN_OFLAGS) +# DO NOT include the plugin's own directory as search path for compiling +# ml test scripts: they will be loaded in a separate phase, and will only see +# the plugin through its static API +$(NAME_TEST_BFLAGS):= $(BFLAGS) $(INCLUDE_EXT_FLAGS) $(PLUGIN_BFLAGS) +$(NAME_TEST_OFLAGS):= $(OFLAGS) $(INCLUDE_EXT_FLAGS) $(PLUGIN_OFLAGS) $(TARGET_BFLAGS):= $(PLUGIN_LINK_BFLAGS) $(TARGET_OFLAGS):= $(PLUGIN_LINK_OFLAGS) @@ -453,9 +475,8 @@ endif # META file PLUGIN_PKG :=$(shell echo frama-c-@PLUGIN_NAME@ | tr '[:upper:]' '[:lower:]') -DEPEND_PKG :=$(shell echo $(PLUGIN_DEPENDENCIES) | tr '[:upper:]' '[:lower:]') -PLUGIN_REQUIRES += $(addprefix frama-c-,$(DEPEND_PKG)) TARGET_META :=$(PLUGIN_LIB_DIR)/META.$(PLUGIN_PKG) +PLUGIN_GENERATED+= $(TARGET_META) ifneq ($(PLUGIN_HAS_META),yes) # generated META @@ -504,7 +525,7 @@ $(TARGET_META): $(RM) $@ $(ECHO) "description = \"$($(notdir $@).DESCRIPTION)\"" >> $@ $(ECHO) "version = \"$($(notdir $@).VERSION)\"" >> $@ - $(ECHO) "requires = \"$($(notdir $@).REQUIRES)\"" >> $@ + $(ECHO) "requires = \"frama-c.kernel $($(notdir $@).REQUIRES)\"" >> $@ $(ECHO) "archive(byte) = \"top/$($(notdir $@).BYTE)\"" >> $@ $(ECHO) "archive(native) = \"top/$($(notdir $@).NATIVE)\"" >> $@ $(ECHO) "plugin(native) = \"top/$($(notdir $@).PLUGIN)\"" >> $@ @@ -848,9 +869,9 @@ endif @PLUGIN_NAME@_TESTS_LIB_OPT_DYN:=$(PLUGIN_TESTS_LIB:%.ml=%.cmxs) @PLUGIN_NAME@_TESTS_LIB_BYTE:=$(PLUGIN_TESTS_LIB:%.ml=%.cmo) -$(@PLUGIN_NAME@_TESTS_LIB_OPT): OFLAGS:=$($(NAME_OFLAGS)) $(@PLUGIN_NAME@_TESTS_LIB_DIR_INCLUDE) -$(@PLUGIN_NAME@_TESTS_LIB_OPT_DYN): OFLAGS:=$($(NAME_OFLAGS)) $(@PLUGIN_NAME@_TESTS_LIB_DIR_INCLUDE) -$(@PLUGIN_NAME@_TESTS_LIB_BYTE): BFLAGS:=$($(NAME_BFLAGS)) $(@PLUGIN_NAME@_TESTS_LIB_DIR_INCLUDE) +$(@PLUGIN_NAME@_TESTS_LIB_OPT): OFLAGS:=$($(NAME_TEST_OFLAGS)) $(@PLUGIN_NAME@_TESTS_LIB_DIR_INCLUDE) +$(@PLUGIN_NAME@_TESTS_LIB_OPT_DYN): OFLAGS:=$($(NAME_TEST_OFLAGS)) $(@PLUGIN_NAME@_TESTS_LIB_DIR_INCLUDE) +$(@PLUGIN_NAME@_TESTS_LIB_BYTE): BFLAGS:=$($(NAME_TEST_BFLAGS)) $(@PLUGIN_NAME@_TESTS_LIB_DIR_INCLUDE) # [JS 2009/03/18] both .PRECIOUS are required in order to prevent 'make' # deletion of intermediate generated files. Such a deletion forces 'make' to @@ -975,7 +996,7 @@ endif #EXTRA_BYTE endif #HAS_GUI PLUGIN_DYN_DEP_GUI_CMX_LIST += $(PLUGIN_GUI_CMX) -PLUGIN_DYN_CMX_LIST += $(TARGET_TOP_CMXS) $(TARGET_TOP_CMX) +PLUGIN_DYN_CMX_LIST += $(TARGET_TOP_CMXS) $(TARGET_TOP_CMX) $(TARGET_TOP_O) # If P1 depends on P2, then dynamically link P1.cmxs requires to have # compiled P1's sources wrt the P2's .cmx. ifeq ($(HAS_GUI),yes) diff --git a/share/_frama-c b/share/_frama-c index 174f99374715734bc27c9a91349c84e4ea637928..f4250a0323691b1e0d11d0c84aabc0b543f581b8 100644 --- a/share/_frama-c +++ b/share/_frama-c @@ -3,7 +3,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/share/analysis-scripts/find_fun.py b/share/analysis-scripts/find_fun.py new file mode 100755 index 0000000000000000000000000000000000000000..8451cdf13022196d665f0b3a24cc120f6524debe --- /dev/null +++ b/share/analysis-scripts/find_fun.py @@ -0,0 +1,108 @@ +#!/usr/bin/env python3 +#-*- coding: utf-8 -*- +########################################################################## +# # +# This file is part of Frama-C. # +# # +# Copyright (C) 2007-2018 # +# CEA (Commissariat à l'énergie atomique et aux énergies # +# alternatives) # +# # +# you can redistribute it and/or modify it under the terms of the GNU # +# Lesser General Public License as published by the Free Software # +# Foundation, version 2.1. # +# # +# It is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU Lesser General Public License for more details. # +# # +# See the GNU Lesser General Public License version 2.1 # +# for more details (enclosed in the file licenses/LGPLv2.1). # +# # +########################################################################## + +# This script finds files containing likely declarations and definitions +# for a given function name, via heuristic syntactic matching. + +import sys +import os +import re +import glob + +debug = False + +arg = "" +if len(sys.argv) < 2: + print("usage: %s fname [dir1 dir2 ...]" % sys.argv[0]) + print(" looks for likely declarations/definitions of function fname") + print(" in files with extensions '.c', '.h' and '.i';") + print(" if dir1, dir2, etc, are specified, looks inside them,") + print(" otherwise looks inside PWD and /usr/include.") + print(" Subdirectories are always considered recursively.") + sys.exit(1) +else: + fname = sys.argv[1] + if re.match('[a-zA-Z_][a-zA-Z0-9_]*$', fname) == None: + print("error: function name contains invalid characters: %s" % fname) + print(" (only letters/digits/underscore allowed)") + sys.exit(1) + +dirs = set() +if len(sys.argv) < 3: + pwd = os.getcwd() + dirs = [pwd, "/usr/include"] +else: + dirs = set(sys.argv[2:]) + +if debug: + print("Looking for files in dirs (and their subdirs): %s" % dirs) + +files = [] +for d in dirs: + files += glob.glob(d + "/**/*.[ich]", recursive=True) + +print("Looking for '%s' inside %d file(s)..." % (fname, len(files))) +#print("\n".join(files)) + +# To minimize the amount of false positives, we try to match the following: +# - the line must begin with a C identifier (declarations and definitions in C +# rarely start with spaces in the line), or with the function name itself +# (supposing the return type is in the previous line) +# - any number of identifiers are allowed (to allow for 'struct', 'volatile', +# 'extern', etc) +# - asterisks are allowed both before and after identifiers, except for the +# first one (to allow for 'char *', 'struct **ptr', etc) +# - identifiers are allowed after the parentheses, to allow for some macros/ +# modifiers + +possible_declarators = [] +possible_definers = [] +c_identifier = "[a-zA-Z_][a-zA-Z0-9_]*" +c_id_maybe_pointer = c_identifier + "\**" +type_prefix = c_id_maybe_pointer + "(?:\s+\**" + c_id_maybe_pointer + ")*\s+\**" +parentheses_suffix = "\s*\([^)]*\)" +re_fun = re.compile("^(?:" + type_prefix + "\s*)?" + fname + parentheses_suffix + + "\s*(?:" + c_identifier + ")?\s*(;|{)", flags=re.MULTILINE) +for f in files: + with open(f, encoding="ascii", errors='ignore') as content_file: + content = content_file.read() + has_decl_or_def = re_fun.search(content) + if has_decl_or_def is not None: + is_decl = has_decl_or_def.group(1) == ";" + if is_decl: + possible_declarators.append(f) + else: + possible_definers.append(f) + +if possible_declarators == [] and possible_definers == []: + print("No declaration/definition found for function '%s'" % fname) +else: + if possible_declarators != []: + print("Possible declarations for function '%s' in the following file(s):" + % fname) + print(" " + "\n ".join(possible_declarators)) + if possible_definers != []: + print("Possible definitions for function '%s' in the following file(s):" + % fname) + print(" " + "\n ".join(possible_definers)) diff --git a/share/analysis-scripts/frama-c.mk b/share/analysis-scripts/frama-c.mk index cd3ae313ebb1a181c8e13e5d38be02cfeec0bdb4..3da9f1cf65582a904f5e2903fb7f0cf3adffa336 100644 --- a/share/analysis-scripts/frama-c.mk +++ b/share/analysis-scripts/frama-c.mk @@ -2,7 +2,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # @@ -186,16 +186,17 @@ SHELL := /bin/bash $(EVA) \ -load $(PARSE_RESULT)/framac.sav -save $@/framac.sav \ -eva-flamegraph $@/flamegraph.txt \ - -report-csv $@/alarms.csv -report-no-proven \ -kernel-log w:$@/warnings.log \ -from-log w:$@/warnings.log \ -inout-log w:$@/warnings.log \ - -report-log w:$@/warnings.log \ -scope-log w:$@/warnings.log \ -eva-log w:$@/warnings.log \ - -metrics-log a:$@/metrics.log \ + -then \ + -report-csv $@/alarms.csv -report-no-proven \ + -report-log w:$@/warnings.log \ -metrics-eva-cover \ - -then -nonterm -nonterm-log a:$@/nonterm.log \ + -metrics-log a:$@/metrics.log \ + -nonterm -nonterm-log a:$@/nonterm.log \ || ($(RM) $@/stats.txt && false) # Prevents having error code reporting in stats.txt } 2>&1 | $(SED_UNBUFFERED) '/\[eva\] Values at end of function/,999999d' | @@ -205,7 +206,8 @@ SHELL := /bin/bash printf 'timestamp=%q\n' "$(HR_TIMESTAMP)"; printf 'warnings=%s\n' "`cat $@/warnings.log | grep ':\[\(eva\|kernel\|from\)\]' | wc -l`"; printf 'alarms=%s\n' "`expr $$(cat $@/alarms.csv | wc -l) - 1`"; - printf 'cmd_args=%q\n' "$(subst ",\",$(wordlist 2,999,$(EVA)))" + printf 'cmd_args=%q\n' "$(subst ",\",$(wordlist 2,999,$(EVA)))"; + printf 'benchmark_tag=%s' "$(BENCHMARK)" } >> $@/stats.txt if [ ! -z $${FLAMEGRAPH+x} ]; then NOGUI=1 $(FRAMAC_SCRIPT) flamegraph $@/flamegraph.txt $@/ diff --git a/share/autocomplete_frama-c b/share/autocomplete_frama-c index 48c443678930fe24f94202eba7f89cf4ef66bb9c..5cbbb141a6459cc27bfd78000361c1a38696dfc9 100644 --- a/share/autocomplete_frama-c +++ b/share/autocomplete_frama-c @@ -2,7 +2,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/share/builtin.h b/share/builtin.h index c9bf927fc124e0b35560cf2375c2dfc50f7189c9..ce5a87c749ac48d97c08d08e670a65d6fc8cd228 100644 --- a/share/builtin.h +++ b/share/builtin.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/configure.ac b/share/configure.ac index 31403990467e09d84b60cfe4668b79f5b84cf7fe..1ea8d54d0ee906608bb404a4eaa5e4d11a9210e9 100644 --- a/share/configure.ac +++ b/share/configure.ac @@ -2,7 +2,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/share/emacs/acsl.el b/share/emacs/acsl.el index 97650d0a5aec38e40676fe7cd41767cb29b9f68e..34f21d2ffed344fc2cbdb0013db2460c2ce22518 100644 --- a/share/emacs/acsl.el +++ b/share/emacs/acsl.el @@ -5,7 +5,7 @@ ; Copyright (C) 2008-2011 ; ; Pierre Roux ; ; ; -; Copyright (C) 2009-2018 ; +; Copyright (C) 2009-2019 ; ; CEA LIST ; ; ; ; you can redistribute it and/or modify it under the terms of the GNU ; diff --git a/share/emacs/frama-c-dev.el b/share/emacs/frama-c-dev.el index dcd7722f9fd5e6ee057d15d9d9b09d73de54411c..87fca32f0e6a89f9176beb2895ffaf071006ee80 100644 --- a/share/emacs/frama-c-dev.el +++ b/share/emacs/frama-c-dev.el @@ -2,7 +2,7 @@ ; ; ; This file is part of Frama-C. ; ; ; -; Copyright (C) 2007-2018 ; +; Copyright (C) 2007-2019 ; ; CEA (Commissariat à l'énergie atomique et aux énergies ; ; alternatives) ; ; ; diff --git a/share/emacs/frama-c-init.el b/share/emacs/frama-c-init.el index 64a90eb2c1bf5272273136ce5e368023b7aff3c8..b6f7e5989a7528061eb4055e60c5f28b13759aab 100644 --- a/share/emacs/frama-c-init.el +++ b/share/emacs/frama-c-init.el @@ -2,7 +2,7 @@ ; ; ; This file is part of Frama-C. ; ; ; -; Copyright (C) 2007-2018 ; +; Copyright (C) 2007-2019 ; ; CEA (Commissariat à l'énergie atomique et aux énergies ; ; alternatives) ; ; ; diff --git a/share/emacs/frama-c-recommended.el b/share/emacs/frama-c-recommended.el index 383fe533edf51e6f4cd0777224c0368265526bc3..88426743b6308b0d55a5f7d39a06cbe60caa671f 100644 --- a/share/emacs/frama-c-recommended.el +++ b/share/emacs/frama-c-recommended.el @@ -2,7 +2,7 @@ ; ; ; This file is part of Frama-C. ; ; ; -; Copyright (C) 2007-2018 ; +; Copyright (C) 2007-2019 ; ; CEA (Commissariat à l'énergie atomique et aux énergies ; ; alternatives) ; ; ; diff --git a/share/frama-c.Unix.rc b/share/frama-c.Unix.rc index 898c5069268b2f264b1da3568f05e9d3ecc6c404..81c21f20dc4f7aebc5eac04f316dfbaef7fd4f22 100644 --- a/share/frama-c.Unix.rc +++ b/share/frama-c.Unix.rc @@ -2,7 +2,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/share/frama-c.WIN32.rc b/share/frama-c.WIN32.rc index febc1cf361124942fedd926965a508521ff68a44..574ebc5b509fb542f80790ac98d2a78e48e6ae84 100644 --- a/share/frama-c.WIN32.rc +++ b/share/frama-c.WIN32.rc @@ -2,7 +2,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/share/libc.c b/share/libc.c index 8c8d3f58a31c2a8f2fc7eb9177926329f3731906..bd14e7820b752c14887790e628692ff83d7d4a87 100644 --- a/share/libc.c +++ b/share/libc.c @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/__fc_alloc_axiomatic.h b/share/libc/__fc_alloc_axiomatic.h index 2b8f8800cf411b65d803181c10ad635d65a24a74..43bb7cb6534657bade7ba53268df1905295c9ee3 100644 --- a/share/libc/__fc_alloc_axiomatic.h +++ b/share/libc/__fc_alloc_axiomatic.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/__fc_builtin.c b/share/libc/__fc_builtin.c index ed89586c4d38587228fc7b20528277d198d133fa..0c099981f983a5d8ac718694a3f3427aa99120a8 100644 --- a/share/libc/__fc_builtin.c +++ b/share/libc/__fc_builtin.c @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/__fc_builtin.h b/share/libc/__fc_builtin.h index 19f80b43a557a50942de5783cc499544600442fb..a201ec354be35f992af10fe24017a9ba23b4c482 100644 --- a/share/libc/__fc_builtin.h +++ b/share/libc/__fc_builtin.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/__fc_define_blkcnt_t.h b/share/libc/__fc_define_blkcnt_t.h index 244a15928abff1c8c008512652fe74c7e9ce57b5..72d131dae155cd2e212339aaeb731c73f940b5a6 100644 --- a/share/libc/__fc_define_blkcnt_t.h +++ b/share/libc/__fc_define_blkcnt_t.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/__fc_define_blksize_t.h b/share/libc/__fc_define_blksize_t.h index 17a8ec909a3babfcc0ba4b520dfe488def54deb7..dae9c9dca6c60ce06852451b3524a0ed65142682 100644 --- a/share/libc/__fc_define_blksize_t.h +++ b/share/libc/__fc_define_blksize_t.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/__fc_define_clockid_t.h b/share/libc/__fc_define_clockid_t.h index ef43abaf6657cc8c68fdb0fb2e3b35a389222db2..08dc3994a6e769c7b81a9716b9f3da843d9510f7 100644 --- a/share/libc/__fc_define_clockid_t.h +++ b/share/libc/__fc_define_clockid_t.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/__fc_define_dev_t.h b/share/libc/__fc_define_dev_t.h index 29c7d4d0159c3a77037c0771cc476d4b7f50fc0c..dbddbdfe4c1110a66fb16801705c0d11215f2ea4 100644 --- a/share/libc/__fc_define_dev_t.h +++ b/share/libc/__fc_define_dev_t.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/__fc_define_eof.h b/share/libc/__fc_define_eof.h index 15f7a468af99c389d3bfd33aebfa9eae0d98cea6..843518c27f7d656e29262428fb90e026880b7827 100644 --- a/share/libc/__fc_define_eof.h +++ b/share/libc/__fc_define_eof.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/__fc_define_fd_set_t.h b/share/libc/__fc_define_fd_set_t.h index 55d2d2155d78bf2d108547901093273c473cbffc..9a33dcec7e78b5abeb7c54179c2b3764ce8fb84e 100644 --- a/share/libc/__fc_define_fd_set_t.h +++ b/share/libc/__fc_define_fd_set_t.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/__fc_define_file.h b/share/libc/__fc_define_file.h index 6b9ec24f3e3e53d8c05eddfc9115761bcc522f96..d1c0687b59da58d7f964aaa329e158c23d34247b 100644 --- a/share/libc/__fc_define_file.h +++ b/share/libc/__fc_define_file.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/__fc_define_fpos_t.h b/share/libc/__fc_define_fpos_t.h index 03ba44085b8a3841ccfc2fc44e33bfac6d8032fb..8a04d0e9083515291445537353045cb6434f5e85 100644 --- a/share/libc/__fc_define_fpos_t.h +++ b/share/libc/__fc_define_fpos_t.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/__fc_define_id_t.h b/share/libc/__fc_define_id_t.h index e03e235f5aaae5c28438d66335211b0ed08f2e85..a22a686e0ec81f8a605ad68375e064911bdbc4e9 100644 --- a/share/libc/__fc_define_id_t.h +++ b/share/libc/__fc_define_id_t.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/__fc_define_ino_t.h b/share/libc/__fc_define_ino_t.h index 1f78dfdceebb24a340fe45ac88267d14e03d4ac0..0cb76d79bfab35481dd6fa442e89faf7a49faf55 100644 --- a/share/libc/__fc_define_ino_t.h +++ b/share/libc/__fc_define_ino_t.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/__fc_define_intptr_t.h b/share/libc/__fc_define_intptr_t.h index 18783c107e0db37902d12639913a68e88b5003d6..8095d6e7937ee90c214e580d294654b3f4fe1c8c 100644 --- a/share/libc/__fc_define_intptr_t.h +++ b/share/libc/__fc_define_intptr_t.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/__fc_define_iovec.h b/share/libc/__fc_define_iovec.h index 69d6656160062781539967ba53ea9bd021d69f47..16c331b09ce5283832d37984f6482d46ae61aecf 100644 --- a/share/libc/__fc_define_iovec.h +++ b/share/libc/__fc_define_iovec.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/__fc_define_key_t.h b/share/libc/__fc_define_key_t.h index bf12080587c104884df86d5d82dd15f13c114f8b..be49ff2d8df4627800fd82149cf2663ef656c223 100644 --- a/share/libc/__fc_define_key_t.h +++ b/share/libc/__fc_define_key_t.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/__fc_define_mode_t.h b/share/libc/__fc_define_mode_t.h index 2b2022af6cfc22d3ac4a4b8d5b0cda72c624a275..7f0aee4e12ed763f988f2655e7310b8fb81d95b0 100644 --- a/share/libc/__fc_define_mode_t.h +++ b/share/libc/__fc_define_mode_t.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/__fc_define_nlink_t.h b/share/libc/__fc_define_nlink_t.h index d16ad9f033862d0e504abbd7882eb33d1a47fd65..409d62a67b0af4e84f6cb79a7e60ebfdb81420c8 100644 --- a/share/libc/__fc_define_nlink_t.h +++ b/share/libc/__fc_define_nlink_t.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/__fc_define_null.h b/share/libc/__fc_define_null.h index 983fac7d4162dcdf22558c86f782e8678ac7dafe..1b7cec39268dfedcfdd6151a77e415e5fa0883c1 100644 --- a/share/libc/__fc_define_null.h +++ b/share/libc/__fc_define_null.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/__fc_define_off_t.h b/share/libc/__fc_define_off_t.h index 2b15928b8d194aed66b6c89d72d0b01c70c97bc4..3c00c5e7da7204df7e2c269af7b35750e4e4a6c2 100644 --- a/share/libc/__fc_define_off_t.h +++ b/share/libc/__fc_define_off_t.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/__fc_define_pid_t.h b/share/libc/__fc_define_pid_t.h index 1b9585b5563e4450a1eb27b91090d67e0d2fae87..1226707869ee73ed0aa84973c63a688eb38a5016 100644 --- a/share/libc/__fc_define_pid_t.h +++ b/share/libc/__fc_define_pid_t.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/__fc_define_pthread_types.h b/share/libc/__fc_define_pthread_types.h index 1ccd78200e29298c45db366aa8f9776c0f1a62e5..bd9a591bc55c194098716a5e5df96e8762982a6d 100644 --- a/share/libc/__fc_define_pthread_types.h +++ b/share/libc/__fc_define_pthread_types.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/__fc_define_sa_family_t.h b/share/libc/__fc_define_sa_family_t.h index 3502b258885423256cf9b5cbd6dea00e1cbe19fc..49e5de72c9a9a1251dbd6696fc41b1976817fb2a 100644 --- a/share/libc/__fc_define_sa_family_t.h +++ b/share/libc/__fc_define_sa_family_t.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/__fc_define_seek_macros.h b/share/libc/__fc_define_seek_macros.h index 51a98efe03acfb9abb808c4dda3dc8acd4042d0d..026fc4be4979eb7ae504c8bb9424ac3b183158a1 100644 --- a/share/libc/__fc_define_seek_macros.h +++ b/share/libc/__fc_define_seek_macros.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/__fc_define_sigset_t.h b/share/libc/__fc_define_sigset_t.h index 5e20b6a494e6501ff2f7a7a1f28e64df37f8b307..299908fbb0c4bafe489cf61865c67a806846ec64 100644 --- a/share/libc/__fc_define_sigset_t.h +++ b/share/libc/__fc_define_sigset_t.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/__fc_define_size_t.h b/share/libc/__fc_define_size_t.h index 8b60233e1cb49d889ba5d28a3b74edf87d5a1e23..6e70cbd98b2a2af08a8e6ccfa762157f36003360 100644 --- a/share/libc/__fc_define_size_t.h +++ b/share/libc/__fc_define_size_t.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/__fc_define_sockaddr.h b/share/libc/__fc_define_sockaddr.h index 705201d37729ea364e365e070e09cc6715ca1645..6c524e7dba6493c466749da80cd8260e6469bf7b 100644 --- a/share/libc/__fc_define_sockaddr.h +++ b/share/libc/__fc_define_sockaddr.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/__fc_define_ssize_t.h b/share/libc/__fc_define_ssize_t.h index 4303426d2c5da7b58c95f12404e1e24b8816944d..3bb0ce562c5d2fc62a139a1ee3b0ced7a6a1d495 100644 --- a/share/libc/__fc_define_ssize_t.h +++ b/share/libc/__fc_define_ssize_t.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/__fc_define_stat.h b/share/libc/__fc_define_stat.h index 5c6559a50fcea335830134d6687e04d8eb018240..c9ec17a474efb9d3015216924bedd943f2c16655 100644 --- a/share/libc/__fc_define_stat.h +++ b/share/libc/__fc_define_stat.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/__fc_define_suseconds_t.h b/share/libc/__fc_define_suseconds_t.h index 4cd0fa8601526b700c37cfc994d5cca6b06e027e..e14c14b5180f0f85f7ca40939a124a9aa7141a10 100644 --- a/share/libc/__fc_define_suseconds_t.h +++ b/share/libc/__fc_define_suseconds_t.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/__fc_define_time_t.h b/share/libc/__fc_define_time_t.h index 2e31a7968a09dd4f4136cf6f536ca1396d77d4d4..b1779dd0a24a655a64a878473c9976acdfd130bd 100644 --- a/share/libc/__fc_define_time_t.h +++ b/share/libc/__fc_define_time_t.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/__fc_define_timer_t.h b/share/libc/__fc_define_timer_t.h index 95bcb72ddd9290cb839c09e771d62b1da7b8a7b6..0677a9b2a4f67f89d6a7f90c09c7f352251eceba 100644 --- a/share/libc/__fc_define_timer_t.h +++ b/share/libc/__fc_define_timer_t.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/__fc_define_timespec.h b/share/libc/__fc_define_timespec.h index 6752a93639138a65778bfcb813db283e394373b1..b6bcae76d66cca29775777a626b1e1228d38f4d3 100644 --- a/share/libc/__fc_define_timespec.h +++ b/share/libc/__fc_define_timespec.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/__fc_define_uid_and_gid.h b/share/libc/__fc_define_uid_and_gid.h index 2624e5fcc14f45cb8d00e2ed1ec2aceccba088c5..7bff3f2c64c87e39ecd1b3879ccda90200279ffc 100644 --- a/share/libc/__fc_define_uid_and_gid.h +++ b/share/libc/__fc_define_uid_and_gid.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/__fc_define_useconds_t.h b/share/libc/__fc_define_useconds_t.h index cc2d77764310671734af07a3a0d9157cbd5d0830..bf7915a8b01e9970f7023ddeaf256dcc27b93f1f 100644 --- a/share/libc/__fc_define_useconds_t.h +++ b/share/libc/__fc_define_useconds_t.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/__fc_define_wchar_t.h b/share/libc/__fc_define_wchar_t.h index c6a8d68efd3c5a655eecc34cfb2e0feaed20a116..6e66e39399d26c6bc28f78b7c9fbe9ad577f08b7 100644 --- a/share/libc/__fc_define_wchar_t.h +++ b/share/libc/__fc_define_wchar_t.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/__fc_define_wint_t.h b/share/libc/__fc_define_wint_t.h index bd24aa79f30ea4cd8b399281506e9f1cfd34915b..caeef9031e827dd50ef4779bbbb1b5b497ac80e9 100644 --- a/share/libc/__fc_define_wint_t.h +++ b/share/libc/__fc_define_wint_t.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/__fc_gcc_builtins.h b/share/libc/__fc_gcc_builtins.h new file mode 100644 index 0000000000000000000000000000000000000000..7db2e0fed113092cd4a734652d53bb7cad4c793d --- /dev/null +++ b/share/libc/__fc_gcc_builtins.h @@ -0,0 +1,199 @@ +/**************************************************************************/ +/* */ +/* This file is part of Frama-C. */ +/* */ +/* Copyright (C) 2007-2019 */ +/* CEA (Commissariat à l'énergie atomique et aux énergies */ +/* alternatives) */ +/* */ +/* you can redistribute it and/or modify it under the terms of the GNU */ +/* Lesser General Public License as published by the Free Software */ +/* Foundation, version 2.1. */ +/* */ +/* It is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU Lesser General Public License for more details. */ +/* */ +/* See the GNU Lesser General Public License version 2.1 */ +/* for more details (enclosed in the file licenses/LGPLv2.1). */ +/* */ +/**************************************************************************/ + +// This file contains some GCC builtins which are not already hardcoded in +// Frama-C, and which can be expressed using ACSL. + +#ifndef __FC_GCC_BUILTINS +#define __FC_GCC_BUILTINS +#include "features.h" + +__PUSH_FC_STDLIB + +__BEGIN_DECLS + +/*@ + requires valid_res: \valid(res); + assigns \result, *res \from a, b; + ensures initialization:res: \initialized(res); + ensures res_wrapped: *res == (int)(a + b); + ensures result_overflow: a + b == (int)(a + b) ? \result == 0 : \result == 1; + */ +_Bool __builtin_sadd_overflow (int a, int b, int *res); + +/*@ + requires valid_res: \valid(res); + assigns \result, *res \from a, b; + ensures initialization:res: \initialized(res); + ensures res_wrapped: *res == (long)(a + b); + ensures result_overflow: a + b == (long)(a + b) ? \result == 0 : \result == 1; + */ +_Bool __builtin_saddl_overflow (long a, long b, long *res); + +/*@ + requires valid_res: \valid(res); + assigns \result, *res \from a, b; + ensures initialization:res: \initialized(res); + ensures res_wrapped: *res == (long long)(a + b); + ensures result_overflow: a + b == (long long)(a + b) ? \result == 0 : \result == 1; + */ +_Bool __builtin_saddll_overflow (long long a, long long b, long long *res); + +/*@ + requires valid_res: \valid(res); + assigns \result, *res \from a, b; + ensures initialization:res: \initialized(res); + ensures res_wrapped: *res == (unsigned)(a + b); + ensures result_overflow: a + b == (unsigned)(a + b) ? \result == 0 : \result == 1; + */ +_Bool __builtin_uadd_overflow (unsigned a, unsigned b, unsigned *res); + +/*@ + requires valid_res: \valid(res); + assigns \result, *res \from a, b; + ensures initialization:res: \initialized(res); + ensures res_wrapped: *res == (unsigned long)(a + b); + ensures result_overflow: a + b == (unsigned long)(a + b) ? \result == 0 : \result == 1; + */ +_Bool __builtin_uaddl_overflow (unsigned long a, unsigned long b, unsigned long *res); + +/*@ + requires valid_res: \valid(res); + assigns \result, *res \from a, b; + ensures initialization:res: \initialized(res); + ensures res_wrapped: *res == (unsigned long long)(a + b); + ensures result_overflow: a + b == (unsigned long long)(a + b) ? \result == 0 : \result == 1; + */ +_Bool __builtin_uaddll_overflow (unsigned long long a, unsigned long long b, unsigned long long *res); + +/*@ + requires valid_res: \valid(res); + assigns \result, *res \from a, b; + ensures initialization:res: \initialized(res); + ensures res_wrapped: *res == (int)(a - b); + ensures result_overflow: a - b == (int)(a - b) ? \result == 0 : \result == 1; + */ +_Bool __builtin_ssub_overflow (int a, int b, int *res); + +/*@ + requires valid_res: \valid(res); + assigns \result, *res \from a, b; + ensures initialization:res: \initialized(res); + ensures res_wrapped: *res == (long)(a - b); + ensures result_overflow: a - b == (long)(a - b) ? \result == 0 : \result == 1; + */ +_Bool __builtin_ssubl_overflow (long a, long b, long *res); + +/*@ + requires valid_res: \valid(res); + assigns \result, *res \from a, b; + ensures initialization:res: \initialized(res); + ensures res_wrapped: *res == (long long)(a - b); + ensures result_overflow: a - b == (long long)(a - b) ? \result == 0 : \result == 1; + */ +_Bool __builtin_ssubll_overflow (long long a, long long b, long long *res); + +/*@ + requires valid_res: \valid(res); + assigns \result, *res \from a, b; + ensures initialization:res: \initialized(res); + ensures res_wrapped: *res == (unsigned)(a - b); + ensures result_overflow: a - b == (unsigned)(a - b) ? \result == 0 : \result == 1; + */ +_Bool __builtin_usub_overflow (unsigned a, unsigned b, unsigned *res); + +/*@ + requires valid_res: \valid(res); + assigns \result, *res \from a, b; + ensures initialization:res: \initialized(res); + ensures res_wrapped: *res == (unsigned long)(a - b); + ensures result_overflow: a - b == (unsigned long)(a - b) ? \result == 0 : \result == 1; + */ +_Bool __builtin_usubl_overflow (unsigned long a, unsigned long b, unsigned long *res); + +/*@ + requires valid_res: \valid(res); + assigns \result, *res \from a, b; + ensures initialization:res: \initialized(res); + ensures res_wrapped: *res == (unsigned long long)(a - b); + ensures result_overflow: a - b == (unsigned long long)(a - b) ? \result == 0 : \result == 1; + */ +_Bool __builtin_usubll_overflow (unsigned long long a, unsigned long long b, unsigned long long *res); + +/*@ + requires valid_res: \valid(res); + assigns \result, *res \from a, b; + ensures initialization:res: \initialized(res); + ensures res_wrapped: *res == (int)(a * b); + ensures result_overflow: a * b == (int)(a * b) ? \result == 0 : \result == 1; + */ +_Bool __builtin_smul_overflow (int a, int b, int *res); + +/*@ + requires valid_res: \valid(res); + assigns \result, *res \from a, b; + ensures initialization:res: \initialized(res); + ensures res_wrapped: *res == (long)(a * b); + ensures result_overflow: a * b == (long)(a * b) ? \result == 0 : \result == 1; + */ +_Bool __builtin_smull_overflow (long a, long b, long *res); + +/*@ + requires valid_res: \valid(res); + assigns \result, *res \from a, b; + ensures initialization:res: \initialized(res); + ensures res_wrapped: *res == (long long)(a * b); + ensures result_overflow: a * b == (long long)(a * b) ? \result == 0 : \result == 1; + */ +_Bool __builtin_smulll_overflow (long long a, long long b, long long *res); + +/*@ + requires valid_res: \valid(res); + assigns \result, *res \from a, b; + ensures initialization:res: \initialized(res); + ensures res_wrapped: *res == (unsigned)(a * b); + ensures result_overflow: a * b == (unsigned)(a * b) ? \result == 0 : \result == 1; + */ +_Bool __builtin_umul_overflow (unsigned a, unsigned b, unsigned *res); + +/*@ + requires valid_res: \valid(res); + assigns \result, *res \from a, b; + ensures initialization:res: \initialized(res); + ensures res_wrapped: *res == (unsigned long)(a * b); + ensures result_overflow: a * b == (unsigned long)(a * b) ? \result == 0 : \result == 1; + */ +_Bool __builtin_umull_overflow (unsigned long a, unsigned long b, unsigned long *res); + +/*@ + requires valid_res: \valid(res); + assigns \result, *res \from a, b; + ensures initialization:res: \initialized(res); + ensures res_wrapped: *res == (unsigned long long)(a * b); + ensures result_overflow: a * b == (unsigned long long)(a * b) ? \result == 0 : \result == 1; + */ +_Bool __builtin_umulll_overflow (unsigned long long a, unsigned long long b, unsigned long long *res); + +__END_DECLS + +__POP_FC_STDLIB +#endif diff --git a/share/libc/__fc_inet.h b/share/libc/__fc_inet.h index 1ac5d20ebab4a146a6179d5253ae777b3855beab..07fe52fccc6a481e7c45fb47d0beec7133313464 100644 --- a/share/libc/__fc_inet.h +++ b/share/libc/__fc_inet.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/__fc_machdep.h b/share/libc/__fc_machdep.h index d2541c4146ab4572ca2151f27f370015685d1e02..34752edcb40c7f10b325068e1670f17831ed9f50 100644 --- a/share/libc/__fc_machdep.h +++ b/share/libc/__fc_machdep.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ @@ -23,9 +23,12 @@ #ifndef __FC_MACHDEP #define __FC_MACHDEP -#ifdef __FC_MACHDEP_X86_32 +#if defined(__FC_MACHDEP_X86_32) || defined(__FC_MACHDEP_GCC_X86_32) #define __FC_FORCE_INCLUDE_MACHDEP__ -#include "__fc_machdep_linux_gcc_shared.h" +#include "__fc_machdep_linux_shared.h" +#ifdef __FC_MACHDEP_GCC_X86_32 +#include "__fc_gcc_builtins.h" +#endif #undef __FC_FORCE_INCLUDE_MACHDEP__ #define __FC_BYTE_ORDER __LITTLE_ENDIAN /* Required */ @@ -105,11 +108,14 @@ #define __FC_WINT_MIN 0 #define __FC_WINT_MAX __FC_UINT_MAX -// End of X86_32 +// End of X86_32 || GCC_X86_32 #else -#ifdef __FC_MACHDEP_X86_64 +#if defined(__FC_MACHDEP_X86_64) || defined(__FC_MACHDEP_GCC_X86_64) #define __FC_FORCE_INCLUDE_MACHDEP__ -#include "__fc_machdep_linux_gcc_shared.h" +#include "__fc_machdep_linux_shared.h" +#ifdef __FC_MACHDEP_GCC_X86_64 +#include "__fc_gcc_builtins.h" +#endif #undef __FC_FORCE_INCLUDE_MACHDEP__ #define __FC_BYTE_ORDER __LITTLE_ENDIAN /* Required */ @@ -198,11 +204,14 @@ #define __FC_WINT_MIN 0 #define __FC_WINT_MAX __FC_UINT_MAX -// End of X86_64 +// End of X86_64 || GCC_X86_64 #else -#ifdef __FC_MACHDEP_X86_16 +#if defined(__FC_MACHDEP_X86_16) || defined(__FC_MACHDEP_GCC_X86_16) #define __FC_FORCE_INCLUDE_MACHDEP__ -#include "__fc_machdep_linux_gcc_shared.h" +#include "__fc_machdep_linux_shared.h" +#ifdef __FC_MACHDEP_GCC_X86_16 +#include "__fc_gcc_builtins.h" +#endif #undef __FC_FORCE_INCLUDE_MACHDEP__ #define __FC_BYTE_ORDER __LITTLE_ENDIAN /* Required */ @@ -294,11 +303,11 @@ #define __FC_WINT_MIN 0 #define __FC_WINT_MAX __FC_ULONG_MAX -// End of X86_16 +// End of X86_16 || GCC_X86_16 #else #ifdef __FC_MACHDEP_PPC_32 #define __FC_FORCE_INCLUDE_MACHDEP__ -#include "__fc_machdep_linux_gcc_shared.h" +#include "__fc_machdep_linux_shared.h" #undef __FC_FORCE_INCLUDE_MACHDEP__ #define __FC_BYTE_ORDER __BIG_ENDIAN /* Required */ @@ -607,7 +616,8 @@ // End of MSVC_X86_64 #else #error Must define __FC_MACHDEP_<M>, where <M> is one of the \ - following: X86_32, X86_64, X86_16, PPC_32, MSVC_X86_64. \ + following: X86_32, X86_64, X86_16, GCC_X86_32, GCC_X86_64, \ + GCC_X86_16, PPC_32, MSVC_X86_64. \ If you are using a custom machdep, you must include your machdep \ header file defining __FC_MACHDEP to avoid inclusion of this file. #endif diff --git a/share/libc/__fc_machdep_linux_gcc_shared.h b/share/libc/__fc_machdep_linux_shared.h similarity index 97% rename from share/libc/__fc_machdep_linux_gcc_shared.h rename to share/libc/__fc_machdep_linux_shared.h index e43ad6f3808c5a7cab53d70abd49917ff7bd6bd7..0b0760b19e339a05a22e0b114fa8ea815b93216d 100644 --- a/share/libc/__fc_machdep_linux_gcc_shared.h +++ b/share/libc/__fc_machdep_linux_shared.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ @@ -24,7 +24,7 @@ #error "Frama-C: This file shall not be directly included" #endif /* This file contains common machine specific values between - Linux/GCC x86 32-bit, AMD64 and x86 16-bit.*/ + Linux x86 32-bit, AMD64 and x86 16-bit.*/ #ifndef __FC_MACHDEP_LINUX_SHARED #define __FC_MACHDEP_LINUX_SHARED @@ -116,7 +116,7 @@ #define __FC_INTMAX_MAX 9223372036854775807LL #define __FC_UINTMAX_MAX 18446744073709551615ULL -// Linux/GCC usually defines wchar_t as a signed int, but this is not required +// Linux usually defines wchar_t as a signed int, but this is not required #define __WCHAR_T int /* stdio.h */ diff --git a/share/libc/__fc_select.h b/share/libc/__fc_select.h index e32831dd22e2683ea2962414d8962f4092a09d4c..82a079e98bd4fab78b03020d910170aaa3b64b1e 100644 --- a/share/libc/__fc_select.h +++ b/share/libc/__fc_select.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/__fc_string_axiomatic.h b/share/libc/__fc_string_axiomatic.h index 52de34035580066a124eb67a8681cd38abd07829..a89a527466eacc4412932d441b23dbfbb3817c69 100644 --- a/share/libc/__fc_string_axiomatic.h +++ b/share/libc/__fc_string_axiomatic.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/alloca.h b/share/libc/alloca.h index 7ebd85e0a0976da831bc4bf5da414c9adb17520c..1403454fdcc4037cc3c3991b92c63e7eb287472e 100644 --- a/share/libc/alloca.h +++ b/share/libc/alloca.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/arpa/inet.h b/share/libc/arpa/inet.h index d56c83df68d64b552c8bdb0dc7078461c684c3ae..8e9cf21bdc537ec1fb4e4f53f1f946fd149858e8 100644 --- a/share/libc/arpa/inet.h +++ b/share/libc/arpa/inet.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/assert.c b/share/libc/assert.c index bf185913c5f41d1291330b03e299ffe3d153cef6..cfbf8e50d00e44e765d42afb4648582082e65f7f 100644 --- a/share/libc/assert.c +++ b/share/libc/assert.c @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/assert.h b/share/libc/assert.h index 0ad8904b81731aa6b28023b98d89f61d111e8418..0313b44aeafa371e9a365f58451243b944600f56 100644 --- a/share/libc/assert.h +++ b/share/libc/assert.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/byteswap.h b/share/libc/byteswap.h index 8fd1b74619a721bfbc494f5b8d951d677925f3f4..f3ca11ff17c469366fa7ef95ee99d9c21d921efd 100644 --- a/share/libc/byteswap.h +++ b/share/libc/byteswap.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/complex.h b/share/libc/complex.h index a9cb4ec97dc64e64485542631ceb71143ca7371e..da8e129559c25b87d4c6057fe1c618513a1a5569 100644 --- a/share/libc/complex.h +++ b/share/libc/complex.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/ctype.c b/share/libc/ctype.c index d345850a8bcade8d215b43bc4bbf7611495745c8..8954e5b109fdf44269be1e436b8fa761d7d22949 100644 --- a/share/libc/ctype.c +++ b/share/libc/ctype.c @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/ctype.h b/share/libc/ctype.h index 7072e58a267b94c55fe30c56ff0d75bcc484ae14..e946e5eef0c4debc56c25dae463573bcc7a9f450 100644 --- a/share/libc/ctype.h +++ b/share/libc/ctype.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/dirent.h b/share/libc/dirent.h index bde4da9523bac911be2f3f34befcd258edb8a600..6d75102f9e1bb1e51ca609e8d532fdfdda787cd0 100644 --- a/share/libc/dirent.h +++ b/share/libc/dirent.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/dlfcn.h b/share/libc/dlfcn.h index bc65b736a834f5ce8999605bacfef73f918659a4..b612cf638eee62850c6376161ef77b94d9bda72c 100644 --- a/share/libc/dlfcn.h +++ b/share/libc/dlfcn.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/endian.h b/share/libc/endian.h index 63cb4d2f7c106b2da0ef51340d49118329142a0d..85a893a37a891043513d6feb8661d34c8c472a69 100644 --- a/share/libc/endian.h +++ b/share/libc/endian.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/errno.c b/share/libc/errno.c index b43be400737d723f13890d6034867fe3d9a115df..53501bb02a54b636cccfbd0d09d0dc897297a5cf 100644 --- a/share/libc/errno.c +++ b/share/libc/errno.c @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/errno.h b/share/libc/errno.h index 757a7e4bcea63016be68197782a8c5db8c132926..254ed1af53f1024a369c585062e194571c2ae946 100644 --- a/share/libc/errno.h +++ b/share/libc/errno.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/fc_runtime.c b/share/libc/fc_runtime.c index 9db5598839bb35cd65f7ad6e30ef4a268b42534b..8890a09a7516cfb88c464a992ea4df1caaa8e2f0 100644 --- a/share/libc/fc_runtime.c +++ b/share/libc/fc_runtime.c @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/fcntl.h b/share/libc/fcntl.h index 432ff7b16c3f43eac2d2e67a2242bf45cf4e96f3..d5e21e8726ad9c1e74b929ed166209d5f498892c 100644 --- a/share/libc/fcntl.h +++ b/share/libc/fcntl.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/features.h b/share/libc/features.h index ec2b71ed32883bb6b8185b96120444fb71898c3c..08d5c8de3db90bb829c33a440b5ba89dc29dc8be 100644 --- a/share/libc/features.h +++ b/share/libc/features.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ @@ -107,21 +107,8 @@ # define __wur /* Ignore */ #endif -#ifndef __STDC_VERSION__ -#define restrict -#else -#define __restrict__ -#define __restrict -# if __STDC_VERSION__ >= 199901L && defined (FRAMA_C_C99) -#define restrict restrict -#define __restrict__ restrict -#define __restrict restrict -# else -#define restrict -#define __restrict__ -#define __restrict -# endif -#endif +#define restrict __restrict +#define __restrict__ __restrict #define __USE_ISOC99 1 diff --git a/share/libc/fenv.c b/share/libc/fenv.c index 27a21d32577ad990c1d530fb608221bfd3a50b53..9f34644e7d4580b57837e26ab3e064ea2895341c 100644 --- a/share/libc/fenv.c +++ b/share/libc/fenv.c @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/fenv.h b/share/libc/fenv.h index 1ebae3fab3e9aa657a56c05e364cf96a0172c5a0..4fb6dacdd2967c3ef7b9fccd6b7f438bf8742c1e 100644 --- a/share/libc/fenv.h +++ b/share/libc/fenv.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/float.h b/share/libc/float.h index 745ff77c8283e3c253fb5c131641bc3abe3f3cc6..bc3c4b1de0ae811cbcce53c70416f027c258c320 100644 --- a/share/libc/float.h +++ b/share/libc/float.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/fnmatch.h b/share/libc/fnmatch.h index 69a57e376de120b79756a4a6ea59ca0343434875..86c1fd1425cc192bbfd8a6ea8119d393d3cfd02c 100644 --- a/share/libc/fnmatch.h +++ b/share/libc/fnmatch.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/getopt.c b/share/libc/getopt.c index 0b554dbf501a86c196e6b25f2017ba3c3a2e21d5..9bb2c44da563cd433e39de0c0943c9c40058c655 100644 --- a/share/libc/getopt.c +++ b/share/libc/getopt.c @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/getopt.h b/share/libc/getopt.h index 90a62b249b33b4ecf77e7f141d41d96968ddfd2e..6788b728779835daa8f5d3e12b7e9d08a85d47d0 100644 --- a/share/libc/getopt.h +++ b/share/libc/getopt.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/glob.c b/share/libc/glob.c index 0811a6b4853616226cf6805c8b51cc34c0840701..05377dfe093fc51e631ca28032e44e21fb8beb80 100644 --- a/share/libc/glob.c +++ b/share/libc/glob.c @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/glob.h b/share/libc/glob.h index 220ce88e94a748a2372de9e24712398b0326569e..cafe8f453c4ac9ccda0b2c42609189c45e3608e6 100644 --- a/share/libc/glob.h +++ b/share/libc/glob.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/grp.h b/share/libc/grp.h index a0ea701feb24b7360dd26c884a02b6a4046d3cb1..a4e4450d77f20a7b282bc9462c3c1012849fbb1d 100644 --- a/share/libc/grp.h +++ b/share/libc/grp.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/iconv.h b/share/libc/iconv.h index b8a23c12dea9b62e91a1ecdc17c29b8d6b4e45a1..92fae1bace58ef09cba99560df764b7cd9a88833 100644 --- a/share/libc/iconv.h +++ b/share/libc/iconv.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/ifaddrs.h b/share/libc/ifaddrs.h index e34fbba6564e23a25c90471e6cc6f37a9d0a6710..9c1cadd191bf1f357ca9e077694639d9cdd03ef7 100644 --- a/share/libc/ifaddrs.h +++ b/share/libc/ifaddrs.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/inttypes.c b/share/libc/inttypes.c index c30a96d9f066ab7a2acf0a47aee3f2ad99ece6b0..a12156da2f0bed308499fc7e679a49766b99f4f2 100644 --- a/share/libc/inttypes.c +++ b/share/libc/inttypes.c @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/inttypes.h b/share/libc/inttypes.h index 060bc8c6dfc0ffa6f6bdb3e3b40ad055ec344177..7a5a4f1396bf9c74803a3b48e2883e1166e17d98 100644 --- a/share/libc/inttypes.h +++ b/share/libc/inttypes.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/iso646.h b/share/libc/iso646.h index 492b2ff524542693fac3cc986bbf5832a271edd6..89e3c4759675f55bb947e61c608b5bb96b6e2a05 100644 --- a/share/libc/iso646.h +++ b/share/libc/iso646.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/libgen.h b/share/libc/libgen.h index c21a57da9faee597ad9d01ea593bed9afeaccb3c..1cfded11784bc2d799ac973f9f810aea06022a2f 100644 --- a/share/libc/libgen.h +++ b/share/libc/libgen.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ @@ -20,13 +20,36 @@ /* */ /**************************************************************************/ -#ifndef __FC_LIBGEN -#define __FC_LIBGEN +#ifndef __FC_LIBGEN_H +#define __FC_LIBGEN_H #include "features.h" +#include "__fc_machdep.h" +#include "__fc_string_axiomatic.h" __PUSH_FC_STDLIB __BEGIN_DECLS +extern char __fc_basename[__FC_PATH_MAX]; +char *__fc_p_basename = __fc_basename; + +/*@ // missing: assigns path[0 ..], __fc_p_basename[0 ..] \from 'filesystem'; + requires null_or_valid_string_path: path == \null || valid_read_string(path); + assigns path[0 ..], __fc_basename[0 ..] \from path[0 ..], __fc_basename[0 ..]; + assigns \result \from __fc_p_basename, path; + ensures result_points_to_internal_storage_or_path: + \subset(\result, {__fc_p_basename, path}); +*/ extern char *basename(char *path); + +extern char __fc_dirname[__FC_PATH_MAX]; +char *__fc_p_dirname = __fc_dirname; + +/*@ // missing: assigns path[0 ..], __fc_p_dirname[0 ..] \from 'filesystem'; + requires null_or_valid_string_path: path == \null || valid_read_string(path); + assigns path[0 ..], __fc_dirname[0 ..] \from path[0 ..], __fc_dirname[0 ..]; + assigns \result \from __fc_p_dirname, path; + ensures result_points_to_internal_storage_or_path: + \subset(\result, {__fc_p_dirname, path}); +*/ extern char *dirname(char *path); __END_DECLS diff --git a/share/libc/libintl.h b/share/libc/libintl.h deleted file mode 100644 index 8682b18228560c32329d790f5f49dec8c1916a5e..0000000000000000000000000000000000000000 --- a/share/libc/libintl.h +++ /dev/null @@ -1,26 +0,0 @@ -/**************************************************************************/ -/* */ -/* This file is part of Frama-C. */ -/* */ -/* Copyright (C) 2007-2018 */ -/* CEA (Commissariat à l'énergie atomique et aux énergies */ -/* alternatives) */ -/* */ -/* you can redistribute it and/or modify it under the terms of the GNU */ -/* Lesser General Public License as published by the Free Software */ -/* Foundation, version 2.1. */ -/* */ -/* It is distributed in the hope that it will be useful, */ -/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ -/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ -/* GNU Lesser General Public License for more details. */ -/* */ -/* See the GNU Lesser General Public License version 2.1 */ -/* for more details (enclosed in the file licenses/LGPLv2.1). */ -/* */ -/**************************************************************************/ - -#ifndef __FC_LIBINTL_H -#define __FC_LIBINTL_H - -#endif diff --git a/share/libc/limits.h b/share/libc/limits.h index fffc496c32eb4a319ad61b9f83600892a319d1cc..703571925dcddcba60c9ec3df8feee73d755276f 100644 --- a/share/libc/limits.h +++ b/share/libc/limits.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/linux/fs.h b/share/libc/linux/fs.h deleted file mode 100644 index cd93d6762a671d6be5b5ca4f2b871807841dff21..0000000000000000000000000000000000000000 --- a/share/libc/linux/fs.h +++ /dev/null @@ -1,28 +0,0 @@ -/**************************************************************************/ -/* */ -/* This file is part of Frama-C. */ -/* */ -/* Copyright (C) 2007-2018 */ -/* CEA (Commissariat à l'énergie atomique et aux énergies */ -/* alternatives) */ -/* */ -/* you can redistribute it and/or modify it under the terms of the GNU */ -/* Lesser General Public License as published by the Free Software */ -/* Foundation, version 2.1. */ -/* */ -/* It is distributed in the hope that it will be useful, */ -/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ -/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ -/* GNU Lesser General Public License for more details. */ -/* */ -/* See the GNU Lesser General Public License version 2.1 */ -/* for more details (enclosed in the file licenses/LGPLv2.1). */ -/* */ -/**************************************************************************/ - -#ifndef __FC_LINUX_FS_H -#define __FC_LINUX_FS_H -/* TODO */ - -#endif - diff --git a/share/libc/linux/if_addr.h b/share/libc/linux/if_addr.h deleted file mode 100644 index d5d1ecd616f8bd72717e2c9df9b4ebc3844ff2a4..0000000000000000000000000000000000000000 --- a/share/libc/linux/if_addr.h +++ /dev/null @@ -1,26 +0,0 @@ -/**************************************************************************/ -/* */ -/* This file is part of Frama-C. */ -/* */ -/* Copyright (C) 2007-2018 */ -/* CEA (Commissariat à l'énergie atomique et aux énergies */ -/* alternatives) */ -/* */ -/* you can redistribute it and/or modify it under the terms of the GNU */ -/* Lesser General Public License as published by the Free Software */ -/* Foundation, version 2.1. */ -/* */ -/* It is distributed in the hope that it will be useful, */ -/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ -/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ -/* GNU Lesser General Public License for more details. */ -/* */ -/* See the GNU Lesser General Public License version 2.1 */ -/* for more details (enclosed in the file licenses/LGPLv2.1). */ -/* */ -/**************************************************************************/ - -#ifndef __FC_LINUX_IF_ADDR_H -#define __FC_LINUX_IF_ADDR_H - -#endif diff --git a/share/libc/linux/if_netlink.h b/share/libc/linux/if_netlink.h deleted file mode 100644 index 630c4566125e9efa83cd91a22b87ff8f343fcd6a..0000000000000000000000000000000000000000 --- a/share/libc/linux/if_netlink.h +++ /dev/null @@ -1,27 +0,0 @@ -/**************************************************************************/ -/* */ -/* This file is part of Frama-C. */ -/* */ -/* Copyright (C) 2007-2018 */ -/* CEA (Commissariat à l'énergie atomique et aux énergies */ -/* alternatives) */ -/* */ -/* you can redistribute it and/or modify it under the terms of the GNU */ -/* Lesser General Public License as published by the Free Software */ -/* Foundation, version 2.1. */ -/* */ -/* It is distributed in the hope that it will be useful, */ -/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ -/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ -/* GNU Lesser General Public License for more details. */ -/* */ -/* See the GNU Lesser General Public License version 2.1 */ -/* for more details (enclosed in the file licenses/LGPLv2.1). */ -/* */ -/**************************************************************************/ - -#ifndef __FC_IF_NETLINK_H -#define __FC_IF_NETLINK_H - -#endif - diff --git a/share/libc/linux/rtnetlink.h b/share/libc/linux/rtnetlink.h deleted file mode 100644 index f1d2af1c6e6c51fc526110e63cc6ce68ecfaa72a..0000000000000000000000000000000000000000 --- a/share/libc/linux/rtnetlink.h +++ /dev/null @@ -1,28 +0,0 @@ -/**************************************************************************/ -/* */ -/* This file is part of Frama-C. */ -/* */ -/* Copyright (C) 2007-2018 */ -/* CEA (Commissariat à l'énergie atomique et aux énergies */ -/* alternatives) */ -/* */ -/* you can redistribute it and/or modify it under the terms of the GNU */ -/* Lesser General Public License as published by the Free Software */ -/* Foundation, version 2.1. */ -/* */ -/* It is distributed in the hope that it will be useful, */ -/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ -/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ -/* GNU Lesser General Public License for more details. */ -/* */ -/* See the GNU Lesser General Public License version 2.1 */ -/* for more details (enclosed in the file licenses/LGPLv2.1). */ -/* */ -/**************************************************************************/ - -#ifndef __FC_LINUX_RTNETLINK_H -#define __FC_LINUX_RTNETLINK_H - - -#endif - diff --git a/share/libc/locale.c b/share/libc/locale.c index 0b2dc4bebf1d600f73c54fccf7e58cc92940c432..96aaec7b2f3e397a2912939166999daaddc05c21 100644 --- a/share/libc/locale.c +++ b/share/libc/locale.c @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ @@ -27,7 +27,7 @@ struct lconv __C_locale = {".","","","","","","","","","",CHAR_MAX,CHAR_MAX,CHAR struct lconv *__frama_c_locale=&__C_locale; -char*__frama_c_locale_names[1]={"C"}; +char*__frama_c_locale_names[512]={"C"}; char *setlocale(int category, const char *locale) { if (*locale == 'C') { __frama_c_locale = &__C_locale; diff --git a/share/libc/locale.h b/share/libc/locale.h index 346e686b85cf66abbdbe5c52a96b43b726826af5..11f0244bcb3cf4b8f4df547113ba2de04669bf37 100644 --- a/share/libc/locale.h +++ b/share/libc/locale.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ @@ -132,7 +132,7 @@ struct lconv ) extern struct lconv* __frama_c_locale; -extern char*__frama_c_locale_names[]; +extern char*__frama_c_locale_names[512]; /*@ requires locale_null_or_valid_string: locale == \null || valid_read_string(locale); diff --git a/share/libc/malloc.h b/share/libc/malloc.h index 4b00c058c829abd93198d87bc09312c51ee1af48..3508e681088d7156a2c1ef1463ec483a387ca669 100644 --- a/share/libc/malloc.h +++ b/share/libc/malloc.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/math.c b/share/libc/math.c index d24525f7c4a4be560cb77a7b74f7f8c79be34ee0..dbe443de13f2e5d6973e77226aa14c34f80cd18e 100644 --- a/share/libc/math.c +++ b/share/libc/math.c @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/math.h b/share/libc/math.h index da98d886eeb603667561f7de0c13e04d1e934a47..a7a0ef9dbf6040e15ff30925742c05f9d1678ed0 100644 --- a/share/libc/math.h +++ b/share/libc/math.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/memory.h b/share/libc/memory.h index 60924c439eed162026b141d011c48ac45408cc36..4c1227c6134fc888153acd73db5fca43ba6b1bdd 100644 --- a/share/libc/memory.h +++ b/share/libc/memory.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/net/if.h b/share/libc/net/if.h index 82dc07e9c92f00d68c49a520d43dc9a6c3ae5c78..0b92ebd79829f463d0370a2b5ef0056eeb660e0b 100644 --- a/share/libc/net/if.h +++ b/share/libc/net/if.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/netdb.c b/share/libc/netdb.c index 12af93afa0dd750e3812d7606cbbd4bab131e741..cfdea15cc7fb7a6bf9c09f96fd8ab6c851b0bb1c 100644 --- a/share/libc/netdb.c +++ b/share/libc/netdb.c @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/netdb.h b/share/libc/netdb.h index 2611c02af22059a6133b928452c4d19cac0b1923..860c95c85025032ffebbf883061760c2a756169c 100644 --- a/share/libc/netdb.h +++ b/share/libc/netdb.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/netinet/in.h b/share/libc/netinet/in.h index d56c83df68d64b552c8bdb0dc7078461c684c3ae..8e9cf21bdc537ec1fb4e4f53f1f946fd149858e8 100644 --- a/share/libc/netinet/in.h +++ b/share/libc/netinet/in.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/netinet/in_systm.h b/share/libc/netinet/in_systm.h deleted file mode 100644 index 5db1fed93ae1bea1400e554e400da5d7eba7a206..0000000000000000000000000000000000000000 --- a/share/libc/netinet/in_systm.h +++ /dev/null @@ -1,26 +0,0 @@ -/**************************************************************************/ -/* */ -/* This file is part of Frama-C. */ -/* */ -/* Copyright (C) 2007-2018 */ -/* CEA (Commissariat à l'énergie atomique et aux énergies */ -/* alternatives) */ -/* */ -/* you can redistribute it and/or modify it under the terms of the GNU */ -/* Lesser General Public License as published by the Free Software */ -/* Foundation, version 2.1. */ -/* */ -/* It is distributed in the hope that it will be useful, */ -/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ -/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ -/* GNU Lesser General Public License for more details. */ -/* */ -/* See the GNU Lesser General Public License version 2.1 */ -/* for more details (enclosed in the file licenses/LGPLv2.1). */ -/* */ -/**************************************************************************/ - -#ifndef __FC_NETINET_SYSTM_H -#define __FC_NETINET_SYSTM_H - -#endif diff --git a/share/libc/netinet/ip.h b/share/libc/netinet/ip.h deleted file mode 100644 index 10f651143b643c8e60dee1c7c2333969c21aec96..0000000000000000000000000000000000000000 --- a/share/libc/netinet/ip.h +++ /dev/null @@ -1,26 +0,0 @@ -/**************************************************************************/ -/* */ -/* This file is part of Frama-C. */ -/* */ -/* Copyright (C) 2007-2018 */ -/* CEA (Commissariat à l'énergie atomique et aux énergies */ -/* alternatives) */ -/* */ -/* you can redistribute it and/or modify it under the terms of the GNU */ -/* Lesser General Public License as published by the Free Software */ -/* Foundation, version 2.1. */ -/* */ -/* It is distributed in the hope that it will be useful, */ -/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ -/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ -/* GNU Lesser General Public License for more details. */ -/* */ -/* See the GNU Lesser General Public License version 2.1 */ -/* for more details (enclosed in the file licenses/LGPLv2.1). */ -/* */ -/**************************************************************************/ - -#ifndef __FC_NETINET_IP_H -#define __FC_NETINET_IP_H - -#endif diff --git a/share/libc/netinet/ip_icmp.h b/share/libc/netinet/ip_icmp.h deleted file mode 100644 index 8f31eef9c7049af4bb8c1e1cb2a5b0a52351b1cf..0000000000000000000000000000000000000000 --- a/share/libc/netinet/ip_icmp.h +++ /dev/null @@ -1,27 +0,0 @@ -/**************************************************************************/ -/* */ -/* This file is part of Frama-C. */ -/* */ -/* Copyright (C) 2007-2018 */ -/* CEA (Commissariat à l'énergie atomique et aux énergies */ -/* alternatives) */ -/* */ -/* you can redistribute it and/or modify it under the terms of the GNU */ -/* Lesser General Public License as published by the Free Software */ -/* Foundation, version 2.1. */ -/* */ -/* It is distributed in the hope that it will be useful, */ -/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ -/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ -/* GNU Lesser General Public License for more details. */ -/* */ -/* See the GNU Lesser General Public License version 2.1 */ -/* for more details (enclosed in the file licenses/LGPLv2.1). */ -/* */ -/**************************************************************************/ - -#ifndef __FC_NETINET_IP_ICMP_H -#define __FC_NETINET_IP_ICMP_H - -#endif - diff --git a/share/libc/netinet/tcp.h b/share/libc/netinet/tcp.h index 66735e9c1367e1a78d29b633863b10fdaf7d7700..fb7abe05a65782a53e85991a95ebfab6b4c479ee 100644 --- a/share/libc/netinet/tcp.h +++ b/share/libc/netinet/tcp.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/nl_types.h b/share/libc/nl_types.h index 9855266a5083f206cfe44c8261d2fca082099e24..390d581811b5b20ff8259d22126e14ca369d1498 100644 --- a/share/libc/nl_types.h +++ b/share/libc/nl_types.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/poll.h b/share/libc/poll.h index beb5082b34fc0b575889bd91ea868714da5d10dc..4995c69d888b50fec29beabeed3e53c7804590b2 100644 --- a/share/libc/poll.h +++ b/share/libc/poll.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/pthread.h b/share/libc/pthread.h index b11ef330c31c4a03f11ac36bd1a72c2886c135be..d55ece32dee5c2f5a6c474d7495635726e9a7d5e 100644 --- a/share/libc/pthread.h +++ b/share/libc/pthread.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/pwd.h b/share/libc/pwd.h index 5b82cae28e21c6c4e3bd65e7563bb04f051e6734..17cca2f73e46b400a9f5656a76902982db557ed3 100644 --- a/share/libc/pwd.h +++ b/share/libc/pwd.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ @@ -41,8 +41,35 @@ struct passwd { char *pw_shell; }; +extern char __fc_getpwuid_pw_name[64]; +extern char __fc_getpwuid_pw_passwd[64]; +extern uid_t __fc_getpwuid_pw_uid; +extern gid_t __fc_getpwuid_pw_gid; +extern char __fc_getpwuid_pw_dir[64]; +extern char __fc_getpwuid_pw_shell[64]; + +struct passwd __fc_getpwuid = + {.pw_name = __fc_getpwuid_pw_name, + .pw_passwd = __fc_getpwuid_pw_passwd, + .pw_uid = __fc_getpwuid_pw_uid, + .pw_gid = __fc_getpwuid_pw_gid, + .pw_dir = __fc_getpwuid_pw_dir, + .pw_shell = __fc_getpwuid_pw_shell}; + +struct passwd *__fc_p_getpwuid = & __fc_getpwuid; + + extern struct passwd *getpwnam(const char *); -extern struct passwd *getpwuid(uid_t); + +/*@ // missing: assigns \result, __fc_getpwuid[0..] \from 'password database' + assigns \result \from __fc_p_getpwuid, indirect:uid; + assigns __fc_getpwuid \from indirect:uid; + ensures result_null_or_internal_struct: + \result == \null || \result == __fc_p_getpwuid; +*/ +extern struct passwd *getpwuid(uid_t uid); + + extern int getpwnam_r(const char *, struct passwd *, char *, size_t, struct passwd **); extern int getpwuid_r(uid_t, struct passwd *, char *, diff --git a/share/libc/regex.h b/share/libc/regex.h index 64ca98378176e0acc88de7baaaff0644116f4456..97277d5564e19613ff3867a2556331879e0e37ee 100644 --- a/share/libc/regex.h +++ b/share/libc/regex.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/resolv.h b/share/libc/resolv.h index 65c89b0656f45fb73a9ece9355fbde6a62c32f29..beaf508bea85f13d13fa10e75d21cbf5ee32cbf5 100644 --- a/share/libc/resolv.h +++ b/share/libc/resolv.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/sched.h b/share/libc/sched.h index eed88716eef7023f203f998a8c136caa7bf14e11..50f8ba16e77b0a9fdf5b783942c269a5c6d930a3 100644 --- a/share/libc/sched.h +++ b/share/libc/sched.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/semaphore.h b/share/libc/semaphore.h index f032e82ee62d963c4936b6443c8469d0c50ffc48..264a85bfeda14cc93d550b93bdae55e390fc78b6 100644 --- a/share/libc/semaphore.h +++ b/share/libc/semaphore.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/setjmp.h b/share/libc/setjmp.h index a3b60f82a2f35bc57432c684a36232ba65b750d0..ecca7307fda4be495b6b765343d6fa178b14e4c0 100644 --- a/share/libc/setjmp.h +++ b/share/libc/setjmp.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/signal.h b/share/libc/signal.h index fd2ae1b22e0b50f619d9fffd1343c8884a411944..f1eb5d6cc1b20256a72059b97021f8219c07661d 100644 --- a/share/libc/signal.h +++ b/share/libc/signal.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/stdarg.h b/share/libc/stdarg.h index 83a23331657626b0041bdc0b755bc8a66efa8515..e0f7efbd2774284cbcf878bff0d5864194717dfb 100644 --- a/share/libc/stdarg.h +++ b/share/libc/stdarg.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/stdbool.h b/share/libc/stdbool.h index e7092fc5b57bf84a907c399aa29c9352a104529c..7c5f1e35b7c108b88fcef36413757de6ca4ddf30 100644 --- a/share/libc/stdbool.h +++ b/share/libc/stdbool.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/stddef.h b/share/libc/stddef.h index c82123e9329dc154aae9460d359f67aa309c1aeb..e32d8548e869d1d2bee02714348b5b151cf7d2c1 100644 --- a/share/libc/stddef.h +++ b/share/libc/stddef.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/stdint.h b/share/libc/stdint.h index f7cc8358ac3e13ee86a02dfbe6c4e303fe3a0df4..f73a75048ed34117c9dad58276602e77e0a11a9c 100644 --- a/share/libc/stdint.h +++ b/share/libc/stdint.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/stdio.c b/share/libc/stdio.c index 48c6419e9c800f4d75611508ca109d7e395e27d2..c4bf2ae37bb2a33045805cf96c4a0e0d418979d1 100644 --- a/share/libc/stdio.c +++ b/share/libc/stdio.c @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/stdio.h b/share/libc/stdio.h index d3d147f5c8154aacff0f6048d34384a98813f3e7..9c27119c016ce7fced52dde77b279b8f1db2630b 100644 --- a/share/libc/stdio.h +++ b/share/libc/stdio.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/stdlib.c b/share/libc/stdlib.c index e08714f86e364711c1aa0adde2c67db633d17fab..72dd24cc238641547c7bdcd5f4855cc7f099936f 100644 --- a/share/libc/stdlib.c +++ b/share/libc/stdlib.c @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/stdlib.h b/share/libc/stdlib.h index 5c703ee21b00fc050ad3a2eb43a0d2c20b09140c..acdbbf87f659a078e3a89127771f0089eb11704c 100644 --- a/share/libc/stdlib.h +++ b/share/libc/stdlib.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/string.c b/share/libc/string.c index 9a1b82b0b3b1ea7a788be0bfdad7cada52cb4bff..06662b1f297c20820c33eed85b77ad1febdcc9da 100644 --- a/share/libc/string.c +++ b/share/libc/string.c @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/string.h b/share/libc/string.h index 57c5196c07feae9b6994913bb96834702a7ccd69..f810f9a8067f6cdceadb0bea39c93ec3bd01c8e8 100644 --- a/share/libc/string.h +++ b/share/libc/string.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/strings.h b/share/libc/strings.h index 2914e6cbe7e4546f1454a5955de3a7943be51de1..6b6e42dd4a04bc6f7e626dc1acf7a4995a2acc53 100644 --- a/share/libc/strings.h +++ b/share/libc/strings.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ @@ -35,6 +35,7 @@ extern void bcopy(const void *, void *, size_t); /*@ requires valid_memory_area: \valid (((char*) s)+(0 .. n-1)); assigns ((char*) s)[0 .. n-1] \from \nothing; + ensures s_initialized:initialization:\initialized(((char*) s)+(0 .. n-1)); ensures zero_initialized: \subset(((char*) s)[0 .. n-1], {0}); */ extern void bzero(void *s, size_t n); extern int ffs(int); diff --git a/share/libc/stropts.h b/share/libc/stropts.h index e09547dd3bfc7548446411c9494c45bccee0ca77..48351585e7e3537806592d6ac9d2d6cf81d9f2af 100644 --- a/share/libc/stropts.h +++ b/share/libc/stropts.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/sys/file.h b/share/libc/sys/file.h index 78d64f1428e58815b9c5a79cbb4558e2ee52a0e8..0414b8b04b99075105b304560360a9a49c3b4538 100644 --- a/share/libc/sys/file.h +++ b/share/libc/sys/file.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/sys/ioctl.h b/share/libc/sys/ioctl.h index 4b3ddc551034459f2350307f60c73b548e2cd534..21fb87e02b4666e1649d15cdaff90fd2bfbe3b36 100644 --- a/share/libc/sys/ioctl.h +++ b/share/libc/sys/ioctl.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/sys/ipc.h b/share/libc/sys/ipc.h index 90280e6f255a9a02e438dd03a721a75afc7978d7..0f7c9558af7add11dc0418da359cd629b91e38c3 100644 --- a/share/libc/sys/ipc.h +++ b/share/libc/sys/ipc.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/sys/mman.h b/share/libc/sys/mman.h index fff6efa9f426aae3f54d1aa9f5398ee9e29ffd9c..5c0d1c5b751463644e33feb05be11c8f8a3d9326 100644 --- a/share/libc/sys/mman.h +++ b/share/libc/sys/mman.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/sys/param.h b/share/libc/sys/param.h deleted file mode 100644 index 691bdd5a720ded321f8aa9e8fc393a75b0e3169a..0000000000000000000000000000000000000000 --- a/share/libc/sys/param.h +++ /dev/null @@ -1,28 +0,0 @@ -/**************************************************************************/ -/* */ -/* This file is part of Frama-C. */ -/* */ -/* Copyright (C) 2007-2018 */ -/* CEA (Commissariat à l'énergie atomique et aux énergies */ -/* alternatives) */ -/* */ -/* you can redistribute it and/or modify it under the terms of the GNU */ -/* Lesser General Public License as published by the Free Software */ -/* Foundation, version 2.1. */ -/* */ -/* It is distributed in the hope that it will be useful, */ -/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ -/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ -/* GNU Lesser General Public License for more details. */ -/* */ -/* See the GNU Lesser General Public License version 2.1 */ -/* for more details (enclosed in the file licenses/LGPLv2.1). */ -/* */ -/**************************************************************************/ - -#ifndef __FC_SYS_PARAM_H__ -#define __FC_SYS_PARAM_H__ -/* Only deprecated programs use this header. Add whatever is needed - for this program to compile. */ - -#endif diff --git a/share/libc/sys/random.h b/share/libc/sys/random.h index 00d33703c995857322e080b1e825b36b7a0b4b36..833ab6b4d7b25bf889cd7e5fd617f1de5e559005 100644 --- a/share/libc/sys/random.h +++ b/share/libc/sys/random.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/sys/resource.h b/share/libc/sys/resource.h index 6d88b3be41810dfddca8a4b1e47e8d288df00146..566a0fa31e89d69517d1abc749a81056d01f6c07 100644 --- a/share/libc/sys/resource.h +++ b/share/libc/sys/resource.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/sys/select.h b/share/libc/sys/select.h index 14134d27bbd99da10e06213db78b6a0926f2042a..8e1608d267e3da518ee4f933fc4e891b2e3a3a30 100644 --- a/share/libc/sys/select.h +++ b/share/libc/sys/select.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/sys/shm.h b/share/libc/sys/shm.h index 6dffdaf658917c9f21853304d1165b86c9131419..b630e30ba8a2100fcb12a3c9cd4cab0e26bb2ecc 100644 --- a/share/libc/sys/shm.h +++ b/share/libc/sys/shm.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/sys/signal.h b/share/libc/sys/signal.h index 1fc06ade177b0d9c2ef47be5f25186aa6da95940..5468c1a1b7a621e58daff361c0569074356fc04a 100644 --- a/share/libc/sys/signal.h +++ b/share/libc/sys/signal.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/sys/socket.h b/share/libc/sys/socket.h index de87e135671ecc3d470bdeb4832e11b2c4c1bd11..20b339c5ed8e978866fbbcb07cd91fdd55b3c0b0 100644 --- a/share/libc/sys/socket.h +++ b/share/libc/sys/socket.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/sys/stat.h b/share/libc/sys/stat.h index 7ae9fa5b0a767a233d4518e0621c79580553a33a..7aa8cbf24176675e835ef830386dd226f4893c21 100644 --- a/share/libc/sys/stat.h +++ b/share/libc/sys/stat.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/sys/sysctl.h b/share/libc/sys/sysctl.h deleted file mode 100644 index 8c8d3f58a31c2a8f2fc7eb9177926329f3731906..0000000000000000000000000000000000000000 --- a/share/libc/sys/sysctl.h +++ /dev/null @@ -1,22 +0,0 @@ -/**************************************************************************/ -/* */ -/* This file is part of Frama-C. */ -/* */ -/* Copyright (C) 2007-2018 */ -/* CEA (Commissariat à l'énergie atomique et aux énergies */ -/* alternatives) */ -/* */ -/* you can redistribute it and/or modify it under the terms of the GNU */ -/* Lesser General Public License as published by the Free Software */ -/* Foundation, version 2.1. */ -/* */ -/* It is distributed in the hope that it will be useful, */ -/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ -/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ -/* GNU Lesser General Public License for more details. */ -/* */ -/* See the GNU Lesser General Public License version 2.1 */ -/* for more details (enclosed in the file licenses/LGPLv2.1). */ -/* */ -/**************************************************************************/ - diff --git a/share/libc/sys/time.h b/share/libc/sys/time.h index 9f1b4f9a36d712814cb001abdbb9ccc5ea872a25..73fed482445f4c6a663ae88e8535b45fc5c704a8 100644 --- a/share/libc/sys/time.h +++ b/share/libc/sys/time.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/sys/times.h b/share/libc/sys/times.h index d2355d49d96642348092156783a725267a3cf540..beb930fec77ebe34943b60fe8cc0623d9e3adc31 100644 --- a/share/libc/sys/times.h +++ b/share/libc/sys/times.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/sys/timex.h b/share/libc/sys/timex.h index 8ecc4f32d9c7ca5fb979a8770fd3fa79e5373ba2..0650f0ed55902e8e7b190c2866da98b6a5d9a90d 100644 --- a/share/libc/sys/timex.h +++ b/share/libc/sys/timex.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/sys/types.h b/share/libc/sys/types.h index c5e3911fccba93ca478a8506ec73c3c98c359f34..08d8cabb47038e948f734ff7a81deaa648f14832 100644 --- a/share/libc/sys/types.h +++ b/share/libc/sys/types.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/sys/uio.h b/share/libc/sys/uio.h index 9cfc073432daf51692f3a30ae33b5b940f35ad06..2898fc9bb9e48659978ac1b218d86dc4cf6ef71f 100644 --- a/share/libc/sys/uio.h +++ b/share/libc/sys/uio.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/sys/un.h b/share/libc/sys/un.h index 7848cc8d8031900ef05b8fee0811b439b854ece4..5bd678020a65bdf7e01a86b743541a65097e1e35 100644 --- a/share/libc/sys/un.h +++ b/share/libc/sys/un.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/sys/utsname.h b/share/libc/sys/utsname.h index 91e67def6260cf0623f454afc591f19abc747454..0b1fde579832175f48983147be562ed361baaaaf 100644 --- a/share/libc/sys/utsname.h +++ b/share/libc/sys/utsname.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/sys/wait.h b/share/libc/sys/wait.h index a7d2315b4ebca08f2a4f8a78f7f32024171f9f51..91de3d80201d127012d5b0e6339f52da4379de6b 100644 --- a/share/libc/sys/wait.h +++ b/share/libc/sys/wait.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/syslog.h b/share/libc/syslog.h index 701308e6344881cd330bc402863dc7487dbeeba0..937e3fcfbe3a1a9e781946dcc26615d65afade6c 100644 --- a/share/libc/syslog.h +++ b/share/libc/syslog.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/termios.h b/share/libc/termios.h index 1affded1d8727ef038157bae73f6afa89b621f09..240140cc8455e61bf91ddff463c55ee665085500 100644 --- a/share/libc/termios.h +++ b/share/libc/termios.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/tgmath.h b/share/libc/tgmath.h index 921081b6b26e268b9ef4694f3204b9bd1efb9142..b43c795e9c22813ae14a21c1de71111246fa1e0f 100644 --- a/share/libc/tgmath.h +++ b/share/libc/tgmath.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/linux/netlink.h b/share/libc/time.c similarity index 81% rename from share/libc/linux/netlink.h rename to share/libc/time.c index d993849f8e78bf13d4e95396c2a3778282c869eb..6c11356f00d1a07f59ce763958a0517a668dc750 100644 --- a/share/libc/linux/netlink.h +++ b/share/libc/time.c @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ @@ -20,9 +20,18 @@ /* */ /**************************************************************************/ -#ifndef __FC_LINUX_NETLINK_H -#define __FC_LINUX_NETLINK_H +#include "time.h" +#include "__fc_builtin.h" +__PUSH_FC_STDLIB +extern char __fc_ctime[26]; +extern char *ctime(const time_t *timer) { + //@ assert \valid_read(timer); + //@ assert \initialized(timer); + Frama_C_make_unknown(__fc_ctime, 26); + __fc_ctime[25] = 0; + return __fc_ctime; +} -#endif +__POP_FC_STDLIB diff --git a/share/libc/time.h b/share/libc/time.h index eaedd90b305382315161acbbb68cf4a79c3960cb..52c4455579fc3c1269c131021b2582575c5fd52e 100644 --- a/share/libc/time.h +++ b/share/libc/time.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ @@ -104,8 +104,19 @@ extern time_t mktime(struct tm *timeptr); */ extern time_t time(time_t *timer); +char __fc_ctime[26]; +char * const __fc_p_ctime = __fc_ctime; + extern char *asctime(const struct tm *timeptr); +/*@ + requires valid_timer: \valid_read(timer); + requires initialization:init_timer: \initialized(timer); + assigns __fc_ctime[0..25] \from indirect:*timer, indirect:__fc_time; + assigns \result \from indirect:*timer, indirect:__fc_time, __fc_p_ctime; + ensures result_points_to_ctime: \result == __fc_p_ctime; + ensures result_valid_string: valid_read_string(__fc_p_ctime); +*/ extern char *ctime(const time_t *timer); struct tm __fc_time_tm; diff --git a/share/libc/uchar.h b/share/libc/uchar.h deleted file mode 100644 index 7a5c7b61f61d2fcfb6ebde1ced94b9bb22dc4ea9..0000000000000000000000000000000000000000 --- a/share/libc/uchar.h +++ /dev/null @@ -1,27 +0,0 @@ -/**************************************************************************/ -/* */ -/* This file is part of Frama-C. */ -/* */ -/* Copyright (C) 2007-2018 */ -/* CEA (Commissariat à l'énergie atomique et aux énergies */ -/* alternatives) */ -/* */ -/* you can redistribute it and/or modify it under the terms of the GNU */ -/* Lesser General Public License as published by the Free Software */ -/* Foundation, version 2.1. */ -/* */ -/* It is distributed in the hope that it will be useful, */ -/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ -/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ -/* GNU Lesser General Public License for more details. */ -/* */ -/* See the GNU Lesser General Public License version 2.1 */ -/* for more details (enclosed in the file licenses/LGPLv2.1). */ -/* */ -/**************************************************************************/ - -/* ISO C: 7.24 */ -#ifndef __FC_UCHAR -#define __FC_UCHAR - -#endif diff --git a/share/libc/unistd.h b/share/libc/unistd.h index 50812b4e15e63cf82ecd331e8ac73ae64f657105..7edb5316c3ee84e9f688d89f65d67a5a3d34ac02 100644 --- a/share/libc/unistd.h +++ b/share/libc/unistd.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ @@ -828,11 +828,35 @@ extern pid_t fork(void); extern long int fpathconf(int, int); extern int fsync(int); extern int ftruncate(int, off_t); -extern char *getcwd(char *, size_t); + +/*@ // missing: assigns buf[0..size-1] \from 'cwd' + // missing: may assign to errno: EACCES, EINVAL, ENAMETOOLONG, ENOENT, + // ENOMEM, ERANGE + requires valid_buf: \valid(buf + (0 .. size-1)); + assigns buf[0 .. size-1], \result; + assigns buf[0 .. size-1] \from indirect:buf, indirect:size; + assigns \result \from buf, indirect: size; + ensures result_ok_or_error: \result == \null || \result == buf; +*/ +extern char *getcwd(char *buf, size_t size); + extern int getdtablesize(void); + +/*@ //missing: assigns \result \from 'process effective gid' + assigns \result \from \nothing; +*/ extern gid_t getegid(void); + +/*@ //missing: assigns \result \from 'process effective uid' + assigns \result \from \nothing; +*/ extern uid_t geteuid(void); + +/*@ //missing: assigns \result \from 'process gid' + assigns \result \from \nothing; +*/ extern gid_t getgid(void); + extern int getgroups(int, gid_t []); extern long gethostid(void); @@ -862,11 +886,27 @@ extern int getpagesize(void); extern char *getpass(const char *); extern pid_t getpgid(pid_t); extern pid_t getpgrp(void); + +/*@ //missing: assigns \result \from 'process id' + assigns \result \from \nothing; +*/ extern pid_t getpid(void); + +/*@ //missing: assigns \result \from 'parent process id' + assigns \result \from \nothing; +*/ extern pid_t getppid(void); + +/*@ //missing: assigns \result \from 'process sid' + assigns \result \from \nothing; +*/ extern pid_t getsid(pid_t); -/*@ assigns \result \from \nothing; */ + +/*@ //missing: assigns \result \from 'process uid' + assigns \result \from \nothing; +*/ extern uid_t getuid(void); + extern char *getwd(char *); extern int isatty(int); extern int lchown(const char *, uid_t, gid_t); @@ -874,7 +914,14 @@ extern int link(const char *, const char *); extern int lockf(int, int, off_t); extern off_t lseek(int, off_t, int); extern int nice(int); -extern long int pathconf(const char *, int); + +/*@ // missing: may assign to errno: EACCES, EINVAL, ELOOP, ENOENT, ENOTDIR + // missing: assigns \result \from 'file path in filesystem' + requires valid_path: valid_read_string(path); + assigns \result \from indirect:path[0 ..], indirect:name; +*/ +extern long pathconf(char const *path, int name); + extern int pause(void); /*@ @@ -906,22 +953,63 @@ extern ssize_t read(int fd, void *buf, size_t count); extern int readlink(const char *, char *, size_t); extern int rmdir(const char *); extern void *sbrk(intptr_t); + +/*@ // missing: may assign errno to EINVAL or EPERM + // missing: assigns 'process egid' \from gid + assigns \result \from indirect:gid; + ensures result_ok_or_error: \result == 0 || \result == -1; +*/ extern int setegid(gid_t gid); + +/*@ // missing: may assign errno to EINVAL or EPERM + // missing: assigns 'process euid' \from uid + assigns \result \from indirect:uid; + ensures result_ok_or_error: \result == 0 || \result == -1; +*/ extern int seteuid(uid_t uid); -extern int setgid(gid_t); + +/*@ // missing: may assign errno to EINVAL or EPERM + // missing: assigns 'process gid' \from gid, 'process permissions' + // missing: assigns \result \from 'process permissions' + assigns \result \from indirect:gid; + ensures result_ok_or_error: \result == 0 || \result == -1; +*/ +extern int setgid(gid_t gid); + extern int setpgid(pid_t, pid_t); extern pid_t setpgrp(void); -extern int setregid(gid_t, gid_t); -extern int setreuid(uid_t, uid_t); + +/*@ // missing: may assign errno to EINVAL, EPERM or EAGAIN + // missing: assigns 'process real/effective gid' \from gid + // missing: assigns \result \from 'process gid and permissions' + assigns \result \from indirect:rgid, indirect:egid; + ensures result_ok_or_error: \result == 0 || \result == -1; +*/ +extern int setregid(gid_t rgid, gid_t egid); + +/*@ // missing: may assign errno to EINVAL, EPERM or EAGAIN + // missing: assigns 'process real/effective uid' \from uid + // missing: assigns \result \from 'process uid and permissions' + assigns \result \from indirect:ruid, indirect:euid; + ensures result_ok_or_error: \result == 0 || \result == -1; +*/ +extern int setreuid(uid_t ruid, uid_t euid); /*@ // missing: may assign errno to EPERM - // missing: assigns 'processes' \from 'processes' + // missing: assigns \result, 'session, process, gid' \from 'process'; assigns \result \from \nothing; - ensures result_new_proc_group_or_error: \result >= 0 || \result == -1; -*/ + ensures result_pgid_or_error: \result == -1 || \result >= 0; + */ extern pid_t setsid(void); +/*@ // missing: may assign errno to EINVAL, EPERM or EAGAIN + // missing: assigns 'process uid' \from uid, 'process permissions' + // missing: assigns \result \from 'process permissions' + assigns \result \from indirect:uid; + ensures result_ok_or_error: \result == 0 || \result == -1; +*/ extern int setuid(uid_t uid); + extern unsigned int sleep(unsigned int); extern void swab(const void *, void *, ssize_t); extern int symlink(const char *, const char *); @@ -972,6 +1060,59 @@ extern ssize_t write(int fd, const void *buf, size_t count); // setgroups() is not POSIX extern int setgroups(size_t size, const gid_t *list); +// The following functions are GNU extensions +#ifdef _GNU_SOURCE + +/*@ + // missing: assigns \result, *ruid, *euid, *suid \from 'process' + // missing: may assign to errno: EFAULT + requires valid_ruid: \valid(ruid); + requires valid_euid: \valid(suid); + requires valid_suid: \valid(euid); + assigns *ruid, *euid, *suid \from \nothing; + assigns \result \from indirect:ruid, indirect:euid, indirect:suid; + ensures initialization:result_ok_or_error: + (\result == 0 && + \initialized(ruid) && \initialized(euid) && \initialized(suid)) + || \result == -1; + */ +int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); + +/*@ + // missing: assigns 'process uid' \from ruid, euid, suid + // missing: assigns \result \from 'process permissions' + // missing: may assign to errno: EAGAIN, EINVAL, EPERM + assigns \result \from indirect:ruid, indirect:euid, indirect:suid; + ensures result_ok_or_error: \result == 0 || \result == -1; + */ +int setresuid(uid_t ruid, uid_t euid, uid_t suid); + +/*@ + // missing: assigns \result, *ruid, *euid, *suid \from 'process' + // missing: may assign to errno: EFAULT + requires valid_rgid: \valid(rgid); + requires valid_egid: \valid(sgid); + requires valid_sgid: \valid(egid); + assigns *rgid, *egid, *sgid \from \nothing; + assigns \result \from indirect:rgid, indirect:egid, indirect:sgid; + ensures initialization:result_ok_or_error: + (\result == 0 && + \initialized(rgid) && \initialized(egid) && \initialized(sgid)) + || \result == -1; + */ +int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); + +/*@ + // missing: assigns 'process gid' \from rgid, egid, sgid + // missing: assigns \result \from 'process permissions' + // missing: may assign to errno: EAGAIN, EINVAL, EPERM + assigns \result \from indirect:rgid, indirect:egid, indirect:sgid; + ensures result_ok_or_error: \result == 0 || \result == -1; + */ +int setresgid(gid_t rgid, gid_t egid, gid_t sgid); + +#endif + __END_DECLS __POP_FC_STDLIB diff --git a/share/libc/utime.h b/share/libc/utime.h index 9e548e84a85ffbfdbec5ddfc1bd0689fb245b8f9..a3d4f41d26b9748d0573f79c5d5ce190feddff76 100644 --- a/share/libc/utime.h +++ b/share/libc/utime.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/utmpx.h b/share/libc/utmpx.h index c17d890500517024d5f62f8e4205417083d70420..cc1c85dc142c5fed93416b518f92ef9fc5e4d068 100644 --- a/share/libc/utmpx.h +++ b/share/libc/utmpx.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/wchar.c b/share/libc/wchar.c index 825666ea07e370b1b65b9efa5459bce84da9e4a3..047b875431dc9a832c330089d67f0177be38c1cc 100644 --- a/share/libc/wchar.c +++ b/share/libc/wchar.c @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/wchar.h b/share/libc/wchar.h index 5c6cab790a0deffa3ee412b3c47f8854672bbaa2..aeb08ed3eae799080bb75fd042674f6e138af0e1 100644 --- a/share/libc/wchar.h +++ b/share/libc/wchar.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/wctype.h b/share/libc/wctype.h index f6a3128b00dc7052022d8e963f84f22e1b304556..33a357b65f3766ef6167651813e7564943f6acbc 100644 --- a/share/libc/wctype.h +++ b/share/libc/wctype.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/src/kernel_internals/parsing/check_logic_parser.ml b/src/kernel_internals/parsing/check_logic_parser.ml index b9ded2c35cb438b19d0e2622c3a2d86b4ef5c40e..aee38d9cbe09fa16cdcd19943321e36be088cb4b 100644 --- a/src/kernel_internals/parsing/check_logic_parser.ml +++ b/src/kernel_internals/parsing/check_logic_parser.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_internals/parsing/logic_lexer.mli b/src/kernel_internals/parsing/logic_lexer.mli index a83a0e2c2a7ec72eea8259135fecf06309e6752c..97eab7669f2faa1fb063e2ab74b0d504ae29a8f1 100644 --- a/src/kernel_internals/parsing/logic_lexer.mli +++ b/src/kernel_internals/parsing/logic_lexer.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) diff --git a/src/kernel_internals/parsing/logic_lexer.mll b/src/kernel_internals/parsing/logic_lexer.mll index e39192b490684a67476a3993da30dbc8891f03ae..c02a126964259ed12cdceb977060569ca62eaed4 100644 --- a/src/kernel_internals/parsing/logic_lexer.mll +++ b/src/kernel_internals/parsing/logic_lexer.mll @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) @@ -127,7 +127,8 @@ "module", MODULE, false;(* ACSL extension for external spec file *) "pragma", PRAGMA, false; "predicate", PREDICATE, false; - "reads", READS, false; + "reads", READS, true; (* treated specifically in the parser to + avoid issue in volatile clause. *) "requires", REQUIRES, false; "returns", RETURNS, false; "short", SHORT, true; @@ -142,7 +143,8 @@ "variant", VARIANT, false; "void", VOID, true; "volatile", VOLATILE, true; - "writes", WRITES, false; + "writes", WRITES, true; (* treated specifically in the parser to + avoid issue in volatile clause. *) ]; List.iter (fun (x, y) -> Hashtbl.add type_kw x y) ["integer", INTEGER; "real", REAL; "boolean", BOOLEAN; ]; diff --git a/src/kernel_internals/parsing/logic_parser.mly b/src/kernel_internals/parsing/logic_parser.mly index 86d705460a976694d980ddca728df44d77246f40..489cf83599cba3d1c347d9b5f45f835d5c7d29a2 100644 --- a/src/kernel_internals/parsing/logic_parser.mly +++ b/src/kernel_internals/parsing/logic_parser.mly @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* INRIA (Institut National de Recherche en Informatique et en */ @@ -879,6 +879,10 @@ full_zones: | enter_kw_c_mode zones exit_kw_c_mode { $2 } ; +full_ne_zones: +| enter_kw_c_mode ne_zones exit_kw_c_mode { $2 } +; + full_ne_lexpr_list: enter_kw_c_mode ne_lexpr_list exit_kw_c_mode { $2 } ; @@ -1106,7 +1110,9 @@ clause_kw: /* often, we'll be in c_kw_mode, where these keywords are recognized as identifiers... */ | IDENTIFIER { $1 } +| EXT_CONTRACT { $1 } | EOF { "end of annotation" } +; requires: | /* epsilon */ { [] } @@ -1266,43 +1272,33 @@ custom_tree: ; custom_tree_list: -| custom_tree { [$1] } -| custom_tree COMMA custom_tree_list { $1::$3 } +| custom_tree { [$1] } +| custom_tree COMMA custom_tree_list { $1::$3 } +; annotation: | loop_annotations { let (b,v,p) = $1 in - (* TODO: do better, do not lose the structure ! *) - let l = b@v@p in + (* TODO: do better, do not lose the structure ! *) + let l = b@v@p in Aloop_annot (loc (), l) } -| FOR ne_behavior_name_list COLON contract - { let s, pos = $4 in Acode_annot (pos, AStmtSpec ($2,s)) } -| code_annotation { Acode_annot (loc(),$1) } -| code_annotation beg_code_annotation +| FOR ne_behavior_name_list COLON contract_or_code_annotation + { $4 $2 } +| pragma_or_code_annotation { Acode_annot (loc(),$1) } +| pragma_or_code_annotation beg_pragma_or_code_annotation { raise (Not_well_formed (loc(), "Only one code annotation is allowed per comment")) } -| EXT_CODE_ANNOT grammar_extension SEMICOLON - { - let open Cil_types in - let ext = $1 in - match Logic_env.extension_category ext with - | Some (Ext_code_annot (Ext_here | Ext_next_stmt | Ext_next_both)) -> - Acode_annot (loc(), Logic_ptree.AExtended([],false,(ext,$2))) - | Some (Ext_code_annot Ext_next_loop) -> - raise - (Not_well_formed - (lexeme_loc 1, - ext ^ " is not a loop annotation extension. It can't be used as \ - plain code annotation extension")) - | Some (Ext_contract | Ext_global) | None -> - Kernel.fatal ~source:(lexeme_start 1) - "%s is not a code annotation extension. Parser got wrong lexeme" ext - } | full_identifier_or_typename { Aattribute_annot (loc (), $1) } ; +contract_or_code_annotation: +| contract + { fun bhvs -> let s, pos = $1 in Acode_annot (pos, AStmtSpec (bhvs,s)) } +| code_annotation { fun bhvs -> Acode_annot (loc(), ($1 bhvs)) } +; + /*** loop annotations ***/ loop_annotations: @@ -1429,23 +1425,42 @@ loop_pragma: /*** code annotations ***/ -beg_code_annotation: +beg_pragma_or_code_annotation: | IMPACT {} | SLICE {} | FOR {} | ASSERT {} | INVARIANT {} +| EXT_CODE_ANNOT {} ; -code_annotation: +pragma_or_code_annotation: | slice_pragma { APragma (Slice_pragma $1) } | impact_pragma { APragma (Impact_pragma $1) } -| FOR ne_behavior_name_list COLON ASSERT full_lexpr SEMICOLON - { AAssert ($2,$5) } -| FOR ne_behavior_name_list COLON INVARIANT full_lexpr SEMICOLON - { AInvariant ($2,false,$5) } -| ASSERT full_lexpr SEMICOLON { AAssert ([],$2) } -| INVARIANT full_lexpr SEMICOLON { AInvariant ([],false,$2) } +| code_annotation { $1 [] } +; + +code_annotation: +| ASSERT full_lexpr SEMICOLON + { fun bhvs -> AAssert (bhvs,$2) } +| INVARIANT full_lexpr SEMICOLON { fun bhvs -> AInvariant (bhvs,false,$2) } +| EXT_CODE_ANNOT grammar_extension SEMICOLON + { fun bhvs -> + let open Cil_types in + let ext = $1 in + match Logic_env.extension_category ext with + | Some (Ext_code_annot (Ext_here | Ext_next_stmt | Ext_next_both)) -> + Logic_ptree.AExtended(bhvs,false,(ext,$2)) + | Some (Ext_code_annot Ext_next_loop) -> + raise + (Not_well_formed + (lexeme_loc 1, + ext ^ " is not a loop annotation extension. It can't be used as \ + plain code annotation extension")) + | Some (Ext_contract | Ext_global) | None -> + Kernel.fatal ~source:(lexeme_start 1) + "%s is not a code annotation extension. Parser got wrong lexeme" ext + } ; slice_pragma: @@ -1476,7 +1491,7 @@ decl_list: decl: | GLOBAL INVARIANT any_identifier COLON full_lexpr SEMICOLON { LDinvariant ($3, $5) } -| VOLATILE ne_zones volatile_opt SEMICOLON { LDvolatile ($2, $3) } +| VOLATILE full_ne_zones volatile_opt SEMICOLON { LDvolatile ($2, $3) } | type_annot {LDtype_annot $1} | model_annot {LDmodel_annot $1} | logic_def { $1 } @@ -1652,7 +1667,7 @@ logic_decl_loc: reads_clause: | /* epsilon */ { None } -| READS zones { Some $2 } +| READS full_zones { Some $2 } ; typedef: @@ -1754,6 +1769,8 @@ identifier_or_typename: identifier: | IDENTIFIER { $1 } +| READS { "reads" } +| WRITES { "writes" } ; bounded_var: @@ -1794,7 +1811,7 @@ acsl_c_keyword: ; post_cond: -| ENSURES { Normal, "normal" } +| ENSURES { Normal, "ensures" } | EXITS { Exits, "exits" } | BREAKS { Breaks, "breaks" } | CONTINUES { Continues, "continues" } @@ -1816,8 +1833,10 @@ is_acsl_spec: ; is_acsl_decl_or_code_annot: -| ASSERT { "assert" } +| EXT_CODE_ANNOT { $1 } +| EXT_GLOBAL { $1 } | ASSUMES { "assumes" } +| ASSERT { "assert" } | GLOBAL { "global" } | IMPACT { "impact" } | INDUCTIVE { "inductive" } @@ -1855,6 +1874,7 @@ is_ext_spec: keyword: | LOGIC { "logic" } | non_logic_keyword { $1 } +; non_logic_keyword: | c_keyword { $1 } @@ -1963,8 +1983,6 @@ wildcard: | STRING_LITERAL { () } | TILDE { () } | IN { () } -| EXT_GLOBAL { () } -| EXT_CODE_ANNOT { () } ; any: diff --git a/src/kernel_internals/parsing/logic_preprocess.mli b/src/kernel_internals/parsing/logic_preprocess.mli index 92303230c129d22cc774597dbea72d71481a780b..c84f6e2dd8b97982cc3fa5e5fcaba5d84ece2ebd 100644 --- a/src/kernel_internals/parsing/logic_preprocess.mli +++ b/src/kernel_internals/parsing/logic_preprocess.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) diff --git a/src/kernel_internals/parsing/logic_preprocess.mll b/src/kernel_internals/parsing/logic_preprocess.mll index a8ae715b2c2f5da18bcbeaf6e1cd7e4e15502e10..91018631d2efcede80e905a502b411a8b51215c5 100644 --- a/src/kernel_internals/parsing/logic_preprocess.mll +++ b/src/kernel_internals/parsing/logic_preprocess.mll @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) diff --git a/src/kernel_internals/runtime/boot.ml b/src/kernel_internals/runtime/boot.ml index cf4d984887027307a912f76228b124200701f505..f1d0ce13fe9804f3627541aaf0ca9bc63b470392 100644 --- a/src/kernel_internals/runtime/boot.ml +++ b/src/kernel_internals/runtime/boot.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_internals/runtime/config.ml.in b/src/kernel_internals/runtime/config.ml.in index c51c4c0be3c415f1016b6ff4eed58d050191ac32..c0f5852814ae1f34681f122f7a672be1ee95ed92 100644 --- a/src/kernel_internals/runtime/config.ml.in +++ b/src/kernel_internals/runtime/config.ml.in @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -26,34 +26,51 @@ let version = "@VERSION@" let codename = "@VERSION_CODENAME@" let version_and_codename = version ^ " (" ^ codename ^ ")" +let major_version = @MAJOR_VERSION@ + +let minor_version = @MINOR_VERSION@ + let is_gui = ref false let ocamlc = "@OCAMLC@" let ocamlopt = "@OCAMLOPT@" let ocaml_wflags = "@WARNINGS@" +let getenv_list name = + let path = Sys.getenv name in + Str.split (Str.regexp ":") path + +let add_symbolic_dir_list name = function + | [d] -> Filepath.add_symbolic_dir name d + | ds -> + List.iteri + (fun i d -> + let path = Printf.sprintf "%s#%d" name (succ i) in + Filepath.add_symbolic_dir path d) + ds + + let datadir = try Sys.getenv "FRAMAC_SHARE" with Not_found -> "@FRAMAC_DATADIR@" +let framac_libc = datadir ^ "/libc" +let extra_datadir = try getenv_list "FRAMAC_EXTRA_SHARE" with Not_found -> [] +let () = add_symbolic_dir_list "FRAMAC_EXTRA_SHARE" extra_datadir +(** After so that it has the priority for pretty printing *) let () = Filepath.add_symbolic_dir "FRAMAC_SHARE" datadir + +let datadirs = datadir::extra_datadir + let libdir = try Sys.getenv "FRAMAC_LIB" with Not_found -> "@FRAMAC_LIBDIR@" let () = Filepath.add_symbolic_dir "FRAMAC_LIB" libdir let plugin_dir = try - let path = Sys.getenv "FRAMAC_PLUGIN" in - Str.split (Str.regexp ":") path + getenv_list "FRAMAC_PLUGIN" with Not_found -> try [ Sys.getenv "FRAMAC_LIB" ^ "/plugins" ] with Not_found -> [ "@FRAMAC_PLUGINDIR@" ] let plugin_path = String.concat ":" plugin_dir -let () = match plugin_dir with - | [d] -> Filepath.add_symbolic_dir "FRAMAC_PLUGIN" d - | ds -> - Array.iteri - (fun i d -> - let path = Printf.sprintf "FRAMAC_PLUGIN#%d" (succ i) in - Filepath.add_symbolic_dir path d) - (Array.of_list ds) +let () = add_symbolic_dir_list "FRAMAC_PLUGIN" plugin_dir let default_cpp = "@FRAMAC_DEFAULT_CPP@" diff --git a/src/kernel_internals/runtime/config.mli b/src/kernel_internals/runtime/config.mli index 2d49810b265d24d7e86ea0f63a62cf3e40ec605c..d223daf3b963e3919f947abc024a05619d04c9f4 100644 --- a/src/kernel_internals/runtime/config.mli +++ b/src/kernel_internals/runtime/config.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -28,10 +28,18 @@ val version: string val codename: string (** Frama-C version codename. - @since Frama-C+dev *) + @since 18.0-Argon *) val version_and_codename: string (** Frama-C version and codename. + @since 18.0-Argon *) + +val major_version: int +(** Frama-C major version number. + @since Frama-C+dev *) + +val minor_version: int +(** Frama-C minor version number. @since Frama-C+dev *) val is_gui: bool ref @@ -51,7 +59,17 @@ val ocaml_wflags: string @since Chlorine-20180501 *) val datadir: string - (** Directory where architecture independent files are. *) + (** Directory where architecture independent files are. + Main directory, use {!datadirs} for the others *) + +val datadirs: string list + (** Directories where architecture independent files are in order of + priority. + @since Frama-C-trunk*) + +val framac_libc: string + (** Directory where Frama-C libc headers are. + @since Frama-C-trunk*) val libdir: string (** Directory where the Frama-C kernel library is. diff --git a/src/kernel_internals/runtime/frama_c_config.ml.in b/src/kernel_internals/runtime/frama_c_config.ml.in index 872ca17eb22548a5ab7711e89b32378f5a5add01..15f01b713b6e94cbc096e0bbff64a88a9bae3d93 100644 --- a/src/kernel_internals/runtime/frama_c_config.ml.in +++ b/src/kernel_internals/runtime/frama_c_config.ml.in @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_internals/runtime/frama_c_init.ml b/src/kernel_internals/runtime/frama_c_init.ml index 5587705baafb5425e175afef27a11485e1b73c09..94099da7b5febdc09bf9fc158a5ab3389c7f74ba 100644 --- a/src/kernel_internals/runtime/frama_c_init.ml +++ b/src/kernel_internals/runtime/frama_c_init.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_internals/runtime/frama_c_init.mli b/src/kernel_internals/runtime/frama_c_init.mli index 0b78298540d2c54f3b1c88027f2cdf7ff6461e16..fff1a57dde130f657e49841a9f66314510d72cff 100644 --- a/src/kernel_internals/runtime/frama_c_init.mli +++ b/src/kernel_internals/runtime/frama_c_init.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_internals/runtime/gui_init.ml b/src/kernel_internals/runtime/gui_init.ml index b06914a5cea3eb221b29b2072b9e6d49fe5ecd76..aaaf9362a05a095b78854ced947a73a1a695f4da 100644 --- a/src/kernel_internals/runtime/gui_init.ml +++ b/src/kernel_internals/runtime/gui_init.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_internals/runtime/gui_init.mli b/src/kernel_internals/runtime/gui_init.mli index 4ec9af8d63ae3487115c38ea94d6171bd0c479a4..de5814abead6a05e0d90e214c19096fba5aa219d 100644 --- a/src/kernel_internals/runtime/gui_init.mli +++ b/src/kernel_internals/runtime/gui_init.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_internals/runtime/messages.ml b/src/kernel_internals/runtime/messages.ml index 42d142ebb8c7f784c6372eebf4e0eb9dfdd6dd11..9d32138b4df31616c75d96d46e008967af5fda13 100644 --- a/src/kernel_internals/runtime/messages.ml +++ b/src/kernel_internals/runtime/messages.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_internals/runtime/messages.mli b/src/kernel_internals/runtime/messages.mli index 49fc8d6646a91857ec4b958c71926181af8bb856..5a7da51baa5a65f6f3287a57e9155ed58667963d 100644 --- a/src/kernel_internals/runtime/messages.mli +++ b/src/kernel_internals/runtime/messages.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_internals/runtime/special_hooks.ml b/src/kernel_internals/runtime/special_hooks.ml index c302651359ef88cf75158a60d265e9919ac06900..9aecb292da713a7214e26574f10a62229de8f029 100644 --- a/src/kernel_internals/runtime/special_hooks.ml +++ b/src/kernel_internals/runtime/special_hooks.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_internals/runtime/special_hooks.mli b/src/kernel_internals/runtime/special_hooks.mli index 223a8bc98bfd63e6ce270e622b32859d42359d82..0b4bb35903abcd92d7213a16ae5b200b28d29a2f 100644 --- a/src/kernel_internals/runtime/special_hooks.mli +++ b/src/kernel_internals/runtime/special_hooks.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_internals/runtime/toplevel_config.ml b/src/kernel_internals/runtime/toplevel_config.ml index b78c7a82b4790e7582266afaa3d0b920343a730a..6c03708b5d536796d917176cccb9c296ab0bbb5c 100644 --- a/src/kernel_internals/runtime/toplevel_config.ml +++ b/src/kernel_internals/runtime/toplevel_config.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_internals/typing/allocates.ml b/src/kernel_internals/typing/allocates.ml index 7fa2691165885362cd5bed069473b51fe7981820..708ffa5705235244f0416d78b0b413b32eb0b376 100644 --- a/src/kernel_internals/typing/allocates.ml +++ b/src/kernel_internals/typing/allocates.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_internals/typing/allocates.mli b/src/kernel_internals/typing/allocates.mli index ae41367e2949bdb90827dbf97f36a8b078290d64..8e03dec87599f7dd73882a6a401822fbfc28fd29 100644 --- a/src/kernel_internals/typing/allocates.mli +++ b/src/kernel_internals/typing/allocates.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_internals/typing/asm_contracts.ml b/src/kernel_internals/typing/asm_contracts.ml index 8442c9d157b20f1a20576307981da91ec131dd86..3bf647bcaa472e030cd5ddb1868c4e77f8d504b4 100644 --- a/src/kernel_internals/typing/asm_contracts.ml +++ b/src/kernel_internals/typing/asm_contracts.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_internals/typing/asm_contracts.mli b/src/kernel_internals/typing/asm_contracts.mli index 3cc03df63f0f990ba1e5f3bf4f1005ad51322d76..068fe6ab31027d0bae2d6769ba4a99dfcd542079 100644 --- a/src/kernel_internals/typing/asm_contracts.mli +++ b/src/kernel_internals/typing/asm_contracts.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_internals/typing/cabs2cil.ml b/src/kernel_internals/typing/cabs2cil.ml index d4fc5632a69bc967f2e026fdc892aba896544390..00315ab1904b8f67d1cc066f48233f9f5bc195d6 100644 --- a/src/kernel_internals/typing/cabs2cil.ml +++ b/src/kernel_internals/typing/cabs2cil.ml @@ -149,7 +149,7 @@ module ConditionalSideEffectHook = Hook.Build(struct type t = Cabs.expression * Cabs.expression end) module ForLoopHook = - Hook.Build(struct + Hook.Build(struct type t = Cabs.for_clause * Cabs.expression * Cabs.expression * Cabs.statement end) @@ -210,8 +210,8 @@ let rec is_dangerous e = match e.enode with | Const _ | SizeOf _ | SizeOfE _ | SizeOfStr _ | AlignOf _ | AlignOfE _ -> false and is_dangerous_lval = function - | Var v,_ when - (not v.vglob && not v.vformal && not v.vtemp) + | Var v,_ when + (not v.vglob && not v.vformal && not v.vtemp) || Cil.hasAttribute "volatile" v.vattr || Cil.typeHasAttribute "volatile" (Cil.unrollType v.vtype) -> true @@ -280,8 +280,8 @@ let current_stdheader = ref [] let pop_stdheader () = match !current_stdheader with | s::l -> - Kernel.debug ~dkey:Kernel.dkey_typing_pragma "Popping %s %s" fc_stdlib s; - current_stdheader := l + Kernel.debug ~dkey:Kernel.dkey_typing_pragma "Popping %s %s" fc_stdlib s; + current_stdheader := l | [] -> Kernel.warning "#pragma %s pop does not match a push" fc_stdlib let push_stdheader s = @@ -315,7 +315,7 @@ let process_stdlib_pragma name args = match args with | [ ACons ("pop",_) ] -> pop_stdheader (); None | [ ACons ("push",_); AStr s ] -> - let base_name = Config.datadir ^ "/libc" in + let base_name = Config.framac_libc in let relative_name = Filepath.relativize ~base_name s in push_stdheader relative_name; None @@ -914,7 +914,7 @@ let fresh_global lookupname = * "enum" for enumerations, or "type" for types *) let kindPlusName (kind: string) (origname: string) : string = - (* typedefs live in the same namespace as normal identifiers. *) + (* typedefs live in the same namespace as normal identifiers. *) if kind = "" || kind = "type" then origname else kind ^ " " ^ origname @@ -992,7 +992,7 @@ let newAlphaName (globalscope: bool) (* The name should have global scope *) Previous declaration was at %a" origname (if is_same_kind kind info then "" else " with different kind") Cil_datatype.Location.pretty oldloc - with + with | Not_found -> () (* no clash of identifiers *) | Failure _ -> Kernel.fatal @@ -1151,7 +1151,7 @@ let get_temp_name () = (* Create a new temporary variable *) let newTempVar descr (descrpure:bool) typ = let t' = (!typeForInsertedVar) typ in - let name = get_temp_name () in + let name = get_temp_name () in let vi = makeVarinfo ~temp:true false false name t' in vi.vdescr <- Some descr; vi.vdescrpure <- descrpure; @@ -1404,7 +1404,7 @@ struct (Pretty_utils.pp_list ~sep:",@ " Cil_printer.pp_lval) modified (Pretty_utils.pp_list ~sep:",@ " Cil_printer.pp_lval) write (Pretty_utils.pp_list ~sep:",@ " Cil_printer.pp_lval) reads - (Pretty_utils.pp_list ~sep:",@ " + (Pretty_utils.pp_list ~sep:",@ " (fun fmt x -> Cil_printer.pp_stmt fmt !x)) calls Cil_printer.pp_stmt s @@ -1424,7 +1424,7 @@ struct let empty_stmts l = let rec is_empty_stmt s = match s.skind with - | Instr (Skip _) -> s.labels = [] + | Instr (Skip _) -> s.labels = [] && s.sattr = [] | Block b -> b.battrs = [] && List.for_all is_empty_stmt b.bstmts | UnspecifiedSequence seq -> List.for_all is_empty_stmt (List.map (fun (x,_,_,_,_) -> x) seq) @@ -1506,8 +1506,8 @@ struct let my_ref = ref (mkEmptyStmt - (* just a placeholder that will never be used. no need to - check for ghost status here. *) + (* just a placeholder that will never be used. no need to + check for ghost status here. *) ~ghost:false ~valid_sid ~loc:(cabslu "_find_label") ()) in addGoto s my_ref; my_ref @@ -1529,12 +1529,12 @@ struct let c2block ~ghost ?(collapse_block=true) ?(force_non_scoping=false) c = let declares_var = c.locals <> [] || c.statics <> [] in if c.unspecified_order then begin - if List.length c.stmts >= 2 then begin - let first_stmt = - (fun (s,_,_,_,_) -> s) (Extlib.last c.stmts) in - Kernel.warning ~wkey:Kernel.wkey_cert_exp_10 - ~source:(fst (Stmt.loc first_stmt)) - "Potential unsequenced side-effects" end; + if List.length c.stmts >= 2 then begin + let first_stmt = + (fun (s,_,_,_,_) -> s) (Extlib.last c.stmts) in + Kernel.warning ~wkey:Kernel.wkey_cert_exp_10 + ~source:(fst (Stmt.loc first_stmt)) + "Potential unsequenced side-effects" end; let b = Cil.mkBlock [mkStmt ~ghost ~valid_sid (UnspecifiedSequence (List.rev c.stmts))] @@ -1865,10 +1865,10 @@ struct let canDrop (c: chunk) = List.for_all (fun (s,_,_,_,_) -> canDropStatement s) c.stmts - let loopChunk ~ghost a (body: chunk) : chunk = + let loopChunk ~ghost ~sattr a (body: chunk) : chunk = (* Make the statement *) let loop = - mkStmt ~ghost ~valid_sid + mkStmt ~ghost ~valid_sid ~sattr (Loop (a,c2block ~ghost body, CurrentLoc.get (), None, None)) in { stmts = [ loop,[],[],[],[] ]; @@ -1967,7 +1967,7 @@ struct | Some i1, Some i2 when not (Integer.equal i1 i2) -> Kernel.feedback ~once:true ~source:(fst e.eloc) "Case label %a exceeds range of %a for switch expression. \ - Nothing to worry." + Nothing to worry." Cil_printer.pp_exp e Cil_printer.pp_typ t; | _ -> () ); @@ -2581,12 +2581,12 @@ let rec combineTypes (what: combineWhat) (oldt: typ) (t: typ) : typ = end in (* Drop missingproto as soon as one of the type is a properly declared one*) - let olda = + let olda = if not (Cil.hasAttribute "missingproto" a) then Cil.dropAttribute "missingproto" olda' else olda' in - let a = + let a = if not (Cil.hasAttribute "missingproto" olda') then Cil.dropAttribute "missingproto" a else a @@ -2729,9 +2729,9 @@ let rec castTo ?(fromsource=false) in castTo ~fromsource (TPtr (ot', [])) nt' clean_e - (* accept converting a ptr to function to/from a ptr to void, even though - not really accepted by the standard. gcc supports it. though - *) + (* accept converting a ptr to function to/from a ptr to void, even though + not really accepted by the standard. gcc supports it. though + *) | TPtr (TFun _,_), TPtr (TVoid _, _) -> result | TPtr (TVoid _, _), TPtr (TFun _,_) -> result (* Taking numerical address or calling an absolute location. Also @@ -2742,13 +2742,13 @@ let rec castTo ?(fromsource=false) (* pointer to potential function type. Note that we do not use unrollTypeDeep above in order to avoid needless divergence with original type in the sources. - *) + *) | TPtr(TFun _,_), TPtr(TNamed(ti,nattr),pattr) -> - castTo - ~fromsource ot (TPtr (Cil.typeAddAttributes nattr ti.ttype, pattr)) e + castTo + ~fromsource ot (TPtr (Cil.typeAddAttributes nattr ti.ttype, pattr)) e | TPtr(TNamed(ti,nattr),pattr), TPtr(TFun _,_) -> - castTo - ~fromsource (TPtr (Cil.typeAddAttributes nattr ti.ttype, pattr)) nt e + castTo + ~fromsource (TPtr (Cil.typeAddAttributes nattr ti.ttype, pattr)) nt e (* No other conversion implying a pointer to function and a pointer to object are supported. *) @@ -2826,7 +2826,7 @@ let rec castTo ?(fromsource=false) | TComp(_, _, _), _ -> begin match isTransparentUnion ot with | None -> - Kernel.fatal ~current:true "castTo %a -> %a" + Kernel.fatal ~current:true "castTo %a -> %a" Cil_printer.pp_typ ot Cil_printer.pp_typ nt' | Some fstfield -> begin (* We do it now only if the expression is an lval *) @@ -2871,9 +2871,9 @@ let makeGlobalVarinfo (isadef: bool) (vi: varinfo) : varinfo * bool = let newstorage = (** See 6.2.2 *) match oldvi.vstorage, vi.vstorage with | Extern, NoStorage when isadef -> NoStorage - (* the case above is not strictly C standard, but will not accept - more program and is more compatible with old implicit - quasi-invariant that Extern == not defined. *) + (* the case above is not strictly C standard, but will not accept + more program and is more compatible with old implicit + quasi-invariant that Extern == not defined. *) | Extern, (Extern | NoStorage) -> Extern | NoStorage, Extern -> if oldvi.vdefined then NoStorage else Extern | NoStorage, NoStorage -> NoStorage @@ -2935,7 +2935,7 @@ let makeGlobalVarinfo (isadef: bool) (vi: varinfo) : varinfo * bool = Cil_printer.pp_typ vi.vtype ; Kernel.error ~once:true ~current:true "Declaration of %s does not match previous declaration from \ - %a (%s)." + %a (%s)." vi.vname Cil_printer.pp_location oldloc reason; IncompatibleDeclHook.apply (oldvi,vi,reason) end; @@ -2956,18 +2956,18 @@ let makeGlobalVarinfo (isadef: bool) (vi: varinfo) : varinfo * bool = let old_formals_env = getFormalsDecl oldvi in List.iter2 (fun old (name,typ,attr) -> - if name <> "" then begin - Kernel.debug ~dkey:Kernel.dkey_typing_global - "replacing formal %s with %s" old.vname name; - old.vname <- name; - if not oldvi.vdefined || isadef then begin - Cil.update_var_type old typ; - old.vattr <- attr; - end; - (match old.vlogic_var_assoc with - | None -> () - | Some old_lv -> old_lv.lv_name <- name) - end) + if name <> "" then begin + Kernel.debug ~dkey:Kernel.dkey_typing_global + "replacing formal %s with %s" old.vname name; + old.vname <- name; + if not oldvi.vdefined || isadef then begin + Cil.update_var_type old typ; + old.vattr <- attr; + end; + (match old.vlogic_var_assoc with + | None -> () + | Some old_lv -> old_lv.lv_name <- name) + end) old_formals_env formals; with @@ -2987,18 +2987,18 @@ let makeGlobalVarinfo (isadef: bool) (vi: varinfo) : varinfo * bool = temporaries have sufficiently fresh names that this is not a problem *) oldvi, true with Not_found -> begin (* A new one. *) - Kernel.debug ~dkey:Kernel.dkey_typing_global - " %s not in the env already" vi.vname; - (* Announce the name to the alpha conversion table. This will not - * actually change the name of the vi. See the definition of - * alphaConvertVarAndAddToEnv *) - let vi = alphaConvertVarAndAddToEnv true vi in - (* update the field [vdefined] *) - if isadef then vi.vdefined <- true; - vi.vattr <- dropAttribute "FC_OLDSTYLEPROTO" vi.vattr; - vi.vattr <- fc_stdlib_attribute vi.vattr; - vi, false - end + Kernel.debug ~dkey:Kernel.dkey_typing_global + " %s not in the env already" vi.vname; + (* Announce the name to the alpha conversion table. This will not + * actually change the name of the vi. See the definition of + * alphaConvertVarAndAddToEnv *) + let vi = alphaConvertVarAndAddToEnv true vi in + (* update the field [vdefined] *) + if isadef then vi.vdefined <- true; + vi.vattr <- dropAttribute "FC_OLDSTYLEPROTO" vi.vattr; + vi.vattr <- fc_stdlib_attribute vi.vattr; + vi, false + end in NewGlobalHook.apply res; res @@ -3181,7 +3181,7 @@ let rec setOneInit this o preinit = * (ANSI C, 6.7.8, para 22). * Finally, we return the set of lvals that are read for the evaluation of * the initializer (for unspecified sequences) - *) +*) let rec collectInitializer reads (* lval already read by the rest of the initializer. *) (this: preInit) @@ -3497,25 +3497,25 @@ let fieldsToInit (* Ignore anonymous non-comp fields *) if f.fname = missingFieldName then acc - (* if we have already found the designator, just append the current field *) + (* if we have already found the designator, just append the current field *) else if found then found, offset :: loff - (* if this field is an anonymous comp, search for the designator inside *) + (* if this field is an anonymous comp, search for the designator inside *) else if prefix anonCompFieldName f.fname && not found then match unrollType f.ftype with | TComp (comp, _, _) -> add_comp offset comp acc (* go deeper inside *) | _ -> abort_context "unnamed field type is not a struct/union" - (* does this field match the designator ? *) + (* does this field match the designator ? *) else match designator with | Some fn when f.fname = fn -> (true, [offset]) | _ -> acc in let found, r = add_comp NoOffset comp (designator = None, []) in begin if not found then - let fn = Extlib.the designator in - Kernel.fatal ~current:true "Cannot find designated field %s" fn; + let fn = Extlib.the designator in + Kernel.fatal ~current:true "Cannot find designated field %s" fn; end; List.rev r @@ -3597,7 +3597,7 @@ let allow_return_collapse ~tlv ~tf = | TInt (iklv, _), TInt (ikf, _) -> Cil.isSigned iklv = Cil.isSigned ikf && Cil.bitsSizeOfBitfield tlv = Cil.bitsSizeOf tf (* && *) - (* not (Cil.typeHasQualifier "volatile" tlv) *) + (* not (Cil.typeHasQualifier "volatile" tlv) *) | TFloat (fklv, _), TFloat (fkf, _) -> fklv = fkf | _, _ -> false ) @@ -4060,7 +4060,7 @@ let default_argument_promotion idx exp = | TVoid _ -> voidType | TInt(k,_) when Cil.rank k < Cil.rank IInt -> if intTypeIncluded k IInt then intType - else (* This may happen when char or short have the same size as int *) + else (* This may happen when char or short have the same size as int *) uintType | TInt(k,_) -> TInt(k,[]) | TFloat(FFloat,_) -> doubleType @@ -4079,9 +4079,9 @@ let default_argument_promotion idx exp = (name,typ,[]), e (* Promote variadic arguments with standard argument promotions.*) -let promote_variadic_arguments (chunk,args) = +let promote_variadic_arguments (chunk,args) = let args = - Extlib.mapi + Extlib.mapi (fun i arg -> snd (default_argument_promotion i arg)) args in @@ -4192,7 +4192,7 @@ let checkTypedefSize name typ = check for mismatch between -machdep flag and headers used" Typ.pretty typ size name with - (* Not a standard integer type, ignore it. *) + (* Not a standard integer type, ignore it. *) Not_found -> () end @@ -4504,7 +4504,7 @@ let rec doSpecList ghost (suggestedAnonName: string) let ik = updateEnum i in if theMachine.lowerConstants then kinteger64 ~loc:e.expr_loc ~kind:ik i - else + else e' in processName kname e' (convLoc cloc) rest @@ -4528,7 +4528,7 @@ let rec doSpecList ghost (suggestedAnonName: string) let ekind = match Kernel.Enums.get () with | "" | "help" | "gcc-enums" -> - if hasAttribute "packed" enum.eattr || + if hasAttribute "packed" enum.eattr || bytesSizeOfInt real_kind >= bytesSizeOfInt IInt then real_kind else if unsigned then IUInt else IInt @@ -4863,7 +4863,7 @@ and doType (ghost:bool) isFuncArg "declaration of array of incomplete type '%a`" Cil_printer.pp_typ bt else if not allowZeroSizeArrays && - not (Cil.isCompleteType ~allowZeroSizeArrays:false bt) + not (Cil.isCompleteType ~allowZeroSizeArrays:false bt) then (* because we tested previously for incomplete types and now tested again forbidding zero-length arrays, bt is necessarily a zero-length array *) @@ -4881,42 +4881,42 @@ and doType (ghost:bool) isFuncArg match len.expr_node with | A.NOTHING -> None | _ -> - (* Check that len is a constant expression. - We used to also cast the length to int here, but that's - theoretically too restrictive on 64-bit machines. *) - let len' = doPureExp (ghost_local_env ghost) len in - if not (isIntegralType (typeOf len')) then - Kernel.error ~once:true ~current:true - "Array length %a does not have an integral type." - Cil_printer.pp_exp len'; - if not allowVarSizeArrays then begin - (* Assert that len' is a constant *) - let cst = constFold true len' in - (match cst.enode with - | Const(CInt64(i, _, _)) -> - if Integer.lt i Integer.zero then - Kernel.error ~once:true ~current:true - "Length of array is negative" - | _ -> - if isConstant cst then - (* e.g., there may be a float constant involved. - * We'll leave it to the user to ensure the length is - * non-negative, etc.*) - Kernel.warning ~once:true ~current:true - "Unable to do constant-folding on array length %a. \ - Some CIL operations on this array may fail." - Cil_printer.pp_exp cst - else - Kernel.error ~once:true ~current:true - "Length of array is not a constant: %a" - Cil_printer.pp_exp cst) - end; - if Cil.isZero len' && not allowZeroSizeArrays && - not (Cil.gccMode () || Cil.msvcMode ()) - then - Kernel.error ~once:true ~current:true - "zero-length arrays only allowed for GCC/MSVC"; - Some len' + (* Check that len is a constant expression. + We used to also cast the length to int here, but that's + theoretically too restrictive on 64-bit machines. *) + let len' = doPureExp (ghost_local_env ghost) len in + if not (isIntegralType (typeOf len')) then + Kernel.error ~once:true ~current:true + "Array length %a does not have an integral type." + Cil_printer.pp_exp len'; + if not allowVarSizeArrays then begin + (* Assert that len' is a constant *) + let cst = constFold true len' in + (match cst.enode with + | Const(CInt64(i, _, _)) -> + if Integer.lt i Integer.zero then + Kernel.error ~once:true ~current:true + "Length of array is negative" + | _ -> + if isConstant cst then + (* e.g., there may be a float constant involved. + * We'll leave it to the user to ensure the length is + * non-negative, etc.*) + Kernel.warning ~once:true ~current:true + "Unable to do constant-folding on array length %a. \ + Some CIL operations on this array may fail." + Cil_printer.pp_exp cst + else + Kernel.error ~once:true ~current:true + "Length of array is not a constant: %a" + Cil_printer.pp_exp cst) + end; + if Cil.isZero len' && not allowZeroSizeArrays && + not (Cil.gccMode () || Cil.msvcMode ()) + then + Kernel.error ~once:true ~current:true + "zero-length arrays only allowed for GCC/MSVC"; + Some len' in let al' = doAttributes ghost al in if not isFuncArg && hasAttribute "static" al' then @@ -5101,7 +5101,7 @@ and makeCompType ghost (isstruct: bool) * one exists already from a forward reference *) let comp, _ = createCompInfo isstruct n' norig in let doFieldGroup ~is_first_group ~is_last_group ((s: A.spec_elem list), - (nl: (A.name * A.expression option) list)) = + (nl: (A.name * A.expression option) list)) = (* Do the specifiers exactly once *) let sugg = match nl with | [] -> "" @@ -5117,7 +5117,7 @@ and makeCompType ghost (isstruct: bool) let allowZeroSizeArrays = true in let ftype, nattr = doType - ~allowZeroSizeArrays ghost false (AttrName false) bt + ~allowZeroSizeArrays ghost false (AttrName false) bt (A.PARENTYPE(attrs, ndt, a)) in (* check for fields whose type is incomplete. In particular, this rules @@ -5126,8 +5126,8 @@ and makeCompType ghost (isstruct: bool) struct C2 { struct C1 c1; int dummy; }; *) if Cil.isFunctionType ftype then - Kernel.error ~current:true - "field `%s' declared as a function" n + Kernel.error ~current:true + "field `%s' declared as a function" n else if Cil.has_flexible_array_member ftype then Kernel.error ~current:true "field `%s' declared with a type containing a flexible array member." @@ -5167,7 +5167,7 @@ and makeCompType ghost (isstruct: bool) "bitfield width is not an integer constant" | Some s as w -> let ftype = - typeAddAttributes + typeAddAttributes [Attr (bitfield_attribute_name, [AInt (Integer.of_int s)])] ftype in @@ -5200,7 +5200,7 @@ and makeCompType ghost (isstruct: bool) (* abort and not error, as this circularity could lead to infinite recursion... *) Kernel.abort - "type %s %s is circular" + "type %s %s is circular" (if comp.cstruct then "struct" else "union") comp.cname; end else @@ -5273,8 +5273,8 @@ and makeCompType ghost (isstruct: bool) * the type structure. We do a thorough check and then we reuse the type * for A *) if List.length comp.cfields <> List.length flds - || (List.exists2 (fun f1 f2 -> not (Cil_datatype.Typ.equal f1.ftype f2.ftype)) - comp.cfields flds) + || (List.exists2 (fun f1 f2 -> not (Cil_datatype.Typ.equal f1.ftype f2.ftype)) + comp.cfields flds) then Kernel.error ~once:true ~current:true "%s seems to be multiply defined" (compFullName comp) @@ -5343,7 +5343,7 @@ and getIntConstExp ghost (aexp) : exp = let loc = aexp.expr_loc in let _, c, e, _ = doExp (ghost_local_env ghost) true aexp (AExp None) in if not (isEmpty c) then - Kernel.error ~once:true ~current:true "Constant expression %a has effects" + Kernel.error ~once:true ~current:true "Constant expression %a has effects" Cil_printer.pp_exp e; match e.enode with (* first, filter for those Const exps that are integers *) @@ -5353,7 +5353,7 @@ and getIntConstExp ghost (aexp) : exp = (* other Const expressions are not ok *) | Const _ -> - Kernel.fatal ~current:true "Expected integer constant and got %a" + Kernel.fatal ~current:true "Expected integer constant and got %a" Cil_printer.pp_exp e (* now, anything else that 'doExp true' returned is ok (provided @@ -5365,7 +5365,7 @@ and isIntegerConstant ghost (aexp) : int option = match doExp (ghost_local_env ghost) true aexp (AExp None) with | (_, c, e, _) when isEmpty c -> begin match Cil.constFoldToInt e with - | Some i64 -> Some (Integer.to_int i64) + | Some n -> (try Some (Integer.to_int n) with Z.Overflow -> None) | _ -> None end | _ -> None @@ -5443,7 +5443,7 @@ and doExp local_env (*Kernel.debug "finishExp: e = %a\n e'' = %a\n" Cil_printer.pp_exp e Cil_printer.pp_exp e'';*) let writes = if is_real_write then [lv] else [] in ([], (* the reads are incorporated in the chunk. *) - ((unspecified_chunk empty) @@ (remove_reads lv se, ghost)) + ((unspecified_chunk empty) @@ (remove_reads lv se, ghost)) +++ (mkStmtOneInstr ~ghost ~valid_sid (Set(lv, e'', CurrentLoc.get ())), writes,writes, @@ -6107,7 +6107,7 @@ and doExp local_env in let r1, tmplv, se3 = if needsTemp then - let descr = + let descr = Format.asprintf "%a" Cil_descriptive_printer.pp_lval lv in let tmp = newTempVar descr true lvt in @@ -6155,14 +6155,14 @@ and doExp local_env | A.BINARY((A.ADD_ASSIGN|A.SUB_ASSIGN|A.MUL_ASSIGN|A.DIV_ASSIGN| A.MOD_ASSIGN|A.BAND_ASSIGN|A.BOR_ASSIGN|A.SHL_ASSIGN| A.SHR_ASSIGN|A.XOR_ASSIGN) as bop, e1, e2) -> - let se0 = unspecified_chunk empty in - let action local_env asconst e _what = - match e.expr_node with - | A.COMMA _ | A.QUESTION _ | A.PAREN _ -> - Kernel.fatal "normalization of lval in compound assignment failed" - | A.VARIABLE _ | A.UNARY (A.MEMOF, _) | (* Regular lvalues *) - A.INDEX _ | A.MEMBEROF _ | A.MEMBEROFPTR _ | - A.CAST _ (* GCC extension *) -> begin + let se0 = unspecified_chunk empty in + let action local_env asconst e _what = + match e.expr_node with + | A.COMMA _ | A.QUESTION _ | A.PAREN _ -> + Kernel.fatal "normalization of lval in compound assignment failed" + | A.VARIABLE _ | A.UNARY (A.MEMOF, _) | (* Regular lvalues *) + A.INDEX _ | A.MEMBEROF _ | A.MEMBEROFPTR _ | + A.CAST _ (* GCC extension *) -> begin if asconst then Kernel.warning ~current:true "op_ASSIGN in constant"; let bop' = match bop with @@ -6257,9 +6257,9 @@ and doExp local_env * takes INTs as arguments *) | A.VARIABLE n -> begin try - (* First look for polymorphic builtins. The typing rule is + (* First look for polymorphic builtins. The typing rule is luckily always the same one. *) - let n = match n with + let n = match n with | "__sync_add_and_fetch" | "__sync_sub_and_fetch" | "__sync_or_and_fetch" | "__sync_and_and_fetch" | "__sync_xor_and_fetch" | "__sync_nand_and_fetch" @@ -6268,10 +6268,10 @@ and doExp local_env | "__sync_fetch_and_xor" | "__sync_fetch_and_nand" | "__sync_bool_compare_and_swap" | "__sync_val_compare_and_swap" - | "__sync_lock_release" | "__sync_lock_test_and_set" -> + | "__sync_lock_release" | "__sync_lock_test_and_set" -> begin - match args with - | a1::_ -> + match args with + | a1::_ -> (* The available prototypes are typ' f(typ* a1,typ a2,typ a3,...); typ' f(typ* a1,typ a2,...); @@ -6287,12 +6287,12 @@ and doExp local_env n (if isSignedInteger t then "" else "u") (bitsSizeOf t) - | [] -> - Kernel.error ~once:true ~current:true + | [] -> + Kernel.error ~once:true ~current:true "Too few arguments for builtin %s" n; n end - | _ -> n + | _ -> n in let vi, _ = lookupVar n in let reads = @@ -6340,8 +6340,8 @@ and doExp local_env let f'' = match f'.enode with | AddrOf lv -> new_exp ~loc:f'.eloc (Lval(lv)) - | _ -> - new_exp ~loc:f'.eloc + | _ -> + new_exp ~loc:f'.eloc (Lval (mkMem f' NoOffset)) in (rt,at,isvar, f'',[]) @@ -6442,7 +6442,7 @@ and doExp local_env (Cil.isPointerType texpected && Ast_info.is_null_expr a') || areCompatibleTypes texpected att || (let texpected_no_qualif = - Cil.typeRemoveAttributesDeep ["const"] texpected + Cil.typeRemoveAttributesDeep ["const"; "restrict"] texpected in areCompatibleTypes texpected_no_qualif att) in @@ -6513,8 +6513,8 @@ and doExp local_env Cil.setFormalsDecl f typ; (chunk,args) end - | None, _ -> res - (* TODO: treat function pointers. + | None, _ -> res + (* TODO: treat function pointers. The issue is that their origin is more difficult to trace than plain variables (e.g. we'd have to take into account possible assignments, or update @@ -6660,7 +6660,7 @@ and doExp local_env * __builtin_va_alist argument from this function) *) end - | "__builtin_varargs_start" -> + | "__builtin_varargs_start" -> begin (* Lookup the prototype for the replacement *) let v, _ = @@ -6672,7 +6672,7 @@ and doExp local_env in pf := new_exp ~loc (Lval (var v)) end - | "__builtin_next_arg" -> + | "__builtin_next_arg" -> begin match !pargs with | last :: [] -> begin @@ -6691,20 +6691,20 @@ and doExp local_env end | _ -> Kernel.warning ~current:true "Invalid call to %s\n" fv.vname; - end + end | "__builtin_va_arg_pack" -> - begin + begin (match !pargs with - | [ ] -> begin - piscall := false; + | [ ] -> begin + piscall := false; pres := new_exp ~loc:e.expr_loc (SizeOfE !pf); prestype := theMachine.typeOfSizeOf end - | _ -> - Kernel.warning ~current:true + | _ -> + Kernel.warning ~current:true "Invalid call to builtin_va_arg_pack"); end - | "__builtin_constant_p" -> + | "__builtin_constant_p" -> begin (* Before emptying the chunk, we remove the corresponding generated labels from the tables. Otherwise, they will @@ -6715,8 +6715,8 @@ and doExp local_env inherit Cil.nopCilVisitor method! vstmt { labels } = List.iter - (function - | Label (l, _, _) -> + (function + | Label (l, _, _) -> H.remove labelStmt l; H.remove backPatchGotos l | _ -> ()) @@ -6726,7 +6726,7 @@ and doExp local_env in ignore (Cil.visitCilStmt vis s) in - List.iter + List.iter (fun (stmt, _, _, _, _) -> remove_label stmt ) !prechunk.stmts; @@ -6749,14 +6749,14 @@ and doExp local_env Kernel.warning ~current:true "Invalid call to builtin_constant_p") end - | "__builtin_types_compatible_p" -> + | "__builtin_types_compatible_p" -> begin (* Constant-fold the argument and see if it is a constant *) - (match !pargs with + (match !pargs with | [ {enode = SizeOf t1}; {enode = SizeOf t2}] -> begin (* Drop the side-effects *) prechunk := empty; - piscall := false; + piscall := false; let compatible = try ignore(combineTypes CombineOther t1 t2); true with Cannot_combine _ -> false @@ -6766,18 +6766,18 @@ and doExp local_env pres := integer ~loc 0; prestype := intType end - | _ -> - Kernel.warning - ~once:true - ~current:true + | _ -> + Kernel.warning + ~once:true + ~current:true "Invalid call to builtin_types_compatible_p"); end - | "__builtin_expect" -> + | "__builtin_expect" -> begin match !pargs with | [ arg;_ ] -> - (* Keep all side-effects, including those stemming - from the second argument. This is quite strange but + (* Keep all side-effects, including those stemming + from the second argument. This is quite strange but compliant with GCC's behavior. *) piscall := false; pres := arg @@ -6786,15 +6786,15 @@ and doExp local_env "Invalid call to builtin_expect" end - (* TODO: Only keep the side effects of the 1st or 2nd argument - | "__builtin_choose_expr" -> - begin match !pargs with - | [ arg; e1; e2 ] -> - begin + (* TODO: Only keep the side effects of the 1st or 2nd argument + | "__builtin_choose_expr" -> + begin match !pargs with + | [ arg; e1; e2 ] -> + begin let constfolded = constFold true arg in - match constfolded.enode with - | Const _ -> - piscall := false; + match constfolded.enode with + | Const _ -> + piscall := false; if isZero constfolded then begin (* Keep only 3rd arg side effects *) (*TODO: prechunk := sf @@ (List.nth sargsl 2);*) @@ -6809,14 +6809,14 @@ and doExp local_env | _ -> Kernel.warning ~once:true ~current:true "builtin_choose_expr expects a constant first argument" end - | _ -> + | _ -> Kernel.warning ~once:true ~current:true "Invalid call to builtin_choose_expr: 3 arguments are \ - expected but %d are provided." + expected but %d are provided." (List.length !pargs) end*) | _ -> - if asconst then + if asconst then (* last special case: we cannot allow a function call at this point.*) begin @@ -6874,8 +6874,8 @@ and doExp local_env let descr = Format.asprintf "%a(%a)" Cil_descriptive_printer.pp_exp !pf - (Pretty_utils.pp_list ~sep:", " - Cil_descriptive_printer.pp_exp) + (Pretty_utils.pp_list ~sep:", " + Cil_descriptive_printer.pp_exp) !pargs in let tmp = newTempVar descr false restype'' in @@ -7444,7 +7444,7 @@ and doCondExp local_env (asconst: bool) let ce1 = remove_effects_ce ce1 in match ce1, ce2 with | CEExp (se1, ({enode = Const ci1})), _ -> - (match isConstTrueFalse ci1 with + (match isConstTrueFalse ci1 with | `CTrue -> addChunkBeforeCE se1 ce2 | `CFalse -> (* se2 might contain labels so we cannot always drop it *) @@ -7622,10 +7622,10 @@ and doCondition local_env (isconst: bool) se end end else begin - let ce = doCondExp (no_paren_local_env local_env) isconst e in - let chunk = compileCondExp ~ghost:local_env.is_ghost ce st sf in - chunk - end + let ce = doCondExp (no_paren_local_env local_env) isconst e in + let chunk = compileCondExp ~ghost:local_env.is_ghost ce st sf in + chunk + end and doPureExp local_env (e : A.expression) : exp = let (_,se, e', _) = doExp local_env true e (AExp None) in @@ -7643,7 +7643,7 @@ and doInitializer local_env (vi: varinfo) (inite: A.init_expression) (* Return the accumulated chunk, the initializer and the new type (might be * different for arrays), together with the lvals read during evaluation of * the initializer (for local intialization) - *) + *) : chunk * init * typ * Cil_datatype.Lval.Set.t = Kernel.debug ~dkey:Kernel.dkey_typing_init @@ -7684,7 +7684,7 @@ and doInitializer local_env (vi: varinfo) (inite: A.init_expression) - acc is the chunk corresponding to initializations seen previously (for locals) - initl is the current list of initializers to be processed -doInit returns a triple: + doInit returns a triple: - chunk performing initialization - preinit corresponding to the complete initialization - the list of unused initializers if any (should be empty most of the time) @@ -8007,7 +8007,7 @@ and doInit local_env isconst add_implicit_ensures preinit so acc initl = normalSubobj so'; let acc', preinit', initl' = match initl with - | [] -> (* empty initializer, a GNU extension to indicate + | [] -> (* empty initializer, a GNU extension to indicate 0-initialization. We must indicate to our parent that we are here, though. *) let preinit' = setOneInit preinit so'.curOff (empty_preinit()) in @@ -8045,7 +8045,7 @@ and doInit local_env isconst add_implicit_ensures preinit so acc initl = doInit local_env isconst add_implicit_ensures preinit' so se restil with Not_found -> abort_context - "scalar value (of type %a) initialized by compound initializer" + "scalar value (of type %a) initialized by compound initializer" Cil_printer.pp_typ t end (* We have a designator *) @@ -8518,49 +8518,49 @@ and createLocal ghost ((_, sto, _, _) as specs) (* Register it *) let savelen = alphaConvertVarAndAddToEnv true savelen in let se0 = local_var_chunk se0 savelen in - (* Compute the allocation size *) - let elt_size = new_exp ~loc (SizeOf (Cil.typeOf_pointed vi.vtype)) in - let alloca_size = - new_exp ~loc - (BinOp(Mult, - elt_size, - new_exp ~loc (Lval (var savelen)), - theMachine.typeOfSizeOf)) - in + (* Compute the allocation size *) + let elt_size = new_exp ~loc (SizeOf (Cil.typeOf_pointed vi.vtype)) in + let alloca_size = + new_exp ~loc + (BinOp(Mult, + elt_size, + new_exp ~loc (Lval (var savelen)), + theMachine.typeOfSizeOf)) + in (* Register the length *) IH.add varSizeArrays vi.vid alloca_size; (* There can be no initializer for this *) if inite != A.NO_INIT then Kernel.error ~once:true ~current:true "Variable-sized array cannot have initializer"; - let se0 = - (* add an assertion to ensure the given size is correctly bound: - assert alloca_bounds: 0 < elt_size * array_size <= max_bounds - *) + let se0 = + (* add an assertion to ensure the given size is correctly bound: + assert alloca_bounds: 0 < elt_size * array_size <= max_bounds + *) (se0 +++ ( - let castloc = CurrentLoc.get () in - let talloca_size = - let telt_size = Logic_utils.expr_to_term ~cast:false elt_size in - let tlen = Logic_utils.expr_to_term ~cast:false len in - Logic_const.term (TBinOp (Mult,telt_size,tlen)) telt_size.term_type - in - let pos_size = - let zero = Logic_const.tinteger ~loc:castloc 0 in - Logic_const.prel ~loc:castloc (Rlt, zero, talloca_size) - in - let max_size = - let szTo = Cil.bitsSizeOf theMachine.typeOfSizeOf in - let max_bound = Logic_const.tint ~loc:castloc (Cil.max_unsigned_number szTo) in - Logic_const.prel ~loc:castloc (Rle, talloca_size, max_bound) - in - let alloca_bounds = Logic_const.pand ~loc:castloc (pos_size, max_size) in - let alloca_bounds = { alloca_bounds with pred_name = ["alloca_bounds"] } in - let annot = - Logic_const.new_code_annotation (AAssert ([], alloca_bounds)) - in - (mkStmtOneInstr ~ghost ~valid_sid - (Code_annot (annot, castloc)), - [],[],[]))) + let castloc = CurrentLoc.get () in + let talloca_size = + let telt_size = Logic_utils.expr_to_term ~cast:false elt_size in + let tlen = Logic_utils.expr_to_term ~cast:false len in + Logic_const.term (TBinOp (Mult,telt_size,tlen)) telt_size.term_type + in + let pos_size = + let zero = Logic_const.tinteger ~loc:castloc 0 in + Logic_const.prel ~loc:castloc (Rlt, zero, talloca_size) + in + let max_size = + let szTo = Cil.bitsSizeOf theMachine.typeOfSizeOf in + let max_bound = Logic_const.tint ~loc:castloc (Cil.max_unsigned_number szTo) in + Logic_const.prel ~loc:castloc (Rle, talloca_size, max_bound) + in + let alloca_bounds = Logic_const.pand ~loc:castloc (pos_size, max_size) in + let alloca_bounds = { alloca_bounds with pred_name = ["alloca_bounds"] } in + let annot = + Logic_const.new_code_annotation (AAssert ([], alloca_bounds)) + in + (mkStmtOneInstr ~ghost ~valid_sid + (Code_annot (annot, castloc)), + [],[],[]))) in let setlen = se0 +++ (mkStmtOneInstr ~ghost ~valid_sid @@ -8580,7 +8580,7 @@ and createLocal ghost ((_, sto, _, _) as specs) (* do it in two *) let rt, _, _, _ = splitFunctionType alloca.vtype in let tmp = - newTempVar + newTempVar (Format.asprintf "alloca(%a)" Cil_printer.pp_exp alloca_size) false rt in @@ -9256,21 +9256,21 @@ and doTypedef ghost ((specs, nl): A.name_group) = Previous declaration was at %a" n Cil_datatype.Location.pretty oldloc; end else (* effectively create new type *) begin - let n', _ = newAlphaName true "type" n in - let ti = - { torig_name = n; tname = n'; - ttype = newTyp'; treferenced = false } - in - (* Since we use the same name space, we might later hit a global with - * the same name and we would want to change the name of the global. - * It is better to change the name of the type instead. So, remember - * all types whose names have changed *) - H.add typedefs n' ti; - let namedTyp = TNamed(ti, []) in - (* Register the type. register it as local because we might be in a - * local context *) - addLocalToEnv (kindPlusName "type" n) (EnvTyp namedTyp); - cabsPushGlobal (GType (ti, CurrentLoc.get ())) + let n', _ = newAlphaName true "type" n in + let ti = + { torig_name = n; tname = n'; + ttype = newTyp'; treferenced = false } + in + (* Since we use the same name space, we might later hit a global with + * the same name and we would want to change the name of the global. + * It is better to change the name of the type instead. So, remember + * all types whose names have changed *) + H.add typedefs n' ti; + let namedTyp = TNamed(ti, []) in + (* Register the type. register it as local because we might be in a + * local context *) + addLocalToEnv (kindPlusName "type" n) (EnvTyp namedTyp); + cabsPushGlobal (GType (ti, CurrentLoc.get ())) end in List.iter createTypedef nl @@ -9356,7 +9356,7 @@ and doBody local_env (blk: A.block) : chunk = true | CODE_ANNOT(Logic_ptree.APragma _,_) -> [], true | CODE_ANNOT - (Logic_ptree.AExtended(_,is_loop,(name,_)),loc) -> + (Logic_ptree.AExtended(_,is_loop,(name,_)),loc) -> let source = fst loc in (match Logic_env.extension_category name, is_loop with | Some (Ext_code_annot Ext_here), false -> [], false @@ -9485,7 +9485,7 @@ and doStatement local_env (s : A.statement) : chunk = let break_cond = breakChunk ~ghost loc' in exitLoop (); CurrentLoc.set loc'; - loopChunk ~ghost a + loopChunk ~ghost ~sattr:[Attr("while",[])] a ((doCondition local_env false e skipChunk break_cond) @@ (s', ghost)) @@ -9520,7 +9520,7 @@ and doStatement local_env (s : A.statement) : chunk = false e skipChunk (breakChunk ~ghost loc')) in exitLoop (); - loopChunk ~ghost a (s' @@ (s'', ghost)) + loopChunk ~ghost ~sattr:[Attr("dowhile",[])] a (s' @@ (s'', ghost)) | A.FOR(a,fc1,e2,e3,s,loc) -> begin let loc' = convLoc loc in @@ -9545,10 +9545,10 @@ and doStatement local_env (s : A.statement) : chunk = let res = match e2.expr_node with | A.NOTHING -> (* This means true *) - se1 @@ (loopChunk ~ghost a (s' @@ (s'', ghost)), ghost) + se1 @@ (loopChunk ~sattr:[Attr("for",[])] ~ghost a (s' @@ (s'', ghost)), ghost) | _ -> se1 @@ - (loopChunk ~ghost a + (loopChunk ~sattr:[Attr("for",[])] ~ghost a (((doCondition local_env false e2 skipChunk break_cond) @@ (s', ghost)) @@ (s'', ghost)), ghost) @@ -9647,7 +9647,7 @@ and doStatement local_env (s : A.statement) : chunk = let rec mkAll (i: int) = if i > ih then [] else integer ~loc i :: mkAll (i + 1) in - (sel @@ (seh,ghost)) @@ + (sel @@ (seh,ghost)) @@ (caseRangeChunk ~ghost (mkAll il) loc' (doStatement local_env s), ghost) @@ -9727,17 +9727,9 @@ and doStatement local_env (s : A.statement) : chunk = let attr' = doAttributes local_env.is_ghost asmattr in CurrentLoc.set loc'; let stmts : chunk ref = ref empty in - let (tmpls', ext_asm) = + let ext_asm = match details with - | None -> - let tmpls' = - if Cil.msvcMode () then tmpls - else - let pattern = Str.regexp "%" in - let escape = Str.global_replace pattern "%%" in - List.map escape tmpls - in - (tmpls', None) + | None -> None | Some { aoutputs; ainputs; aclobbers; alabels} -> let asm_outputs = List.map @@ -9772,19 +9764,19 @@ and doStatement local_env (s : A.statement) : chunk = in let asm_clobbers = aclobbers in let asm_gotos = - List.map - (fun label -> + List.map + (fun label -> let label = lookupLabel label in let gref = ref dummyStmt in addGoto label gref; - gref) + gref) alabels in - (tmpls, Some { asm_outputs; asm_inputs; asm_clobbers; asm_gotos }) + Some { asm_outputs; asm_inputs; asm_clobbers; asm_gotos } in !stmts @@ (i2c(mkStmtOneInstr ~ghost:local_env.is_ghost ~valid_sid - (Asm(attr', tmpls', ext_asm, loc')),[],[],[]), + (Asm(attr', tmpls, ext_asm, loc')),[],[],[]), ghost) | THROW (e,loc) -> let loc' = convLoc loc in @@ -9849,10 +9841,10 @@ and doStatement local_env (s : A.statement) : chunk = let stmt_to_instrs s = List.rev_map (function (s,_,_,_,_) -> match s.skind with - | Instr s -> s - | _ -> - Kernel.fatal ~current:true - "Except expression contains unexpected statement") + | Instr s -> s + | _ -> + Kernel.fatal ~current:true + "Except expression contains unexpected statement") s in let il' = stmt_to_instrs se.stmts in diff --git a/src/kernel_internals/typing/cabs2cil.mli b/src/kernel_internals/typing/cabs2cil.mli index 2a22123d3bae961085d3006de7c8510811d1b066..44ea2ddf74785720d77ef8af20e9510925f8866b 100644 --- a/src/kernel_internals/typing/cabs2cil.mli +++ b/src/kernel_internals/typing/cabs2cil.mli @@ -76,7 +76,7 @@ val register_new_global_hook: (Cil_types.varinfo -> bool -> unit) -> unit already existing (it is [false] if this is the first declaration/definition of [vi] in the file). @since Silicon-20161101 - *) +*) (** new hook called when encountering a definition of a local function. The hook take as argument the varinfo of the local function. @@ -85,8 +85,8 @@ val register_new_global_hook: (Cil_types.varinfo -> bool -> unit) -> unit val register_local_func_hook: (Cil_types.varinfo -> unit) -> unit (** new hook called when side-effects are dropped. -The first argument is the original expression, the second one -the (side-effect free) normalized expression. + The first argument is the original expression, the second one + the (side-effect free) normalized expression. *) val register_ignore_side_effect_hook: (Cabs.expression -> Cil_types.exp -> unit) -> unit @@ -103,10 +103,10 @@ val register_ignore_side_effect_hook: val register_conditional_side_effect_hook: (Cabs.expression -> Cabs.expression -> unit) -> unit -(** new hook that will be called when processing a for loop. - Arguments are the four elements of the for clause +(** new hook that will be called when processing a for loop. + Arguments are the four elements of the for clause (init, test, increment, body) - @since Oxygen-20120901 + @since Oxygen-20120901 *) val register_for_loop_all_hook: (Cabs.for_clause -> @@ -114,7 +114,7 @@ val register_for_loop_all_hook: (** new hook that will be called when processing a for loop. Argument is the initializer of the for loop. - @since Oxygen-20120901 + @since Oxygen-20120901 *) val register_for_loop_init_hook: (Cabs.for_clause -> unit) -> unit @@ -152,12 +152,12 @@ val frama_c_destructor: string (** Name of the attribute used to indicate that a given static variable has a local syntactic scope (despite a global lifetime). @since Chlorine-20180501 - *) +*) val fc_local_static: string (** A hook into the code that creates temporary local vars. By default this - is the identity function, but you can overwrite it if you need to change the - types of cabs2cil-introduced temp variables. *) + is the identity function, but you can overwrite it if you need to change the + types of cabs2cil-introduced temp variables. *) val typeForInsertedVar: (Cil_types.typ -> Cil_types.typ) ref (** Like [typeForInsertedVar], but for casts. @@ -186,11 +186,11 @@ val find_field_offset: (** returns the offset (can be more than one field in case of unnamed members) corresponding to the first field matching the condition. @raise Not_found if no such field exists. - *) +*) (** returns the type of the result of a logic operator applied to values of the corresponding input types. - *) +*) val logicConditionalConversion: Cil_types.typ -> Cil_types.typ -> Cil_types.typ (** returns the type of the result of an arithmetic operator applied to @@ -206,27 +206,27 @@ val integralPromotion : Cil_types.typ -> Cil_types.typ (** local information needed to typecheck expressions and statements *) type local_env = private - { authorized_reads: Cil_datatype.Lval.Set.t; - (** sets of lvalues that can be read regardless of a potential - write access between sequence points. Mainly for tmp variables - introduced by the normalization. - *) - known_behaviors: string list; - (** list of known behaviors at current point. *) - is_ghost: bool; - (** whether we're analyzing ghost code or not *) - is_paren: bool; - (** is the current expr a child of A.PAREN *) - inner_paren: bool; - (** used internally for normalizations of unop and binop. *) - } + { authorized_reads: Cil_datatype.Lval.Set.t; + (** sets of lvalues that can be read regardless of a potential + write access between sequence points. Mainly for tmp variables + introduced by the normalization. + *) + known_behaviors: string list; + (** list of known behaviors at current point. *) + is_ghost: bool; + (** whether we're analyzing ghost code or not *) + is_paren: bool; + (** is the current expr a child of A.PAREN *) + inner_paren: bool; + (** used internally for normalizations of unop and binop. *) + } (** an empty local environment. *) val empty_local_env: local_env (** same as [empty_local_env], but sets the ghost status to the value of its argument - *) +*) val ghost_local_env: bool -> local_env (** Applies [mkAddrOf] after marking variable whose address is taken. *) @@ -274,7 +274,7 @@ val stmtFallsThrough: Cil_types.stmt -> bool syntactical one. @since Phosphorus-20170501-beta1 exported - *) +*) (**/**) diff --git a/src/kernel_internals/typing/infer_annotations.ml b/src/kernel_internals/typing/infer_annotations.ml index ce6db212ee42f28a0ed2bda736cd0d7b1cc071ed..d4d4103964a90292cadc12908ab670513e9f0b7a 100644 --- a/src/kernel_internals/typing/infer_annotations.ml +++ b/src/kernel_internals/typing/infer_annotations.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_internals/typing/infer_annotations.mli b/src/kernel_internals/typing/infer_annotations.mli index 300f0660f60a3663e0e7581e3efbb12b5668b718..a1178c10203390e3849db3a87a02837a84c04a8b 100644 --- a/src/kernel_internals/typing/infer_annotations.mli +++ b/src/kernel_internals/typing/infer_annotations.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_internals/typing/logic_builtin.ml b/src/kernel_internals/typing/logic_builtin.ml index f4abac663caa34e324cb0ed2a640324ae3158a0e..ae1a73a97132d659383b01a7ec8643a7f72c002d 100644 --- a/src/kernel_internals/typing/logic_builtin.ml +++ b/src/kernel_internals/typing/logic_builtin.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) diff --git a/src/kernel_internals/typing/logic_builtin.mli b/src/kernel_internals/typing/logic_builtin.mli index 344158dea5e2fd00fbd531e1d6c6ec1ec5ea22af..450424692e24d917270d85f301063c3f003989a0 100644 --- a/src/kernel_internals/typing/logic_builtin.mli +++ b/src/kernel_internals/typing/logic_builtin.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) diff --git a/src/kernel_internals/typing/translate_lightweight.ml b/src/kernel_internals/typing/translate_lightweight.ml index 9cef8543bca6a3cd3ae5db537a662f0bedf9b300..6a0d0782976a50aed991de0cb5bea509d9b12cff 100644 --- a/src/kernel_internals/typing/translate_lightweight.ml +++ b/src/kernel_internals/typing/translate_lightweight.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) diff --git a/src/kernel_internals/typing/translate_lightweight.mli b/src/kernel_internals/typing/translate_lightweight.mli index 4d16614c777c866145e3ccafd272f53b5fee24a9..de459d4d757afdc55a337b0a53f4f3df05ef37b1 100644 --- a/src/kernel_internals/typing/translate_lightweight.mli +++ b/src/kernel_internals/typing/translate_lightweight.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) diff --git a/src/kernel_internals/typing/unroll_loops.ml b/src/kernel_internals/typing/unroll_loops.ml index 4ed4a1c7ea381ebe0b282db96d256de616148d30..c85d9b2aa7178af7dff2298349b53fb2639bff72 100644 --- a/src/kernel_internals/typing/unroll_loops.ml +++ b/src/kernel_internals/typing/unroll_loops.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -322,7 +322,8 @@ let copy_block kf switch_label_action break_continue_must_change bl = succs = []; preds = []; skind = stmt.skind; - ghost = stmt.ghost} + ghost = stmt.ghost; + sattr = []} in let labelled_stmt_tbl = if stmt.labels = [] then diff --git a/src/kernel_internals/typing/unroll_loops.mli b/src/kernel_internals/typing/unroll_loops.mli index d6d265978d4d136a14628c71b6e47612cb790118..010ba3032136293a5bdf9f972d55cf4e45c19fa9 100644 --- a/src/kernel_internals/typing/unroll_loops.mli +++ b/src/kernel_internals/typing/unroll_loops.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/abstract_interp/abstract_interp.ml b/src/kernel_services/abstract_interp/abstract_interp.ml index 9048a2f38903e22f39c073f2def2881b06aca866..31bdbd7a92432988a8e4002ce562aa327740cd50 100644 --- a/src/kernel_services/abstract_interp/abstract_interp.ml +++ b/src/kernel_services/abstract_interp/abstract_interp.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/abstract_interp/abstract_interp.mli b/src/kernel_services/abstract_interp/abstract_interp.mli index d76e2edee1ad4e7de7fd965cef2972be066e1371..140949d5b2561e5ff91009bf111cbcc86a25b54d 100644 --- a/src/kernel_services/abstract_interp/abstract_interp.mli +++ b/src/kernel_services/abstract_interp/abstract_interp.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/abstract_interp/base.ml b/src/kernel_services/abstract_interp/base.ml index 559048aacaeeb540be77d5108eee34599f55f1cc..b6b7af3832f22e69cd11f0c07c54bb41da7729cf 100644 --- a/src/kernel_services/abstract_interp/base.ml +++ b/src/kernel_services/abstract_interp/base.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -205,7 +205,8 @@ let () = (mul_CHAR_BIT (Int.of_string min)); MaxValidAbsoluteAddress.set ((Int.pred (mul_CHAR_BIT (Int.succ (Int.of_string max)))))) - with End_of_file | Scanf.Scan_failure _ | Failure _ as e -> + with End_of_file | Scanf.Scan_failure _ | Failure _ + | Invalid_argument _ as e -> Kernel.abort "Invalid -absolute-valid-range integer-integer: each integer may be in decimal, hexadecimal (0x, 0X), octal (0o) or binary (0b) notation and has to hold in 64 bits. A correct example is -absolute-valid-range 1-0xFFFFFF0.@\nError was %S@." (Printexc.to_string e)) diff --git a/src/kernel_services/abstract_interp/base.mli b/src/kernel_services/abstract_interp/base.mli index 0bcd2352f29fa9cbf8feb26d20e9ad39593af07c..0c4cefd19495e11fb35129e8649ca2b1e9bd3346 100644 --- a/src/kernel_services/abstract_interp/base.mli +++ b/src/kernel_services/abstract_interp/base.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/abstract_interp/bottom.ml b/src/kernel_services/abstract_interp/bottom.ml index 213248a9c5618a58be1d14e9f59350a0045007f1..c6ae61d80ae4388dd589aefb37f602232ed75845 100644 --- a/src/kernel_services/abstract_interp/bottom.ml +++ b/src/kernel_services/abstract_interp/bottom.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/abstract_interp/bottom.mli b/src/kernel_services/abstract_interp/bottom.mli index 50c9aa6ab3fcdd45e2d5c00899e98a077acc5acd..7fca1504bf344fe2b83b1036d3026be61a54a1ec 100644 --- a/src/kernel_services/abstract_interp/bottom.mli +++ b/src/kernel_services/abstract_interp/bottom.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/abstract_interp/fc_float.ml b/src/kernel_services/abstract_interp/fc_float.ml index 82d8e62c7b182b22553910b4cde33b001263c246..3d0b23e3631f7bfb202e8e67e383728d05b71b8b 100644 --- a/src/kernel_services/abstract_interp/fc_float.ml +++ b/src/kernel_services/abstract_interp/fc_float.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/abstract_interp/fc_float.mli b/src/kernel_services/abstract_interp/fc_float.mli index 1b6925274029ddf0510b62759290e5e1b1b3741f..f440bcbc3952dcca315240edc24118981c56b16e 100644 --- a/src/kernel_services/abstract_interp/fc_float.mli +++ b/src/kernel_services/abstract_interp/fc_float.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/abstract_interp/float_interval.ml b/src/kernel_services/abstract_interp/float_interval.ml index 1726ff540f395749908db9cd33444394e54db903..719eaa98d82b78b55698343539bd1a6351e3cf5b 100644 --- a/src/kernel_services/abstract_interp/float_interval.ml +++ b/src/kernel_services/abstract_interp/float_interval.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/abstract_interp/float_interval.mli b/src/kernel_services/abstract_interp/float_interval.mli index 4deca1935b871aaefb9f70d24d6dfc62f5906d82..51cb520393b5c50cb8390dadddfdf829c78602ba 100644 --- a/src/kernel_services/abstract_interp/float_interval.mli +++ b/src/kernel_services/abstract_interp/float_interval.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/abstract_interp/float_interval_sig.mli b/src/kernel_services/abstract_interp/float_interval_sig.mli index 5b23a28afe6b81976a13422c735077b2465ce41a..d2250132fe1b9cf1497adf4cd7b6469ff8e10045 100644 --- a/src/kernel_services/abstract_interp/float_interval_sig.mli +++ b/src/kernel_services/abstract_interp/float_interval_sig.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/abstract_interp/float_sig.mli b/src/kernel_services/abstract_interp/float_sig.mli index fc133f4b842676e71f7d36f88c99e08b6ea5d3d3..37c9d5be3d16637b75a742a64d47f7914e8b0dc6 100644 --- a/src/kernel_services/abstract_interp/float_sig.mli +++ b/src/kernel_services/abstract_interp/float_sig.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/abstract_interp/fval.ml b/src/kernel_services/abstract_interp/fval.ml index 4e408d7501dda2045959a736f6b1b7084269fc8c..401366d2a1119228bdf5fb580ea2925c0159d1a7 100644 --- a/src/kernel_services/abstract_interp/fval.ml +++ b/src/kernel_services/abstract_interp/fval.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/abstract_interp/fval.mli b/src/kernel_services/abstract_interp/fval.mli index 00fa44e87ee170ce8c5d12af5d47673e74131617..4bebb2da3ebd637dcf68cfed1baf656a8cf5d696 100644 --- a/src/kernel_services/abstract_interp/fval.mli +++ b/src/kernel_services/abstract_interp/fval.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/abstract_interp/int_Base.ml b/src/kernel_services/abstract_interp/int_Base.ml index f9c8f71d1ee5a3630990789e67afdf472d7bb1ac..c7a469da08bb20c41907029a939a63759b3cccdc 100644 --- a/src/kernel_services/abstract_interp/int_Base.ml +++ b/src/kernel_services/abstract_interp/int_Base.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/abstract_interp/int_Base.mli b/src/kernel_services/abstract_interp/int_Base.mli index eb0c01c0bb8aebebfa1b9317f33a0d21568ba9be..c7b6247c930f80e62063c33aeff07282c810a38b 100644 --- a/src/kernel_services/abstract_interp/int_Base.mli +++ b/src/kernel_services/abstract_interp/int_Base.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/abstract_interp/int_Intervals.ml b/src/kernel_services/abstract_interp/int_Intervals.ml index 3401fa0e714a2173e4653e86d0ed4993759c9bfe..8e2225bd7ad3b21ed9f2df6bd76c216b9d507deb 100644 --- a/src/kernel_services/abstract_interp/int_Intervals.ml +++ b/src/kernel_services/abstract_interp/int_Intervals.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/abstract_interp/int_Intervals.mli b/src/kernel_services/abstract_interp/int_Intervals.mli index 5cda124f221e0236f31e2b0d649fd0b91f0b5fd9..58537df64aec31018c9d0d8851a5b89f0e73864d 100644 --- a/src/kernel_services/abstract_interp/int_Intervals.mli +++ b/src/kernel_services/abstract_interp/int_Intervals.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/abstract_interp/int_Intervals_sig.mli b/src/kernel_services/abstract_interp/int_Intervals_sig.mli index 732ae85767f32f04befb0da4c609939daa61e5b8..a949c184f7c360df07ec538eefacc76bd4fe8f5b 100644 --- a/src/kernel_services/abstract_interp/int_Intervals_sig.mli +++ b/src/kernel_services/abstract_interp/int_Intervals_sig.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/abstract_interp/ival.ml b/src/kernel_services/abstract_interp/ival.ml index 466205db41588f032ceada59587ed8e9e5a03f5c..980c2865415f3b632d64086395f4ec2dab469bdb 100644 --- a/src/kernel_services/abstract_interp/ival.ml +++ b/src/kernel_services/abstract_interp/ival.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -268,8 +268,6 @@ let float_zeros = Float Fval.zeros let positive_integers = Top(Some Int.zero, None, Int.zero, Int.one) let negative_integers = Top(None, Some Int.zero, Int.zero, Int.one) -let strictly_negative_integers = - Top(None, Some Int.minus_one, Int.zero, Int.one) let is_zero x = x == zero @@ -580,9 +578,10 @@ let min_max_r_mod t = let min_and_max t = match t with | Set s -> - let l = Array.length s in - assert (l >= 1); - Some s.(0), Some s.(pred l) + let l = Array.length s in + if l = 0 + then raise Error_Bottom + else Some s.(0), Some s.(pred l) | Top (a,b,_,_) -> a, b | Float _ -> None, None @@ -792,6 +791,29 @@ let array_truncate r i = Set r end +let array_filter (f : Int.t -> bool) (a : Int.t array) : t = + let l = Array.length a in + let r = Array.make l Int.zero in + let j = ref 0 in + for i = 0 to l - 1 do + let x = a.(i) in + if f x then begin + r.(!j) <- x; + incr j; + end + done; + array_truncate r !j + +let array_map_reduce (f : 'a -> 'b) (g : 'b -> 'b -> 'b) (set : 'a array) : 'b = + if Array.length set <= 0 then + raise Error_Bottom + else + let acc = ref (f set.(0)) in + for i = 1 to Array.length set - 1 do + acc := g !acc (f set.(i)) + done; + !acc + let array_inter a1 a2 = let l1 = Array.length a1 in let l2 = Array.length a2 in @@ -1258,13 +1280,6 @@ let apply2_n f (s1 : Integer.t array) (s2 : Integer.t array) = done; inject_ps !ps -let apply2_v f s1 s2 = - match s1, s2 with - [| x1 |], [| x2 |] -> - inject_singleton (f x1 x2) - | _ -> apply2_n f s1 s2 - - let apply_set f v1 v2 = match v1,v2 with | Set s1, Set s2 -> apply2_n f s1 s2 @@ -1515,156 +1530,6 @@ let max_int s = | Float _ -> None -exception No_such_element - -let smallest_above min x = (* TODO: improve for Set *) - match x with - | Set s -> - let r = ref None in - Array.iter - (fun e -> - if Int.ge e min - then match !r with - | Some rr when Int.lt e rr -> r := Some e - | None -> r := Some e - | _ -> ()) - s; - begin match !r with - None -> raise No_such_element - | Some r -> r - end - | Top(mn,mx,r,modu) -> - let some_min = Some min in - if not (max_is_greater mx some_min) - then raise No_such_element; - if min_is_lower some_min mn - then Extlib.the mn - else Int.round_up_to_r ~min ~r ~modu - | Float _ -> raise No_such_element - -let largest_below max x = (* TODO: improve for Set *) - match x with - | Float _ -> raise No_such_element - | Set s -> - let r = ref None in - Array.iter - (fun e -> - if Int.le e max - then match !r with - | Some rr when Int.gt e rr -> r := Some e - | None -> r := Some e - | _ -> ()) - s; - begin match !r with - None -> raise No_such_element - | Some r -> r - end - | Top(mn,mx,r,modu) -> - let some_max = Some max in - if not (min_is_lower mn some_max) - then raise No_such_element; - if max_is_greater some_max mx - then Extlib.the mx - else Int.round_down_to_r ~max ~r ~modu - -(* Rounds up (x+1) to the next power of two, then subtracts one; optimized. *) -let next_pred_power_of_two x = - (* Unroll the first iterations, and skip the tests. *) - let x = Int.logor x (Int.shift_right x Int.one) in - let x = Int.logor x (Int.shift_right x Int.two) in - let x = Int.logor x (Int.shift_right x Int.four) in - let x = Int.logor x (Int.shift_right x Int.eight) in - let x = Int.logor x (Int.shift_right x Int.sixteen) in - let shift = Int.thirtytwo in - let rec loop old shift = - let x = Int.logor old (Int.shift_right old shift) in - if Int.equal old x then x - else loop x (Int.shift_left shift Int.one) in - loop x shift - -(* [different_bits min max] returns an overapproximation of the mask - of the bits that can be different for different numbers - in the interval [min]..[max] *) -let different_bits min max = - let x = Int.logxor min max in - next_pred_power_of_two x - -(* [pos_max_land min1 max1 min2 max2] computes an upper bound for - [x1 land x2] where [x1] is in [min1]..[max1] and [x2] is in [min2]..[max2]. - Precondition : [min1], [max1], [min2], [max2] must all have the - same sign. - Note: the algorithm below is optimal for the problem as stated. - It is possible to compute this optimal solution faster but it does not - seem worth the time necessary to think about it as long as integers - are at most 64-bit. *) -let pos_max_land min1 max1 min2 max2 = - let x1 = different_bits min1 max1 in - let x2 = different_bits min2 max2 in -(* Format.printf "pos_max_land %a %a -> %a | %a %a -> %a@." - Int.pretty min1 Int.pretty max1 Int.pretty x1 - Int.pretty min2 Int.pretty max2 Int.pretty x2; *) - let fold_maxs max1 p f acc = - let rec aux p acc = - let p = Int.shift_right p Int.one in - if Int.is_zero p - then f max1 acc - else if Int.is_zero (Int.logand p max1) - then aux p acc - else - let c = Int.logor (Int.sub max1 p) (Int.pred p) in - aux p (f c acc) - in aux p acc - in - let sx1 = Int.succ x1 in - let n1 = fold_maxs max1 sx1 (fun _ y -> succ y) 0 in - let maxs1 = Array.make n1 sx1 in - let _ = fold_maxs max1 sx1 (fun x i -> Array.set maxs1 i x; succ i) 0 in - fold_maxs max2 (Int.succ x2) - (fun max2 acc -> - Array.fold_left - (fun acc max1 -> Int.max (Int.logand max1 max2) acc) - acc - maxs1) - (Int.logand max1 max2) - -let bitwise_or v1 v2 = - if is_bottom v1 || is_bottom v2 - then bottom - else - match v1, v2 with - | Float _, _ | _, Float _ -> top - | Set s1, Set s2 -> apply2_v Int.logor s1 s2 - | Set [|s|],(Top _ as v) | (Top _ as v),Set [|s|] when Int.is_zero s -> v - | Top _, _ | _, Top _ -> - ( match min_and_max v1 with - Some mn1, Some mx1 when Int.ge mn1 Int.zero -> - ( match min_and_max v2 with - Some mn2, Some mx2 when Int.ge mn2 Int.zero -> - let new_max = next_pred_power_of_two (Int.logor mx1 mx2) in - let new_min = Int.max mn1 mn2 in (* Or can only add bits *) - inject_range (Some new_min) (Some new_max) - | _ -> top ) - | _ -> top ) - - -let bitwise_xor v1 v2 = - if is_bottom v1 || is_bottom v2 - then bottom - else - match v1, v2 with - | Float _, _ | _, Float _ -> top - | Set s1, Set s2 -> apply2_v Int.logxor s1 s2 - | Top _, _ | _, Top _ -> - (match min_and_max v1 with - | Some mn1, Some mx1 when Int.ge mn1 Int.zero -> - (match min_and_max v2 with - | Some mn2, Some mx2 when Int.ge mn2 Int.zero -> - let new_max = next_pred_power_of_two (Int.logor mx1 mx2) in - let new_min = Int.zero in - inject_range (Some new_min) (Some new_max) - | _ -> top ) - | _ -> top ) - (* TODO: rename this function to scale_int *) let scale f v = if Int.is_zero f @@ -2123,7 +1988,7 @@ let shift_aux scale op (x: t) (y: t) = let modu = match min_factor with None -> Int.one | Some m -> m in let factor = inject_top min_factor max_factor Int.zero modu in op x factor - with Integer.Too_big -> + with Z.Overflow -> Lattice_messages.emit_imprecision emitter "Ival.shift_aux"; (* We only preserve the sign of the result *) if is_included x positive_integers then positive_integers @@ -2334,7 +2199,7 @@ let rec extract_bits ~start ~stop ~size v = try let dived = scale_div ~pos:true (Int.two_power start) d in scale_rem ~pos:true (Int.two_power (Int.length start stop)) dived - with Integer.Too_big -> + with Z.Overflow -> Lattice_messages.emit_imprecision emitter "Ival.extract_bits"; top ;; @@ -2563,7 +2428,7 @@ let cast_int_to_float_inverse_not_nan ~single_precision (min, max) = values on each extremity. *) let min = ceil min in let max = floor max in - let conv f = try Some (Integer.of_float f) with Integer.Too_big -> None in + let conv f = try Some (Integer.of_float f) with Z.Overflow -> None in let r = inject_range (conv min) (conv max) in (* Kernel.result "Cast I->F inv: %a -> %a@." pretty f pretty r; *) r @@ -2657,207 +2522,6 @@ let reinterpret_as_float kind i = (* currently always imprecise *) top_float -let set_bits mn mx = - match mn, mx with - Some mn, Some mx -> - Int.logand (Int.lognot (different_bits mn mx)) mn - | _ -> Int.zero - -let sub_bits x = (* TODO: can be improved *) - let popcnt = Int.popcount x in - let rec aux cursor acc = - if Int.gt cursor x - then acc - else - let acc = - if Int.is_zero (Int.logand cursor x) - then acc - else O.fold (fun e acc -> O.add (Int.logor cursor e) acc) acc acc - in - aux (Int.shift_left cursor Int.one) acc - in - let o = aux Int.one o_zero in - let s = 1 lsl popcnt in - (* assert (O.cardinal o = s); *) - inject_ps (Pre_set (o, s)) - -let bitwise_and_intervals ~size ~signed v1 v2 = - let max_int_v1, max_int_v2 as max_int_v1_v2 = max_int v1, max_int v2 in - let min_int_v1, min_int_v2 as min_int_v1_v2 = min_int v1, min_int v2 in - let half_range = Int.two_power_of_int (pred size) in - let minint = Int.neg half_range in - let vmax = - match max_int_v1_v2 with - | Some maxv1, Some maxv2 -> - if Int.lt maxv1 Int.zero && Int.lt maxv2 Int.zero - then begin - Some (match min_int_v1_v2 with - Some minv1, Some minv2 -> - pos_max_land minv1 maxv1 minv2 maxv2 - | _ -> assert false) - end - else - let max1 = (* improved min of maxv1 and maxv2*) - try - let bi1 = smallest_above Int.zero v1 in - let bi2 = smallest_above Int.zero v2 in - pos_max_land bi1 maxv1 bi2 maxv2 - with No_such_element -> minint - in - let max2 = (* improved min of maxv1 and altmax2*) - try - let altmax2 = - Int.add half_range (largest_below Int.minus_one v2) - in - let bi1 = smallest_above Int.zero v1 in - let bi2 = - Int.add half_range (smallest_above minint v2) - in - pos_max_land bi1 maxv1 bi2 altmax2 - with No_such_element -> minint - in - let max3 = (* improved min of maxv2 and altmax1*) - try - let altmax1 = - Int.add half_range (largest_below Int.minus_one v1) - in - let bi2 = smallest_above Int.zero v2 in - let bi1 = - Int.add half_range (smallest_above minint v1) - in - pos_max_land bi2 maxv2 bi1 altmax1 - with No_such_element -> minint - in - (* Format.printf "bitwise_and v1 %a v2 %a maxv1 %a maxv2 %a \ - max1 max2 max3 %a %a %a@." - pretty v1 pretty v2 - Int.pretty maxv1 Int.pretty maxv2 - Int.pretty max1 Int.pretty max2 Int.pretty max3; *) - Some (Int.max max1 (Int.max max2 max3)) - | _ -> None - in - let somenegativev1 = intersects v1 strictly_negative_integers in - let somenegativev2 = intersects v2 strictly_negative_integers in - let vmin = - if somenegativev1 && somenegativev2 - then Some minint - else if somenegativev1 || somenegativev2 - then some_zero - else begin - let bits1 = set_bits min_int_v1 max_int_v1 in - let bits2 = set_bits min_int_v2 max_int_v2 in - let min_a = Int.logand bits1 bits2 in - let min_a = - if not signed - then - let rec find_mask x bit acc = - if Int.is_zero (Int.logand x bit) - then acc - else - find_mask - x - (Int.shift_right bit Int.one) - (Int.logor bit acc) - in - match min_int_v1_v2 with - Some m1, Some m2 -> - let mask1 = find_mask bits1 half_range Int.zero in - let min_b = Int.logand mask1 m2 in - let mask2 = find_mask bits2 half_range Int.zero in - let min_c = Int.logand mask2 m1 in - (* Format.printf - "bitwise_and v1 %a v2 %a min_b %a min_c %a@." - pretty v1 pretty v2 - Int.pretty min_b Int.pretty min_c; *) - Int.max (Int.max min_a min_b) min_c - | _ -> assert false - else min_a - in - (* Format.printf "bitwise_and v1 %a v2 %a bits1 %a bits2 %a@." - pretty v1 pretty v2 - Int.pretty bits1 Int.pretty bits2; *) - Some min_a - end - in - vmin, vmax - -(* [common_low_bits v] returns the common pattern between the - least-significant bits of all the elements of the Ival [v]. - The pattern is in the form [lower_bits, mask] where [mask] - indicates the consecutive least significant bits that are - common between all elements, and - [lower_bits] indicates their values. *) -let common_low_bits v = - match v with - | Float _ -> assert false - | Top(_,_,r,m) -> - if Int.is_zero (Int.logand m (Int.pred m)) - then (* m is a power of two *) - r, Int.pred m - else Int.zero, Int.zero (* TODO *) - | Set [| v |] -> - v, next_pred_power_of_two v - | Set _ -> Int.zero, Int.zero (* TODO *) - -let bitwise_and ~size ~signed v1 v2 = - if is_bottom v1 || is_bottom v2 - then bottom - else - match v1, v2 with - | Float _, _ | _, Float _ -> assert false - | Set s1, Set s2 -> - apply2_v Int.logand s1 s2 - | Top _, other | other, Top _ -> - let min, max = bitwise_and_intervals ~signed ~size v1 v2 in - let lower_bits1, mask1 = common_low_bits v1 in - let lower_bits2, mask2 = common_low_bits v2 in - let mask = Int.logand mask1 mask2 in - let modu = Int.succ mask in - let r = Int.logand lower_bits1 (Int.logand lower_bits2 mask) in - let min = match min with - | Some min -> Some (Int.round_up_to_r ~min ~r ~modu) - | _ -> min - in - let max = match max with - | Some max -> Some (Int.round_down_to_r ~max ~r ~modu) - | _ -> max - in - let result = inject_top min max r modu in - ( match other with - Top _ | Float _ -> result - | Set s -> - if - array_for_all - (fun elt -> - Int.ge elt Int.zero && - Int.popcount elt <= !small_cardinal_log) - s - then - let result2 = - Array.fold_left - (fun acc elt -> - join - (sub_bits elt) - acc) - bottom - s - in - narrow result result2 - else result) - -let bitwise_not v = - (* the result is [-v - 1] *) - match v with - | Float _ -> assert false - | Top _ -> add_int (neg_int v) minus_one - | Set s -> map_set_strict_decr Int.lognot s - -let bitwise_not_size ~size ~signed v = - let nv = bitwise_not v in - if not signed then - cast_int_to_int ~size:(Integer.of_int size) ~signed nv - else nv (* always fits in the type if the argument fitted. *) - let overlaps ~partial ~size t1 t2 = let diff = sub_int t1 t2 in match diff with @@ -2870,6 +2534,389 @@ let overlaps ~partial ~size t1 t2 = min_le_elt min pred_size && max_ge_elt max (Int.neg pred_size) | Float _ -> assert false + + +(* ------------------------------------------------------------------------ *) +(* --- Bitwise operators --- *) +(* ------------------------------------------------------------------------ *) + +(* --- Bit lattice --- *) + +type bit_value = On | Off | Both + +module Bit = +struct + type t = bit_value + + let to_string = function + | Off -> "0" + | On -> "1" + | Both -> "T" + + let _pretty (fmt : Format.formatter) (b :t) = + Format.pp_print_string fmt (to_string b) + + let union (b1 : t) (b2 : t) : t = + if b1 = b2 then b1 else Both + + let not : t -> t = function + | On -> Off + | Off -> On + | Both -> Both +end + + +(* --- Bit operators --- *) + +module type BitOperator = +sig + (* Printable version of the operator *) + val representation : string + (* forward is given here as the lifted function of some bit operator op + where op + 1. is assumed to be commutative (backward functions do not assume the + position of the arguments) + 2. must ensure 0 op 0 = 0 as otherwise applying op on a sign bit may + produce a negative result from two positive operands; but we don't + want to produce a negative result when the operation is unsigned which + we don't know unless one of the operands is negative; + 3. is not constant, otherwise nothing of all of this makes sense. + forward is defined as + forward b1 b2 = { x1 op x2 | x1 \in b1, x2 \in b2 } *) + val forward : bit_value -> bit_value -> bit_value + (* backward_off b = { x | \exist y \in b . x op y = y op x = 1 } *) + val backward_off : bit_value -> bit_value + (* backward_on b = { x | \exist y \in b . x op y = y op x = 0 } *) + val backward_on : bit_value -> bit_value +end + +module And : BitOperator = +struct + let representation = "&" + + let forward v1 v2 = + match v1 with + | Off -> Off + | On -> v2 + | Both -> if v2 = Off then Off else Both + + let backward_off = function + | (Off | Both) -> Both + | On -> Off + + let backward_on = function + | Off -> assert false + | (On | Both) -> On +end + +module Or : BitOperator = +struct + let representation = "|" + + let forward v1 v2 = + match v1 with + | On -> On + | Off -> v2 + | Both -> if v2 = On then On else Both + + let backward_off = function + | On -> assert false + | (Off | Both) -> Off + + let backward_on = function + | (On | Both) -> Both + | Off -> On +end + +module Xor : BitOperator = +struct + let representation = "^" + + let forward v1 v2 = + match v1 with + | Both -> Both + | Off -> v2 + | On -> Bit.not v2 + + let backward_on v = Bit.not v + + let backward_off v = v +end + + +(* --- Bit extraction and mutation --- *) + +let significant_bits (v : t) : int option = + match min_and_max v with + | None, _ | _, None -> None + | Some l, Some u -> Some (max (Z.numbits l) (Z.numbits u)) + +let extract_sign (v : t) : bit_value = + match min_and_max v with + | _, Some u when Int.(lt u zero) -> On + | Some l, _ when Int.(ge l zero) -> Off + | _, _ -> Both + +let extract_bit (i : int) (v : t) : bit_value = + let bit_value x = if Z.testbit x i then On else Off in + match v with + | Float _ -> Both + | Set s -> array_map_reduce bit_value Bit.union s + | Top (None, _, _r, _m) | Top (_, None, _r, _m) -> Both + | Top (Some l, Some u, _r, _m) -> + (* It does not take modulo into account *) + if Int.(ge (sub u l) (two_power_of_int i)) (* u - l >= mask *) + then Both + else Bit.union (bit_value l) (bit_value u) + +let reduce_sign (v : t) (b : bit_value) : t = + match b with + | Both -> v + | On -> + begin match v with + | Float _ -> v + | Set s -> array_filter Int.(gt zero) s + | Top (_l, Some u, _r, _modu) when Int.(lt u zero) -> v + | Top (l, _u, r, modu) -> + let u = Some Int.(round_down_to_r ~max:minus_one ~r ~modu) in + inject_top l u r modu + end + | Off -> + begin match v with + | Float _ -> v + | Set s -> array_filter Int.(le zero) s + | Top (Some l, _u, _r, _modu) when Int.(ge l zero) -> v + | Top (_l, u, r, modu) -> + let l = Some Int.(round_up_to_r ~min:zero ~r ~modu) in + inject_top l u r modu + end + +let reduce_bit (i : int) (v : t) (b : bit_value) : t = + let bit_value x = if Z.testbit x i then On else Off in + if b = Both + then v + else match v with + | Float _ -> v + | Set s -> array_filter (fun x -> bit_value x = b) s + | Top (l, u, r, modu) -> + let power = Int.(two_power_of_int i) in (* 001000 *) + let mask = Int.(pred (two_power_of_int (i+1))) in (* 001111 *) + (* Reduce bounds to the nearest satisfying bound *) + let l' = match l with + | Some l when bit_value l <> b -> + let min = match b with + | On -> Int.(logor (logand l (lognot mask)) power) (* ll1000 *) + | Off -> Int.(succ (logor l mask)) (* ll1111 + 1 *) + | Both -> assert false + in + Some (Int.round_up_to_r ~min ~r ~modu) + | _ -> l + and u' = match u with + | Some u when bit_value u <> b -> + let max = match b with + | On -> Int.(pred (logand u (lognot mask))) (* uu0000 - 1 *) + | Off -> Int.(logand (logor u mask) (lognot power)) (* uu0111 *) + | Both -> assert false + in + Some (Int.round_down_to_r ~max ~r ~modu) + | _ -> u + in + inject_top l' u' r modu + +type bit = Sign | Bit of int + +let extract_bit = function + | Sign -> extract_sign + | Bit i -> extract_bit i + +let set_bit_on ~size bit = + let mask = match bit with + | Sign -> Int.(neg (two_power_of_int size)) + | Bit i -> Int.(two_power_of_int i) + in + fun v -> Int.logor mask v + +let reduce_bit = function + | Sign -> reduce_sign + | Bit i -> reduce_bit i + +(* --- Bitwise binary operators --- *) + +module BitwiseOperator (Op : BitOperator) = +struct + + let backward (b : bit_value) = function + | On -> Op.backward_on b + | Off -> Op.backward_off b + | Both -> assert false + + (** Bit masks are composed of an array of significant bit values where index 0 + represents the lowest bit, and a single bit_value to represent the + possible leading bits. *) + type bit_mask = bit_value array * bit_value + + (* Converts an integer [x] into a bit array of size [n]. *) + let int_to_bit_array n (x : Int.t) = + let make i = if Z.testbit x i then On else Off in + Array.init n make + + (* Computes a bit_mask for the lowest bits of an ival, using the modulo + information for non singleton values. *) + let low_bit_mask : t -> bit_mask = function + | Set [| |] -> raise Error_Bottom + | Set [| x |] -> (* singleton : build a full mask *) + let n = Z.numbits x in + int_to_bit_array n x, if Int.(ge x zero) then Off else On + | v -> + let _,_,r,modu = min_max_r_mod v in (* requires cardinal > 1 *) + (* Find how much [modu] can be divided by two. *) + let n = Z.trailing_zeros modu in + int_to_bit_array n r, Both + + (* Computes a remainder and modulo for the result of [v1 op v2]. *) + let compute_modulo v1 v2 = + let b1, s1 = low_bit_mask v1 + and b2, s2 = low_bit_mask v2 in + let size = max (Array.length b1) (Array.length b2) in + (* Sets the [i] nth bits of [rem] until an uncertainty appears. *) + let rec step i rem = + let b1 = try b1.(i) with _ -> s1 + and b2 = try b2.(i) with _ -> s2 in + let b = Op.forward b1 b2 in + if i >= size || b = Both + then rem, Int.two_power_of_int i + else + (* [rem] starts at 0, so we only need to turn on the 1 bits. *) + let rem = if b = On then set_bit_on ~size (Bit i) rem else rem in + step (i+1) rem + in + step 0 Int.zero + + (* The number of bits on which the result should be significant *) + let result_size (v1 : t) (v2 : t) : int option = + let n1 = significant_bits v1 and n2 = significant_bits v2 in + let n1_greater = + match n1, n2 with + | None, _ -> true + | _, None -> false + | Some n1, Some n2 -> n1 >= n2 + in + (* whether n1 or n2 is greater, look if the sign bit oped with anything is + not constant. If it is constant, then the highest bits are irrelevant. *) + if n1_greater + then if Op.forward Both (extract_sign v2) = Both then n1 else n2 + else if Op.forward (extract_sign v1) Both = Both then n2 else n1 + + exception Do_not_fit_small_sets + + (* Try to build a small set. + It is basically enumerating the possible results, by choosing the possible + bits from left to right. This function aborts if it ever exceeds the small + set size. The algorithm is probably not complete, as it is not always + possible to reduce the operands leading to a result (without an + exponential cost) meaning that sometimes small sets can be obtained but + the algorithm will fail to find them. *) + let compute_small_set ~size (v1 : t) (v2 : t) (r : Int.t) (modu : Int.t) = + let set_bit i acc (r, v1, v2) = + let b1 = extract_bit i v1 + and b2 = extract_bit i v2 in + match Op.forward b1 b2 with + | On -> (set_bit_on ~size i r, v1, v2) :: acc + | Off -> (r, v1, v2) :: acc + | Both -> + let v1_off = reduce_bit i v1 (Op.backward_off b2) + and v2_off = reduce_bit i v2 (Op.backward_off b1) in + let v1_on = reduce_bit i v1 (Op.backward_on b2) + and v2_on = reduce_bit i v2 (Op.backward_on b1) in + (set_bit_on ~size i r, v1_on, v2_on) :: (r, v1_off, v2_off) :: acc + in + let acc = ref (set_bit Sign [] (r, v1, v2)) in + for i = size - 1 downto Z.numbits modu - 1 do + acc := List.fold_left (set_bit (Bit i)) [] !acc; + if List.length !acc > !small_cardinal then raise Do_not_fit_small_sets + done; + let o = List.fold_left (fun o (r,_,_) -> O.add r o) O.empty !acc in + share_set o (O.cardinal o) + + (* If lower is true (resp. false), compute the lower (resp. upper) bound of + the result interval when applying the bitwise operator to [v1] and [v2]. + [size] is the number of bits of the result. + This function should be exact when the operands are small sets or tops + with modulo 1. Otherwise, it is an overapproximation of the bound. *) + let compute_bound ~size v1 v2 lower = + (* Sets the [i]-nth bit of the currently computed bound [r] of [v1 op v2]. + If possible, reduces [v1] and [v2] accordingly. *) + let set_bit i (r, v1, v2) = + let b1 = extract_bit i v1 + and b2 = extract_bit i v2 in + let b, v1, v2 = + match Op.forward b1 b2 with + | On | Off as b -> b, v1, v2 (* Constant bit, no reduction. *) + | Both -> + (* Choose the best bit for the searched bound, and reduces [v1] and + [v2] accordingly. *) + let b = match i with + | Sign -> if lower then On else Off + | Bit _ -> if lower then Off else On + in + let v1 = reduce_bit i v1 (backward b2 b) + and v2 = reduce_bit i v2 (backward b1 b) in + b, v1, v2 + in + (* Only sets 1 bit, as [r] is 0 at the beginning. *) + let r = if b = On then set_bit_on ~size i r else r in + r, v1, v2 + in + (* The result is 0 at the beginning, and [set_bit] turns on the 1 bits. *) + let r = ref (Int.zero, v1, v2) in + (* Sets the sign bit, and then the bits from size to 0. *) + r := set_bit Sign !r; + for i = (size - 1) downto 0 do + r := set_bit (Bit i) !r; + done; + let bound, _v1, _v2 = !r in + bound + + let bitwise_forward (v1 : t) (v2 : t) : t = + try + let r, modu = compute_modulo v1 v2 in + match result_size v1 v2 with + | None -> + (* We could do better here, as one of the bound may be finite. However, + this case should occur rarely or not at all. *) + inject_interval None None r modu + | Some size -> + try compute_small_set ~size v1 v2 r modu + with Do_not_fit_small_sets -> + let min = compute_bound ~size v1 v2 true + and max = compute_bound ~size v1 v2 false in + inject_interval (Some min) (Some max) r modu + with Error_Bottom -> bottom +end + +let bitwise_or = let module M = BitwiseOperator (Or) in M.bitwise_forward +let bitwise_and = let module M = BitwiseOperator (And) in M.bitwise_forward +let bitwise_xor = let module M = BitwiseOperator (Xor) in M.bitwise_forward + + +(* --- Bitwise not --- *) + +let bitwise_signed_not v = + match v with + | Float _ -> assert false + | Top _ -> add_int (neg_int v) minus_one (* [-v - 1] *) + | Set s -> map_set_strict_decr Int.lognot s + +let bitwise_unsigned_not ~size v = + let size = Int.of_int size in + cast_int_to_int ~size ~signed:false (bitwise_signed_not v) + +let bitwise_not ~size ~signed v = + if signed then + bitwise_signed_not v + else + bitwise_unsigned_not ~size v + let pretty_debug = pretty let name = "ival" diff --git a/src/kernel_services/abstract_interp/ival.mli b/src/kernel_services/abstract_interp/ival.mli index 9fdab36c7ac7f88aa28fc8500bc73614408e8e52..b4f3e5a485b8c26e3936e919e65ade6a44346eef 100644 --- a/src/kernel_services/abstract_interp/ival.mli +++ b/src/kernel_services/abstract_interp/ival.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -91,6 +91,9 @@ val min_max_r_mod : val min_and_max : t -> Integer.t option * Integer.t option +(** Returns the minimal and maximal integers represented by an ival. + [None] means the argument is unbounded. + @raise Abstract_interp.Error_Bottom if the argument is bottom. *) val min_and_max_float : t -> (Fval.F.t * Fval.F.t) option * bool (** returns the bounds of the float interval, (or None if the argument is @@ -98,14 +101,15 @@ val min_and_max_float : t -> (Fval.F.t * Fval.F.t) option * bool may be NaN. *) -val bitwise_and : size:int -> signed:bool -> t -> t -> t +val bitwise_and : t -> t -> t val bitwise_or : t -> t -> t val bitwise_xor : t -> t -> t -val bitwise_not: t -> t +val bitwise_signed_not: t -> t +(* For the two following functions, the argument is assumed to fit within the + given size. *) +val bitwise_unsigned_not: size:int -> t -> t +val bitwise_not: size:int -> signed:bool -> t -> t -val bitwise_not_size: size:int -> signed:bool -> t -> t -(** bitwise negation on a finite integer type. The argument is assumed to - fit within the type. *) val zero : t (** The lattice element that contains only the integer 0. *) diff --git a/src/kernel_services/abstract_interp/lattice_messages.ml b/src/kernel_services/abstract_interp/lattice_messages.ml index 04ee0ac4327b5e1817586cc1ddde5c9ad94c95f0..4f03bc4633845ca4e4ba75f7e58b204bf90b9486 100644 --- a/src/kernel_services/abstract_interp/lattice_messages.ml +++ b/src/kernel_services/abstract_interp/lattice_messages.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/abstract_interp/lattice_messages.mli b/src/kernel_services/abstract_interp/lattice_messages.mli index 417eed1923406c25f3ff21bbe4091e2cadc961a1..553ef235babc1d1dbc1b6d9dfbed103eb852f33f 100644 --- a/src/kernel_services/abstract_interp/lattice_messages.mli +++ b/src/kernel_services/abstract_interp/lattice_messages.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/abstract_interp/lattice_type.mli b/src/kernel_services/abstract_interp/lattice_type.mli index d4cc251e5d4db201c721338ba78a78d63c1d3abe..a494ea5ea67ac6c910bc95c9f441970c807a1f72 100644 --- a/src/kernel_services/abstract_interp/lattice_type.mli +++ b/src/kernel_services/abstract_interp/lattice_type.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/abstract_interp/lmap.ml b/src/kernel_services/abstract_interp/lmap.ml index fdffff1b6fab76c2367d9dd4c2b8b523acd3f012..28caf337006fcec6b57e30107c4995b82d084cc5 100644 --- a/src/kernel_services/abstract_interp/lmap.ml +++ b/src/kernel_services/abstract_interp/lmap.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/abstract_interp/lmap.mli b/src/kernel_services/abstract_interp/lmap.mli index 881cea3c9677097fb8453a5079ed15a0f3907280..44f39505c5bc96129f0a44021069b449f4c71229 100644 --- a/src/kernel_services/abstract_interp/lmap.mli +++ b/src/kernel_services/abstract_interp/lmap.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/abstract_interp/lmap_bitwise.ml b/src/kernel_services/abstract_interp/lmap_bitwise.ml index e64ae1790eed2d5b3368cc530ec57dc47c6c93d5..3c87d3bcbc353aa1a405681a6483f058f9bc9dcb 100644 --- a/src/kernel_services/abstract_interp/lmap_bitwise.ml +++ b/src/kernel_services/abstract_interp/lmap_bitwise.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/abstract_interp/lmap_bitwise.mli b/src/kernel_services/abstract_interp/lmap_bitwise.mli index 6965e5c2cf17b8f403e7c034f6d2d9a38e57cc46..7a35801ca87f9c61d1132140139642f36673f121 100644 --- a/src/kernel_services/abstract_interp/lmap_bitwise.mli +++ b/src/kernel_services/abstract_interp/lmap_bitwise.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/abstract_interp/lmap_sig.mli b/src/kernel_services/abstract_interp/lmap_sig.mli index 470d6b791d0171ce65f46bf2e09f54fbb3e3f939..5ce3fde3695c5cb108532ec53d8ffc221385917d 100644 --- a/src/kernel_services/abstract_interp/lmap_sig.mli +++ b/src/kernel_services/abstract_interp/lmap_sig.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/abstract_interp/locations.ml b/src/kernel_services/abstract_interp/locations.ml index a1ab29ef8ea8ae2d8579e823c7b65ab0bcefc98e..f508068d2dbd6d7c4ccf4594625a23e2f5ea903d 100644 --- a/src/kernel_services/abstract_interp/locations.ml +++ b/src/kernel_services/abstract_interp/locations.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/abstract_interp/locations.mli b/src/kernel_services/abstract_interp/locations.mli index e534cab24f86193d73753b69b75852faaea4d1d0..f1facdc393237c64a1b8892bf852f36ff05f83d0 100644 --- a/src/kernel_services/abstract_interp/locations.mli +++ b/src/kernel_services/abstract_interp/locations.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/abstract_interp/map_lattice.ml b/src/kernel_services/abstract_interp/map_lattice.ml index 2e0ac18fa3c7f9f922f998c53e4d5335375be203..6dbc13c604bf1a7bff81817254fb141a0e401eff 100644 --- a/src/kernel_services/abstract_interp/map_lattice.ml +++ b/src/kernel_services/abstract_interp/map_lattice.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/abstract_interp/map_lattice.mli b/src/kernel_services/abstract_interp/map_lattice.mli index 943df7027ccb38bf73f69580842b1b5d294499a8..d8148633719f381f557367cc2e23c5735d128263 100644 --- a/src/kernel_services/abstract_interp/map_lattice.mli +++ b/src/kernel_services/abstract_interp/map_lattice.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/abstract_interp/offsetmap.ml b/src/kernel_services/abstract_interp/offsetmap.ml index 7914f54871a6507f283a8ff4e01cbfc1cdee548a..65b75830d44797231236f36c18da41f0e86135f4 100644 --- a/src/kernel_services/abstract_interp/offsetmap.ml +++ b/src/kernel_services/abstract_interp/offsetmap.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/abstract_interp/offsetmap.mli b/src/kernel_services/abstract_interp/offsetmap.mli index af0d3548205d32bd62c3bec8198bf174a89f1a7a..88e2986c36d8cebb73384279ffd563b139a00eb3 100644 --- a/src/kernel_services/abstract_interp/offsetmap.mli +++ b/src/kernel_services/abstract_interp/offsetmap.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/abstract_interp/offsetmap_bitwise_sig.mli b/src/kernel_services/abstract_interp/offsetmap_bitwise_sig.mli index 74e5c282130c78464971be5212ea7cbacaac6dc6..96c829e1f81f8253473b48b2046efcd80b233ac2 100644 --- a/src/kernel_services/abstract_interp/offsetmap_bitwise_sig.mli +++ b/src/kernel_services/abstract_interp/offsetmap_bitwise_sig.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/abstract_interp/offsetmap_lattice_with_isotropy.mli b/src/kernel_services/abstract_interp/offsetmap_lattice_with_isotropy.mli index 10794055e3aa4aa80753f3c0850c3d850a436e2e..e2dfef042edd030211d9100ad5ac0ee2819d52f3 100644 --- a/src/kernel_services/abstract_interp/offsetmap_lattice_with_isotropy.mli +++ b/src/kernel_services/abstract_interp/offsetmap_lattice_with_isotropy.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/abstract_interp/offsetmap_sig.mli b/src/kernel_services/abstract_interp/offsetmap_sig.mli index 538ae8984af8fd019f4cb602d375aa744df47767..87ee6349e914f8f428991146cde7aeba63c5a113 100644 --- a/src/kernel_services/abstract_interp/offsetmap_sig.mli +++ b/src/kernel_services/abstract_interp/offsetmap_sig.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/abstract_interp/origin.ml b/src/kernel_services/abstract_interp/origin.ml index f5df03b9dfb29002f0f4346893ddb7dc9791a2a1..a52ccdf1187cd648944c4d929001b78e75108b5f 100644 --- a/src/kernel_services/abstract_interp/origin.ml +++ b/src/kernel_services/abstract_interp/origin.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/abstract_interp/origin.mli b/src/kernel_services/abstract_interp/origin.mli index 8b6af5208aa36992fd8f0f84b3ea6ce7c6da0b85..cbad78145bef6661246cf06c3a58ed7a3424e793 100644 --- a/src/kernel_services/abstract_interp/origin.mli +++ b/src/kernel_services/abstract_interp/origin.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/abstract_interp/tr_offset.ml b/src/kernel_services/abstract_interp/tr_offset.ml index 2a6af76e8fc4357ce4167bf45eb6b2027e33f688..190317dfd3faa1084880a06df2395fe5ecb7b58f 100644 --- a/src/kernel_services/abstract_interp/tr_offset.ml +++ b/src/kernel_services/abstract_interp/tr_offset.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/abstract_interp/tr_offset.mli b/src/kernel_services/abstract_interp/tr_offset.mli index c88fd738bfdfad100b26ba64b3d211614ebb585f..d59336ec349c56dce580427d086d84151453dc43 100644 --- a/src/kernel_services/abstract_interp/tr_offset.mli +++ b/src/kernel_services/abstract_interp/tr_offset.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/analysis/bit_utils.ml b/src/kernel_services/analysis/bit_utils.ml index a820ec1df7cb803c4fb017e8349faba02686f465..136e76937003d473afea011ffa5282634c8f44a6 100644 --- a/src/kernel_services/analysis/bit_utils.ml +++ b/src/kernel_services/analysis/bit_utils.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/analysis/bit_utils.mli b/src/kernel_services/analysis/bit_utils.mli index d606f6adac536e4dfa43e185db834f86b95fc52a..a1848f842b42c957b06776b71158aceefd4e596e 100644 --- a/src/kernel_services/analysis/bit_utils.mli +++ b/src/kernel_services/analysis/bit_utils.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/analysis/dataflow2.ml b/src/kernel_services/analysis/dataflow2.ml index 5581e725e9895dd79c370c5b7dcef71e0c1e4eb4..bb3745381898398296e8fceefb6b9503fa870e04 100644 --- a/src/kernel_services/analysis/dataflow2.ml +++ b/src/kernel_services/analysis/dataflow2.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/analysis/dataflow2.mli b/src/kernel_services/analysis/dataflow2.mli index bdcf36b4806674e44d54e2e1a33e59493bd99cc6..70a682c02acc54472493023e76cb23570df9a651 100644 --- a/src/kernel_services/analysis/dataflow2.mli +++ b/src/kernel_services/analysis/dataflow2.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/analysis/destructors.ml b/src/kernel_services/analysis/destructors.ml index 5218c823d0e2e408da05510bdbd924034a7927ed..366440d2a58930a27ac6f61d9191bd4c32af8856 100644 --- a/src/kernel_services/analysis/destructors.ml +++ b/src/kernel_services/analysis/destructors.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/analysis/destructors.mli b/src/kernel_services/analysis/destructors.mli index 6a499055ae14fe0f8eafe287f55094c0172ee514..dc5f1828661cbd79621809ed9e7052de7acd7738 100644 --- a/src/kernel_services/analysis/destructors.mli +++ b/src/kernel_services/analysis/destructors.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/analysis/dominators.ml b/src/kernel_services/analysis/dominators.ml index 54d6c678932f29a4841bae89fdf0e5a0f3e50bb4..5fceb38618ee843b01ab0135654ffc2baa4a803e 100644 --- a/src/kernel_services/analysis/dominators.ml +++ b/src/kernel_services/analysis/dominators.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/analysis/dominators.mli b/src/kernel_services/analysis/dominators.mli index 35853c21ed2711dd8774b15428efd310155a8719..e390bf5e3a059439af8f7a0beba5f84eeab009cb 100644 --- a/src/kernel_services/analysis/dominators.mli +++ b/src/kernel_services/analysis/dominators.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/analysis/exn_flow.ml b/src/kernel_services/analysis/exn_flow.ml index e45cdac76203cd0451c323929021bd740af5c0e2..fb55879b28007bff7b40df5665fd34b94e42863f 100644 --- a/src/kernel_services/analysis/exn_flow.ml +++ b/src/kernel_services/analysis/exn_flow.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/analysis/exn_flow.mli b/src/kernel_services/analysis/exn_flow.mli index 37b29cbe7b0d9e0e1a40570297280dcefd851ad7..3bd95fd0b51da72134e6a141ff28270cc5ead0c4 100644 --- a/src/kernel_services/analysis/exn_flow.mli +++ b/src/kernel_services/analysis/exn_flow.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/analysis/interpreted_automata.ml b/src/kernel_services/analysis/interpreted_automata.ml index c9b421da2f531f86c7c971febf4e5425cb438477..7038bbce318da3fdf1a9a6541b73a257930490db 100644 --- a/src/kernel_services/analysis/interpreted_automata.ml +++ b/src/kernel_services/analysis/interpreted_automata.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/analysis/interpreted_automata.mli b/src/kernel_services/analysis/interpreted_automata.mli index 6d51fe680a44990ec91db2de73954143af54c9d6..c7c1b86d8732efb66b29bd2448ba60f0b8fa557c 100644 --- a/src/kernel_services/analysis/interpreted_automata.mli +++ b/src/kernel_services/analysis/interpreted_automata.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/analysis/logic_interp.ml b/src/kernel_services/analysis/logic_interp.ml index f40ed55aec7ff66c75402e1c937d960bcc51b140..8a82bb7009c44cdb18b0358052dc123bf79527ad 100644 --- a/src/kernel_services/analysis/logic_interp.ml +++ b/src/kernel_services/analysis/logic_interp.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/analysis/logic_interp.mli b/src/kernel_services/analysis/logic_interp.mli index b8e1fcb314c080e7177cfff079eaa45290c68630..af93fc8fb44946d5614f441e1cc6e6220289e994 100644 --- a/src/kernel_services/analysis/logic_interp.mli +++ b/src/kernel_services/analysis/logic_interp.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/analysis/loop.ml b/src/kernel_services/analysis/loop.ml index d54e6aa71a6299b21a4f299d564cb78a282d90d6..9daa7eace4299ae3e788f41156bcb14439d537dd 100644 --- a/src/kernel_services/analysis/loop.ml +++ b/src/kernel_services/analysis/loop.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/analysis/loop.mli b/src/kernel_services/analysis/loop.mli index 2f580026d3b2b3f04b8f1a2f8d8fb3145da1c821..da142b70ce20bc926594c640e12be5b09337a906 100644 --- a/src/kernel_services/analysis/loop.mli +++ b/src/kernel_services/analysis/loop.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/analysis/ordered_stmt.ml b/src/kernel_services/analysis/ordered_stmt.ml index 46320f0f5a7f9f9414bbe1c66c337438742ea515..762f37254ff368a8b32f51c0e6814e5639a4ddb4 100644 --- a/src/kernel_services/analysis/ordered_stmt.ml +++ b/src/kernel_services/analysis/ordered_stmt.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/analysis/ordered_stmt.mli b/src/kernel_services/analysis/ordered_stmt.mli index e0ee49e2ebf5b4a22dd00e05a58b0d27c325542a..6ad24780272bd2f488fdcb412522cbe6f16265dc 100644 --- a/src/kernel_services/analysis/ordered_stmt.mli +++ b/src/kernel_services/analysis/ordered_stmt.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/analysis/service_graph.ml b/src/kernel_services/analysis/service_graph.ml index d00a785c30b76a0835bbfecdbee68e46d2456dce..f7f042288ff4983d7d709296ae1c5546953a8b4e 100644 --- a/src/kernel_services/analysis/service_graph.ml +++ b/src/kernel_services/analysis/service_graph.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/analysis/service_graph.mli b/src/kernel_services/analysis/service_graph.mli index 66a5eefb362a2a2ab99d46091097ecb62cb8b8b7..0ada83031f4e81619d41f95bdc20078e2de97236 100644 --- a/src/kernel_services/analysis/service_graph.mli +++ b/src/kernel_services/analysis/service_graph.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/analysis/stmts_graph.ml b/src/kernel_services/analysis/stmts_graph.ml index 88b588cc0e08b60320a3fcd020e947bf0835a7f6..096e3a9ce0be525bb6dc26725287de8e1d1b5ccc 100644 --- a/src/kernel_services/analysis/stmts_graph.ml +++ b/src/kernel_services/analysis/stmts_graph.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/analysis/stmts_graph.mli b/src/kernel_services/analysis/stmts_graph.mli index cb29d1310c2f598e6f77002e5add4b71a64e17ee..dd64d3a01a81f74fee60bd63a66000e5e5f73a49 100644 --- a/src/kernel_services/analysis/stmts_graph.mli +++ b/src/kernel_services/analysis/stmts_graph.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/analysis/undefined_sequence.ml b/src/kernel_services/analysis/undefined_sequence.ml index c7fd90985fc4dccaeacc15188b79b8131ffafab7..1fbc213478de01a00dbde6968197a8d438b70b30 100644 --- a/src/kernel_services/analysis/undefined_sequence.ml +++ b/src/kernel_services/analysis/undefined_sequence.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/analysis/undefined_sequence.mli b/src/kernel_services/analysis/undefined_sequence.mli index 489295ecd5dca3482af5df1f3fe3cba9ec9ca273..48b80a46be1d222af219924748b529fdce3bf513 100644 --- a/src/kernel_services/analysis/undefined_sequence.mli +++ b/src/kernel_services/analysis/undefined_sequence.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/analysis/wto_statement.ml b/src/kernel_services/analysis/wto_statement.ml index 17d5fb33a64a523fb2b354623c439ad170077c6d..7cb1c48e8d78dbe61504b9fb6504bba135bbccaf 100644 --- a/src/kernel_services/analysis/wto_statement.ml +++ b/src/kernel_services/analysis/wto_statement.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/analysis/wto_statement.mli b/src/kernel_services/analysis/wto_statement.mli index 1e6fd83213227179a05c44f5176e444bd372f974..7c51d4c53c293b0cf378d6dfb67be02a9be51880 100644 --- a/src/kernel_services/analysis/wto_statement.mli +++ b/src/kernel_services/analysis/wto_statement.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/ast_data/alarms.ml b/src/kernel_services/ast_data/alarms.ml index 44148a384ac7d4f05e4fd45685377db432f015cd..ff279b93cf08519395f6ef3652339a5a93912ccf 100644 --- a/src/kernel_services/ast_data/alarms.ml +++ b/src/kernel_services/ast_data/alarms.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/ast_data/alarms.mli b/src/kernel_services/ast_data/alarms.mli index 220176b34cb7f082d0ff09b426eedfa69eee796a..c8a332f79f106f52fef155317c6004704ca2e210 100644 --- a/src/kernel_services/ast_data/alarms.mli +++ b/src/kernel_services/ast_data/alarms.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/ast_data/annotations.ml b/src/kernel_services/ast_data/annotations.ml index 340218eafb9aa88e87767599e958c29a187926cf..8051b863e0d6e10256fff2665917d6a25abaa14f 100644 --- a/src/kernel_services/ast_data/annotations.ml +++ b/src/kernel_services/ast_data/annotations.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/ast_data/annotations.mli b/src/kernel_services/ast_data/annotations.mli index ae97a1ea5d865b000529f30a96f15e196a74a791..3252d40e661210bc7754c71483567110d4a31abc 100644 --- a/src/kernel_services/ast_data/annotations.mli +++ b/src/kernel_services/ast_data/annotations.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/ast_data/ast.ml b/src/kernel_services/ast_data/ast.ml index 2e90deaeb70e3b812726884bf92f538a2707ee84..c7fcabb67d62459612d5e4cb52e16d4ca19a7386 100644 --- a/src/kernel_services/ast_data/ast.ml +++ b/src/kernel_services/ast_data/ast.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/ast_data/ast.mli b/src/kernel_services/ast_data/ast.mli index 27380d5e97c933cdf45217e273c7873ac2215db7..0385cecc9181b85c762953238def70075c43ffb4 100644 --- a/src/kernel_services/ast_data/ast.mli +++ b/src/kernel_services/ast_data/ast.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/ast_data/cil_types.mli b/src/kernel_services/ast_data/cil_types.mli index 38c85c983aa9b6220ae22506663dfa104b1a92f5..d9acbb6b3b8891732a8607cce573208df9d8b005 100644 --- a/src/kernel_services/ast_data/cil_types.mli +++ b/src/kernel_services/ast_data/cil_types.mli @@ -1062,7 +1062,11 @@ and stmt = { mutable preds: stmt list; (** The inverse of the succs function. *) - mutable ghost : bool + mutable ghost : bool; + + mutable sattr : attributes + (** Statement attributes. + @since Frama-C+dev *) } (** Labels *) @@ -1671,7 +1675,7 @@ and acsl_extension_kind = (** Where are we expected to find corresponding extension keyword. @plugin development guide - @since Frama-C+dev + @since 18.0-Argon *) and ext_category = | Ext_contract diff --git a/src/kernel_services/ast_data/globals.ml b/src/kernel_services/ast_data/globals.ml index 0d6653284553b0c3317794c33b56ca5b0244f16e..b84dfc4a2b8b68eda18195b19b57f12e2468b223 100644 --- a/src/kernel_services/ast_data/globals.ml +++ b/src/kernel_services/ast_data/globals.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/ast_data/globals.mli b/src/kernel_services/ast_data/globals.mli index b5127dab9e63c7ee5102bdbbd9d00397d9ef37e1..7ec981f70ba9afa672cbe7f060f914862d16f897 100644 --- a/src/kernel_services/ast_data/globals.mli +++ b/src/kernel_services/ast_data/globals.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -75,7 +75,7 @@ module Vars: sig val remove: varinfo -> unit (** Removes the given varinfo, which must have already been removed from the AST. Warning: this is very dangerous. - @since Frama-C+dev + @since 18.0-Argon *) val add_decl: varinfo -> unit @@ -131,7 +131,7 @@ module Functions: sig val remove: varinfo -> unit (** Removes the given varinfo, which must have already been removed from the AST. Warning: this is very dangerous. - @since Frama-C+dev + @since 18.0-Argon *) val replace_by_declaration: funspec -> varinfo -> location -> unit @@ -164,7 +164,7 @@ module FileIndex : sig [@@deprecated "Use FileIndex.get_symbols instead."] (** [find path] returns all global C symbols associated with [path], plus [path] itself. The returned [global] list is reversed. - @deprecated Frama-C+dev use [get_symbols] instead. *) + @deprecated 18.0-Argon use [get_symbols] instead. *) val get_files: unit -> Datatype.Filepath.t list (** Get the files list containing all [global] C symbols. *) diff --git a/src/kernel_services/ast_data/kernel_function.ml b/src/kernel_services/ast_data/kernel_function.ml index e24380065ea8bc793b15a3c2ab5506c1ab3039a6..1d7d7d982b0cda0c31270cbb7c6692eb9d426f48 100644 --- a/src/kernel_services/ast_data/kernel_function.ml +++ b/src/kernel_services/ast_data/kernel_function.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/ast_data/kernel_function.mli b/src/kernel_services/ast_data/kernel_function.mli index 501f1323be4686be7f89a9d0d83309aac65a421c..d6700783c495fe773ecb3fc9af317b1732058340 100644 --- a/src/kernel_services/ast_data/kernel_function.mli +++ b/src/kernel_services/ast_data/kernel_function.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -161,7 +161,7 @@ val get_locals : t -> varinfo list val get_statics : t -> varinfo list (** Returns the list of static variables declared inside the function. - @since Frama-C+dev *) + @since 18.0-Argon *) exception No_Definition val get_definition : t -> fundec diff --git a/src/kernel_services/ast_data/property.ml b/src/kernel_services/ast_data/property.ml index c1b6a0334b9cb81cd722393f7c152557537f3801..233e4c4162cc2af8bc76e1bd0e600d2958777741 100644 --- a/src/kernel_services/ast_data/property.ml +++ b/src/kernel_services/ast_data/property.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -34,9 +34,9 @@ type identified_code_annotation = kernel_function * stmt * code_annotation type identified_allocation = - kernel_function - * kinstr - * behavior_or_loop + kernel_function + * kinstr + * behavior_or_loop * (identified_term list * identified_term list) type identified_assigns = @@ -116,7 +116,7 @@ type identified_extended = extended_loc * Cil_types.acsl_extension and identified_axiomatic = string * identified_property list -and identified_lemma = +and identified_lemma = string * logic_label list * string list * predicate * location and identified_axiom = identified_lemma @@ -163,15 +163,15 @@ let o_loc_of_stmt kf = function let get_kinstr = function | IPPredicate (_,_,ki,_) - | IPBehavior(_, ki,_,_) + | IPBehavior(_, ki,_,_) | IPComplete (_,ki,_,_) - | IPDisjoint(_,ki,_,_) - | IPAllocation (_,ki,_,_) - | IPAssigns (_,ki,_,_) + | IPDisjoint(_,ki,_,_) + | IPAllocation (_,ki,_,_) + | IPAssigns (_,ki,_,_) | IPFrom(_,ki,_,_) | IPReachable (_, ki, _) | IPDecrease (_,ki,_,_) -> ki - | IPAxiom _ + | IPAxiom _ | IPAxiomatic _ | IPLemma _ -> Kglobal | IPOther(_,loc_e) -> ki_of_o_loc loc_e @@ -192,14 +192,14 @@ let get_kf = function | IPPredicate (_,kf,_,_) | IPBehavior(kf,_,_,_) | IPCodeAnnot (kf,_,_) - | IPComplete (kf,_,_,_) - | IPDisjoint(kf,_,_,_) + | IPComplete (kf,_,_,_) + | IPDisjoint(kf,_,_,_) | IPAllocation(kf,_,_,_) | IPAssigns(kf,_,_,_) - | IPFrom(kf,_,_,_) + | IPFrom(kf,_,_,_) | IPDecrease (kf,_,_,_) | IPPropertyInstance (kf, _, _, _) -> Some kf - | IPAxiom _ + | IPAxiom _ | IPAxiomatic _ | IPLemma _ -> None | IPReachable (kfopt, _, _) -> kfopt @@ -277,7 +277,7 @@ let get_behavior = function | IPAllocation(_,_,Id_loop _,_) | IPAssigns(_,_,Id_loop _,_) | IPFrom(_,_,Id_loop _,_) - | IPAxiom _ + | IPAxiom _ | IPAxiomatic _ | IPExtended _ | IPLemma _ @@ -293,8 +293,8 @@ let get_behavior = function include Datatype.Make_with_collections (struct - - include Datatype.Serializable_undefined + + include Datatype.Serializable_undefined type t = identified_property let name = "Property.t" @@ -321,12 +321,12 @@ include Datatype.Make_with_collections Format.fprintf fmt "invariant@ %s for type %a" s Cil_printer.pp_typ ty | IPGlobalInvariant(s,_,_) -> Format.fprintf fmt "global invariant@ %s" s - | IPBehavior(_kf, ki, active, b) -> + | IPBehavior(_kf, ki, active, b) -> if Cil.is_default_behavior b then Format.pp_print_string fmt "default behavior" else Format.fprintf fmt "behavior %s" b.b_name; - (match ki with + (match ki with | Kstmt s -> Format.fprintf fmt " for statement %d" s.sid | Kglobal -> ()); pp_active fmt active @@ -343,19 +343,19 @@ include Datatype.Make_with_collections (fun fmt s -> Format.fprintf fmt " %s" s)) l; pp_active fmt active - | IPAllocation(_, _, _, (f,a)) -> + | IPAllocation(_, _, _, (f,a)) -> Cil_printer.pp_allocation fmt (FreeAlloc(f,a)) | IPAssigns(_, _, _, l) -> Cil_printer.pp_assigns fmt (Writes l) | IPFrom (_,_,_, f) -> Cil_printer.pp_from fmt f | IPDecrease(_, _, None,v) -> Cil_printer.pp_decreases fmt v | IPDecrease(_, _, _,v) -> Cil_printer.pp_variant fmt v | IPReachable(None, Kstmt _, _) -> assert false - | IPReachable(None, Kglobal, _) -> + | IPReachable(None, Kglobal, _) -> Format.fprintf fmt "reachability of entry point" - | IPReachable(Some kf, Kglobal, _) -> + | IPReachable(Some kf, Kglobal, _) -> Format.fprintf fmt "reachability of function %a" Kf.pretty kf - | IPReachable(Some kf, Kstmt stmt, ba) -> - Format.fprintf fmt "reachability %s stmt %a in %a" + | IPReachable(Some kf, Kstmt stmt, ba) -> + Format.fprintf fmt "reachability %s stmt %a in %a" (match ba with Before -> "of" | After -> "post") Cil_datatype.Location.pretty_line (Cil_datatype.Stmt.loc stmt) Kf.pretty kf @@ -398,10 +398,10 @@ include Datatype.Make_with_collections (* At most one loop variant per statement anyway, no need to discriminate against the code annotation itself *) Hashtbl.hash (10, Kf.hash kf, Kinstr.hash ki) - | IPBehavior(kf, s, a, b) -> + | IPBehavior(kf, s, a, b) -> Hashtbl.hash (11, Kf.hash kf, Kinstr.hash s, - (b.b_name:string), (a:Datatype.String.Set.t)) + (b.b_name:string), (a:Datatype.String.Set.t)) | IPReachable(kf, ki, ba) -> Hashtbl.hash(12, Extlib.may_map Kf.hash ~dft:0 kf, Kinstr.hash ki, Hashtbl.hash ba) @@ -418,7 +418,7 @@ include Datatype.Make_with_collections let rec equal p1 p2 = let eq_bhv (f1,ki1,b1) (f2,ki2,b2) = Kf.equal f1 f2 && Kinstr.equal ki1 ki2 - && + && (match b1, b2 with | Id_loop ca1, Id_loop ca2 -> ca1.annot_id = ca2.annot_id @@ -435,7 +435,7 @@ include Datatype.Make_with_collections | IPAxiomatic(s1, _), IPAxiomatic(s2, _) | IPTypeInvariant(s1,_,_,_), IPTypeInvariant(s2,_,_,_) | IPGlobalInvariant(s1,_,_), IPGlobalInvariant(s2,_,_) - | IPLemma (s1,_,_,_,_), IPLemma (s2,_,_,_,_) -> + | IPLemma (s1,_,_,_,_), IPLemma (s2,_,_,_,_) -> Datatype.String.equal s1 s2 | IPCodeAnnot(_,_,ca1), IPCodeAnnot(_,_,ca2) -> ca1.annot_id = ca2.annot_id @@ -494,7 +494,7 @@ include Datatype.Make_with_collections Datatype.Int.compare i1 i2 | IPCodeAnnot(_,_,ca1), IPCodeAnnot(_,_,ca2) -> Datatype.Int.compare ca1.annot_id ca2.annot_id - | IPBehavior(f1, k1, a1, b1), IPBehavior(f2, k2, a2, b2) -> + | IPBehavior(f1, k1, a1, b1), IPBehavior(f2, k2, a2, b2) -> cmp_bhv (f1, k1, Id_contract (a1,b1)) (f2, k2, Id_contract (a2,b2)) | IPComplete(f1, ki1, a1, x1), IPComplete(f2, ki2, a2, x2) | IPDisjoint(f1, ki1, a1, x1), IPDisjoint(f2, ki2, a2, x2) -> @@ -518,17 +518,17 @@ include Datatype.Make_with_collections if n = 0 then Kinstr.compare ki1 ki2 else n | IPReachable(kf1, ki1, ba1), IPReachable(kf2, ki2, ba2) -> let n = Extlib.opt_compare Kf.compare kf1 kf2 in - if n = 0 then + if n = 0 then let n = Kinstr.compare ki1 ki2 in if n = 0 then Pervasives.compare ba1 ba2 else n - else + else n | IPAxiom (s1,_,_,_,_), IPAxiom (s2,_,_,_,_) | IPAxiomatic(s1, _), IPAxiomatic(s2, _) | IPTypeInvariant(s1,_,_,_), IPTypeInvariant(s2,_,_,_) | IPLemma (s1,_,_,_,_), IPLemma (s2,_,_,_,_) -> Datatype.String.compare s1 s2 - | IPOther(s1,le1), IPOther(s2,le2) -> + | IPOther(s1,le1), IPOther(s2,le2) -> let s = Datatype.String.compare s1 s2 in if s <> 0 then s else other_loc_compare le1 le2 | IPAllocation (f1, ki1, b1, _), IPAllocation (f2, ki2, b2, _) -> @@ -764,19 +764,26 @@ let rec pretty_debug fmt = function Cil_types_debug.pp_string s pp_other_loc ol -module Names = struct - module NamesTbl = +(* -------------------------------------------------------------------------- *) +(* --- Legacy Property Names --- *) +(* -------------------------------------------------------------------------- *) + +(* Shall be deprecated *) +module LegacyNames = +struct + + module NamesTbl = State_builder.Hashtbl(Datatype.String.Hashtbl)(Datatype.Int) (struct let name = "PropertyNames" - let dependencies = [ ] + let dependencies = [ ] let size = 97 end) module IndexTbl = State_builder.Hashtbl(Hashtbl)(Datatype.String) (struct let name = "PropertyIndex" - let dependencies = [ Ast.self; NamesTbl.self; Globals.Functions.self ] + let dependencies = [ Ast.self; NamesTbl.self; Globals.Functions.self ] let size = 97 end) @@ -793,10 +800,10 @@ module Names = struct match l with [] -> () | _ -> Format.fprintf fmt "_%a" (Pretty_utils.pp_list ~sep:"_" Format.pp_print_string) l - - let pp_code_annot_names fmt ca = + + let pp_code_annot_names fmt ca = match ca.annot_content with - | AAssert(for_bhv,named_pred) | AInvariant(for_bhv,_,named_pred) -> + | AAssert(for_bhv,named_pred) | AInvariant(for_bhv,_,named_pred) -> let pp_for_bhv fmt l = match l with | [] -> () @@ -806,15 +813,15 @@ module Names = struct Format.fprintf fmt "%a%a" pp_names named_pred.pred_name pp_for_bhv for_bhv | AVariant(term, _) -> pp_names fmt term.term_name | _ -> () (* TODO : add some more names ? *) - - let behavior_prefix b = + + let behavior_prefix b = if Cil.is_default_behavior b then "" else b.b_name ^ "_" - let variant_suffix = function + let variant_suffix = function | (_,Some s) -> s | _ -> "" - + let string_of_termination_kind = function Normal -> "post" | Exits -> "exit" @@ -836,19 +843,19 @@ module Names = struct | OLStmt (kf,s) -> kf_prefix kf ^ stmt_prefix s | OLGlob _ -> "global_" - let predicate_kind_txt pk ki = + let predicate_kind_txt pk ki = let name = match pk with | PKRequires b -> (behavior_prefix b) ^ "pre" | PKAssumes b -> (behavior_prefix b) ^ "assume" | PKEnsures (b, tk) -> (behavior_prefix b) ^ string_of_termination_kind tk - | PKTerminates -> "term" + | PKTerminates -> "term" in (ki_prefix ki) ^ name let active_prefix fmt a = let print_one a = Format.fprintf fmt "_%s" a in Datatype.String.Set.iter print_one a - + let rec id_prop_txt p = match p with | IPPredicate (pk,kf,ki,idp) -> Format.asprintf "%s%s%a" @@ -858,7 +865,7 @@ module Names = struct Format.asprintf "%sextended%a" (extended_loc_prefix le) pp_names [name] | IPCodeAnnot (kf,_, ca) -> let name = match ca.annot_content with - | AAssert _ -> "assert" + | AAssert _ -> "assert" | AInvariant (_,true,_) -> "loop_inv" | AInvariant _ -> "inv" | APragma _ -> "pragma" @@ -885,7 +892,7 @@ module Names = struct name pp_names named_pred.pred_name | IPAllocation (kf, ki, (Id_contract (a,b)), _) -> Format.asprintf "%s%s%a%salloc" - (kf_prefix kf) (ki_prefix ki) active_prefix a (behavior_prefix b) + (kf_prefix kf) (ki_prefix ki) active_prefix a (behavior_prefix b) | IPAllocation (kf, Kstmt _s, (Id_loop ca), _) -> Format.asprintf "%sloop_alloc%a" (kf_prefix kf) pp_code_annot_names ca @@ -897,7 +904,7 @@ module Names = struct Format.asprintf "%sloop_assign%a" (kf_prefix kf) pp_code_annot_names ca | IPAssigns _ -> assert false - | IPFrom (_, _, _, (out,_)) -> + | IPFrom (_, _, _, (out,_)) -> "from_id_"^(string_of_int (out.it_id)) | IPReachable _ -> "reachable_stmt" | IPBehavior(kf, ki, a, b) -> @@ -910,7 +917,7 @@ module Names = struct | IPOther(s,le) -> other_loc_prefix le ^ s (** function used to normalize basename *) - let normalize_basename s = + let normalize_basename s = let is_valid_char_id = function | 'a'..'z' | 'A' .. 'Z' | '0' .. '9' | '_' -> true | _ -> false @@ -926,7 +933,7 @@ module Names = struct (** returns the name that should be returned by the function [get_prop_name_id] if the given property has [name] as basename. That name is reserved so that [get_prop_name_id prop] can never return an identical name. *) let reserve_name_id basename = let basename = normalize_basename basename in - try + try let speed_up_start = NamesTbl.find basename in (* this basename is already reserved *) let n,unique_name = Extlib.make_unique_name NamesTbl.mem ~sep:"_" ~start:speed_up_start basename @@ -935,7 +942,7 @@ module Names = struct with Not_found -> (* first time that basename is reserved *) NamesTbl.add basename 2 ; basename - + (** returns the basename of the property. *) let get_prop_basename ip = normalize_basename (id_prop_txt ip) @@ -949,19 +956,205 @@ module Names = struct IndexTbl.add ip unique_name ; unique_name -(* - (** force computation of the unique name identifying the property *) - let make_prop_name_id ip = - ignore (get_prop_name_id ip) - - let remove_prop_name_id ip = - try - ignore (IndexTbl.find ip); - IndexTbl.remove ip - with Not_found -> () -*) end +(* -------------------------------------------------------------------------- *) +(* --- Property Names --- *) +(* -------------------------------------------------------------------------- *) + +module Names = +struct + + open Cil_types + + type part = + | B of behavior + | K of kernel_function + | A of string + | I of identified_predicate + | P of predicate + | T of term + | S of stmt + + let add_part buffer = function + | B bhv -> + if not (Cil.is_default_behavior bhv) + then Sanitizer.add_string buffer bhv.b_name + | K kf -> Sanitizer.add_string buffer (Kernel_function.get_name kf) + | A msg -> Sanitizer.add_string buffer msg + | S stmt -> Sanitizer.add_string buffer (Printf.sprintf "s%d" stmt.sid) + | I { ip_content = { pred_name = a } } + | P { pred_name = a } | T { term_name = a } -> Sanitizer.add_list buffer a + + let rec add_parts buffer = function + | [] -> () + | p::ps -> + let open Sanitizer in + add_part buffer p ; add_sep buffer ; add_parts buffer ps + + let rec parts_of_property ip : part list = + match ip with + | IPBehavior(kf,Kglobal,_,bhv) -> + [ K kf ; B bhv ] + | IPBehavior(kf,Kstmt s,_,bhv) -> + [ K kf ; B bhv ; S s ] + + | IPPredicate (PKAssumes bhv,kf,_,ip) -> + [ K kf ; B bhv ; A "assumes" ; I ip ] + | IPPredicate (PKRequires bhv,kf,_,ip) -> + [ K kf ; B bhv ; A "requires" ; I ip ] + | IPPredicate (PKEnsures(bhv,Normal),kf,_,ip) -> + [ K kf ; B bhv ; A "ensures" ; I ip ] + | IPPredicate (PKEnsures(bhv,Exits),kf,_,ip) -> + [ K kf ; B bhv ; A "exits" ; I ip ] + | IPPredicate (PKEnsures(bhv,Breaks),kf,_,ip) -> + [ K kf ; B bhv ; A "breaks" ; I ip ] + | IPPredicate (PKEnsures(bhv,Continues),kf,_,ip) -> + [ K kf ; B bhv ; A "continues" ; I ip ] + | IPPredicate (PKEnsures(bhv,Returns),kf,_,ip) -> + [ K kf ; B bhv ; A "returns" ; I ip ] + | IPPredicate (PKTerminates,kf,_,ip) -> + [ K kf ; A "terminates" ; I ip ] + + | IPAllocation(kf,_,Id_contract(_,bhv),_) -> + [ K kf ; B bhv ; A "allocates" ] + | IPAllocation(kf,_,Id_loop _,_) -> + [ K kf ; A "loop_allocates" ] + + | IPAssigns(kf,_,Id_contract(_,bhv),_) -> + [ K kf ; B bhv ; A "assigns" ] + + | IPAssigns(kf,_,Id_loop _,_) -> + [ K kf ; A "loop_assigns" ] + + | IPFrom(kf,_,Id_contract(_,bhv),_) -> + [ K kf ; B bhv ; A "assigns_from" ] + + | IPFrom(kf,_,Id_loop _,_) -> + [ K kf ; A "loop_assigns_from" ] + + | IPDecrease (kf,_,None,_) -> + [ K kf ; A "variant" ] + + | IPDecrease (kf,_,Some _,_) -> + [ K kf ; A "loop_variant" ] + + | IPCodeAnnot (kf,stmt, { annot_content = AStmtSpec _ } ) -> + [ K kf ; A "contract" ; S stmt ] + + | IPCodeAnnot (kf,stmt, { annot_content = APragma _ } ) -> + [ K kf ; A "pragma" ; S stmt ] + + | IPCodeAnnot (kf,stmt, { annot_content = AExtended(_,_,(_,clause,_,_)) } ) + -> [ K kf ; A clause ; S stmt ] + + | IPCodeAnnot (kf,_, { annot_content = AAssert(_,p) } ) -> + [K kf ; A "assert" ; P p ] + | IPCodeAnnot (kf,_, { annot_content = AInvariant(_,true,p) } ) -> + [K kf ; A "loop_invariant" ; P p ] + | IPCodeAnnot (kf,_, { annot_content = AInvariant(_,false,p) } ) -> + [K kf ; A "invariant" ; P p ] + | IPCodeAnnot (kf,_, { annot_content = AVariant(e,_) } ) -> + [K kf ; A "loop_variant" ; T e ] + | IPCodeAnnot (kf,_, { annot_content = AAssigns _ } ) -> + [K kf ; A "loop_assigns" ] + | IPCodeAnnot (kf,_, { annot_content = AAllocation _ } ) -> + [K kf ; A "loop_allocates" ] + + | IPComplete (kf,_,_,cs) -> + (K kf :: A "complete" :: List.map (fun a -> A a) cs) + | IPDisjoint(kf,_,_,cs) -> + (K kf :: A "disjoint" :: List.map (fun a -> A a) cs) + + | IPReachable (None, _, _) -> [] + | IPReachable (Some kf,Kglobal,Before) -> + [ K kf ; A "reachable" ] + | IPReachable (Some kf,Kglobal,After) -> + [ K kf ; A "reachable_post" ] + | IPReachable (Some kf,Kstmt s,Before) -> + [ K kf ; A "reachable" ; S s ] + | IPReachable (Some kf,Kstmt s,After) -> + [ K kf ; A "reachable_after" ; S s ] + + | IPAxiomatic _ + | IPAxiom _ -> [] + | IPLemma(name,_,_,p,_) -> + [ A "lemma" ; A name ; P p ] + + | IPTypeInvariant(name,_,_,_) + | IPGlobalInvariant(name,_,_) -> + [ A "invariant" ; A name ] + + | IPOther(name,OLGlob _) -> [ A name ] + | IPOther(name,OLContract kf) -> [ K kf ; A name ] + | IPOther(name,OLStmt(kf,s)) -> [ K kf ; A name ; S s ] + + | IPExtended(ELGlob,(_,name,_,_)) -> [ A name ] + | IPExtended(ELContract(kf),(_,name,_,_)) -> [ K kf ; A name ] + | IPExtended(ELStmt(kf,s),(_,name,_,_)) -> [ K kf ; A name ; S s ] + + | IPPropertyInstance (_, _, _, ip) -> parts_of_property ip + + let get_prop_basename ?truncate ip = + let buffer = + match truncate with + | None -> Sanitizer.create ~truncate:false 20 + | Some n -> Sanitizer.create ~truncate:true n + in + add_parts buffer (parts_of_property ip) ; + Sanitizer.contents buffer + + (* Numerotation of properties with same basename *) + module NamesTbl = + State_builder.Hashtbl(Datatype.String.Hashtbl)(Datatype.Int) + (struct + let name = "Property.Names.NamesTbl" + let dependencies = [ ] + let size = 97 + end) + + (* Computed name of properties *) + module IndexTbl = (* indexed by Property *) + State_builder.Hashtbl(Hashtbl)(Datatype.String) + (struct + let name = "Property.Names.IndexTbl" + let dependencies = [ Ast.self; NamesTbl.self; Globals.Functions.self ] + let size = 97 + end) + + let self = IndexTbl.self + + let compute_name_id basename = + try + let speed_up_start = NamesTbl.find basename in + (* this basename is already reserved *) + let n,unique_name = Extlib.make_unique_name NamesTbl.mem ~sep:"_" ~start:speed_up_start basename + in NamesTbl.replace basename (succ n) ; (* to speed up Extlib.make_unique_name for next time *) + unique_name + with Not_found -> (* first time that basename is reserved *) + NamesTbl.add basename 2 ; + basename + + let get_prop_name_id ip = + try IndexTbl.find ip + with Not_found -> (* first time we are asking for a name for that [ip] *) + let basename = get_prop_basename ip in + let unique_name = compute_name_id basename in + IndexTbl.add ip unique_name ; + unique_name + +end + +(* -------------------------------------------------------------------------- *) +(* --- Smart Constructors --- *) +(* -------------------------------------------------------------------------- *) + + +(* -------------------------------------------------------------------------- *) +(* --- Smart Constructors --- *) +(* -------------------------------------------------------------------------- *) + + let ip_other s le = IPOther(s,le) let ip_reachable_stmt kf ki = IPReachable(Some kf, Kstmt ki, Before) @@ -976,9 +1169,9 @@ let ip_reachable_ppt p = | IPDecrease _ | IPPropertyInstance _ | IPOther _ | IPTypeInvariant _ | IPGlobalInvariant _ -> Before - | IPPredicate(PKEnsures _, _, _, _) | IPAssigns _ | IPFrom _ + | IPPredicate(PKEnsures _, _, _, _) | IPAssigns _ | IPFrom _ | IPExtended _ - | IPBehavior _ + | IPBehavior _ -> After | IPReachable _ -> Kernel.fatal "IPReachable(IPReachable _) is not possible" in @@ -1012,7 +1205,7 @@ let ip_assigns_of_behavior kf st ~active b = let a = Datatype.String.Set.of_list active in ip_of_assigns kf st (Id_contract (a,b)) b.b_assigns -let ip_of_from kf st loc from = +let ip_of_from kf st loc from = match snd from with | FromAny -> None | From _ -> Some (IPFrom (kf,st, loc, from)) @@ -1021,13 +1214,13 @@ let ip_from_of_behavior kf st ~active b = match b.b_assigns with | WritesAny -> [] | Writes l -> - let treat_from acc (out, froms) = match froms with + let treat_from acc (out, froms) = match froms with | FromAny -> acc | From _ -> let a = Datatype.String.Set.of_list active in let ip = Extlib.the (ip_of_from kf st (Id_contract (a,b)) (out, froms)) - in + in ip :: acc in List.fold_left treat_from [] l @@ -1128,10 +1321,10 @@ let ip_of_code_annot kf stmt ca = | AAssert _ | AInvariant _ -> [ IPCodeAnnot(kf, stmt, ca) ] | AStmtSpec (active,s) -> ip_of_spec kf ki active s | AVariant t -> [ IPDecrease (kf,ki,(Some ca),t) ] - | AAllocation _ -> + | AAllocation _ -> Extlib.list_of_opt (ip_allocation_of_code_annot kf ki ca) @ ip_from_of_code_annot kf ki ca - | AAssigns _ -> + | AAssigns _ -> Extlib.list_of_opt (ip_assigns_of_code_annot kf ki ca) @ ip_from_of_code_annot kf ki ca | APragma p when Logic_utils.is_property_pragma p -> @@ -1150,7 +1343,7 @@ let ip_of_code_annot_single kf stmt ca = match ip_of_code_annot kf stmt ca with raise (Invalid_argument "ip_of_code_annot_single") | [ ip ] -> ip | ip :: _ -> - Kernel.warning + Kernel.warning "@[choosing one of multiple properties associated \ to code annotation@\n%a@]" Cil_printer.pp_code_annotation ca; @@ -1161,12 +1354,12 @@ let ip_of_code_annot_single kf stmt ca = match ip_of_code_annot kf stmt ca with let ip_of_global_annotation a = let once = true in let rec aux acc = function - | Daxiomatic(name, l, _, _) -> + | Daxiomatic(name, l, _, _) -> let ppts = List.fold_left aux [] l in IPAxiomatic(name, ppts) :: (ppts @ acc) | Dlemma(name, true, a, b, c, _, d) -> ip_axiom (name,a,b,c,d) :: acc | Dlemma(name, false, a, b, c, _, d) -> ip_lemma (name,a,b,c,d) :: acc - | Dinvariant(l, loc) -> + | Dinvariant(l, loc) -> let pred = match l.l_body with | LBpred p -> p | _ -> assert false @@ -1190,8 +1383,8 @@ let ip_of_global_annotation a = (* TODO *) Kernel.warning ~once "ignoring status of custom annotation"; acc - | Dmodel_annot _ | Dfun_or_pred _ | Dvolatile _ | Dtype _ -> - (* no associated status for these annotations *) + | Dmodel_annot _ | Dfun_or_pred _ | Dvolatile _ | Dtype _ -> + (* no associated status for these annotations *) acc | Dextended(ext,_,_) -> IPExtended (ELGlob, ext) :: acc in @@ -1199,7 +1392,7 @@ let ip_of_global_annotation a = let ip_of_global_annotation_single a = match ip_of_global_annotation a with | [] -> None - | ip :: _ -> + | ip :: _ -> (* the first one is the good one, see ip_of_global_annotation *) Some ip diff --git a/src/kernel_services/ast_data/property.mli b/src/kernel_services/ast_data/property.mli index 9a852748600d19d00d7398fa09b4bfda310718dc..61f401c12a113f0abec2eebf75176897db61c6cb 100644 --- a/src/kernel_services/ast_data/property.mli +++ b/src/kernel_services/ast_data/property.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -164,15 +164,15 @@ val pretty_predicate_kind: Format.formatter -> predicate_kind -> unit val pretty_debug: Format.formatter -> identified_property -> unit (** Internal use only. - @since Frama-C+dev *) + @since 18.0-Argon *) (** create a Loc_contract or Loc_stmt depending on the kinstr. - @since Frama-C+dev + @since 18.0-Argon *) val e_loc_of_stmt: kernel_function -> kinstr -> extended_loc (** create a Loc_contract or Loc_stmt depending on the kinstr. - @since Frama-C+dev + @since 18.0-Argon *) val o_loc_of_stmt: kernel_function -> kinstr -> other_loc @@ -184,7 +184,7 @@ val o_loc_of_stmt: kernel_function -> kinstr -> other_loc val ip_other: string -> other_loc -> identified_property (** Create a non-standard property. @since Nitrogen-20111001 - @modify Frama-C+dev Refine localisation argument + @modify 18.0-Argon Refine localisation argument *) val ip_reachable_stmt: kernel_function -> stmt -> identified_property @@ -223,7 +223,7 @@ val ip_of_ensures: (** Extended property. @since Chlorine-20180501 - @modify Frama-C+dev refine localisation argument + @modify 18.0-Argon refine localisation argument *) val ip_of_extended: extended_loc -> acsl_extension -> identified_property @@ -461,23 +461,32 @@ val source: identified_property -> Filepath.position option (** {2 names} *) (**************************************************************************) + +(** @since Frama-C+dev deprecated old naming scheeme, + to be removed in future versions. *) +module LegacyNames : +sig + val self: State.t + val get_prop_basename: identified_property -> string + val get_prop_name_id: identified_property -> string +end + (** @since Oxygen-20120901 *) -module Names: sig +module Names : +sig val self: State.t val get_prop_name_id: identified_property -> string - (** returns a unique name identifying the property. - This name is built from the basename of the property. *) - - val get_prop_basename: identified_property -> string - (** returns the basename of the property. *) + (** returns a unique name identifying the property. + This name is built from the basename of the property. + @modify Frama-C+dev new naming scheme, Cf. LegacyNames + *) - val reserve_name_id: string -> string -(** returns the name that should be returned by the function - [get_prop_name_id] if the given property has [name] as basename. That name - is reserved so that [get_prop_name_id prop] can never return an identical - name. *) + val get_prop_basename: ?truncate:int -> identified_property -> string + (** returns the basename of the property. + @modify Frama-C+dev additional truncation parameter + *) end diff --git a/src/kernel_services/ast_data/property_status.ml b/src/kernel_services/ast_data/property_status.ml index cb1d6cebb3f268c8bb14e190e18002db612b4193..10e25594bfed19cfedf49dca7ae9938475b680cf 100644 --- a/src/kernel_services/ast_data/property_status.ml +++ b/src/kernel_services/ast_data/property_status.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/ast_data/property_status.mli b/src/kernel_services/ast_data/property_status.mli index 4b78fabe9f20fbb21190946d03272b490f635037..7a6ea9770f65e1a447bb408dd4fe4e1114246186 100644 --- a/src/kernel_services/ast_data/property_status.mli +++ b/src/kernel_services/ast_data/property_status.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/ast_data/statuses_by_call.ml b/src/kernel_services/ast_data/statuses_by_call.ml index 03d33c01f5dd0e9eec5aaae7d791e16612063a9c..e5506a00785c6ed8f974d911d05ab7b3e730d42a 100644 --- a/src/kernel_services/ast_data/statuses_by_call.ml +++ b/src/kernel_services/ast_data/statuses_by_call.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/ast_data/statuses_by_call.mli b/src/kernel_services/ast_data/statuses_by_call.mli index 9479c3a2f15e0586eb5113a1670d25a0b6bfaafe..7894fc6a191b84f94d0d5164ad3c255553f30107 100644 --- a/src/kernel_services/ast_data/statuses_by_call.mli +++ b/src/kernel_services/ast_data/statuses_by_call.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/ast_printing/cabs_debug.ml b/src/kernel_services/ast_printing/cabs_debug.ml index 758cfab2983cb7a73821eee32e09b288259fe31a..25dca2c6207f8d27ae96479aed86d11ac27fba69 100644 --- a/src/kernel_services/ast_printing/cabs_debug.ml +++ b/src/kernel_services/ast_printing/cabs_debug.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/ast_printing/cabs_debug.mli b/src/kernel_services/ast_printing/cabs_debug.mli index 969d3a6e3fe7e4715503728c4aaec78e2456033a..ba13a2c40491768333012a2324db26646c74ded0 100644 --- a/src/kernel_services/ast_printing/cabs_debug.mli +++ b/src/kernel_services/ast_printing/cabs_debug.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/ast_printing/cil_descriptive_printer.ml b/src/kernel_services/ast_printing/cil_descriptive_printer.ml index 79f7fa7e3be44f372873731cbbdf0c13229bcbd3..f4c2885c06426178197a2e74108e4b3f5fc03843 100644 --- a/src/kernel_services/ast_printing/cil_descriptive_printer.ml +++ b/src/kernel_services/ast_printing/cil_descriptive_printer.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/ast_printing/cil_descriptive_printer.mli b/src/kernel_services/ast_printing/cil_descriptive_printer.mli index 1d2f0ddc685d6905a4980e7a5b23c9a62f52844f..c3e0e0ba2cdcb7d42fe7daefde26a796e9ec5396 100644 --- a/src/kernel_services/ast_printing/cil_descriptive_printer.mli +++ b/src/kernel_services/ast_printing/cil_descriptive_printer.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/ast_printing/cil_printer.ml b/src/kernel_services/ast_printing/cil_printer.ml index b4c6b964b73062e25b193a279e2a4d32c9f2e4c5..583f672121c9f591f3c6691ecf4d37bf5a1726a9 100644 --- a/src/kernel_services/ast_printing/cil_printer.ml +++ b/src/kernel_services/ast_printing/cil_printer.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -495,7 +495,7 @@ class cil_printer () = object (self) method private current_stmt = try Some (Stack.top current_stmt) with Stack.Empty -> None - method private may_be_skipped s = s.labels = [] + method private may_be_skipped s = s.labels = [] && s.sattr = [] method location fmt loc = Format.fprintf fmt "%a" Filepath.pp_pos (fst loc) @@ -1058,7 +1058,7 @@ class cil_printer () = object (self) pp_open_hvbox fmt 0; self#stmt_labels fmt s; (* print the statement. *) - if Cil.is_skip s.skind && not s.ghost then begin + if Cil.is_skip s.skind && not s.ghost && s.sattr = [] then begin if verbose || s.labels <> [] then fprintf fmt ";" end else begin let was_ghost = is_ghost in @@ -1068,7 +1068,7 @@ class cil_printer () = object (self) Format.fprintf fmt "%t %a " (fun fmt -> self#pp_open_annotation fmt) self#pp_acsl_keyword "ghost" end; - self#stmtkind next fmt s.skind ; + self#stmtkind s.sattr next fmt s.skind ; if display_ghost then begin is_ghost <- false; self#pp_close_annotation fmt @@ -1234,7 +1234,7 @@ class cil_printer () = object (self) fprintf fmt "@[@<0>\n@<0>%s@<0> @<0>%d@<0> @<0>%s@]@\n" directive (fst l).Filepath.pos_lnum filename - method stmtkind (next: stmt) fmt = function + method stmtkind sattr (next: stmt) fmt = function | UnspecifiedSequence seq -> let ctxt = match self#current_stmt with None -> Other | Some s -> Stmt_block s @@ -1374,6 +1374,11 @@ class cil_printer () = object (self) Pretty_utils.pp_list ~sep:"@\n" self#code_annotation fmt a; Format.fprintf fmt "@ %t" (fun fmt -> self#pp_close_annotation fmt); end; + let pp_sattr fmt = + if sattr <> [] && Kernel.is_debug_key_enabled Kernel.dkey_print_attrs + then Format.fprintf fmt "@[/*%a */ @]" self#attributes sattr + else Format.ifprintf fmt "" + in ((* Maybe the first thing is a conditional. Turn it into a WHILE *) try let rec skipEmpty = function @@ -1409,15 +1414,17 @@ class cil_printer () = object (self) [{ skind=Block b} as s ] when self#may_be_skipped s -> b | _ -> { b with bstmts = bodystmts } in - Format.fprintf fmt "%a@[<v 2>%a (%a) %a@]" + Format.fprintf fmt "%a@[<v 2>%a (%a) %t%a@]" (fun fmt -> self#line_directive fmt) l self#pp_keyword "while" self#exp term + pp_sattr (self#unboxed_block Other) b; with Not_found -> - Format.fprintf fmt "%a@[<v 2>%a (1) %a@]" + Format.fprintf fmt "%a@[<v 2>%a (1) %t%a@]" (fun fmt -> self#line_directive fmt) l self#pp_keyword "while" + pp_sattr (self#unboxed_block Other) b); Format.pp_close_box fmt () diff --git a/src/kernel_services/ast_printing/cil_printer.mli b/src/kernel_services/ast_printing/cil_printer.mli index 8e01bb196cc2c097dc2ca6abbe95f7557202004b..1eb890808ea36782f8e71e5e506f5211a25df895 100644 --- a/src/kernel_services/ast_printing/cil_printer.mli +++ b/src/kernel_services/ast_printing/cil_printer.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/ast_printing/cil_types_debug.ml b/src/kernel_services/ast_printing/cil_types_debug.ml index e07632dee25ef9a048e3501d6f9e27f94ab6c2e9..8a0c8c33b31b0bc6d935ae21281db06035f22010 100644 --- a/src/kernel_services/ast_printing/cil_types_debug.ml +++ b/src/kernel_services/ast_printing/cil_types_debug.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/ast_printing/cil_types_debug.mli b/src/kernel_services/ast_printing/cil_types_debug.mli index ffaae353ea05ad8577a851ad210e446430f11804..e8b52c76c1c5ebdde2b17623a18563afc710a189 100644 --- a/src/kernel_services/ast_printing/cil_types_debug.mli +++ b/src/kernel_services/ast_printing/cil_types_debug.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/ast_printing/description.ml b/src/kernel_services/ast_printing/description.ml index 4dbb21c9455022dfd23d5cc4c152f3210b83bf30..c4fe1d6cdfd06e13ccd79cae4b4d75a690744bb7 100644 --- a/src/kernel_services/ast_printing/description.ml +++ b/src/kernel_services/ast_printing/description.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/ast_printing/description.mli b/src/kernel_services/ast_printing/description.mli index 9ec78a06ac1e9970b33e2dbb1b52c56d8d8b3f42..a27280f88ac6fee91de4764000671b93f4d5b63b 100644 --- a/src/kernel_services/ast_printing/description.mli +++ b/src/kernel_services/ast_printing/description.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -53,11 +53,11 @@ val pp_property : Format.formatter -> Property.t -> unit val property_kind_and_node: Property.t -> (string * string) option (** Returns separately the kind and the node of a property. Returns None for unsupported property kinds. Used to output properties in csv files. - @since Frama-C+dev *) + @since 18.0-Argon *) val status_feedback: Property_status.Feedback.t -> string (** User-friendly description of property statuses. - @since Frama-C+dev *) + @since 18.0-Argon *) type kf = [ `Always | `Never | `Context of kernel_function ] diff --git a/src/kernel_services/ast_printing/logic_print.ml b/src/kernel_services/ast_printing/logic_print.ml index fa85c594c505c6be0a885e2c3d72211fb55e1e16..c81c74c97ee67bd26927d81afb46bd787b7efb7b 100644 --- a/src/kernel_services/ast_printing/logic_print.ml +++ b/src/kernel_services/ast_printing/logic_print.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) diff --git a/src/kernel_services/ast_printing/logic_print.mli b/src/kernel_services/ast_printing/logic_print.mli index 40f8d8903d74ac7048c38d6bcf2e454c3586d3ea..db94c84ee9d5a5e40c36f53ed38b5d7e171cdefb 100644 --- a/src/kernel_services/ast_printing/logic_print.mli +++ b/src/kernel_services/ast_printing/logic_print.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) diff --git a/src/kernel_services/ast_printing/printer.ml b/src/kernel_services/ast_printing/printer.ml index 61f6615b15fa27c804ac4048523ac2f2834ff36f..27c8a438e075f0d31e60e9db083b7402677e1c88 100644 --- a/src/kernel_services/ast_printing/printer.ml +++ b/src/kernel_services/ast_printing/printer.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -244,7 +244,7 @@ class printer_with_annot () = object (self) self#pp_acsl_keyword "ghost"; is_ghost <- true end; - self#stmtkind next fmt s.skind; + self#stmtkind s.sattr next fmt s.skind; if not was_ghost && s.ghost then begin self#pp_close_annotation ~suf:"@,*/@]" fmt; is_ghost <- false; @@ -257,7 +257,7 @@ class printer_with_annot () = object (self) (fun fmt -> self#pp_open_annotation ~block:false fmt) self#code_annotation a (fun fmt -> self#pp_close_annotation ~block:false fmt) - (self#stmtkind next) s.skind; + (self#stmtkind s.sattr next) s.skind; | _ -> let loop_annot, stmt_annot = List.partition Logic_utils.is_loop_annot all_annot @@ -266,11 +266,11 @@ class printer_with_annot () = object (self) self#loop_annotations fmt loop_annot; pGhost fmt s) end else - self#stmtkind next fmt s.skind; + self#stmtkind s.sattr next fmt s.skind; Format.pp_close_box fmt () - method! stmtkind (next: stmt) fmt skind = - super#stmtkind next fmt + method! stmtkind sattr (next: stmt) fmt skind = + super#stmtkind sattr next fmt begin match skind with | Goto({ contents = { skind = (Return _) as return }},_) diff --git a/src/kernel_services/ast_printing/printer.mli b/src/kernel_services/ast_printing/printer.mli index 7b43534d83e8df68802b7e0483c3f28911392822..2f8f4723c892681ebcbddc0439ec7c79c67c8ca9 100644 --- a/src/kernel_services/ast_printing/printer.mli +++ b/src/kernel_services/ast_printing/printer.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/ast_printing/printer_api.mli b/src/kernel_services/ast_printing/printer_api.mli index 205fb62056a95f59cbe6dcd760dbf41a70a29253..979b7389058af5a4cb8b1f42a34f53f373a00768 100644 --- a/src/kernel_services/ast_printing/printer_api.mli +++ b/src/kernel_services/ast_printing/printer_api.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -190,7 +190,7 @@ class type extensible_printer_type = object last {!Cil_types.stmt} argument. The initial {!Cil_types.stmt} argument records the statement which follows the one being printed. *) - method stmtkind: stmt -> Format.formatter -> stmtkind -> unit + method stmtkind: attributes -> stmt -> Format.formatter -> stmtkind -> unit (** Print a statement kind. The code to be printed is given in the {!Cil_types.stmtkind} argument. The initial {!Cil_types.stmt} argument records the statement which follows the one being printed; diff --git a/src/kernel_services/ast_printing/printer_builder.ml b/src/kernel_services/ast_printing/printer_builder.ml index 576662a222d1f572e61e9f8813ad62a414523ffc..c4a67ab0372e14ea5ffa2398b6e092a3040a89e9 100644 --- a/src/kernel_services/ast_printing/printer_builder.ml +++ b/src/kernel_services/ast_printing/printer_builder.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/ast_printing/printer_builder.mli b/src/kernel_services/ast_printing/printer_builder.mli index 697ccc416295f47c8fbf61e6f31567d662b08b53..6d6f3a670c6fb5d94161938dcf169e293ca03cb7 100644 --- a/src/kernel_services/ast_printing/printer_builder.mli +++ b/src/kernel_services/ast_printing/printer_builder.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/ast_queries/ast_info.ml b/src/kernel_services/ast_queries/ast_info.ml index 40fd2abfac6e3f5b8fca0620e24b5a7879fe10ca..56fe55253d37e7c986f3157ef79b830d844a923d 100644 --- a/src/kernel_services/ast_queries/ast_info.ml +++ b/src/kernel_services/ast_queries/ast_info.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/ast_queries/ast_info.mli b/src/kernel_services/ast_queries/ast_info.mli index fdbba765191b76ddc390bd2ed5b54d1d57a8cf86..967ade48a3a0dc0b57e02349f6c73f56d237d0a2 100644 --- a/src/kernel_services/ast_queries/ast_info.mli +++ b/src/kernel_services/ast_queries/ast_info.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/ast_queries/cil.ml b/src/kernel_services/ast_queries/cil.ml index 9493c45605a07006f03f9a29264b86f09364cfcf..3a629307b8ffa492fd77b66c90f64fc1020c51de 100644 --- a/src/kernel_services/ast_queries/cil.ml +++ b/src/kernel_services/ast_queries/cil.ml @@ -265,7 +265,7 @@ let mkBlock (slst: stmt list) : block = let mkBlockNonScoping l = let b = mkBlock l in b.bscoping <- false; b -let mkStmt ?(ghost=false) ?(valid_sid=false) (sk: stmtkind) : stmt = +let mkStmt ?(ghost=false) ?(valid_sid=false) ?(sattr=[]) (sk: stmtkind) : stmt = { skind = sk; labels = []; (* It is better to create statements with a valid sid, so that they can @@ -274,7 +274,8 @@ let mkStmt ?(ghost=false) ?(valid_sid=false) (sk: stmtkind) : stmt = (e.g. slicing). *) sid = if valid_sid then Sid.next () else -1; succs = []; preds = []; - ghost = ghost} + ghost = ghost; + sattr = sattr;} let stmt_of_instr_list ?(loc=Location.unknown) = function | [] -> Instr (Skip loc) @@ -4212,7 +4213,7 @@ let parseIntExp ~loc repr = let mkStmtCfg ~before ~(new_stmtkind:stmtkind) ~(ref_stmt:stmt) : stmt = let new_ = { skind = new_stmtkind; labels = []; - sid = -1; succs = []; preds = []; ghost = false } + sid = -1; succs = []; preds = []; ghost = false; sattr = [] } in new_.sid <- Sid.next (); if before then begin @@ -4263,10 +4264,11 @@ let parseIntExp ~loc repr = old_preds; n - let mkEmptyStmt ?ghost ?valid_sid ?(loc=Location.unknown) () = - mkStmt ?ghost ?valid_sid (Instr (Skip loc)) + let mkEmptyStmt ?ghost ?valid_sid ?sattr ?(loc=Location.unknown) () = + mkStmt ?ghost ?valid_sid ?sattr (Instr (Skip loc)) - let mkStmtOneInstr ?ghost ?valid_sid i = mkStmt ?ghost ?valid_sid (Instr i) + let mkStmtOneInstr ?ghost ?valid_sid ?sattr i = + mkStmt ?ghost ?valid_sid ?sattr (Instr i) let dummyInstr = Asm([], ["dummy statement!!"], None, Location.unknown) let dummyStmt = mkStmt (Instr dummyInstr) @@ -4310,9 +4312,9 @@ let parseIntExp ~loc repr = let mkString ~loc s = new_exp ~loc (Const(CStr s)) - let mkWhile ~(guard:exp) ~(body: stmt list) : stmt list = + let mkLoop ?(sattr = [Attr("while", [])]) ~(guard:exp) ~(body: stmt list) : stmt list = (* Do it like this so that the pretty printer recognizes it *) - [ mkStmt ~valid_sid:true + [ mkStmt ~valid_sid:true ~sattr (Loop ([], mkBlock (mkStmt ~valid_sid:true @@ -4324,7 +4326,7 @@ let parseIntExp ~loc repr = let mkFor ~(start: stmt list) ~(guard: exp) ~(next: stmt list) ~(body: stmt list) : stmt list = (start @ - (mkWhile guard (body @ next))) + (mkLoop ~sattr:[Attr("For",[])] ~guard ~body:(body @ next))) let mkForIncr ~(iter : varinfo) ~(first: exp) ~(stopat: exp) ~(incr: exp) ~(body: stmt list) : stmt list = @@ -5032,7 +5034,7 @@ and intOfAttrparam (a:attrparam) : int option = let n = doit a in ignoreAlignmentAttrs := false; Some n - with Failure _ | SizeOfError _ -> (* Can't compile *) + with Z.Overflow | SizeOfError _ -> (* Can't compile *) ignoreAlignmentAttrs := false; None and process_aligned_attribute (pp:Format.formatter->unit) ~may_reduce attrs default_align = @@ -5307,7 +5309,7 @@ and offsetOfFieldAcc_GCC last (fi: fieldinfo) (sofar: offsetAcc) : offsetAcc = let sz' = try Integer.to_int sz - with Failure _ -> + with Z.Overflow -> raise (SizeOfError ("Array is so long that its size can't be " diff --git a/src/kernel_services/ast_queries/cil.mli b/src/kernel_services/ast_queries/cil.mli index 2b7ca72f32c254d82e1eae2640897c25f2438e1a..799986722ec0afbc0e43e5acc5cffcd8fb59c5a0 100644 --- a/src/kernel_services/ast_queries/cil.mli +++ b/src/kernel_services/ast_queries/cil.mli @@ -470,7 +470,7 @@ val isCompleteType: ?allowZeroSizeArrays:bool -> typ -> bool array member. When in gcc mode, a zero-sized array is identified with a FAM for this purpose. - @since Frama-C+dev + @since 18.0-Argon *) val has_flexible_array_member: typ -> bool @@ -542,27 +542,27 @@ val isIntegralOrPointerType: typ -> bool (** True if the argument is an integral type (i.e. integer or enum), either C or mathematical one. - @modify Frama-C+dev expands the logic type definition if necessary. *) + @modify 18.0-Argon expands the logic type definition if necessary. *) val isLogicIntegralType: logic_type -> bool (** True if the argument is a boolean type, either integral C type or mathematical boolean one. - @modify Frama-C+dev expands the logic type definition if necessary. *) + @modify 18.0-Argon expands the logic type definition if necessary. *) val isLogicBooleanType: logic_type -> bool (** True if the argument is a floating point type. *) val isFloatingType: typ -> bool (** True if the argument is a floating point type. - @modify Frama-C+dev expands the logic type definition if necessary. *) + @modify 18.0-Argon expands the logic type definition if necessary. *) val isLogicFloatType: logic_type -> bool (** True if the argument is a C floating point type or logic 'real' type. - @modify Frama-C+dev expands the logic type definition if necessary. *) + @modify 18.0-Argon expands the logic type definition if necessary. *) val isLogicRealOrFloatType: logic_type -> bool (** True if the argument is the logic 'real' type. - @modify Frama-C+dev expands the logic type definition if necessary. *) + @modify 18.0-Argon expands the logic type definition if necessary. *) val isLogicRealType: logic_type -> bool (** True if the argument is an arithmetic type (i.e. integer, enum or @@ -575,7 +575,7 @@ val isArithmeticOrPointerType: typ -> bool (** True if the argument is a logic arithmetic type (i.e. integer, enum or floating point, either C or mathematical one. - @modify Frama-C+dev expands the logic type definition if necessary. *) + @modify 18.0-Argon expands the logic type definition if necessary. *) val isLogicArithmeticType: logic_type -> bool (** True if the argument is a function type *) @@ -583,23 +583,23 @@ val isFunctionType: typ -> bool (** True if the argument is the logic function type. Expands the logic type definition if necessary. - @since Frama-C+dev *) + @since 18.0-Argon *) val isLogicFunctionType: logic_type -> bool (** True if the argument is a pointer type. *) val isPointerType: typ -> bool (** True if the argument is a function pointer type. - @since Frama-C+dev *) + @since 18.0-Argon *) val isFunPtrType: typ -> bool (** True if the argument is the logic function pointer type. Expands the logic type definition if necessary. - @since Frama-C+dev *) + @since 18.0-Argon *) val isLogicFunPtrType: logic_type -> bool (** True if the argument is the type for reified C types. - @modify Frama-C+dev expands the logic type definition if necessary. *) + @modify 18.0-Argon expands the logic type definition if necessary. *) val isTypeTagType: logic_type -> bool (** True if the argument denotes the type of ... in a variadic function. @@ -1025,7 +1025,8 @@ val appears_in_expr: varinfo -> exp -> bool if [valid_sid] is false (the default), or to a valid sid if [valid_sid] is true, and [labels], [succs] and [preds] to the empty list *) -val mkStmt: ?ghost:bool -> ?valid_sid:bool -> stmtkind -> stmt +val mkStmt: ?ghost:bool -> ?valid_sid:bool -> ?sattr:attributes -> stmtkind -> + stmt (* make the [new_stmtkind] changing the CFG relatively to [ref_stmt] *) val mkStmtCfg: before:bool -> new_stmtkind:stmtkind -> ref_stmt:stmt -> stmt @@ -1048,7 +1049,8 @@ val mkStmtCfgBlock: stmt list -> stmt (** Construct a statement consisting of just one instruction See {!Cil.mkStmt} for the signification of the optional args. *) -val mkStmtOneInstr: ?ghost:bool -> ?valid_sid:bool -> instr -> stmt +val mkStmtOneInstr: ?ghost:bool -> ?valid_sid:bool -> ?sattr:attributes -> + instr -> stmt (** Try to compress statements so as to get maximal basic blocks. * use this instead of List.@ because you get fewer basic blocks *) @@ -1057,7 +1059,8 @@ val mkStmtOneInstr: ?ghost:bool -> ?valid_sid:bool -> instr -> stmt (** Returns an empty statement (of kind [Instr]). See [mkStmt] for [ghost] and [valid_sid] arguments. @modify Neon-20130301 adds the [valid_sid] optional argument. *) -val mkEmptyStmt: ?ghost:bool -> ?valid_sid:bool -> ?loc:location -> unit -> stmt +val mkEmptyStmt: ?ghost:bool -> ?valid_sid:bool -> ?sattr:attributes -> + ?loc:location -> unit -> stmt (** A instr to serve as a placeholder *) val dummyInstr: instr @@ -1089,8 +1092,10 @@ val mkPureExpr: ?ghost:bool -> ?valid_sid:bool -> fundec:fundec -> ?loc:location -> exp -> stmt -(** Make a while loop. Can contain Break or Continue *) -val mkWhile: guard:exp -> body:stmt list -> stmt list +(** Make a loop. Can contain Break or Continue. + The kind of loop (While, For, DoWhile) is given by [sattr]; + it is a While loop if unspecified. *) +val mkLoop: ?sattr:attributes -> guard:exp -> body:stmt list -> stmt list (** Make a for loop for(i=start; i<past; i += incr) \{ ... \}. The body can contain Break but not Continue. Can be used with i a pointer @@ -1184,7 +1189,7 @@ val dropAttributes: string list -> attributes -> attributes (** a field struct marked with this attribute is known to be mutable, i.e. it can be modified even on a const object. - @since Frama-C+dev + @since 18.0-Argon *) val frama_c_mutable: string @@ -1192,7 +1197,7 @@ val frama_c_mutable: string object being initialized by the current function, which can thus assign any sub-object regardless of const status. - @since Frama-C+dev + @since 18.0-Argon *) val frama_c_init_obj: string diff --git a/src/kernel_services/ast_queries/cil_datatype.ml b/src/kernel_services/ast_queries/cil_datatype.ml index 11ee585d0ccc150d1b3c9305f0fec6314753e2ec..634eb66b2073c730f0e81b163e457b71c957c347 100644 --- a/src/kernel_services/ast_queries/cil_datatype.ml +++ b/src/kernel_services/ast_queries/cil_datatype.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -271,7 +271,8 @@ module Stmt_Id = struct sid = -1; succs = []; preds = []; - ghost = false } ] + ghost = false; + sattr = [] } ] let compare t1 t2 = Datatype.Int.compare t1.sid t2.sid let hash t1 = t1.sid let equal t1 t2 = t1.sid = t2.sid diff --git a/src/kernel_services/ast_queries/cil_datatype.mli b/src/kernel_services/ast_queries/cil_datatype.mli index 3f1a856bcb76c557b73932b07bf36f52cdc7ea92..f2552c6d88bf094febf927dafbbf53ac612336bb 100644 --- a/src/kernel_services/ast_queries/cil_datatype.mli +++ b/src/kernel_services/ast_queries/cil_datatype.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/ast_queries/cil_state_builder.ml b/src/kernel_services/ast_queries/cil_state_builder.ml index af9776fa1f9c6429425e595687642b46c4decd71..aab2fc7dc74439733b4d2251f6aea72a69ddb715 100644 --- a/src/kernel_services/ast_queries/cil_state_builder.ml +++ b/src/kernel_services/ast_queries/cil_state_builder.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/ast_queries/cil_state_builder.mli b/src/kernel_services/ast_queries/cil_state_builder.mli index cdb8546e65602f1c3fd271dde409ad55a1c8936e..933a31430eabf4b7cc235b062cc7ce243b7f4721 100644 --- a/src/kernel_services/ast_queries/cil_state_builder.mli +++ b/src/kernel_services/ast_queries/cil_state_builder.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/ast_queries/file.ml b/src/kernel_services/ast_queries/file.ml index 496c907cbec9c067b0b96a5b7d11139d09448252..eb8c87f31fb8609cf32f555fb36e40a3c18e6d71 100644 --- a/src/kernel_services/ast_queries/file.ml +++ b/src/kernel_services/ast_queries/file.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -119,7 +119,7 @@ let from_filename ?cpp f = | None -> get_preprocessor_command () | Some cpp -> cpp, cpp_opt_kind () in - (if flags = "" then cpp else cpp ^ " " ^ flags), gnu + (if flags = [] then cpp else cpp ^ " " ^ String.concat " " flags), gnu in if Filename.check_suffix f ".i" then begin NoCPP f @@ -311,9 +311,12 @@ let existing_machdep_macro () = with Not_found -> false let machdep_macro = function - | "x86_16" | "gcc_x86_16" -> "__FC_MACHDEP_X86_16" - | "x86_32" | "gcc_x86_32" -> "__FC_MACHDEP_X86_32" - | "x86_64" | "gcc_x86_64" -> "__FC_MACHDEP_X86_64" + | "x86_16" -> "__FC_MACHDEP_X86_16" + | "gcc_x86_16" -> "__FC_MACHDEP_GCC_X86_16" + | "x86_32" -> "__FC_MACHDEP_X86_32" + | "gcc_x86_32" -> "__FC_MACHDEP_GCC_X86_32" + | "x86_64" -> "__FC_MACHDEP_X86_64" + | "gcc_x86_64" -> "__FC_MACHDEP_GCC_X86_64" | "ppc_32" -> "__FC_MACHDEP_PPC_32" | "msvc_x86_64" -> "__FC_MACHDEP_MSVC_X86_64" | s -> @@ -474,7 +477,7 @@ let parse_cabs = function (* Hypothesis: the preprocessor is POSIX compliant, hence understands -I and -D. *) let include_args = - if Kernel.FramaCStdLib.get () then [Config.datadir ^ "/libc"] + if Kernel.FramaCStdLib.get () then [Config.framac_libc] else [] in let define_args = @@ -915,7 +918,7 @@ let cleanup file = method! vstmt_aux st = self#remove_lexical_annotations st; let loc = Stmt.loc st in - if Annotations.has_code_annot st || st.labels <> [] then + if Annotations.has_code_annot st || st.labels <> [] || st.sattr <> [] then keep_stmt <- Stmt.Set.add st keep_stmt; match st.skind with | Block b -> diff --git a/src/kernel_services/ast_queries/file.mli b/src/kernel_services/ast_queries/file.mli index d9a7013f5a2e5c0395c20748c23b64955fc1193b..d529d99e0f47a07a1dec138c7d4dd2197b6f48af 100644 --- a/src/kernel_services/ast_queries/file.mli +++ b/src/kernel_services/ast_queries/file.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/ast_queries/filecheck.ml b/src/kernel_services/ast_queries/filecheck.ml index c763a41600191e0275d74ac466215ea351a7e73c..d9769c7e6d957dcf0031a5bedccf8c9ecab785c4 100644 --- a/src/kernel_services/ast_queries/filecheck.ml +++ b/src/kernel_services/ast_queries/filecheck.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -1253,6 +1253,7 @@ class check ?(is_normalized=true) what : Visitor.frama_c_visitor = | None -> () | Some lv -> let tlv = Cil.typeOfLval lv in + let tlv = Cil.type_remove_qualifier_attributes tlv in if not (Cabs2cil.allow_return_collapse ~tlv ~tf:treturn) then check_abort "in call %a, cannot implicitly cast from \ function return type %a to type of %a (%a)" diff --git a/src/kernel_services/ast_queries/filecheck.mli b/src/kernel_services/ast_queries/filecheck.mli index 358e00d3cc7cec0bbafd8a68df6f9193e2fe58d5..75dc0cfa7c741b2e5574e2a45e1242b5a906b128 100644 --- a/src/kernel_services/ast_queries/filecheck.mli +++ b/src/kernel_services/ast_queries/filecheck.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/ast_queries/json_compilation_database.ko.ml b/src/kernel_services/ast_queries/json_compilation_database.ko.ml index 414499c6ddacb0ff22e34a9c94ccf0f4aff3d762..1536859cce6c7eb3cf1436e30ce370d607679892 100644 --- a/src/kernel_services/ast_queries/json_compilation_database.ko.ml +++ b/src/kernel_services/ast_queries/json_compilation_database.ko.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -31,4 +31,4 @@ let get_flags _ = "Attempt to parse json compilation database %s \ with a Frama-C compiled without Yojson support." db end; - "" + [] diff --git a/src/kernel_services/ast_queries/json_compilation_database.mli b/src/kernel_services/ast_queries/json_compilation_database.mli index f343d4a1f4cc8aed52019ce213ee41ca5b8e0b40..d6caacc0cab16d9a85050668a4b5c0bcae750d42 100644 --- a/src/kernel_services/ast_queries/json_compilation_database.mli +++ b/src/kernel_services/ast_queries/json_compilation_database.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -23,4 +23,4 @@ (** [get_flags f] returns the preprocessing flags associated to file [f] in the JSON compilation database (when enabled), or the empty string otherwise. If not empty, the flags always start with a space. *) -val get_flags : Datatype.Filepath.t -> string +val get_flags : Datatype.Filepath.t -> string list diff --git a/src/kernel_services/ast_queries/json_compilation_database.ok.ml b/src/kernel_services/ast_queries/json_compilation_database.ok.ml index 3c93f7eac0c997f2ab1b2f508a04282dbbfe7a96..851ddde5a87304e73ed6dd7c9e94d552b24a7132 100644 --- a/src/kernel_services/ast_queries/json_compilation_database.ok.ml +++ b/src/kernel_services/ast_queries/json_compilation_database.ok.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -20,10 +20,12 @@ (* *) (**************************************************************************) +module StringList = Datatype.List(Datatype.String) + module Flags = State_builder.Hashtbl (Datatype.Filepath.Hashtbl) - (Datatype.String) + (StringList) (struct let name ="JsonCompilationDatabase.Flags" let dependencies = [Kernel.JsonCompilationDatabase.self] @@ -128,7 +130,7 @@ let quote_define_argument arg = Format.sprintf "%S" arg let parse_entry ?(cwd=Sys.getcwd()) (r : Yojson.Basic.json) = let open Yojson.Basic.Util in let filename = r |> member "file" |> to_string in - let dirname = r |> member "directory" |> to_string in + let dirname = r |> member "directory" |> to_string_option |> Extlib.opt_conv "" in let path = Datatype.Filepath.of_string ~base_name:dirname filename in (* get the list of arguments, and a flag indicating if the arguments @@ -205,18 +207,28 @@ let parse_entry ?(cwd=Sys.getcwd()) (r : Yojson.Basic.json) = (* Note: the same file may be compiled several times, under different (and possibly incompatible) configurations, leading to multiple occurrences in the list. Since we cannot infer which of them is the - "right" one, we pick the first and warn the user if there are - others. *) - let flags = String.concat " " (List.rev res) in + "right" one, we replace them with the latest ones found, warning the + user if previous flags were different. *) + let flags = List.rev res in try let previous_flags = Flags.find path in if previous_flags <> flags then + let removed_flags = List.filter (fun e -> not (List.mem e previous_flags)) flags in + let removed_str = + if removed_flags = [] then "" else + Format.asprintf "@ Old flags no longer present: %a" + (Pretty_utils.pp_list ~sep:" " Format.pp_print_string) removed_flags + in + let added_flags = List.filter (fun e -> not (List.mem e flags)) previous_flags in + let added_str = + if added_flags = [] then "" else + Format.asprintf "@ New flags not previously present: %a" + (Pretty_utils.pp_list ~sep:" " Format.pp_print_string) added_flags + in Kernel.warning ~wkey:Kernel.wkey_jcdb - "@[<v>found duplicate flags for '%a'.\ - @ Previous flags: %s\ - @ New flags: %s@]" Datatype.Filepath.pretty path - previous_flags flags; - Flags.replace path flags + "@[<v>found duplicate flags for '%a', replacing old flags.%s%s@]" + Datatype.Filepath.pretty path removed_str added_str; + Flags.replace path flags with | Not_found -> Flags.add path flags @@ -250,11 +262,11 @@ let get_flags f = try let flags = Flags.find f in Kernel.feedback ~dkey:Kernel.dkey_compilation_db - "flags found for '%a': %s" Datatype.Filepath.pretty f flags; + "flags found for '%a': %a" Datatype.Filepath.pretty f StringList.pretty flags; flags with Not_found -> Kernel.feedback ~dkey:Kernel.dkey_compilation_db "no flags found for '%a'" Datatype.Filepath.pretty f; - "" + [] end - else "" + else [] diff --git a/src/kernel_services/ast_queries/logic_const.ml b/src/kernel_services/ast_queries/logic_const.ml index fba0d666986e185d8d9607a2187b1cf4ddd8f46c..61114f0c37af579d784cc9e23106db3f0ddcaed8 100644 --- a/src/kernel_services/ast_queries/logic_const.ml +++ b/src/kernel_services/ast_queries/logic_const.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) diff --git a/src/kernel_services/ast_queries/logic_const.mli b/src/kernel_services/ast_queries/logic_const.mli index a9353c9609de93781af178547bee2e7d9f68ee87..75813d76de60c4eb44c2a57a4165f2a6f74bf612 100644 --- a/src/kernel_services/ast_queries/logic_const.mli +++ b/src/kernel_services/ast_queries/logic_const.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) @@ -198,18 +198,18 @@ val pseparated: ?loc:location -> term list -> predicate (* ************************************************************************** *) (** instantiate type variables in a logic type. - @since Frama-C+dev moved from Logic_utils *) + @since 18.0-Argon moved from Logic_utils *) val instantiate : (string * logic_type) list -> logic_type -> logic_type (** @return [true] if the logic type definition can be expanded. - @since Frama-C+dev *) + @since 18.0-Argon *) val is_unrollable_ltdef : logic_type_info -> bool (** expands logic type definitions only. To expands both logic part and C part, uses [Logic_utils.unroll_type]. - @since Frama-C+dev *) + @since 18.0-Argon *) val unroll_ltdef : logic_type -> logic_type (** [isLogicType test typ] is [false] for pure logic types and the result @@ -218,7 +218,7 @@ val isLogicCType : (typ -> bool) -> logic_type -> bool (** returns [true] if the type is a list<t>. @since Aluminium-20160501 - @modify Frama-C+dev expands the logic type definition if necessary. *) + @modify 18.0-Argon expands the logic type definition if necessary. *) val is_list_type: logic_type -> bool (** [make_type_list_of t] returns the type list<[t]>. @@ -228,52 +228,52 @@ val make_type_list_of: logic_type -> logic_type (** returns the type of elements of a list type. @raise Failure if the input type is not a list type. @since Aluminium-20160501 - @modify Frama-C+dev expands the logic type definition if necessary. *) + @modify 18.0-Argon expands the logic type definition if necessary. *) val type_of_list_elem: logic_type -> logic_type (** returns [true] if the type is a set<t>. @since Neon-20140301 - @modify Frama-C+dev expands the logic type definition if necessary. *) + @modify 18.0-Argon expands the logic type definition if necessary. *) val is_set_type: logic_type -> bool (** [set_conversion ty1 ty2] returns a set type as soon as [ty1] and/or [ty2] is a set. Elements have type [ty1], or the type of the elements of [ty1] if it is itself a set-type ({i.e.} we do not build set of sets that way). - @modify Frama-C+dev expands the logic type definitions if necessary. *) + @modify 18.0-Argon expands the logic type definitions if necessary. *) val set_conversion: logic_type -> logic_type -> logic_type (** converts a type into the corresponding set type if needed. Does nothing if the argument is already a set type. - @modify Frama-C+dev expands the logic type definition if necessary. *) + @modify 18.0-Argon expands the logic type definition if necessary. *) val make_set_type: logic_type -> logic_type (** returns the type of elements of a set type. @raise Failure if the input type is not a set type. - @modify Frama-C+dev expands the logic type definition if necessary. *) + @modify 18.0-Argon expands the logic type definition if necessary. *) val type_of_element: logic_type -> logic_type (** [plain_or_set f t] applies [f] to [t] or to the type of elements of [t] if it is a set type. - @modify Frama-C+dev expands the logic type definition if necessary. *) + @modify 18.0-Argon expands the logic type definition if necessary. *) val plain_or_set: (logic_type -> 'a) -> logic_type -> 'a (** [transform_element f t] is the same as [set_conversion (plain_or_set f t) t] @since Nitrogen-20111001 - @modify Frama-C+dev expands the logic type definition if necessary. + @modify 18.0-Argon expands the logic type definition if necessary. *) val transform_element: (logic_type -> logic_type) -> logic_type -> logic_type (** [true] if the argument is not a set type. - @modify Frama-C+dev expands the logic type definition if necessary. *) + @modify 18.0-Argon expands the logic type definition if necessary. *) val is_plain_type: logic_type -> bool (** @return true if the argument is the boolean type. - @modify Frama-C+dev expands the logic type definition if necessary. *) + @modify 18.0-Argon expands the logic type definition if necessary. *) val is_boolean_type: logic_type -> bool (** @since Sodium-20150201 - @modify Frama-C+dev expands the logic type definition if necessary. *) + @modify 18.0-Argon expands the logic type definition if necessary. *) val boolean_type: logic_type (* ************************************************************************** *) diff --git a/src/kernel_services/ast_queries/logic_env.ml b/src/kernel_services/ast_queries/logic_env.ml index ffefb54619259bf8b409c61181c016c768731c09..5c09918e303db103dbf6ea685ef0c85b6638eb26 100644 --- a/src/kernel_services/ast_queries/logic_env.ml +++ b/src/kernel_services/ast_queries/logic_env.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) diff --git a/src/kernel_services/ast_queries/logic_env.mli b/src/kernel_services/ast_queries/logic_env.mli index e9081e5021f77973732a2641382ff73203e99aea..afa488e5c8e8770e01b7c23807a6807a3df0fb41 100644 --- a/src/kernel_services/ast_queries/logic_env.mli +++ b/src/kernel_services/ast_queries/logic_env.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) diff --git a/src/kernel_services/ast_queries/logic_typing.ml b/src/kernel_services/ast_queries/logic_typing.ml index a4fd18e3d362b2e13a0ff30cd311d41bcc8f9a07..c08ee2865a60efb4ba15286969b41bf8c63cb094 100644 --- a/src/kernel_services/ast_queries/logic_typing.ml +++ b/src/kernel_services/ast_queries/logic_typing.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) diff --git a/src/kernel_services/ast_queries/logic_typing.mli b/src/kernel_services/ast_queries/logic_typing.mli index d7eb312fc1d66a140a49c6547653a6db67f3efdb..d6c27a03d9228306a4d0841a24aa1e78666341fd 100644 --- a/src/kernel_services/ast_queries/logic_typing.mli +++ b/src/kernel_services/ast_queries/logic_typing.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) @@ -177,7 +177,7 @@ val register_behavior_extension: @plugin development guide - @since Frama-C+dev + @since 18.0-Argon *) val register_global_extension: string -> @@ -189,7 +189,7 @@ val register_global_extension: @plugin development guide - @since Frama-C+dev + @since 18.0-Argon *) val register_code_annot_extension: string -> @@ -201,7 +201,7 @@ val register_code_annot_extension: @plugin development guide - @since Frama-C+dev + @since 18.0-Argon *) val register_code_annot_next_stmt_extension: string -> @@ -212,7 +212,7 @@ val register_code_annot_next_stmt_extension: @plugin development guide - @since Frama-C+dev + @since 18.0-Argon *) val register_code_annot_next_loop_extension: string -> @@ -224,7 +224,7 @@ val register_code_annot_next_loop_extension: @plugin development guide - @since Frama-C+dev + @since 18.0-Argon *) val register_code_annot_next_both_extension: string -> diff --git a/src/kernel_services/ast_queries/logic_utils.ml b/src/kernel_services/ast_queries/logic_utils.ml index 67728f142ba9df8fb382ca541748af96839ffba4..0a7ec7f9bd67fe6ebfa6465c2b1d4de18a4c9a73 100644 --- a/src/kernel_services/ast_queries/logic_utils.ml +++ b/src/kernel_services/ast_queries/logic_utils.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) diff --git a/src/kernel_services/ast_queries/logic_utils.mli b/src/kernel_services/ast_queries/logic_utils.mli index cb754dd910de3ba128b1b89634f1654fd4c4b060..c5c7be4b017ea70d3b412c0fb03c8b6bea7939be 100644 --- a/src/kernel_services/ast_queries/logic_utils.mli +++ b/src/kernel_services/ast_queries/logic_utils.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) diff --git a/src/kernel_services/ast_transformations/clone.ml b/src/kernel_services/ast_transformations/clone.ml index 8b3ca2ee6ec444ff57f9c6bcdc02195c7a6ddad0..485b19f9893029c125c93c96554fb3e821330eaa 100644 --- a/src/kernel_services/ast_transformations/clone.ml +++ b/src/kernel_services/ast_transformations/clone.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/ast_transformations/clone.mli b/src/kernel_services/ast_transformations/clone.mli index 6a5e1198cb568136079ccfe2533d7c5ef90bd747..ef7bb3e4d3f1100c0bafbcf35d151c8f1021d60e 100644 --- a/src/kernel_services/ast_transformations/clone.mli +++ b/src/kernel_services/ast_transformations/clone.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/ast_transformations/filter.ml b/src/kernel_services/ast_transformations/filter.ml index b198c1a0de7f5824e226a2fa4edf508eb02d1e44..50fcb567f702d5a7393eca2815b87e50bd6a5797 100644 --- a/src/kernel_services/ast_transformations/filter.ml +++ b/src/kernel_services/ast_transformations/filter.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/ast_transformations/filter.mli b/src/kernel_services/ast_transformations/filter.mli index af8825cba399b072230cf694c6d707f03b8f95d5..572a9406603fbbe7e1fe0a97e3389d52d2755c27 100644 --- a/src/kernel_services/ast_transformations/filter.mli +++ b/src/kernel_services/ast_transformations/filter.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/ast_transformations/inline.ml b/src/kernel_services/ast_transformations/inline.ml index 8cac0d7edec0f5ad7ba770eb3a7f52edfae515bc..ea63e968b7c1392aa4b18bf91fb9aecf8db1d505 100644 --- a/src/kernel_services/ast_transformations/inline.ml +++ b/src/kernel_services/ast_transformations/inline.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/ast_transformations/inline.mli b/src/kernel_services/ast_transformations/inline.mli index 5571b25c71a8e08c1799e7e7905d395b8cea9d64..b7a5ede211435c5c7219a02064667dbb9be60f62 100644 --- a/src/kernel_services/ast_transformations/inline.mli +++ b/src/kernel_services/ast_transformations/inline.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/cmdline_parameters/cmdline.ml b/src/kernel_services/cmdline_parameters/cmdline.ml index d7ed4cb2f35fbbdbeb5c507d6891ce1c71b90897..d74c0ed2086143d36929e877277bd6d6557b9ebb 100644 --- a/src/kernel_services/cmdline_parameters/cmdline.ml +++ b/src/kernel_services/cmdline_parameters/cmdline.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/cmdline_parameters/cmdline.mli b/src/kernel_services/cmdline_parameters/cmdline.mli index 3f50efd89d592f4e3af44fdf8f82322f8462d5b9..995dc90f77fd682ac9850f8505257801068b8472 100644 --- a/src/kernel_services/cmdline_parameters/cmdline.mli +++ b/src/kernel_services/cmdline_parameters/cmdline.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/cmdline_parameters/parameter_builder.ml b/src/kernel_services/cmdline_parameters/parameter_builder.ml index 9599166243234d7bf8455d00298791016ec6b426..d74de525bfa58a548f5990215ab66750e7423ef6 100644 --- a/src/kernel_services/cmdline_parameters/parameter_builder.ml +++ b/src/kernel_services/cmdline_parameters/parameter_builder.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/cmdline_parameters/parameter_builder.mli b/src/kernel_services/cmdline_parameters/parameter_builder.mli index b8e15ab961cf3823da562115b93554989b3d50ad..4b532d65558c4e26656ffe1daf647d8593ee6511 100644 --- a/src/kernel_services/cmdline_parameters/parameter_builder.mli +++ b/src/kernel_services/cmdline_parameters/parameter_builder.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/cmdline_parameters/parameter_category.ml b/src/kernel_services/cmdline_parameters/parameter_category.ml index c8980893e1cfe83e2ae4bb502c6565b813ad4137..1e0e4f6a97b346f26cf59d93574b33d3774bdbe5 100644 --- a/src/kernel_services/cmdline_parameters/parameter_category.ml +++ b/src/kernel_services/cmdline_parameters/parameter_category.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/cmdline_parameters/parameter_category.mli b/src/kernel_services/cmdline_parameters/parameter_category.mli index 145677672c201430a269ce4cc0e2da0fda83f481..f0c2617271cde15723125b0f2df19bf14350d13b 100644 --- a/src/kernel_services/cmdline_parameters/parameter_category.mli +++ b/src/kernel_services/cmdline_parameters/parameter_category.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/cmdline_parameters/parameter_customize.ml b/src/kernel_services/cmdline_parameters/parameter_customize.ml index 70d45e94e7bcebb6a7111ab27ed9d8faace7f2e5..caf53dedc93917ca5c828489260009af8299082b 100644 --- a/src/kernel_services/cmdline_parameters/parameter_customize.ml +++ b/src/kernel_services/cmdline_parameters/parameter_customize.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/cmdline_parameters/parameter_customize.mli b/src/kernel_services/cmdline_parameters/parameter_customize.mli index 9547fd027a97f315aa100e67283448207ecb7a8f..dea727cbbbd15f6bebc2f8dc9f74b09c929c9132 100644 --- a/src/kernel_services/cmdline_parameters/parameter_customize.mli +++ b/src/kernel_services/cmdline_parameters/parameter_customize.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/cmdline_parameters/parameter_sig.mli b/src/kernel_services/cmdline_parameters/parameter_sig.mli index 3814c586131795fce6a3713b7bfc0bf6ade8fc57..bb827691793567e0bbe804f712a2fb7293d5a96b 100644 --- a/src/kernel_services/cmdline_parameters/parameter_sig.mli +++ b/src/kernel_services/cmdline_parameters/parameter_sig.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/cmdline_parameters/parameter_state.ml b/src/kernel_services/cmdline_parameters/parameter_state.ml index 82493f524f524308b0cbdc5db777bb9806534a3d..ad30035bc2541227bd1385e016712a4b27b6bcc4 100644 --- a/src/kernel_services/cmdline_parameters/parameter_state.ml +++ b/src/kernel_services/cmdline_parameters/parameter_state.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/cmdline_parameters/parameter_state.mli b/src/kernel_services/cmdline_parameters/parameter_state.mli index c78567515a5fd05b4ac9ba9cda23486c0597dd9d..487efa787ebb313fb29b3d483a1194f2f01b61f3 100644 --- a/src/kernel_services/cmdline_parameters/parameter_state.mli +++ b/src/kernel_services/cmdline_parameters/parameter_state.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/cmdline_parameters/typed_parameter.ml b/src/kernel_services/cmdline_parameters/typed_parameter.ml index 84a36f04897113dbd4680edfa64254d9b69ca5a5..1790a0a7b0943a3843faec230b9870ecb8dcd305 100644 --- a/src/kernel_services/cmdline_parameters/typed_parameter.ml +++ b/src/kernel_services/cmdline_parameters/typed_parameter.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/cmdline_parameters/typed_parameter.mli b/src/kernel_services/cmdline_parameters/typed_parameter.mli index 015d3044182e6d8265d13c2bd51e01dbe899a7e8..93ce23f4ba8d84f2eb7934a9dcf47ff2d845af18 100644 --- a/src/kernel_services/cmdline_parameters/typed_parameter.mli +++ b/src/kernel_services/cmdline_parameters/typed_parameter.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/parsetree/logic_ptree.mli b/src/kernel_services/parsetree/logic_ptree.mli index 8b5b418cda57ec1407e6583aaffd88ae0b5270c0..3b97808c2aa5ec0230cd69ae7945420ea918677a 100644 --- a/src/kernel_services/parsetree/logic_ptree.mli +++ b/src/kernel_services/parsetree/logic_ptree.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) @@ -369,7 +369,7 @@ type code_annot = | AExtended of string list * bool * extension (** extension in a code or loop (when boolean flag is true) annotation. @since Silicon-20161101 - @modify Frama-C+dev + @modify 18.0-Argon *) (** custom trees *) diff --git a/src/kernel_services/plugin_entry_points/db.ml b/src/kernel_services/plugin_entry_points/db.ml index 9d6eb7c394f969e49d0ff150e5d2f7940b00a410..092c6039c77899f16c43862f59dccac0949fc8b3 100644 --- a/src/kernel_services/plugin_entry_points/db.ml +++ b/src/kernel_services/plugin_entry_points/db.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/plugin_entry_points/db.mli b/src/kernel_services/plugin_entry_points/db.mli index f44e4e197c4e86794b74229a643b5347ee1ec849..873a8c6eb4b31069846a9cead7452983943d2d76 100644 --- a/src/kernel_services/plugin_entry_points/db.mli +++ b/src/kernel_services/plugin_entry_points/db.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/plugin_entry_points/dynamic.ml b/src/kernel_services/plugin_entry_points/dynamic.ml index 47716f23a018609dc1c204ee8e5a4ec3d502401c..5666e51558b4c86c74e925a73b5c5f36d71bb469 100644 --- a/src/kernel_services/plugin_entry_points/dynamic.ml +++ b/src/kernel_services/plugin_entry_points/dynamic.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -125,7 +125,7 @@ let is_object base = let packages = Hashtbl.create 64 -let () = List.iter (fun p -> Hashtbl.add packages p ()) Config.library_names +let () = List.iter (fun p -> Hashtbl.add packages p ()) ("frama-c.kernel"::Config.library_names) let missing pkg = not (Hashtbl.mem packages pkg) @@ -281,8 +281,9 @@ let set_module_load_path path = Klog.debug ~dkey "plugin_dir: %s" (String.concat ":" Config.plugin_dir); load_path := List.fold_right (add_dir ~user:true) path - (List.fold_right (add_dir ~user:false) Config.plugin_dir []); - let findlib_path = String.concat ":" !load_path in + (List.fold_right (add_dir ~user:false) (Config.libdir::Config.plugin_dir) []); + let env_ocamlpath = try Str.split (Str.regexp ":") (Sys.getenv "OCAMLPATH") with Not_found -> [] in + let findlib_path = String.concat ":" (!load_path@env_ocamlpath) in Klog.debug ~dkey "setting findlib path to %s" findlib_path; Findlib.init ~env_ocamlpath:findlib_path () diff --git a/src/kernel_services/plugin_entry_points/dynamic.mli b/src/kernel_services/plugin_entry_points/dynamic.mli index 721aab61421ca33e3a76ec09183b6a5b54afe6b2..c837a15601e045eb08dfe2a936ba8c4960687689 100644 --- a/src/kernel_services/plugin_entry_points/dynamic.mli +++ b/src/kernel_services/plugin_entry_points/dynamic.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/plugin_entry_points/emitter.ml b/src/kernel_services/plugin_entry_points/emitter.ml index f4e74b4b178bbb5f66dfd028ac822e7538c04e0b..b79daa99120742b7c7bb406883ddce0df76b05a3 100644 --- a/src/kernel_services/plugin_entry_points/emitter.ml +++ b/src/kernel_services/plugin_entry_points/emitter.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/plugin_entry_points/emitter.mli b/src/kernel_services/plugin_entry_points/emitter.mli index f838151c6e15788beb325d2fdebd05f3806440fa..0138bd0e372f962501678102d82a4facbf312857 100644 --- a/src/kernel_services/plugin_entry_points/emitter.mli +++ b/src/kernel_services/plugin_entry_points/emitter.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/plugin_entry_points/journal.ml b/src/kernel_services/plugin_entry_points/journal.ml index f7a7a9164d3d08aae5da84c9b1b32fb9b37580a2..cec362c256961bb8d530fbf329aad550db0f70cf 100644 --- a/src/kernel_services/plugin_entry_points/journal.ml +++ b/src/kernel_services/plugin_entry_points/journal.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/plugin_entry_points/journal.mli b/src/kernel_services/plugin_entry_points/journal.mli index fa0baee3c1e8f589258190ab1d56cae24ca53a60..698ef5ffc5905ec7382dfe159d5ebfecedf9d9b8 100644 --- a/src/kernel_services/plugin_entry_points/journal.mli +++ b/src/kernel_services/plugin_entry_points/journal.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/plugin_entry_points/kernel.ml b/src/kernel_services/plugin_entry_points/kernel.ml index 4edd4171dfd05aa954861ef917289330a993592b..5063b344f1198a3ea61441f44345d12062bb7e8b 100644 --- a/src/kernel_services/plugin_entry_points/kernel.ml +++ b/src/kernel_services/plugin_entry_points/kernel.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -153,6 +153,7 @@ let () = set_warn_status wkey_cert_exp_10 Log.Winactive let wkey_check_volatile = register_warn_category "check:volatile" let wkey_jcdb = register_warn_category "pp:compilation-db" +let () = set_warn_status wkey_jcdb Log.Wonce let wkey_implicit_function_declaration = register_warn_category "typing:implicit-function-declaration" diff --git a/src/kernel_services/plugin_entry_points/kernel.mli b/src/kernel_services/plugin_entry_points/kernel.mli index 33d2d5ff230115930391f8ebcd55a5883999516a..a5d8940582debc50495088b2b85b87e2610f9678 100644 --- a/src/kernel_services/plugin_entry_points/kernel.mli +++ b/src/kernel_services/plugin_entry_points/kernel.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/plugin_entry_points/log.ml b/src/kernel_services/plugin_entry_points/log.ml index c64e11b3987e0a6ba072959df24372967ae3b832..be6d501cfc71e95f795400fbbd97ead1fa8e7257 100644 --- a/src/kernel_services/plugin_entry_points/log.ml +++ b/src/kernel_services/plugin_entry_points/log.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/plugin_entry_points/log.mli b/src/kernel_services/plugin_entry_points/log.mli index 1efef9b18217cbc189d356ce1be767f5b3887ba8..590127009215bfc31da81364f17b64a425baf38b 100644 --- a/src/kernel_services/plugin_entry_points/log.mli +++ b/src/kernel_services/plugin_entry_points/log.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -221,22 +221,22 @@ module type Messages = sig val with_result : (event option -> 'b) -> ('a,'b) pretty_aborter (** [with_result f fmt] calls [f] in the same condition as [logwith]. @since Beryllium-20090601-beta1 - @modified Frama-C+dev the argument of the continuation is optionnal *) + @modified 18.0-Argon the argument of the continuation is optionnal *) val with_warning : (event option -> 'b) -> ('a,'b) pretty_aborter (** [with_warning f fmt] calls [f] in the same condition as [logwith]. @since Beryllium-20090601-beta1 - @modified Frama-C+dev the argument of the continuation is optionnal *) + @modified 18.0-Argon the argument of the continuation is optionnal *) val with_error : (event option -> 'b) -> ('a,'b) pretty_aborter (** [with_error f fmt] calls [f] in the same condition as [logwith]. @since Beryllium-20090601-beta1 - @modified Frama-C+dev the argument of the continuation is optionnal *) + @modified 18.0-Argon the argument of the continuation is optionnal *) val with_failure : (event option -> 'b) -> ('a,'b) pretty_aborter (** [with_failure f fmt] calls [f] in the same condition as [logwith]. @since Beryllium-20090601-beta1 - @modified Frama-C+dev the argument of the continuation is optionnal *) + @modified 18.0-Argon the argument of the continuation is optionnal *) val log : ?kind:kind -> ?verbose:int -> ?debug:int -> 'a pretty_printer (** Generic log routine. The default kind is [Result]. Use cases (with @@ -261,7 +261,7 @@ module type Messages = sig In case the [wkey] is considered as a [Failure], the continution is not called. This kind of message denotes a fatal error aborting Frama-C. Notice that the [~emitwith] action is called iff a message is logged. - @since Frama-C+dev *) + @since 18.0-Argon *) val register : kind -> (event -> unit) -> unit (** Local registry for listeners. *) @@ -284,7 +284,7 @@ module type Messages = sig val dkey_name: category -> string (** returns the category name as a string. - @since Frama-C+dev + @since 18.0-Argon *) val is_registered_category: string -> bool @@ -346,7 +346,7 @@ module type Messages = sig val wkey_name: warn_category -> string (** returns the warning category name as a string. - @since Frama-C+dev + @since 18.0-Argon *) val get_warn_category: string -> warn_category option @@ -362,19 +362,19 @@ module type Messages = sig end (** Split an event category into its constituants. - @since Frama-C+dev *) + @since 18.0-Argon *) val evt_category : event -> string list (** Split a category specification into its constituants. ["*"] is considered as empty, and [""] categories are skipped. - @since Frama-C+dev *) + @since 18.0-Argon *) val split_category : string -> string list (** Sub-category checks. [is_subcategory a b] checks whether [a] is a sub-category of [b]. Indeed, it checks whether [b] is a prefix of [a], that is, that [a] equals [b] or refines [b] with (a list of) sub-category(ies). - @since Frama-C+dev *) + @since 18.0-Argon *) val is_subcategory : string list -> string list -> bool (** Each plugin has its own channel to output messages. @@ -446,7 +446,7 @@ val kernel_label_name: string val source : file:Filepath.Normalized.t -> line:int -> Filepath.position (** @since Chlorine-20180501 - @modify Frama-C+dev change type of [file] + @modify 18.0-Argon change type of [file] *) val get_current_source : unit -> Filepath.position diff --git a/src/kernel_services/plugin_entry_points/plugin.ml b/src/kernel_services/plugin_entry_points/plugin.ml index d810847a57e275bdcbf2e1d762c68d29a1ff9260..6048de1b0a82fa0d40d1a4205d38cd22201f09d9 100644 --- a/src/kernel_services/plugin_entry_points/plugin.ml +++ b/src/kernel_services/plugin_entry_points/plugin.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -277,10 +277,10 @@ struct include Parameter_builder.Make (struct - let shortname = P.shortname - module L = L - let messages_group = messages - let parameters = plugin.p_parameters + let shortname = P.shortname + module L = L + let messages_group = messages + let parameters = plugin.p_parameters end) let prefix = @@ -297,7 +297,7 @@ struct module Make_specific_dir (O: Parameter_sig.Input_with_arg) (D: sig - val dir: unit -> string + val dirs: unit -> string list val visible_ref: bool val force_dir: bool end) @@ -325,44 +325,54 @@ struct let mk_dir d = try - Unix.mkdir d 0o755; - L.warning "creating %s directory `%s'" O.option_name d; - d + Unix.mkdir d 0o755; + L.warning "creating %s directory `%s'" O.option_name d; + d with Unix.Unix_error _ -> - L.warning "cannot create %s directory `%s'" O.option_name d; - raise No_dir - - let get_and_check_dir ?(error=true) d = - (* DO NOT Filepath.normalize the argument, since it can transform an - absolute path into a relative one, leading to issues if a chdir occurs - at some point. *) - if (try Sys.is_directory d with Sys_error _ -> false) then d - else - if error then - L.abort "no %s directory `%s' for plug-in `%s'" - O.option_name - d - P.name - else begin - if force_dir then begin - (* create the parent, if it does not exist *) - let p = Filename.dirname d in - if not (try Sys.is_directory p with Sys_error _ -> false) then - ignore (mk_dir p); - mk_dir d - end else - raise No_dir - end + L.warning "cannot create %s directory `%s'" O.option_name d; + raise No_dir + + let rec get_and_check_dirs error = function + | [] -> + raise No_dir + | d::l -> + if (try Sys.is_directory d with Sys_error _ -> false) then d + else + get_and_check_dirs error l + + let get_and_check_dirs ?(error=true) = function + | [] -> + if error then + L.abort "no %s directories to look into" O.option_name + else + raise No_dir + | (first::_) as l -> + try + get_and_check_dirs error l + with + | No_dir when error -> + L.abort "no %s directory for plug-in `%s' among %a" + O.option_name + P.name + Pretty_utils.(pp_list ~sep:",@ " Format.pp_print_string) l + | No_dir when force_dir -> + (* create the parent, if it does not exist *) + let p = Filename.dirname first in + if not (try Sys.is_directory p with Sys_error _ -> false) then + ignore (mk_dir p); + mk_dir first let dir ?error () = (* get the specified dir if any *) let d = if is_visible then Dir_name.get () else empty_string in if d = empty_string then - (* no specified dir: look for the default one. *) - if is_kernel then get_and_check_dir ?error (D.dir ()) - else get_and_check_dir ?error (D.dir () ^ "/" ^ plugin_subpath) + (* no specified dir: look for the default one. *) + if is_kernel then get_and_check_dirs ?error (D.dirs ()) + else + let dirs = List.map (fun x -> x ^ "/" ^ plugin_subpath) (D.dirs ()) in + get_and_check_dirs ?error dirs else - get_and_check_dir ?error d + get_and_check_dirs ?error [d] let file ?error f = dir ?error () ^ "/" ^ f @@ -371,32 +381,32 @@ struct module Share = Make_specific_dir (struct - let option_name = "share" - let arg_name = "dir" - let help = "set the plug-in share directory to <dir> \ + let option_name = "share" + let arg_name = "dir" + let help = "set the plug-in share directory to <dir> \ (may be used if the plug-in is not installed at the same place as Frama-C)" end) (struct - let dir () = Config.datadir - let visible_ref = !share_visible_ref - let force_dir = false + let dirs () = Config.datadirs + let visible_ref = !share_visible_ref + let force_dir = false end) module Session = Make_specific_dir (struct - let option_name = "session" - let arg_name = "dir" - let help = "set the plug-in session directory to <dir>" + let option_name = "session" + let arg_name = "dir" + let help = "set the plug-in session directory to <dir>" end) (struct - let dir () = - if !session_is_set_ref () then !session_ref () - else - try Sys.getenv "FRAMAC_SESSION" - with Not_found -> "./.frama-c" - let visible_ref = !session_visible_ref - let force_dir = true + let dirs () = [ + if !session_is_set_ref () then !session_ref () + else + try Sys.getenv "FRAMAC_SESSION" + with Not_found -> "./.frama-c"] + let visible_ref = !session_visible_ref + let force_dir = true end) let () = if is_kernel () then Journal.get_session_file := Session.file ~error:false @@ -404,29 +414,30 @@ struct module Config = Make_specific_dir (struct - let option_name = "config" - let arg_name = "dir" - let help = "set the plug-in config directory to <dir> \ + let option_name = "config" + let arg_name = "dir" + let help = "set the plug-in config directory to <dir> \ (may be used on systems with no default user directory)" end) (struct - let dir () = - let d, vis = - if !config_is_set_ref () then !config_ref (), false - else - try Sys.getenv "FRAMAC_CONFIG", false - with Not_found -> - try Sys.getenv "USERPROFILE", false (* Win32 *) - with Not_found -> - (* Unix like *) - try Sys.getenv "XDG_CONFIG_HOME", true - with Not_found -> - try Sys.getenv "HOME" ^ "/.config", true - with Not_found -> ".", false - in - d ^ if vis then "/frama-c" else "/.frama-c" - let visible_ref = !config_visible_ref - let force_dir = true + let dirs () = [ + let d, vis = + if !config_is_set_ref () then !config_ref (), false + else + try Sys.getenv "FRAMAC_CONFIG", false + with Not_found -> + try Sys.getenv "USERPROFILE", false (* Win32 *) + with Not_found -> + (* Unix like *) + try Sys.getenv "XDG_CONFIG_HOME", true + with Not_found -> + try Sys.getenv "HOME" ^ "/.config", true + with Not_found -> ".", false + in + d ^ if vis then "/frama-c" else "/.frama-c" + ] + let visible_ref = !config_visible_ref + let force_dir = true end) let help = add_group "Getting Information" @@ -588,10 +599,10 @@ struct (* line order below matters *) set_range ~min:0 ~max:max_int; if is_kernel () then begin - Cmdline.kernel_verbose_atleast_ref := (fun n -> get () >= n); - match !Cmdline.Kernel_verbose_level.value_if_set with - | None -> () - | Some n -> set n + Cmdline.kernel_verbose_atleast_ref := (fun n -> get () >= n); + match !Cmdline.Kernel_verbose_level.value_if_set with + | None -> () + | Some n -> set n end end @@ -614,15 +625,15 @@ struct set_range ~min:0 ~max:max_int; add_set_hook (fun old n -> - (* the level of verbose is at least the level of debug *) - if n > Verbose.get () then Verbose.set n; + (* the level of verbose is at least the level of debug *) + if n > Verbose.get () then Verbose.set n; if n = 0 then Pervasives.decr positive_debug_ref else if old = 0 then Pervasives.incr positive_debug_ref); if is_kernel () then begin - Cmdline.kernel_debug_atleast_ref := (fun n -> get () >= n); - match !Cmdline.Kernel_debug_level.value_if_set with - | None -> () - | Some n -> set n + Cmdline.kernel_debug_atleast_ref := (fun n -> get () >= n); + match !Cmdline.Kernel_debug_level.value_if_set with + | None -> () + | Some n -> set n end end diff --git a/src/kernel_services/plugin_entry_points/plugin.mli b/src/kernel_services/plugin_entry_points/plugin.mli index 09efba3f25bd058e05a8aa6ce8e4585ae67d16a2..11afcfe00f71a0841c99f67b645cd64e327301f9 100644 --- a/src/kernel_services/plugin_entry_points/plugin.mli +++ b/src/kernel_services/plugin_entry_points/plugin.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -69,7 +69,7 @@ module type S_no_log = sig -plugin-msg-key, and -plugin-warn-key. [add_plugin_output_aliases [alias]] adds the aliases -alias-help, -alias-verbose, etc. - @since Frama-C+dev *) + @since 18.0-Argon *) end (** Provided plug-general services for plug-ins. diff --git a/src/kernel_services/visitors/visitor.ml b/src/kernel_services/visitors/visitor.ml index 5058818c14f3ecf517713f6726efc1a3d66296be..9e6738a2b39efce81be89b924d4670a5263211d2 100644 --- a/src/kernel_services/visitors/visitor.ml +++ b/src/kernel_services/visitors/visitor.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/visitors/visitor.mli b/src/kernel_services/visitors/visitor.mli index 96bafb4c9c5d6ec656510b01d9c1e1a9d22a0624..3fffe6a974c20e101b8ec86108f970214b55c417 100644 --- a/src/kernel_services/visitors/visitor.mli +++ b/src/kernel_services/visitors/visitor.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/datatype/datatype.ml b/src/libraries/datatype/datatype.ml index cdc1856a568a14b5dbda399e838cb8d5690f841b..9752b11209c61111831cfa57d7b0ce6dfea3e5a9 100644 --- a/src/libraries/datatype/datatype.ml +++ b/src/libraries/datatype/datatype.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/datatype/datatype.mli b/src/libraries/datatype/datatype.mli index cb813ba6dc83014ed37c1ae721c94206cabd04cd..42e15dfc1435e7bc523eaeeb6353663fb00d7398 100644 --- a/src/libraries/datatype/datatype.mli +++ b/src/libraries/datatype/datatype.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -345,7 +345,7 @@ val integer: Integer.t Type.t (** Type-safe strings representing normalized filepaths. See module {!Filepath.Normalized}. - @since Frama-C+dev *) + @since 18.0-Argon *) module Filepath: sig include S_with_collections with type t = Filepath.Normalized.t val of_string: ?base_name:string -> string -> t diff --git a/src/libraries/datatype/descr.ml b/src/libraries/datatype/descr.ml index 7346fbfd94a61e1223ba528221d3e18a5a5bcd41..7e202ea947e83401e530a320a3e6132a3c254694 100644 --- a/src/libraries/datatype/descr.ml +++ b/src/libraries/datatype/descr.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/datatype/descr.mli b/src/libraries/datatype/descr.mli index e36720b0f9ed0742adcd913e3aa283f4ba0c0e09..3d78c05751e5601a92f093b8ffe99bc0b1ea96e4 100644 --- a/src/libraries/datatype/descr.mli +++ b/src/libraries/datatype/descr.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/datatype/structural_descr.ml b/src/libraries/datatype/structural_descr.ml index 1aa20d721afe987d9c71bc9a7e064c28498d7fae..e9dbf9b24794477bb06140162ee4711314d6198d 100644 --- a/src/libraries/datatype/structural_descr.ml +++ b/src/libraries/datatype/structural_descr.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/datatype/structural_descr.mli b/src/libraries/datatype/structural_descr.mli index 70132a3c24194472c3230b32fa14a7f5173f9b91..5b244746a4ac4829822fea8a426f9807f4e7036e 100644 --- a/src/libraries/datatype/structural_descr.mli +++ b/src/libraries/datatype/structural_descr.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/datatype/type.ml b/src/libraries/datatype/type.ml index 234bc5779a1d9b5491534f372f6f0fde054f4a60..07c3e89fe6ba4ffe08aeffa3a4201d1a4a60d025 100644 --- a/src/libraries/datatype/type.ml +++ b/src/libraries/datatype/type.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/datatype/type.mli b/src/libraries/datatype/type.mli index a9c035e24c50501d96a1a902912019d88fa8cc7d..c92568997443644687b15e5c3242f7139e8dfebb 100644 --- a/src/libraries/datatype/type.mli +++ b/src/libraries/datatype/type.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/datatype/unmarshal_z.ml b/src/libraries/datatype/unmarshal_z.ml index dd27d22134e0a2798d953afdfa80c0264dbedf34..2697d1a317efdd5801c6b7ae31050ff5f9dae5dc 100644 --- a/src/libraries/datatype/unmarshal_z.ml +++ b/src/libraries/datatype/unmarshal_z.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/datatype/unmarshal_z.mli b/src/libraries/datatype/unmarshal_z.mli index 75bdb5a5c65100d292a651f939e7787376f177cc..20a52aa659aee1ac05ca6daecf93317a9372d953 100644 --- a/src/libraries/datatype/unmarshal_z.mli +++ b/src/libraries/datatype/unmarshal_z.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/project/project.ml b/src/libraries/project/project.ml index 88a80c647fe9e6544387584c9769780e02f5e731..55280721f01c32fbc314ed7bc74e1571363aae86 100644 --- a/src/libraries/project/project.ml +++ b/src/libraries/project/project.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/project/project.mli b/src/libraries/project/project.mli index f91dfa1ea8ef5583de9aaaf133917d4d149f441e..d24b9b72f021aa85a77861a275c364da006b82cf 100644 --- a/src/libraries/project/project.mli +++ b/src/libraries/project/project.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/project/project_skeleton.ml b/src/libraries/project/project_skeleton.ml index 8e4681538efcdd9945d5211f26371242384e5e7f..cf06e41cca0fe367ad957221121f91451f7d8d8d 100644 --- a/src/libraries/project/project_skeleton.ml +++ b/src/libraries/project/project_skeleton.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/project/project_skeleton.mli b/src/libraries/project/project_skeleton.mli index 4a2783d543b2be9cd22a4b46b430379dff3ead16..68bdc765344d2514dd34c15b32a42d1d76f04656 100644 --- a/src/libraries/project/project_skeleton.mli +++ b/src/libraries/project/project_skeleton.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/project/state.ml b/src/libraries/project/state.ml index 9217522bf17e7d868261d21bc28cfaa4a5303512..259b86356980d59d15527bd5d543a87f06013bae 100644 --- a/src/libraries/project/state.ml +++ b/src/libraries/project/state.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/project/state.mli b/src/libraries/project/state.mli index 7719b7d407ffeb1eb7265c959a1a61853c2b3426..22589bef865139354f32df97b04da65a979d1ae5 100644 --- a/src/libraries/project/state.mli +++ b/src/libraries/project/state.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/project/state_builder.ml b/src/libraries/project/state_builder.ml index 08ea62a2eec8779987e9d5ce68da090f940053ce..de752d5a942768757f3a238c5e01d66dfa1431da 100644 --- a/src/libraries/project/state_builder.ml +++ b/src/libraries/project/state_builder.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/project/state_builder.mli b/src/libraries/project/state_builder.mli index 311256777108da1bfe69202f03a7b1d405b78cc5..e328a4012d9c9b7fd89f909e65945be2ea594a97 100644 --- a/src/libraries/project/state_builder.mli +++ b/src/libraries/project/state_builder.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/project/state_dependency_graph.ml b/src/libraries/project/state_dependency_graph.ml index 949ea746b596fae412ad459ebfa1c6eb96edcf06..c5b32d329ec29bc812e3892a85160945f39b11f5 100644 --- a/src/libraries/project/state_dependency_graph.ml +++ b/src/libraries/project/state_dependency_graph.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/project/state_dependency_graph.mli b/src/libraries/project/state_dependency_graph.mli index 8ef4dc9bf55f8b8c2663317547b1291efef85b68..8a8adeb933cb533d44f1a5076e1a8c261d411896 100644 --- a/src/libraries/project/state_dependency_graph.mli +++ b/src/libraries/project/state_dependency_graph.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/project/state_selection.ml b/src/libraries/project/state_selection.ml index f1ed9db1b20d00315cbddb6bd270271588714948..7a10b4fcd77da4808d5868185b72f45b346a81cb 100644 --- a/src/libraries/project/state_selection.ml +++ b/src/libraries/project/state_selection.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/project/state_selection.mli b/src/libraries/project/state_selection.mli index 1dd9d889102eda81259301f0526d24ee427ffa36..b5cf6ab6e599deb2a2c2a3e2eb1e80642d88428f 100644 --- a/src/libraries/project/state_selection.mli +++ b/src/libraries/project/state_selection.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/stdlib/FCHashtbl.ml b/src/libraries/stdlib/FCHashtbl.ml index 2954bc00a21aa80089a5dc70e5a4b7b8cb1846b3..4e84f1b3ced33540d4cb72ff7b1f797937ef2bfe 100644 --- a/src/libraries/stdlib/FCHashtbl.ml +++ b/src/libraries/stdlib/FCHashtbl.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/stdlib/FCHashtbl.mli b/src/libraries/stdlib/FCHashtbl.mli index 642af0598487ec316f16531b9f70c839b45001c1..33805c33f6cc4075930e49e2673bd891c53dee60 100644 --- a/src/libraries/stdlib/FCHashtbl.mli +++ b/src/libraries/stdlib/FCHashtbl.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/stdlib/extlib.ml b/src/libraries/stdlib/extlib.ml index 97279cf59ccd579fb2b1bb346d61260f7267cbec..6ec413e5c12a3a40379b4c3d3e786609b54915e0 100644 --- a/src/libraries/stdlib/extlib.ml +++ b/src/libraries/stdlib/extlib.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/stdlib/extlib.mli b/src/libraries/stdlib/extlib.mli index d331629c8bc5b0ddaa916a976a62ccb46793d280..389a34fc00dbc551f3b374f637439aa4d90aa880 100644 --- a/src/libraries/stdlib/extlib.mli +++ b/src/libraries/stdlib/extlib.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -141,7 +141,7 @@ val find_opt : ('a -> 'b option) -> 'a list -> 'b is no such value the list l. @since Nitrogen-20111001 - @deprecated Frama-C+dev use [Transitioning.List.find_opt] instead *) + @deprecated 18.0-Argon use [Transitioning.List.find_opt] instead *) val iteri: (int -> 'a -> unit) -> 'a list -> unit (** Same as iter, but the function to be applied take also as argument the @@ -178,7 +178,7 @@ val list_slice: ?first:int -> ?last:int -> 'a list -> 'a list Negative indices are allowed, and count from the end of the list. [list_slice] never raises exceptions: out-of-bounds arguments are clipped, and inverted ranges result in empty lists. - @since Frama-C+dev *) + @since 18.0-Argon *) (* ************************************************************************* *) (** {2 Arrays} *) @@ -307,7 +307,7 @@ val strip_underscore: string -> string (** remove underscores at the beginning and end of a string. If a string is composed solely of underscores, return the empty string - @since Frama-C+dev + @since 18.0-Argon *) val html_escape: string -> string diff --git a/src/libraries/stdlib/integer.ml b/src/libraries/stdlib/integer.ml index 1d258f2ded6358b74495e182e6510703eed06c0c..e6ac8c03d7742176424a2b04d138482c6ffbc3e6 100644 --- a/src/libraries/stdlib/integer.ml +++ b/src/libraries/stdlib/integer.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -22,209 +22,264 @@ type t = Z.t -exception Too_big - let equal = Z.equal let compare = Z.compare - let two_power_of_int k = Z.shift_left Z.one k -let two_power y = - try - let k = Z.to_int y in - if k > 1024 then - (* avoid memory explosion *) - raise Too_big - else - two_power_of_int k - with Z.Overflow -> raise Too_big +let two_power n = + let k = Z.to_int n in + if k > 1024 then + raise Z.Overflow + else + two_power_of_int k + +let power_int_positive_int = Big_int_Z.power_int_positive_int let popcount = Z.popcount - let zero = Z.zero - let one = Z.one - let minus_one = Z.minus_one - let two = Z.of_int 2 - let four = Z.of_int 4 - let eight = Z.of_int 8 - let sixteen = Z.of_int 16 - let thirtytwo = Z.of_int 32 - let onethousand = Z.of_int 1000 - let billion_one = Z.of_int 1_000_000_001 - let two_power_32 = two_power_of_int 32 - let two_power_60 = two_power_of_int 60 - let two_power_64 = two_power_of_int 64 - - let is_zero v = Z.equal v Z.zero - - let add = Z.add - let sub = Z.sub - let succ = Z.succ - let pred = Z.pred - let neg = Z.neg - - let rem = Z.erem - let div = Z.ediv - let mul = Z.mul - - let abs = Z.abs - - let hash = Z.hash - - let shift_left x y = Z.shift_left x (Z.to_int y) - let shift_right x y = Z.shift_right x (Z.to_int y) - let shift_right_logical x y = (* no meaning for negative value of x *) - if (Z.lt x Z.zero) - then failwith "log_shift_right_big_int" - else Z.shift_right x (Z.to_int y) - - let logand = Z.logand - let lognot = Z.lognot - let logor = Z.logor - let logxor = Z.logxor - - let le a b = Z.compare a b <= 0 - let ge a b = Z.compare a b >= 0 - let lt a b = Z.compare a b < 0 - let gt a b = Z.compare a b > 0 - - - let of_int = Z.of_int - - let of_int64 = Z.of_int64 - let of_int32 = Z.of_int32 - - (* Return the same exceptions as [Big_int] *) - let to_int = Big_int_Z.int_of_big_int - let to_int64 = Big_int_Z.int64_of_big_int - let to_int32 = Big_int_Z.int32_of_big_int - - let of_string s = - try Z.of_string s - with Invalid_argument _ -> - (* We intentionally do NOT specify a string in the .mli, as Big_int - raises multiple [Failure _] exceptions *) - failwith "Integer.of_string" - - - let max_int64 = of_int64 Int64.max_int - let min_int64 = of_int64 Int64.min_int - - - let to_string = Z.to_string - let to_float = Z.to_float - let of_float z = - try Z.of_float z - with Z.Overflow -> raise Too_big - - let pretty ?(hexa=false) fmt v = - let rec aux v = - if gt v two_power_60 then - let quo, rem = Z.ediv_rem v two_power_60 in - aux quo; - Format.fprintf fmt "%015LX" (to_int64 rem) - else - Format.fprintf fmt "%LX" (to_int64 v) - in - if hexa then - if equal v zero then Format.pp_print_string fmt "0" - else if gt v zero then (Format.pp_print_string fmt "0x"; aux v) - else (Format.pp_print_string fmt "-0x"; aux (Z.neg v)) - else - Format.pp_print_string fmt (to_string v) - - let is_one v = equal one v - let pos_div = div - - let pos_rem = rem - let native_div = div - let divexact = Z.divexact - let div_rem = Z.div_rem - - let _c_div u v = - let bad_div = div u v in - if (lt u zero) && not (is_zero (rem u v)) - then - if lt v zero - then pred bad_div - else succ bad_div - else bad_div - - let _c_div u v = - let res = _c_div u v in - let res2 = Z.div u v in - if not (equal res res2) then - failwith (Printf.sprintf "division of %a %a c_div %a div %a" - Z.sprint u - Z.sprint v - Z.sprint res - Z.sprint res2) - else res2 - - let c_div = Z.div - - let _c_rem u v = - sub u (mul v (c_div u v)) - - let _c_rem u v = - let res = _c_rem u v in - let res2 = Z.rem u v in - if not (equal res res2) then - failwith (Printf.sprintf "division of %a %a c_rem %a rem %a" - Z.sprint u - Z.sprint v - Z.sprint res - Z.sprint res2) - else res2 - - let c_rem = Z.rem - - let cast ~size ~signed ~value = - if (not signed) - then - let factor = two_power size in logand value (pred factor) +let zero = Z.zero +let one = Z.one +let minus_one = Z.minus_one +let two = Z.of_int 2 +let four = Z.of_int 4 +let eight = Z.of_int 8 +let sixteen = Z.of_int 16 +let thirtytwo = Z.of_int 32 +let onethousand = Z.of_int 1000 +let billion_one = Z.of_int 1_000_000_001 +let two_power_32 = two_power_of_int 32 +let two_power_60 = two_power_of_int 60 +let two_power_64 = two_power_of_int 64 + +let is_zero v = Z.equal v Z.zero + +let add = Z.add +let sub = Z.sub +let succ = Z.succ +let pred = Z.pred +let neg = Z.neg + +let rem = Z.erem +let div = Z.ediv +let mul = Z.mul + +let abs = Z.abs + +let hash = Z.hash + +let shift_left x y = Z.shift_left x (Z.to_int y) +let shift_right x y = Z.shift_right x (Z.to_int y) +let shift_right_logical x y = (* no meaning for negative value of x *) + if (Z.lt x Z.zero) + then raise (Invalid_argument "Integer.shift_right_logical") + else Z.shift_right x (Z.to_int y) + +let logand = Z.logand +let lognot = Z.lognot +let logor = Z.logor +let logxor = Z.logxor + +let le a b = Z.compare a b <= 0 +let ge a b = Z.compare a b >= 0 +let lt a b = Z.compare a b < 0 +let gt a b = Z.compare a b > 0 + +let of_int = Z.of_int +let of_int64 = Z.of_int64 +let of_int32 = Z.of_int32 + +let to_int = Z.to_int +let to_int64 = Z.to_int64 +let to_int32 = Z.to_int32 + +let of_string = Z.of_string +let to_string = Z.to_string + +let of_float = Z.of_float +let to_float = Z.to_float +let max_int64 = of_int64 Int64.max_int +let min_int64 = of_int64 Int64.min_int + + +let bdigits = [| + "0000" ; (* 0 *) + "0001" ; (* 1 *) + "0010" ; (* 2 *) + "0011" ; (* 3 *) + "0100" ; (* 4 *) + "0101" ; (* 5 *) + "0110" ; (* 6 *) + "0111" ; (* 7 *) + "1000" ; (* 8 *) + "1001" ; (* 9 *) + "1010" ; (* 10 *) + "1011" ; (* 11 *) + "1100" ; (* 12 *) + "1101" ; (* 13 *) + "1110" ; (* 14 *) + "1111" ; (* 15 *) +|] + +let pp_bin_pos fmt r = Format.pp_print_string fmt bdigits.(r) +let pp_bin_neg fmt r = Format.pp_print_string fmt bdigits.(15-r) + +let pp_hex_pos fmt r = Format.fprintf fmt "%04X" r +let pp_hex_neg fmt r = Format.fprintf fmt "%04X" (0xFFFF-r) + +let bmask_bin = Z.of_int 0xF (* 4 bits mask *) +let bmask_hex = Z.of_int 0xFFFF (* 64 bits mask *) + +type digits = { + nbits : int ; (* max number of bits *) + bsize : int ; (* bits in each bloc *) + bmask : Z.t ; (* block mask, must be (1 << bsize) - 1 *) + sep : string ; + pp : Format.formatter -> int -> unit ; (* print one block *) +} + +let rec pp_digits d fmt n v = + if gt v zero || n < d.nbits then + begin + let r = Z.to_int (Z.logand v d.bmask) in + let k = d.bsize in + pp_digits d fmt (n + k) (Z.shift_right_trunc v k) ; + if gt v d.bmask || (n + k) < d.nbits + then Format.pp_print_string fmt d.sep ; + d.pp fmt r ; + end + +let pp_bin ?(nbits=1) ?(sep="") fmt v = + let nbits = if nbits <= 0 then 1 else nbits in + if le zero v then + ( Format.pp_print_string fmt "0b" ; + pp_digits { nbits ; sep ; bsize=4 ; + bmask = bmask_bin ; pp = pp_bin_pos } fmt 0 v ) + else + ( Format.pp_print_string fmt "1b" ; + pp_digits { nbits ; sep ; bsize=4 ; + bmask = bmask_bin ; pp = pp_bin_neg } fmt 0 (Z.lognot v) ) + +let pp_hex ?(nbits=1) ?(sep="") fmt v = + let nbits = if nbits <= 0 then 1 else nbits in + if le zero v then + ( Format.pp_print_string fmt "0x" ; + pp_digits { nbits ; sep ; bsize=16 ; + bmask = bmask_hex ; pp = pp_hex_pos } fmt 0 v ) + + else + ( Format.pp_print_string fmt "1x" ; + pp_digits { nbits ; sep ; bsize=16 ; + bmask = bmask_hex ; pp = pp_hex_neg } fmt 0 (Z.lognot v) ) +let pretty ?(hexa=false) fmt v = + let rec aux v = + if gt v two_power_60 then + let quo, rem = Z.ediv_rem v two_power_60 in + aux quo; + Format.fprintf fmt "%015LX" (to_int64 rem) else - let mask = two_power (sub size one) in - let p_mask = pred mask in - if equal (logand mask value) zero - then logand value p_mask - else - logor (lognot p_mask) value - - let length u v = succ (sub v u) + Format.fprintf fmt "%LX" (to_int64 v) + in + if hexa then + if equal v zero then Format.pp_print_string fmt "0" + else if gt v zero then (Format.pp_print_string fmt "0x"; aux v) + else (Format.pp_print_string fmt "-0x"; aux (Z.neg v)) + else + Format.pp_print_string fmt (to_string v) + +let is_one v = equal one v + +let pos_div = div +let pos_rem = rem +let native_div = div +let divexact = Z.divexact +let div_rem = Z.div_rem + +(* +let _c_div u v = + let bad_div = div u v in + if (lt u zero) && not (is_zero (rem u v)) + then + if lt v zero + then pred bad_div + else succ bad_div + else bad_div + +let _c_div u v = + let res = _c_div u v in + let res2 = Z.div u v in + if not (equal res res2) then + failwith (Printf.sprintf "division of %a %a c_div %a div %a" + Z.sprint u + Z.sprint v + Z.sprint res + Z.sprint res2) + else res2 +*) + +let c_div = Z.div + +(* +let _c_rem u v = + sub u (mul v (c_div u v)) + +let _c_rem u v = + let res = _c_rem u v in + let res2 = Z.rem u v in + if not (equal res res2) then + failwith (Printf.sprintf "division of %a %a c_rem %a rem %a" + Z.sprint u + Z.sprint v + Z.sprint res + Z.sprint res2) + else res2 +*) + +let c_rem = Z.rem + +let cast ~size ~signed ~value = + if (not signed) + then + let factor = two_power size in logand value (pred factor) + else + let mask = two_power (sub size one) in + let p_mask = pred mask in + if equal (logand mask value) zero + then logand value p_mask + else + logor (lognot p_mask) value - let extract_bits ~start ~stop v = - assert (ge start zero && ge stop start); - (*Format.printf "%a[%a..%a]@\n" pretty v pretty start pretty stop;*) - let r = Z.extract v (to_int start) (to_int (length start stop)) in - (*Format.printf "%a[%a..%a]=%a@\n" pretty v pretty start pretty stop pretty r;*) - r +let length u v = succ (sub v u) - let is_even v = is_zero (logand one v) +let extract_bits ~start ~stop v = + assert (ge start zero && ge stop start); + (*Format.printf "%a[%a..%a]@\n" pretty v pretty start pretty stop;*) + let r = Z.extract v (to_int start) (to_int (length start stop)) in + (*Format.printf "%a[%a..%a]=%a@\n" pretty v pretty start pretty stop pretty r;*) + r - let pgcd u v = - if is_zero v then abs u (* Zarith raises an exception on zero arguments *) - else if is_zero u then abs v - else Z.gcd u v +let is_even v = is_zero (logand one v) - let ppcm u v = - if u = zero || v = zero - then zero - else Z.lcm u v +let pgcd u v = + if is_zero v then abs u (* Zarith raises an exception on zero arguments *) + else if is_zero u then abs v + else Z.gcd u v - let min = Z.min - let max = Z.max +let ppcm u v = + if u = zero || v = zero + then zero + else Z.lcm u v - let round_down_to_zero v modu = - mul (pos_div v modu) modu +let min = Z.min +let max = Z.max - let round_up_to_r ~min:m ~r ~modu = - add (add (round_down_to_zero (pred (sub m r)) modu) r) modu +let round_down_to_zero v modu = + mul (pos_div v modu) modu - let round_down_to_r ~max:m ~r ~modu = - add (round_down_to_zero (sub m r) modu) r +let round_up_to_r ~min:m ~r ~modu = + add (add (round_down_to_zero (pred (sub m r)) modu) r) modu - let power_int_positive_int = Big_int_Z.power_int_positive_int +let round_down_to_r ~max:m ~r ~modu = + add (round_down_to_zero (sub m r) modu) r diff --git a/src/libraries/stdlib/integer.mli b/src/libraries/stdlib/integer.mli index 75969a139e1c8ff52c6504efd0047cd3d8f36285..1e8202750a985b5318dcfb11f1cb0c12286c17c9 100644 --- a/src/libraries/stdlib/integer.mli +++ b/src/libraries/stdlib/integer.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -20,14 +20,11 @@ (* *) (**************************************************************************) -(** Extension of [Big_int] compatible with [Zarith]. +(** Extension of [Big_int] compatible with [Zarith]. @since Nitrogen-20111001 *) type t = Z.t -exception Too_big (** Produced by values whose physical representation is too - costly (e.g. in terms of memory usage). *) - val equal : t -> t -> bool val compare : t -> t -> int @@ -41,8 +38,14 @@ val sub : t -> t -> t val mul : t -> t -> t val shift_left : t -> t -> t +(** @raise Invalid_argument if second argument (count) is negative *) + val shift_right : t -> t -> t +(** @raise Invalid_argument if second argument (count) is negative *) + val shift_right_logical : t -> t -> t +(** @raise Invalid_argument if any argument is negative *) + val logand : t -> t -> t val logor : t -> t -> t val logxor : t -> t -> t @@ -52,24 +55,31 @@ val min : t -> t -> t val max : t -> t -> t val native_div : t -> t -> t + val div : t -> t -> t (** Euclidean division (that returns a positive rem) *) + val pos_div : t -> t -> t (** Euclidean division. Equivalent to C division if both operands are positive. Equivalent to a floored division if b > 0 (rounds downwards), otherwise rounds upwards. Note: it is possible that pos_div (-a) b <> pos_div a (-b). *) + val divexact: t -> t -> t (** Faster, but produces correct results only when b evenly divides a. *) + val c_div : t -> t -> t (** Truncated division towards 0 (like in C99) *) val rem : t -> t -> t (** Remainder of the Euclidean division (always positive) *) + val c_rem : t -> t -> t (** Remainder of the truncated division towards 0 (like in C99) *) + val div_rem: t -> t -> (t * t) (** [div_rem a b] returns [(pos_div a b, pos_rem a b)] *) + val pos_rem : t -> t -> t (** Remainder of the Euclidean division (always positive) *) @@ -79,9 +89,6 @@ val pgcd : t -> t -> t val ppcm : t -> t -> t (** [ppcm v 0 == ppcm 0 v == 0]. Result is always positive *) -val power_int_positive_int: int -> int -> t -(** Exponentiation *) - val cast: size:t -> signed:bool -> value:t -> t val abs : t -> t @@ -113,16 +120,13 @@ val length : t -> t -> t (** b - a + 1 *) val of_int : int -> t val of_int64 : Int64.t -> t val of_int32 : Int32.t -> t -val to_int64 : t -> int64 -val to_int32 : t -> int32 -val to_int : t -> int -(** @raise Failure if the argument does not fit in an OCaml int *) +val to_int : t -> int (** @raise Z.Overflow if too big *) +val to_int64 : t -> int64 (** @raise Z.Overflow if too big *) +val to_int32 : t -> int32 (** @raise Z.Overflow if too big *) val to_float : t -> float val of_float : float -> t -(** Converts from a floating-point value. The value is truncated. - Raises [Overflow] on infinity and NaN arguments. *) val round_up_to_r : min:t -> r:t -> modu:t -> t (** [round_up_to_r m r modu] is the smallest number [n] such that @@ -133,25 +137,42 @@ val round_down_to_r : max:t -> r:t -> modu:t -> t [n]<=[m] and [n] = [r] modulo [modu] *) val two_power : t -> t -(** [two_power x] computes 2^x. Can raise [Too_big]. *) +(** Computes [2^n] + @raise Z.Overflow for exponents greater than 1024 *) + val two_power_of_int : int -> t -(** Similar to [two_power x], but x is an OCaml int. *) +(** Computes [2^n] *) -val extract_bits : start:t -> stop:t -> t -> t +val power_int_positive_int: int -> int -> t +(** Exponentiation *) +val extract_bits : start:t -> stop:t -> t -> t +val popcount: t -> int val hash : t -> int +val to_string : t -> string val of_string : string -> t -(** @raise Failure _ when the string cannot be parsed. *) +(** @raise Invalid_argument when the string cannot be parsed. *) -val to_string : t -> string +val pretty : ?hexa:bool -> t Pretty_utils.formatter -val popcount: t -> int +val pp_bin : ?nbits:int -> ?sep:string -> t Pretty_utils.formatter +(** Print binary format. Digits are output by blocs of 4 bits + separated by [~sep] with at least [~nbits] total bits. If [nbits] is + non positive, it will be ignored. -val pretty : ?hexa:bool -> t Pretty_utils.formatter + Positive values are prefixed with ["0b"] and negative values + are printed as their 2-complement ([lnot]) with prefix ["1b"]. *) +val pp_hex : ?nbits:int -> ?sep:string -> t Pretty_utils.formatter +(** Print hexadecimal format. Digits are output by blocs of 16 bits + (4 hex digits) separated by [~sep] with at least [~nbits] total bits. + If [nbits] is non positive, it will be ignored. + Positive values are preffixed with ["0x"] and negative values + are printed as their 2-complement ([lnot]) with prefix ["1x"]. *) (* + Local Variables: compile-command: "make -C ../../.." End: diff --git a/src/libraries/stdlib/transitioning.ml.in b/src/libraries/stdlib/transitioning.ml.in index 635167b68b28f494bd01b14a8636893e26f12f71..053b4627244c1fcbc7e79231494b20f7747b7d9c 100644 --- a/src/libraries/stdlib/transitioning.ml.in +++ b/src/libraries/stdlib/transitioning.ml.in @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/stdlib/transitioning.mli b/src/libraries/stdlib/transitioning.mli index 2038c085a07399c9ed1ff38d079969f0534df2f3..c138f09e9b9b1daa70928d14d302664d2875b73f 100644 --- a/src/libraries/stdlib/transitioning.mli +++ b/src/libraries/stdlib/transitioning.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/bag.ml b/src/libraries/utils/bag.ml index 14394e49248e2015062c2540deb996696917d141..667efc3e03825b89dc6977eab34702ab7f26564e 100644 --- a/src/libraries/utils/bag.ml +++ b/src/libraries/utils/bag.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/bag.mli b/src/libraries/utils/bag.mli index 1222b3293f1783e971b31e897aa03cf0571d2d26..5be0132ac86a6b8073fb8cbd438f23ec34dfe967 100644 --- a/src/libraries/utils/bag.mli +++ b/src/libraries/utils/bag.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/binary_cache.ml b/src/libraries/utils/binary_cache.ml index ac9256daa871f80bd61e801c818baba485480de8..6e3f0aff434203da187112c6548b5e34744a7055 100644 --- a/src/libraries/utils/binary_cache.ml +++ b/src/libraries/utils/binary_cache.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/binary_cache.mli b/src/libraries/utils/binary_cache.mli index 106c39ae5d30b87688cbb496c7875b7d93e6fef6..19e947519a56794659890ccfeecbdac40d871607 100644 --- a/src/libraries/utils/binary_cache.mli +++ b/src/libraries/utils/binary_cache.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/bitvector.ml b/src/libraries/utils/bitvector.ml index d0832a92bfaedd6181b4b7ea49696f4782318041..a1dfcfa38a4fedeaedb472bed9e4da705168d501 100644 --- a/src/libraries/utils/bitvector.ml +++ b/src/libraries/utils/bitvector.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/bitvector.mli b/src/libraries/utils/bitvector.mli index 94a0712c51db815d46466d84402b1f9079f14127..4ef47ae578f358a97b39024960e6fc71c40fccd4 100644 --- a/src/libraries/utils/bitvector.mli +++ b/src/libraries/utils/bitvector.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/c_bindings.c b/src/libraries/utils/c_bindings.c index 3436ae57b98374859a98fe95eade8a06f1049c96..992111ceb27a10cd953c5df066a095a2895834cb 100644 --- a/src/libraries/utils/c_bindings.c +++ b/src/libraries/utils/c_bindings.c @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/src/libraries/utils/command.ml b/src/libraries/utils/command.ml index aad137db03bbc65edbaf84a1c9bf8c82c300cdeb..3e08c8037a6c31de22960dd26f2553b9e6d9e8dd 100644 --- a/src/libraries/utils/command.ml +++ b/src/libraries/utils/command.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/command.mli b/src/libraries/utils/command.mli index 45486f7ad2acc0311baee4294ec1e948411d4a28..c3bb0ea3fa1f78f72746d98a95b7951a04e7c6ba 100644 --- a/src/libraries/utils/command.mli +++ b/src/libraries/utils/command.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/filepath.ml b/src/libraries/utils/filepath.ml index 1e9bed543f11cb24cb0dd27a0366259a1000486d..0e774657a818b0b5f91cafba14f4b21197480427 100644 --- a/src/libraries/utils/filepath.ml +++ b/src/libraries/utils/filepath.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/filepath.mli b/src/libraries/utils/filepath.mli index 2c9267e77f4d876dcae466f45a7f7aec92185018..6ea46d821541a1de524e1baad38bbadcf6339b54 100644 --- a/src/libraries/utils/filepath.mli +++ b/src/libraries/utils/filepath.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -63,7 +63,7 @@ val is_relative: ?base_name:string -> string -> bool in the filesystem. @since Neon-20140301 - @deprecated since Frama-C+dev + @deprecated since 18.0-Argon *) val pretty: string -> string [@@deprecated "Use Filepath.Normalized.to_pretty_string instead."] @@ -76,7 +76,7 @@ val add_symbolic_dir: string -> string -> unit (** The [Normalized] module is simply a wrapper that ensures that paths are always normalized. Used by [Datatype.Filepath]. - @since Frama-C+dev *) + @since 18.0-Argon *) module Normalized: sig (** The normalized (absolute) path. *) @@ -123,7 +123,7 @@ module Normalized: sig end (** Describes a position in a source file. - @since Frama-C+dev + @since 18.0-Argon *) type position = { @@ -134,7 +134,7 @@ type position = } (** Pretty-prints a position, in the format file:line. - @since Frama-C+dev + @since 18.0-Argon *) val pp_pos : Format.formatter -> position -> unit diff --git a/src/libraries/utils/floating_point.ml b/src/libraries/utils/floating_point.ml index a9c8af45ec6d028d1ec6228b6bb5bbccb025d936..c8361ffa26a50e71ea52282b8ee9653872c2202e 100644 --- a/src/libraries/utils/floating_point.ml +++ b/src/libraries/utils/floating_point.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/floating_point.mli b/src/libraries/utils/floating_point.mli index c39eb54a561e9098351f0985567de5bd04b755d6..8e82a0a59b39867adac48ab0f6eed8e32a7c8880 100644 --- a/src/libraries/utils/floating_point.mli +++ b/src/libraries/utils/floating_point.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/hook.ml b/src/libraries/utils/hook.ml index f2fb12679e486bfe8f056328400d7f7877386081..c8a1ea7c6e231a2dbbdc2b3b3fa1b38312d5cc1e 100644 --- a/src/libraries/utils/hook.ml +++ b/src/libraries/utils/hook.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/hook.mli b/src/libraries/utils/hook.mli index cdbe96ea503ef3fcaeba8ea10a26ff75a7613d44..945e5baef4450bd034980a14812af305e9d13e27 100644 --- a/src/libraries/utils/hook.mli +++ b/src/libraries/utils/hook.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/hptset.ml b/src/libraries/utils/hptset.ml index f5c71cb736d69d29134c384f300f26183a9ac39a..7624684f2e8c855e3b9873f397cdde077d74aeeb 100644 --- a/src/libraries/utils/hptset.ml +++ b/src/libraries/utils/hptset.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/hptset.mli b/src/libraries/utils/hptset.mli index 1f3ff9a6a2550790166bab52d2436c7c64559aaf..e1dc4f1678a4f6a160cb4fa7ed144548bc4b740b 100644 --- a/src/libraries/utils/hptset.mli +++ b/src/libraries/utils/hptset.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/indexer.ml b/src/libraries/utils/indexer.ml index aefcd248fc0821cd838d189fcd90cd2581dac59b..f4cee597ec2bd91e10ebea04706e6edf5e7b5dd0 100644 --- a/src/libraries/utils/indexer.ml +++ b/src/libraries/utils/indexer.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/indexer.mli b/src/libraries/utils/indexer.mli index 93d56bff17d7d4ec9251659a358a581bcc122629..95fff6e7fd8273aa01503ed11acad3fb24dfc1e5 100644 --- a/src/libraries/utils/indexer.mli +++ b/src/libraries/utils/indexer.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/json.mli b/src/libraries/utils/json.mli index 82027243df20fa6471ef0272ba18fdf9c7c86911..76a2b809f0f5ba08e5f0117059e845ce146b5539 100644 --- a/src/libraries/utils/json.mli +++ b/src/libraries/utils/json.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -20,27 +20,30 @@ (* *) (**************************************************************************) -(** Json Library +(** Json Library Remarks: - - UTF-8 escaping is not supported; - - Parsers are less {i strict} than Json format; - - Printers are supposed to {i strictly} conforms to Json format; - - [Number] can be used to encode non OCaml-primitive numbers, + - UTF-8 escaping is not supported; + - Parsers are less {i strict} than Json format; + - Printers are supposed to {i strictly} conforms to Json format; + - [Number] can be used to encode non OCaml-primitive numbers, for instance Zarith. *) -(** Json Objects *) -type t = - | Null - | True | False - | String of string - | Number of string - | Int of int - | Float of float - | Array of t list - | Assoc of (string * t) list +(** Json Objects + Same type than [Yojson.Basic.json] +*) +type json = + [ `Assoc of (string * json) list + | `Bool of bool + | `Float of float + | `Int of int + | `List of json list + | `Null + | `String of string ] + +type t = json val equal : t -> t -> bool (** Pervasives *) val compare : t -> t -> int (** Pervasives *) val pp : Format.formatter -> t -> unit @@ -79,11 +82,11 @@ val save_file : ?pretty:bool -> string -> t -> unit format. *) val bool : t -> bool -(** Extract [True] and [False] only. +(** Extract [True] and [False] only. @raise Invalid_argument when the conversion fails. *) val int : t -> int -(** Convert [Null], [Int], [Float], [Number] and [String] to an [int]. +(** Convert [Null], [Int], [Float], [Number] and [String] to an [int]. Floats are truncated with [int_of_float] and [Null] to 0. @raise Invalid_argument when the conversion fails. *) @@ -97,19 +100,24 @@ val float : t -> float @raise Invalid_argument when the conversion fails. *) val array : t -> t array -(** Extract the array of an [Array] object. +(** Extract the array of an [Array] object. [Null] is considered an empty array. @raise Invalid_argument if the object is not an array. *) val list : t -> t list -(** Extract the list of an [Array] object. +(** Extract the list of an [Array] object. [Null] is considered an empty list. @raise Invalid_argument if the object is not a list. *) - + +val assoc : t -> (string * t) list +(** Extract the list of an [Assoc] object. + [Null] is considered an empty assoc. + @raise Invalid_argument if the object is not a list. *) + val fold : (string -> t -> 'a -> 'a) -> t -> 'a -> 'a -(** Fold over all fields of the object. +(** Fold over all fields of the object. [Null] is considered an empty object. - Typical usage is [fold M.add t M.empty] where [M=Map.Make(String)]. + Typical usage is [fold M.add t M.empty] where [M=Map.Make(String)]. @raise Invalid_argument if the object is not an [Assoc] or [Null] object. *) val field : string -> t -> t diff --git a/src/libraries/utils/json.mll b/src/libraries/utils/json.mll index 3a18621bf642a982d41c2a7f65d4c4bb0a9806d5..8444a4bc8ed32eb86fd517fedf9d7fd74143df47 100644 --- a/src/libraries/utils/json.mll +++ b/src/libraries/utils/json.mll @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -26,16 +26,16 @@ { -type t = - | Null - | True | False - | String of string - | Number of string - | Int of int - | Float of float - | Array of t list - | Assoc of (string * t) list +type json = + [ `Assoc of (string * json) list + | `Bool of bool + | `Float of float + | `Int of int + | `List of json list + | `Null + | `String of string ] +type t = json let equal = (=) let compare = Pervasives.compare @@ -88,15 +88,15 @@ let skip input = *) let rec parse_value input = match input.token with - | EOF -> Null - | TRUE -> skip input ; True - | FALSE -> skip input ; False - | NULL -> skip input ; Null - | STR a -> skip input ; String a - | INT a -> skip input ; (try Int(int_of_string a) with _ -> Number a) - | DEC a -> skip input ; (try Float(float_of_string a) with _ -> Number a) - | KEY '[' -> skip input ; Array (parse_array [] input) - | KEY '{' -> skip input ; Assoc (parse_object [] input) + | EOF -> `Null + | TRUE -> skip input ; `Bool true + | FALSE -> skip input ; `Bool false + | NULL -> skip input ; `Null + | STR a -> skip input ; `String a + | INT a -> skip input ; (try `Int(int_of_string a) with _ -> `String a) + | DEC a -> skip input ; (try `Float(float_of_string a) with _ -> `String a) + | KEY '[' -> skip input ; `List (parse_array [] input) + | KEY '{' -> skip input ; `Assoc (parse_object [] input) | _ -> failwith "unexpected token" and parse_array es input = @@ -163,20 +163,18 @@ let load_file file = let rec pp fmt v = let open Format in match v with - | Null -> pp_print_string fmt "null" - | True -> pp_print_string fmt "true" - | False -> pp_print_string fmt "false" - | String s -> fprintf fmt "%S" s - | Number s -> pp_print_string fmt s - | Int a -> pp_print_int fmt a - | Float f -> pp_print_float fmt f - | Array [] -> pp_print_string fmt "[]" - | Array (e::es) -> + | `Null -> pp_print_string fmt "null" + | `Bool b -> pp_print_bool fmt b + | `String s -> fprintf fmt "%S" s + | `Int a -> pp_print_int fmt a + | `Float f -> pp_print_float fmt f + | `List [] -> pp_print_string fmt "[]" + | `List (e::es) -> Format.fprintf fmt "@[<hov 2>[ %a" pp e ; List.iter (fun e -> Format.fprintf fmt ",@ %a" pp e) es ; Format.fprintf fmt " ]@]" - | Assoc [] -> pp_print_string fmt "{}" - | Assoc (e::es) -> + | `Assoc [] -> pp_print_string fmt "{}" + | `Assoc (e::es) -> Format.fprintf fmt "@[<hov 2>{ %a" pp_entry e ; List.iter (fun e -> Format.fprintf fmt ",@ %a" pp_entry e) es ; Format.fprintf fmt " }@]" @@ -188,20 +186,19 @@ let dump_string f s = f quote ; f (String.escaped s) ; f quote let rec dump f = function - | Null -> f "null" - | True -> f "true" - | False -> f "false" - | String s -> dump_string f s - | Number s -> f s - | Int a -> f (string_of_int a) - | Float x -> f (string_of_float x) - | Array [] -> f "[]" - | Array (e::es) -> + | `Null -> f "null" + | `Bool true -> f "true" + | `Bool false -> f "false" + | `String s -> dump_string f s + | `Int a -> f (string_of_int a) + | `Float x -> f (string_of_float x) + | `List [] -> f "[]" + | `List (e::es) -> f "[" ; dump f e ; List.iter (fun e -> f "," ; dump f e) es ; f "]" - | Assoc [] -> f "{}" - | Assoc (e::es) -> + | `Assoc [] -> f "{}" + | `Assoc (e::es) -> f "{" ; dump_entry f e ; List.iter (fun e -> f "," ; dump_entry f e) es ; @@ -244,57 +241,59 @@ let save_file ?(pretty=true) file v = let invalid name = raise (Invalid_argument ("Json." ^ name)) let bool = function - | True -> true - | False -> false + | `Bool b -> b | _ -> invalid "bool" let int = function - | Null -> 0 - | Int n -> n - | Float f -> (try int_of_float f with _ -> invalid "int") - | Number s | String s -> (try int_of_string s with _ -> invalid "int") + | `Null -> 0 + | `Int n -> n + | `Float f -> (try int_of_float f with _ -> invalid "int") | _ -> invalid "int" let float = function - | Null -> 0.0 - | Float f -> f - | Int n -> (try float_of_int n with _ -> invalid "float") - | Number s | String s -> (try float_of_string s with _ -> invalid "float") + | `Null -> 0.0 + | `Float f -> f + | `Int n -> (try float_of_int n with _ -> invalid "float") | _ -> invalid "float" let string = function - | Null -> "" - | Int n -> string_of_int n - | Float f -> string_of_float f - | Number s | String s -> s + | `Null -> "" + | `Int n -> string_of_int n + | `Float f -> string_of_float f + | `String s -> s | _ -> invalid "string" let list = function - | Null -> [] - | Array es -> es + | `Null -> [] + | `List es -> es | _ -> invalid "list" let array = function - | Null -> [| |] - | Array es -> Array.of_list es + | `Null -> [| |] + | `List es -> Array.of_list es | _ -> invalid "array" +let assoc = function + | `Null -> [] + | `Assoc fs -> fs + | _ -> invalid "assoc" + let field f = function - | Null -> raise Not_found - | Assoc fs -> List.assoc f fs + | `Null -> raise Not_found + | `Assoc fs -> List.assoc f fs | _ -> invalid "field" let fold f v w = match v with - | Null -> w - | Assoc fs -> List.fold_left (fun w (e,v) -> f e v w) w fs + | `Null -> w + | `Assoc fs -> List.fold_left (fun w (e,v) -> f e v w) w fs | _ -> invalid "fold" -let of_bool b = if b then True else False -let of_int k = Int k -let of_string s = String s -let of_float f = Float f -let of_list xs = Array xs -let of_array xs = Array (Array.to_list xs) -let of_fields m = Assoc m +let of_bool b = `Bool b +let of_int k = `Int k +let of_string s = `String s +let of_float f = `Float f +let of_list xs = `List xs +let of_array xs = `List (Array.to_list xs) +let of_fields m = `Assoc m } diff --git a/src/libraries/utils/pretty_utils.ml b/src/libraries/utils/pretty_utils.ml index 025134145a19814d56979985d0d005cc9e03b128..3ecc2ed1913e5f0d15842863071b9cd74435c621 100644 --- a/src/libraries/utils/pretty_utils.ml +++ b/src/libraries/utils/pretty_utils.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/pretty_utils.mli b/src/libraries/utils/pretty_utils.mli index 9917bdd7855e0dd58f819db8ddcfb563332e85a6..c0cfa39b1b6543cf0fc3e5d46704bb93846ed55b 100644 --- a/src/libraries/utils/pretty_utils.mli +++ b/src/libraries/utils/pretty_utils.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/qstack.ml b/src/libraries/utils/qstack.ml index 55cd0c5dc68048d2b2d34dc596940adde824aa3d..525e2f7f130eb332ae7e7c79eb8acac30802c12f 100644 --- a/src/libraries/utils/qstack.ml +++ b/src/libraries/utils/qstack.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/qstack.mli b/src/libraries/utils/qstack.mli index 5fc4fbd7eac621822f1fbb02f8615ce5e1d21971..5a3dfdcc202a2ea1d36f6fcd79e2a6b82f1553dd 100644 --- a/src/libraries/utils/qstack.mli +++ b/src/libraries/utils/qstack.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/rgmap.ml b/src/libraries/utils/rgmap.ml index 840274b5143f9aca1300ceee785b24bc83a74fa0..054bb4b9cfac56c9129dd6daf04d862a9df3feed 100644 --- a/src/libraries/utils/rgmap.ml +++ b/src/libraries/utils/rgmap.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/rgmap.mli b/src/libraries/utils/rgmap.mli index 7571afcc1b635268ed97a297a4ceeec4e8d00f11..0c6bacd6e2f188c42080fdd871b555dfff36bd52 100644 --- a/src/libraries/utils/rgmap.mli +++ b/src/libraries/utils/rgmap.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/rich_text.ml b/src/libraries/utils/rich_text.ml index 5014d1064f02e0ed2ed1df50e28bfad903cc6629..3a15771b965c85bb62c45878e0e82a8d9cdfc76c 100644 --- a/src/libraries/utils/rich_text.ml +++ b/src/libraries/utils/rich_text.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/rich_text.mli b/src/libraries/utils/rich_text.mli index 4a022c408ce902158aa41d09074ffbfafdcf06ae..415d3e3ef32a1a708b89b5606c1104812786e13f 100644 --- a/src/libraries/utils/rich_text.mli +++ b/src/libraries/utils/rich_text.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/sanitizer.ml b/src/libraries/utils/sanitizer.ml new file mode 100644 index 0000000000000000000000000000000000000000..cb0d0148b09c826865e3e4859bda5360660d2c9b --- /dev/null +++ b/src/libraries/utils/sanitizer.ml @@ -0,0 +1,99 @@ +(**************************************************************************) +(* *) +(* This file is part of Frama-C. *) +(* *) +(* Copyright (C) 2007-2019 *) +(* CEA (Commissariat à l'énergie atomique et aux énergies *) +(* alternatives) *) +(* *) +(* you can redistribute it and/or modify it under the terms of the GNU *) +(* Lesser General Public License as published by the Free Software *) +(* Foundation, version 2.1. *) +(* *) +(* It is distributed in the hope that it will be useful, *) +(* but WITHOUT ANY WARRANTY; without even the implied warranty of *) +(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *) +(* GNU Lesser General Public License for more details. *) +(* *) +(* See the GNU Lesser General Public License version 2.1 *) +(* for more details (enclosed in the file licenses/LGPLv2.1). *) +(* *) +(**************************************************************************) + +(* -------------------------------------------------------------------------- *) +(* --- Sanitizer --- *) +(* -------------------------------------------------------------------------- *) + +(* + Keeps only alphanumerical characters, + remove consecutive, trailing and leading `_` +*) + +type state = START | SEP | CHAR | TRUNCATE + +type buffer = { + content : Buffer.t ; + truncate : int ; + mutable lastsep : int ; + mutable state : state ; +} + +let create ?(truncate=false) n = { + content = Buffer.create n ; + truncate = if truncate then n else max_int ; + lastsep = 0 ; + state = START ; +} + +let clear buffer = + begin + Buffer.clear buffer.content ; + buffer.state <- START ; + buffer.lastsep <- 0 ; + end + +let add_sep buffer = + if buffer.state = CHAR then + let offset = Buffer.length buffer.content in + if offset < buffer.truncate then + begin + buffer.state <- SEP ; + buffer.lastsep <- offset ; + end + else + begin + buffer.state <- TRUNCATE ; + (* TODO [OCaml 4.05] Buffer.truncate buffer.content buffer.lastsep ; *) + end + +let add_char buffer = function + | ('a'..'z' | 'A'..'Z' | '0'..'9') as c -> + begin + match buffer.state with + | START -> + Buffer.add_char buffer.content c ; + buffer.state <- CHAR + | SEP -> + Buffer.add_char buffer.content '_' ; + Buffer.add_char buffer.content c ; + buffer.state <- CHAR + | CHAR -> + Buffer.add_char buffer.content c + | TRUNCATE -> () + end + | '_' | '-' | ' ' | '\t' | ',' | ';' | '.' | '/' | '\\' | ':' -> + add_sep buffer + | _ -> () + +let add_string buffer s = String.iter (add_char buffer) s + +let rec add_list buffer = function + | [] -> () + | p::ps -> add_string buffer p ; add_sep buffer ; add_list buffer ps + +let contents buffer = + (* TODO [OCaml 4.05] simply buffer contents if using Buffer.truncate *) + let s = Buffer.contents buffer.content in + if buffer.state = TRUNCATE then + String.sub s 0 buffer.lastsep + else s diff --git a/src/libraries/utils/sanitizer.mli b/src/libraries/utils/sanitizer.mli new file mode 100644 index 0000000000000000000000000000000000000000..3371d4cd4a5930320d2f77bc70b1b0d8242b61fc --- /dev/null +++ b/src/libraries/utils/sanitizer.mli @@ -0,0 +1,40 @@ +(**************************************************************************) +(* *) +(* This file is part of Frama-C. *) +(* *) +(* Copyright (C) 2007-2019 *) +(* CEA (Commissariat à l'énergie atomique et aux énergies *) +(* alternatives) *) +(* *) +(* you can redistribute it and/or modify it under the terms of the GNU *) +(* Lesser General Public License as published by the Free Software *) +(* Foundation, version 2.1. *) +(* *) +(* It is distributed in the hope that it will be useful, *) +(* but WITHOUT ANY WARRANTY; without even the implied warranty of *) +(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *) +(* GNU Lesser General Public License for more details. *) +(* *) +(* See the GNU Lesser General Public License version 2.1 *) +(* for more details (enclosed in the file licenses/LGPLv2.1). *) +(* *) +(**************************************************************************) + +(** {2 Sanitizer} + + Keeps only alpha-numerical characters. + Separator ['_'] is allowed, but leading, trailing and consecutive + separators are removed. +*) + +type buffer + +val create : ?truncate:bool -> int -> buffer +val clear : buffer -> unit + +val add_sep : buffer -> unit (** Adds ['_'] character *) +val add_char : buffer -> char -> unit +val add_string : buffer -> string -> unit +val add_list : buffer -> string list -> unit (** Separated with ['_'] *) + +val contents : buffer -> string diff --git a/src/libraries/utils/task.ml b/src/libraries/utils/task.ml index 44c5d8502339d4c73d8869b60de32a051c23d46d..aaaf758d4f84ec83e4fdfeff05bbf92ad7fb1fc7 100644 --- a/src/libraries/utils/task.ml +++ b/src/libraries/utils/task.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/task.mli b/src/libraries/utils/task.mli index 9de878ba092c33e1073293990cfc013541ed497d..af8a018bd16ab0d4da61e1aa5ddea83b3ba381bc 100644 --- a/src/libraries/utils/task.mli +++ b/src/libraries/utils/task.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/unicode.ml b/src/libraries/utils/unicode.ml index 070e83d04256e89f012a144df394b7f9f4b2a665..f4f7ad09a1998d0ca055a1bc94d5e6e5730ead04 100644 --- a/src/libraries/utils/unicode.ml +++ b/src/libraries/utils/unicode.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/unicode.mli b/src/libraries/utils/unicode.mli index b085178748d92180cffd83ecd57e80d6d4078b85..4d02557081388e1b234785ed9e327452e939ad99 100644 --- a/src/libraries/utils/unicode.mli +++ b/src/libraries/utils/unicode.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/utf8_logic.ml b/src/libraries/utils/utf8_logic.ml index a00be6b94204433e86fa3cc8d30fd534433978bc..6e303a0a8b140a4fe5ac3138d7290b885784d769 100644 --- a/src/libraries/utils/utf8_logic.ml +++ b/src/libraries/utils/utf8_logic.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) diff --git a/src/libraries/utils/utf8_logic.mli b/src/libraries/utils/utf8_logic.mli index c1cdcf07a41872676b1b63c5344fa5fb869738f1..89256c6e961a6b34fa711199ae40668dedfc6633 100644 --- a/src/libraries/utils/utf8_logic.mli +++ b/src/libraries/utils/utf8_logic.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) diff --git a/src/libraries/utils/vector.ml b/src/libraries/utils/vector.ml index 0ddf8515fa6f768151d6c233a20aeced21a293e1..916a3f7249c286b24066502b2091387b0fa21759 100644 --- a/src/libraries/utils/vector.ml +++ b/src/libraries/utils/vector.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/vector.mli b/src/libraries/utils/vector.mli index 86a3a0609d8dbe095a9438b69562f2afb11dfdac..51798840e16bbe0371580d5b1a70ddbe06687f6e 100644 --- a/src/libraries/utils/vector.mli +++ b/src/libraries/utils/vector.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/wto.ml b/src/libraries/utils/wto.ml index 9dfb1741e05f60a31e2178639cb443ede81e839d..617ae52bb06bbbe839ee1c99b7f562f00df96d04 100644 --- a/src/libraries/utils/wto.ml +++ b/src/libraries/utils/wto.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/wto.mli b/src/libraries/utils/wto.mli index 884a49c931018f34ede4c7a40b4972e97bed81f7..ffd631371e9663c2367ddb2a899c391195fb091c 100644 --- a/src/libraries/utils/wto.mli +++ b/src/libraries/utils/wto.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/aorai/Aorai.mli b/src/plugins/aorai/Aorai.mli index de19722cd7f714ba1d6aead4acd02edb87f7de43..b4832d9d2ffb220ccbd4a26ca27d9d3764d16726 100644 --- a/src/plugins/aorai/Aorai.mli +++ b/src/plugins/aorai/Aorai.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Aorai plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) diff --git a/src/plugins/aorai/Makefile.in b/src/plugins/aorai/Makefile.in index 0a0f11715921579d18ebcd13fb56aadf8cef3f0e..423244b822a3af9883971dd6deabac001cfed778 100644 --- a/src/plugins/aorai/Makefile.in +++ b/src/plugins/aorai/Makefile.in @@ -2,7 +2,7 @@ # # # This file is part of Aorai plug-in of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # INRIA (Institut National de Recherche en Informatique et en # @@ -80,12 +80,10 @@ PLUGIN_NO_DEFAULT_TEST:=yes endif PLUGIN_TESTS_DIRS:=aorai -PLUGIN_TESTS_LIB:=$(PLUGIN_DIR)/tests/aorai/Aorai_test.ml +PLUGIN_TESTS_LIB:=$(PLUGIN_DIR)/tests/aorai/Aorai_test.ml $(PLUGIN_DIR)/tests/aorai/name_projects.ml include $(FRAMAC_SHARE)/Makefile.dynamic -# Regenerating the Makefile on need - ifeq ("$(FRAMAC_INTERNAL)","yes") CONFIG_STATUS_DIR=$(FRAMAC_SRC) AORAI_WP_SHARE=-aorai-test-wp-share $(FRAMAC_ROOT_SRCDIR)/src/plugins/wp/share @@ -103,7 +101,9 @@ $(Aorai_DIR)/tests/test_config_prove: \ $(SED) -e 's!@AORAI_WP_SHARE@!$(AORAI_WP_SHARE)!' $< > $@ $(CHMOD_RO) $@ -Aorai_DEFAULT_TESTS: $(Aorai_DIR)/tests/aorai/Aorai_test.cmxs $(Aorai_DIR)/tests/aorai/Aorai_test.cmo +Aorai_DEFAULT_TESTS: $(Aorai_DIR)/tests/aorai/Aorai_test.cmxs $(Aorai_DIR)/tests/aorai/Aorai_test.cmo $(Aorai_DIR)/tests/aorai/name_projects.cmxs $(Aorai_DIR)/tests/aorai/name_projects.cmo + +# Regenerating the Makefile on need $(Aorai_DIR)/Makefile: $(Aorai_DIR)/Makefile.in \ $(CONFIG_STATUS_DIR)/config.status @@ -113,58 +113,3 @@ headers:: $(SED) -e 's/This file is/Files in this archive are/' \ $(FRAMAC_SRC)/headers/open-source/INSA_INRIA_LGPL \ > $(FRAMAC_SRC)/doc/aorai/example/LICENSE - -LOCAL_SRC_DIR=aorai -COMMON_FILES_TO_COPY=$(PLUGIN_DISTRIB_EXTERNAL) Makefile.in YA.README INSTALL VERSIONS.txt -FRAMAC_SRC_ROOT=../../.. -LOCAL_WEB_ROOT=/home/nstouls/Projets/AMAZONES/ForgeINRIA/main/aorai/ -LOCAL_WEB_DIFFUSION=$(LOCAL_WEB_ROOT)/site/src/site/resources -TODAY=`date +"%d-%m-%Y - %T"` -TAGIN=<\!--START DATE--> -TAGOUT=<\!--END DATE--> -INDEX=$(LOCAL_WEB_DIFFUSION)/index.html - -pre-release: - mkdir -p $(LOCAL_SRC_DIR)/doc - - @echo '## Generating bin and doc' - @make -C $(FRAMAC_SRC_ROOT) depend --quiet - @make -C $(FRAMAC_SRC_ROOT) --quiet - @make -C $(FRAMAC_SRC_ROOT) $(PLUGIN_NAME)_DOC --quiet - cp -r $(FRAMAC_SRC_ROOT)/doc/code/aorai $(LOCAL_SRC_DIR)/doc/. - cp $(FRAMAC_SRC_ROOT)/doc/code/frama-c.png $(LOCAL_SRC_DIR)/doc/. - cp $(FRAMAC_SRC_ROOT)/doc/code/style.css $(LOCAL_SRC_DIR)/doc/. - - @make -C $(FRAMAC_SRC_ROOT)/doc/aorai/ --quiet - @make -C $(FRAMAC_SRC_ROOT)/doc/aorai/ install --quiet - cp $(FRAMAC_SRC_ROOT)/doc/manuals/aorai-manual.pdf $(LOCAL_SRC_DIR)/doc/. - cp $(FRAMAC_SRC_ROOT)/doc/manuals/aorai-example.tgz $(LOCAL_SRC_DIR)/doc/. - - @echo '## Deployment for local release' - @make clean --quiet -# SRC directory generation - if [ -d autom4te.cache ] ; then rm -rf autom4te.cache ; fi - cp *.* $(LOCAL_SRC_DIR) - -# Commun files copy - for f in $(COMMON_FILES_TO_COPY) ; do \ - cp $$f $(LOCAL_SRC_DIR)/. ; \ - done - - @echo "## Generating archive" - tar -czf $(LOCAL_SRC_DIR).tgz $(LOCAL_SRC_DIR) - @echo "## Done." - @echo "## Please make 'pre-release-deploy' to move archive to $(LOCAL_WEB_DIFFUSION)" - -pre-release-deploy: $(LOCAL_SRC_DIR).tgz - @echo "## Moving archive to $(LOCAL_WEB_DIFFUSION)" - mv $(LOCAL_SRC_DIR).tgz $(LOCAL_WEB_DIFFUSION) - cat $(INDEX) | sed "s/$(TAGIN).*$(TAGOUT)/$(TAGIN)$(TODAY)$(TAGOUT)/" $(INDEX) > $(INDEX)2 - mv $(INDEX)2 $(INDEX) - @echo "## Website updated" - cd $(LOCAL_WEB_ROOT) && ./CreateHTML.sh - -clean-all: - @make clean - @echo '## Removing generated directories' - @rm -rf $(LOCAL_SRC_DIR) diff --git a/src/plugins/aorai/aorai_dataflow.ml b/src/plugins/aorai/aorai_dataflow.ml index ceeeb64841b50b4f92179b170434244d6a341b0d..cc59c904b410d06ee0ba89fbd5d8333d107446d6 100644 --- a/src/plugins/aorai/aorai_dataflow.ml +++ b/src/plugins/aorai/aorai_dataflow.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Aorai plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) diff --git a/src/plugins/aorai/aorai_dataflow.mli b/src/plugins/aorai/aorai_dataflow.mli index 70bbf0869ed329486416ce9385d1805c63fec8f8..42c10c4f9363e68db1a6e1ff01b7005f41bcd3df 100644 --- a/src/plugins/aorai/aorai_dataflow.mli +++ b/src/plugins/aorai/aorai_dataflow.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Aorai plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) diff --git a/src/plugins/aorai/aorai_option.ml b/src/plugins/aorai/aorai_option.ml index 01de3a72d1c1ac53026daa4c88f15ff94a59679e..39c321eca169cd8565cdd87e1fda114c5f1783a9 100644 --- a/src/plugins/aorai/aorai_option.ml +++ b/src/plugins/aorai/aorai_option.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Aorai plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) diff --git a/src/plugins/aorai/aorai_option.mli b/src/plugins/aorai/aorai_option.mli index 4f589da88f64c642ae080f847df1078a19728608..9e394d8c66cfb58652aeb6457f6a35d6b1a41eb6 100644 --- a/src/plugins/aorai/aorai_option.mli +++ b/src/plugins/aorai/aorai_option.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Aorai plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) diff --git a/src/plugins/aorai/aorai_register.ml b/src/plugins/aorai/aorai_register.ml index a907f9b4b06e25808e3413d942a49d1538498319..83ebdfe08da71c6b90605f8dff1ee21eff65a0fc 100644 --- a/src/plugins/aorai/aorai_register.ml +++ b/src/plugins/aorai/aorai_register.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Aorai plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) diff --git a/src/plugins/aorai/aorai_utils.ml b/src/plugins/aorai/aorai_utils.ml index 5360d8304522d5d1fb8609b228165780dbf4fbaf..1480c68e82977d189855c1f94b3d42061162df72 100644 --- a/src/plugins/aorai/aorai_utils.ml +++ b/src/plugins/aorai/aorai_utils.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Aorai plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) diff --git a/src/plugins/aorai/aorai_utils.mli b/src/plugins/aorai/aorai_utils.mli index 05a745a07e0c7cb51171ca0e91838380670548b0..1d1fabbe7a9b3510055097ca014d3e62f52ff489 100644 --- a/src/plugins/aorai/aorai_utils.mli +++ b/src/plugins/aorai/aorai_utils.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Aorai plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) diff --git a/src/plugins/aorai/aorai_visitors.ml b/src/plugins/aorai/aorai_visitors.ml index 085dfb3e8f64e7c363753e5e3f246c737ae0dfc1..68571210062b0840fed735fc4ff2666354155d20 100644 --- a/src/plugins/aorai/aorai_visitors.ml +++ b/src/plugins/aorai/aorai_visitors.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Aorai plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) diff --git a/src/plugins/aorai/bool3.ml b/src/plugins/aorai/bool3.ml index cdd78632256220cc220ec5ba55e10a3e2d854b56..248626909b891694e5b705876ecb4f69002daf17 100644 --- a/src/plugins/aorai/bool3.ml +++ b/src/plugins/aorai/bool3.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Aorai plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) diff --git a/src/plugins/aorai/bool3.mli b/src/plugins/aorai/bool3.mli index bc229ba5a3be9bf7103f9ddb5567a88abf8ff63a..024b37c6481f05966fed845deb2ae2e6b371fc59 100644 --- a/src/plugins/aorai/bool3.mli +++ b/src/plugins/aorai/bool3.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Aorai plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) diff --git a/src/plugins/aorai/configure.ac b/src/plugins/aorai/configure.ac index 0587fc1fc6646541e050b9c4f7e043e8c3b8ed3b..00fdcfbc1557ab7ab7cf8eb51fde5fd55bf54237 100644 --- a/src/plugins/aorai/configure.ac +++ b/src/plugins/aorai/configure.ac @@ -2,7 +2,7 @@ # # # This file is part of Aorai plug-in of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # INRIA (Institut National de Recherche en Informatique et en # diff --git a/src/plugins/aorai/data_for_aorai.ml b/src/plugins/aorai/data_for_aorai.ml index e7b0e5d540eb09a23bdb06b8aecce1ce4ec71540..b2933c2f6e1ffc0be435368090607402e25e9095 100644 --- a/src/plugins/aorai/data_for_aorai.ml +++ b/src/plugins/aorai/data_for_aorai.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Aorai plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) @@ -2018,7 +2018,8 @@ let removeUnusedTransitionsAndStates () = (Aorai_state.Set.add state set) in let reached _ state set = Aorai_state.Map.fold treat_one_state state set in - let reached_states = Pre_state.fold reached Aorai_state.Set.empty in + let init = Path_analysis.get_init_states (getAutomata ()) in + let reached_states = Pre_state.fold reached (Aorai_state.Set.of_list init) in let reached_states = Post_state.fold reached reached_states in let reached_states = Loop_init_state.fold reached reached_states in let reached_states = Loop_invariant_state.fold reached reached_states in diff --git a/src/plugins/aorai/data_for_aorai.mli b/src/plugins/aorai/data_for_aorai.mli index 3ee8e092cfeab74e33679497504909386b77f508..a867e23e7f0493a1e6bdc842b612b0be1fac88bf 100644 --- a/src/plugins/aorai/data_for_aorai.mli +++ b/src/plugins/aorai/data_for_aorai.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Aorai plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) diff --git a/src/plugins/aorai/logic_simplification.ml b/src/plugins/aorai/logic_simplification.ml index 38c5111c5eabfbd7b0a8cab334d3f44d0406d012..bb887b17b028a35533a7054cbe42be840b65f4ae 100644 --- a/src/plugins/aorai/logic_simplification.ml +++ b/src/plugins/aorai/logic_simplification.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Aorai plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) diff --git a/src/plugins/aorai/logic_simplification.mli b/src/plugins/aorai/logic_simplification.mli index fb67eaf2ae1f4d3d732f4a9d3b7f6ffbb78dc886..6e363d3bf464f552c433265ad2749886a611f351 100644 --- a/src/plugins/aorai/logic_simplification.mli +++ b/src/plugins/aorai/logic_simplification.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Aorai plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) diff --git a/src/plugins/aorai/ltl_output.ml b/src/plugins/aorai/ltl_output.ml index 15973dff9405c670e5fbafd45f282511c3ce1b46..ae142d75373dd60d85bac9cd2727b94b0fd75fb3 100644 --- a/src/plugins/aorai/ltl_output.ml +++ b/src/plugins/aorai/ltl_output.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Aorai plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) diff --git a/src/plugins/aorai/ltl_output.mli b/src/plugins/aorai/ltl_output.mli index 83d663ef3ec73a57e32962b1088b7e6fc20649be..9e2b7d50dc38b31e3e774ca34f297836f6f4c742 100644 --- a/src/plugins/aorai/ltl_output.mli +++ b/src/plugins/aorai/ltl_output.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Aorai plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) diff --git a/src/plugins/aorai/ltlast.mli b/src/plugins/aorai/ltlast.mli index c378d7eae7f6fcc9b16120caaa50147f5890ec6a..34c4d002eb44a22739cb466962a513c496eaba43 100644 --- a/src/plugins/aorai/ltlast.mli +++ b/src/plugins/aorai/ltlast.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Aorai plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) diff --git a/src/plugins/aorai/ltllexer.mll b/src/plugins/aorai/ltllexer.mll index 36a45d8f1c566bcd991714cb3b9792f09fa891e0..c5c61547f9ac97759d5aabcdfe0551ab1bb7914c 100644 --- a/src/plugins/aorai/ltllexer.mll +++ b/src/plugins/aorai/ltllexer.mll @@ -2,7 +2,7 @@ (* *) (* This file is part of Aorai plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) diff --git a/src/plugins/aorai/ltlparser.mly b/src/plugins/aorai/ltlparser.mly index 5787f52c62d8326a77e1b4b2ad90988cee25bc16..43a9315ae6f42e088b6f457f6c668fe71599eb6f 100644 --- a/src/plugins/aorai/ltlparser.mly +++ b/src/plugins/aorai/ltlparser.mly @@ -2,7 +2,7 @@ /* */ /* This file is part of Aorai plug-in of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* INRIA (Institut National de Recherche en Informatique et en */ diff --git a/src/plugins/aorai/path_analysis.ml b/src/plugins/aorai/path_analysis.ml index d917ce72db8e794d44778cc180c48e2655f3fb19..9fc9fe7b0c58084fb2345b3bb7a787e28638804f 100644 --- a/src/plugins/aorai/path_analysis.ml +++ b/src/plugins/aorai/path_analysis.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Aorai plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) diff --git a/src/plugins/aorai/promelaast.mli b/src/plugins/aorai/promelaast.mli index 4b5c7b8d6c67782e6f0ae871af61d093a9406027..d8d31f6a91db78e112187e8fd2972c8c733b1a99 100644 --- a/src/plugins/aorai/promelaast.mli +++ b/src/plugins/aorai/promelaast.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Aorai plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) diff --git a/src/plugins/aorai/promelalexer.mll b/src/plugins/aorai/promelalexer.mll index f1e48f0799e771a955223843df027a7849ced66b..99b85aa300ab57e4e1504f3bee34af5b1f4f7c48 100644 --- a/src/plugins/aorai/promelalexer.mll +++ b/src/plugins/aorai/promelalexer.mll @@ -2,7 +2,7 @@ (* *) (* This file is part of Aorai plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) diff --git a/src/plugins/aorai/promelalexer_withexps.mll b/src/plugins/aorai/promelalexer_withexps.mll index 31d9d5a58558e01531577bc5702449c9f3adc02e..ef8c86af957d856b202f0f5402aa8e564d5dbe34 100644 --- a/src/plugins/aorai/promelalexer_withexps.mll +++ b/src/plugins/aorai/promelalexer_withexps.mll @@ -2,7 +2,7 @@ (* *) (* This file is part of Aorai plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) diff --git a/src/plugins/aorai/promelaoutput.ml b/src/plugins/aorai/promelaoutput.ml index 9ad118a5ef91932d9a5aaa6b67565073ed6e00b1..54d24c477aba9824d4aac45830587e54b2c1c88c 100644 --- a/src/plugins/aorai/promelaoutput.ml +++ b/src/plugins/aorai/promelaoutput.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Aorai plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) diff --git a/src/plugins/aorai/promelaoutput.mli b/src/plugins/aorai/promelaoutput.mli index 4c8f23b5915df77a9ef36701c5fed65d25078cc5..6128bf35f6b4d3574269aeff13da74d0ee819efd 100644 --- a/src/plugins/aorai/promelaoutput.mli +++ b/src/plugins/aorai/promelaoutput.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Aorai plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) diff --git a/src/plugins/aorai/promelaparser.mly b/src/plugins/aorai/promelaparser.mly index 8e92c2f31d681b35eb47dc162931eb084c873f96..4c3a51ada47bf0ed9b241e638ed250633880177c 100644 --- a/src/plugins/aorai/promelaparser.mly +++ b/src/plugins/aorai/promelaparser.mly @@ -2,7 +2,7 @@ /* */ /* This file is part of Aorai plug-in of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* INRIA (Institut National de Recherche en Informatique et en */ diff --git a/src/plugins/aorai/promelaparser_withexps.mly b/src/plugins/aorai/promelaparser_withexps.mly index 788b7c65e2593252dc7c299c22503479237ba402..c15b6b1cbc66c6b72c3fe857c8f44728be9395c8 100644 --- a/src/plugins/aorai/promelaparser_withexps.mly +++ b/src/plugins/aorai/promelaparser_withexps.mly @@ -2,7 +2,7 @@ /* */ /* This file is part of Aorai plug-in of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* INRIA (Institut National de Recherche en Informatique et en */ diff --git a/src/plugins/aorai/tests/aorai/assigns.c b/src/plugins/aorai/tests/aorai/assigns.c index 7eb67e2087bbaa0ad8c729ab2efbf1bff2d8b1e9..c8d63fdb9dba75b9fb13a0021f32cf20f1435241 100644 --- a/src/plugins/aorai/tests/aorai/assigns.c +++ b/src/plugins/aorai/tests/aorai/assigns.c @@ -1,7 +1,8 @@ /* run.config* + EXECNOW: make -s @PTEST_DIR@/name_projects.cmxs OPT: -aorai-automata tests/aorai/assigns.ya -aorai-test 1 -load-module tests/aorai/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ OPT: -aorai-automata tests/aorai/assigns_det.ya -aorai-test 1 -load-module tests/aorai/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ - OPT: -aorai-automata tests/aorai/assigns.ya -load-script tests/aorai/name_projects.ml -aorai-test 1 -then -print + OPT: -aorai-automata tests/aorai/assigns.ya -load-module @PTEST_DIR@/name_projects -aorai-test 1 -then -print */ int X; diff --git a/src/plugins/aorai/tests/aorai/monostate.i b/src/plugins/aorai/tests/aorai/monostate.i new file mode 100644 index 0000000000000000000000000000000000000000..1eedae0ff61712b9ab23aca587a10d80f8af33b6 --- /dev/null +++ b/src/plugins/aorai/tests/aorai/monostate.i @@ -0,0 +1,9 @@ +/* run.config +OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -aorai-test 1 -load-module tests/aorai/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ +*/ + +void f(void) {} + +void main(void) { + while (1) f(); +} diff --git a/src/plugins/aorai/tests/aorai/monostate.ya b/src/plugins/aorai/tests/aorai/monostate.ya new file mode 100644 index 0000000000000000000000000000000000000000..761c225cf2d3bbf010b331bc038febf025bd88e6 --- /dev/null +++ b/src/plugins/aorai/tests/aorai/monostate.ya @@ -0,0 +1,8 @@ +%init : Init; +%deterministic; +%accept: Init; + +Init : + { main() } -> Init +| other -> Init +; diff --git a/src/plugins/aorai/tests/aorai/oracle/bts1289.0.res.oracle b/src/plugins/aorai/tests/aorai/oracle/bts1289.0.res.oracle index a1039020959cc85f8655c52f684ef1a2e3d9b50d..c7cdce1675eca5b5f360f6b59e68b5ea7f68c998 100644 --- a/src/plugins/aorai/tests/aorai/oracle/bts1289.0.res.oracle +++ b/src/plugins/aorai/tests/aorai/oracle/bts1289.0.res.oracle @@ -1,22 +1,126 @@ [kernel] Parsing tests/aorai/bts1289.i (no preprocessing) [aorai] Welcome to the Aorai plugin [aorai] Warning: Call to main does not follow automaton's specification. This path is assumed to be dead -[aorai] Warning: No state of the automaton is reachable. Program and specification are incompatible, instrumentation will not be generated. [kernel] Parsing /tmp/aorai_bts1289_0.i (no preprocessing) /* Generated by Frama-C */ +enum aorai_ListOper { + op_a = 1, + op_main = 0 +}; +enum aorai_OpStatusList { + aorai_Terminated = 1, + aorai_Called = 0 +}; +/*@ ghost enum aorai_ListOper aorai_CurOperation = op_main; */ +/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus = aorai_Called; */ +/*@ ghost int S = 0; */ +/*@ ensures aorai_CurOpStatus ≡ aorai_Called; + ensures aorai_CurOperation ≡ op_a; + assigns aorai_CurOpStatus, aorai_CurOperation, S; + + behavior buch_state_S_out: + ensures 0 ≡ S; + */ +void a_pre_func(void) +{ + /*@ ghost int S_tmp; */ + aorai_CurOpStatus = aorai_Called; + aorai_CurOperation = op_a; + S_tmp = S; + S_tmp = 0; + S = S_tmp; + return; +} + +/*@ requires \false; + ensures aorai_CurOpStatus ≡ aorai_Terminated; + ensures aorai_CurOperation ≡ op_a; + assigns aorai_CurOpStatus, aorai_CurOperation, S; + + behavior buch_state_S_out: + ensures 0 ≡ S; + */ +void a_post_func(void) +{ + /*@ ghost int S_tmp; */ + aorai_CurOpStatus = aorai_Terminated; + aorai_CurOperation = op_a; + S_tmp = S; + S_tmp = 0; + S = S_tmp; + return; +} + +/*@ requires \false; + + behavior Buchi_behavior_out_0: + ensures 0 ≡ S; */ void a(void) { + a_pre_func(); + a_post_func(); + return; +} + +/*@ ensures aorai_CurOpStatus ≡ aorai_Called; + ensures aorai_CurOperation ≡ op_main; + assigns aorai_CurOpStatus, aorai_CurOperation, S; + + behavior buch_state_S_out: + ensures 0 ≡ S; + */ +void main_pre_func(void) +{ + /*@ ghost int S_tmp; */ + aorai_CurOpStatus = aorai_Called; + aorai_CurOperation = op_main; + S_tmp = S; + S_tmp = 0; + S = S_tmp; + return; +} + +/*@ requires \false; + ensures aorai_CurOpStatus ≡ aorai_Terminated; + ensures aorai_CurOperation ≡ op_main; + assigns aorai_CurOpStatus, aorai_CurOperation, S; + + behavior buch_state_S_out: + ensures 0 ≡ S; + */ +void main_post_func(void) +{ + /*@ ghost int S_tmp; */ + aorai_CurOpStatus = aorai_Terminated; + aorai_CurOperation = op_main; + S_tmp = S; + S_tmp = 0; + S = S_tmp; return; } +/*@ requires \false; + + behavior Buchi_behavior_out_0: + ensures 0 ≡ S; */ void main(void) { + int aorai_Loop_Init_4; + main_pre_func(); int i = 0; - /*@ loop assigns i; */ + /*@ ghost aorai_Loop_Init_4 = 1; */ + aorai_loop_4: + /*@ loop invariant Aorai: 0 ≡ S; + loop assigns i, aorai_Loop_Init_4, aorai_CurOpStatus, + aorai_CurOperation, S; + loop assigns aorai_Loop_Init_4 \from \nothing; + */ while (i < 10) { + /*@ ghost aorai_Loop_Init_4 = 0; */ a(); i ++; } + main_post_func(); return; } diff --git a/src/plugins/aorai/tests/aorai/oracle/incorrect.res.oracle b/src/plugins/aorai/tests/aorai/oracle/incorrect.res.oracle index b5f37be436306ad824c7a0f7f6f7594f2dde719b..aff805d14e96b5d866f917331cbf3858a2035a4f 100644 --- a/src/plugins/aorai/tests/aorai/oracle/incorrect.res.oracle +++ b/src/plugins/aorai/tests/aorai/oracle/incorrect.res.oracle @@ -1,15 +1,69 @@ [kernel] Parsing tests/aorai/incorrect.i (no preprocessing) [aorai] Welcome to the Aorai plugin [aorai] Warning: Call to main does not follow automaton's specification. This path is assumed to be dead -[aorai] Warning: No state of the automaton is reachable. Program and specification are incompatible, instrumentation will not be generated. [kernel] Parsing /tmp/aorai_incorrect_0.i (no preprocessing) /* Generated by Frama-C */ +enum aorai_States { + aorai_reject_state = -2, + s0 = 0 +}; +enum aorai_ListOper { + op_f = 1, + op_main = 0 +}; +enum aorai_OpStatusList { + aorai_Terminated = 1, + aorai_Called = 0 +}; +/*@ lemma s0_deterministic_trans{L}: \true; + */ int f(void); +/*@ ghost enum aorai_ListOper aorai_CurOperation = op_main; */ +/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus = aorai_Called; */ +/*@ ghost int aorai_CurStates = s0; */ +/*@ ensures aorai_CurOpStatus ≡ aorai_Called; + ensures aorai_CurOperation ≡ op_main; + assigns aorai_CurOpStatus, aorai_CurOperation, aorai_CurStates; + + behavior buch_state_s0_out: + ensures aorai_CurStates ≢ s0; + */ +void main_pre_func(void) +{ + /*@ ghost int aorai_CurStates_tmp; */ + aorai_CurOpStatus = aorai_Called; + aorai_CurOperation = op_main; + aorai_CurStates_tmp = aorai_CurStates; + aorai_CurStates = aorai_CurStates_tmp; + return; +} + +/*@ requires \false; + ensures aorai_CurOpStatus ≡ aorai_Terminated; + ensures aorai_CurOperation ≡ op_main; + assigns aorai_CurOpStatus, aorai_CurOperation, aorai_CurStates; + + behavior buch_state_s0_out: + ensures aorai_CurStates ≢ s0; + */ +void main_post_func(int res) +{ + /*@ ghost int aorai_CurStates_tmp; */ + aorai_CurOpStatus = aorai_Terminated; + aorai_CurOperation = op_main; + aorai_CurStates_tmp = aorai_CurStates; + aorai_CurStates = aorai_CurStates_tmp; + return; +} + +/*@ requires \false; */ int main(void) { int tmp; + main_pre_func(); tmp = f(); + main_post_func(tmp); return tmp; } diff --git a/src/plugins/aorai/tests/aorai/oracle/monostate.res.oracle b/src/plugins/aorai/tests/aorai/oracle/monostate.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..9d20f728baa6537ef95e2ec1fd374534fdd6742a --- /dev/null +++ b/src/plugins/aorai/tests/aorai/oracle/monostate.res.oracle @@ -0,0 +1,190 @@ +[kernel] Parsing tests/aorai/monostate.i (no preprocessing) +[aorai] Welcome to the Aorai plugin +[aorai] Warning: Call to main does not follow automaton's specification. This path is assumed to be dead +[aorai] tests/aorai/monostate.i:8: Warning: + Call to main not conforming to automaton (pre-cond). Assuming it is on a dead path +[kernel] Parsing /tmp/aorai_monostate_0.i (no preprocessing) +/* Generated by Frama-C */ +enum aorai_States { + aorai_reject_state = -2, + Init = 0, + aorai_intermediate_state = 1, + aorai_reject = 2 +}; +enum aorai_ListOper { + op_f = 1, + op_main = 0 +}; +enum aorai_OpStatusList { + aorai_Terminated = 1, + aorai_Called = 0 +}; +/*@ lemma aorai_reject_deterministic_trans{L}: \true; + */ +/*@ ghost enum aorai_ListOper aorai_CurOperation = op_main; */ +/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus = aorai_Called; */ +/*@ +lemma aorai_intermediate_state_deterministic_trans{L}: + ¬(\at(aorai_CurOperation,L) ≡ op_main ∧ + \at(aorai_CurOpStatus,L) ≡ aorai_Terminated ∧ + ¬(\at(aorai_CurOperation,L) ≡ op_main ∧ + \at(aorai_CurOpStatus,L) ≡ aorai_Terminated)); + */ +/*@ +lemma Init_deterministic_trans{L}: + ¬(\at(aorai_CurOperation,L) ≡ op_main ∧ + \at(aorai_CurOpStatus,L) ≡ aorai_Called ∧ + ¬(\at(aorai_CurOperation,L) ≡ op_main ∧ + \at(aorai_CurOpStatus,L) ≡ aorai_Called)); + */ +/*@ ghost int aorai_CurStates = Init; */ +/*@ ensures aorai_CurOpStatus ≡ aorai_Called; + ensures aorai_CurOperation ≡ op_f; + assigns aorai_CurOpStatus, aorai_CurOperation, aorai_CurStates; + + behavior buch_state_Init_out: + ensures aorai_CurStates ≢ Init; + + behavior buch_state_aorai_intermediate_state_out: + ensures aorai_CurStates ≢ aorai_intermediate_state; + + behavior buch_state_aorai_reject_in: + assumes + aorai_CurStates ≡ aorai_reject ∨ + aorai_CurStates ≡ aorai_intermediate_state; + ensures aorai_CurStates ≡ aorai_reject; + + behavior buch_state_aorai_reject_out: + assumes + aorai_CurStates ≢ aorai_reject ∧ + aorai_CurStates ≢ aorai_intermediate_state; + ensures aorai_CurStates ≢ aorai_reject; + */ +void f_pre_func(void) +{ + /*@ ghost int aorai_CurStates_tmp; */ + aorai_CurOpStatus = aorai_Called; + aorai_CurOperation = op_f; + aorai_CurStates_tmp = aorai_CurStates; + if (2 == aorai_CurStates) aorai_CurStates_tmp = aorai_reject; + else + if (1 == aorai_CurStates) aorai_CurStates_tmp = aorai_reject; + aorai_CurStates = aorai_CurStates_tmp; + return; +} + +/*@ requires \false; + ensures aorai_CurOpStatus ≡ aorai_Terminated; + ensures aorai_CurOperation ≡ op_f; + assigns aorai_CurOpStatus, aorai_CurOperation, aorai_CurStates; + + behavior buch_state_Init_out: + ensures aorai_CurStates ≢ Init; + + behavior buch_state_aorai_intermediate_state_out: + ensures aorai_CurStates ≢ aorai_intermediate_state; + + behavior buch_state_aorai_reject_in: + assumes aorai_CurStates ≡ aorai_reject; + ensures aorai_CurStates ≡ aorai_reject; + + behavior buch_state_aorai_reject_out: + assumes aorai_CurStates ≢ aorai_reject; + ensures aorai_CurStates ≢ aorai_reject; + */ +void f_post_func(void) +{ + /*@ ghost int aorai_CurStates_tmp; */ + aorai_CurOpStatus = aorai_Terminated; + aorai_CurOperation = op_f; + aorai_CurStates_tmp = aorai_CurStates; + if (2 == aorai_CurStates) aorai_CurStates_tmp = aorai_reject; + aorai_CurStates = aorai_CurStates_tmp; + return; +} + +/*@ requires \false; + requires + aorai_CurStates ≡ aorai_reject ∨ aorai_CurStates ≢ aorai_reject; + requires + aorai_CurStates ≡ aorai_intermediate_state ∨ + aorai_CurStates ≢ aorai_intermediate_state; + ensures \false; + + behavior Buchi_property_behavior: + ensures aorai_CurStates ≡ aorai_reject; + */ +void f(void) +{ + f_pre_func(); + f_post_func(); + return; +} + +/*@ ensures aorai_CurOpStatus ≡ aorai_Called; + ensures aorai_CurOperation ≡ op_main; + assigns aorai_CurOpStatus, aorai_CurOperation, aorai_CurStates; + + behavior buch_state_Init_out: + ensures aorai_CurStates ≢ Init; + + behavior buch_state_aorai_intermediate_state_out: + ensures aorai_CurStates ≢ aorai_intermediate_state; + + behavior buch_state_aorai_reject_out: + ensures aorai_CurStates ≢ aorai_reject; + */ +void main_pre_func(void) +{ + /*@ ghost int aorai_CurStates_tmp; */ + aorai_CurOpStatus = aorai_Called; + aorai_CurOperation = op_main; + aorai_CurStates_tmp = aorai_CurStates; + aorai_CurStates = aorai_CurStates_tmp; + return; +} + +/*@ requires \false; + ensures aorai_CurOpStatus ≡ aorai_Terminated; + ensures aorai_CurOperation ≡ op_main; + assigns aorai_CurOpStatus, aorai_CurOperation, aorai_CurStates; + + behavior buch_state_Init_out: + ensures aorai_CurStates ≢ Init; + + behavior buch_state_aorai_intermediate_state_out: + ensures aorai_CurStates ≢ aorai_intermediate_state; + + behavior buch_state_aorai_reject_out: + ensures aorai_CurStates ≢ aorai_reject; + */ +void main_post_func(void) +{ + /*@ ghost int aorai_CurStates_tmp; */ + aorai_CurOpStatus = aorai_Terminated; + aorai_CurOperation = op_main; + aorai_CurStates_tmp = aorai_CurStates; + aorai_CurStates = aorai_CurStates_tmp; + return; +} + +/*@ requires \false; */ +void main(void) +{ + int aorai_Loop_Init_3; + main_pre_func(); + /*@ ghost aorai_Loop_Init_3 = 1; */ + aorai_loop_3: + /*@ loop invariant Aorai: aorai_CurStates ≢ Init; + loop invariant Aorai: aorai_CurStates ≢ aorai_intermediate_state; + loop invariant Aorai: aorai_CurStates ≢ aorai_reject; + */ + while (1) { + /*@ ghost aorai_Loop_Init_3 = 0; */ + f(); + } + main_post_func(); + return; +} + + diff --git a/src/plugins/aorai/utils_parser.ml b/src/plugins/aorai/utils_parser.ml index b3e46009328f22a9aef87e01a84946114bc67f65..5ceb0fa4042a37208a03e190dc762593328d7840 100644 --- a/src/plugins/aorai/utils_parser.ml +++ b/src/plugins/aorai/utils_parser.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Aorai plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) diff --git a/src/plugins/aorai/yalexer.mll b/src/plugins/aorai/yalexer.mll index a24e98a7e809795fc13ebcafd2868f24704a9db3..22443951159580d1065598530b1c2e810fad2c2d 100644 --- a/src/plugins/aorai/yalexer.mll +++ b/src/plugins/aorai/yalexer.mll @@ -2,7 +2,7 @@ (* *) (* This file is part of Aorai plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) diff --git a/src/plugins/aorai/yaparser.mly b/src/plugins/aorai/yaparser.mly index 20db3fb7c93a6a2ddb9a7b0aec0cbc3adc8b4e91..64f7a429d5c00f32a7d2a2cd129f8e1cc9cfb234 100644 --- a/src/plugins/aorai/yaparser.mly +++ b/src/plugins/aorai/yaparser.mly @@ -2,7 +2,7 @@ /* */ /* This file is part of Aorai plug-in of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* INRIA (Institut National de Recherche en Informatique et en */ diff --git a/src/plugins/callgraph/Callgraph.mli b/src/plugins/callgraph/Callgraph.mli index a3fad812d5798a6fd0d1c7a67038d03b3664f945..62a2fb73d12710ae78d3d458b8038cda2d2f86b1 100644 --- a/src/plugins/callgraph/Callgraph.mli +++ b/src/plugins/callgraph/Callgraph.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/callgraph/callgraph_api.mli b/src/plugins/callgraph/callgraph_api.mli index 348e322af86da2c69a1a86ae5e9ddaec57055074..b584d46c5c14b1958cd89ca9617cff8fa0e7f3ce 100644 --- a/src/plugins/callgraph/callgraph_api.mli +++ b/src/plugins/callgraph/callgraph_api.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/callgraph/cg.ml b/src/plugins/callgraph/cg.ml index 00111bb59dbd323c37bda5b39a2fd12c1f767223..9373f93f9d25e7a6be3f7ce87be71664588ccf2d 100644 --- a/src/plugins/callgraph/cg.ml +++ b/src/plugins/callgraph/cg.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/callgraph/cg.mli b/src/plugins/callgraph/cg.mli index 97bbb6fb5a888c054b2fe301f328aa0e2b771eb3..5e618b9d70ec00e9f07d1028d8b95163907cfecf 100644 --- a/src/plugins/callgraph/cg.mli +++ b/src/plugins/callgraph/cg.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/callgraph/cg_viewer.ml b/src/plugins/callgraph/cg_viewer.ml index a18999eafb6bc5c881a46d18c977848ccadcc37c..26f47325cfcf36a1f50705424bfee48b100a9f4c 100644 --- a/src/plugins/callgraph/cg_viewer.ml +++ b/src/plugins/callgraph/cg_viewer.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/callgraph/journalize.ml b/src/plugins/callgraph/journalize.ml index 91c168b2ff2607030515abccffa1730ae2dd4366..2ac5a43428dfa2f9f56d8ff2e3f1dbb04d2d3c01 100644 --- a/src/plugins/callgraph/journalize.ml +++ b/src/plugins/callgraph/journalize.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/callgraph/journalize.mli b/src/plugins/callgraph/journalize.mli index 0ca27be37a25038071a9dd3fb460e038106a235d..44890319dd4d9707f144ecf2b4801be4694cae5e 100644 --- a/src/plugins/callgraph/journalize.mli +++ b/src/plugins/callgraph/journalize.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/callgraph/options.ml b/src/plugins/callgraph/options.ml index a1ff2536dbdcf252fd97a8c76543afad80187a3c..0b2871677733ce0e79af69eb121d9819b7749e65 100644 --- a/src/plugins/callgraph/options.ml +++ b/src/plugins/callgraph/options.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/callgraph/options.mli b/src/plugins/callgraph/options.mli index d8e8e229569eb5fe8f70c2bdfe1ab5a50a690460..290810e64755d91920202a6f3ba612c240347eb7 100644 --- a/src/plugins/callgraph/options.mli +++ b/src/plugins/callgraph/options.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/callgraph/register.ml b/src/plugins/callgraph/register.ml index 6f1ced2ca9ea1be23ab5318f4d53ccfb535313ec..f046df0b7f3b6ed4b2997a18dc334125c8888ee3 100644 --- a/src/plugins/callgraph/register.ml +++ b/src/plugins/callgraph/register.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/callgraph/services.ml b/src/plugins/callgraph/services.ml index 6d8b6c34ff0ce3fcb9eba3f552202cf0258c1d9f..ecb761dd1eead8defd7144e60fd5166760bb2ca5 100644 --- a/src/plugins/callgraph/services.ml +++ b/src/plugins/callgraph/services.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/callgraph/services.mli b/src/plugins/callgraph/services.mli index 9733a5e491b3a9d16adeff927d62b80e33f0f1fe..f537ce226ff1d8f0f926f1bbaa4309b05a9c3d6f 100644 --- a/src/plugins/callgraph/services.mli +++ b/src/plugins/callgraph/services.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/callgraph/subgraph.ml b/src/plugins/callgraph/subgraph.ml index 27085e6be631aff93ef2927f1bef3e8b4b07f724..969a12886f1af85bb394fed6ac1923092bf1af70 100644 --- a/src/plugins/callgraph/subgraph.ml +++ b/src/plugins/callgraph/subgraph.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/callgraph/subgraph.mli b/src/plugins/callgraph/subgraph.mli index 9c7ff8210033051a9d2a5c77f45584bcf5d58eb8..ef561cce1b1f91ef26b0732beb48369128b75f75 100644 --- a/src/plugins/callgraph/subgraph.mli +++ b/src/plugins/callgraph/subgraph.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/callgraph/uses.ml b/src/plugins/callgraph/uses.ml index f4bd94d6e3f21288ad960fca7f45d124e34dc767..58c8b81a2036ccbb2450581a5eeb45434985ab2c 100644 --- a/src/plugins/callgraph/uses.ml +++ b/src/plugins/callgraph/uses.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/callgraph/uses.mli b/src/plugins/callgraph/uses.mli index 69f1e4ec959c7d3f63b21f260c5b4f133d607da7..320c7b7da26cb8da8575f4d32cc3cd57b4cce512 100644 --- a/src/plugins/callgraph/uses.mli +++ b/src/plugins/callgraph/uses.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/constant_propagation/Constant_Propagation.mli b/src/plugins/constant_propagation/Constant_Propagation.mli index 33b2040a09d630d03f7ed33881abc0a8ebcb6f55..5969f008c33bf8a4bc3a69bc44b5b5340bdaf9bf 100644 --- a/src/plugins/constant_propagation/Constant_Propagation.mli +++ b/src/plugins/constant_propagation/Constant_Propagation.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/constant_propagation/api.ml b/src/plugins/constant_propagation/api.ml index 8ea4319170e08416560d7ade049fcd52f7875531..46fcc0277d1924079f5fb58beb5961283859f7e4 100644 --- a/src/plugins/constant_propagation/api.ml +++ b/src/plugins/constant_propagation/api.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/constant_propagation/api.mli b/src/plugins/constant_propagation/api.mli index 3e61053a15a4e0176a0f21b3bf1025595e21952a..d8cd950d17b0b17519b589f817884f74024b130b 100644 --- a/src/plugins/constant_propagation/api.mli +++ b/src/plugins/constant_propagation/api.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/constant_propagation/propagationParameters.ml b/src/plugins/constant_propagation/propagationParameters.ml index 49ffa61e46304e31f317415892d3ebfe8a2070e9..1259a0c4a724e2bf84f09958dd23a070b48c8c0d 100644 --- a/src/plugins/constant_propagation/propagationParameters.ml +++ b/src/plugins/constant_propagation/propagationParameters.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/constant_propagation/propagationParameters.mli b/src/plugins/constant_propagation/propagationParameters.mli index 6dc58cc7ca92892a0356408cecf3abd0a9f18dce..91eb9283161cd30d0f887a642536fa2219379328 100644 --- a/src/plugins/constant_propagation/propagationParameters.mli +++ b/src/plugins/constant_propagation/propagationParameters.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/from/From.mli b/src/plugins/from/From.mli index d3d628e24191e79edd3a046898535212788f05e4..350ec6695d6cb18466a2f4df4c2d2577a652065b 100644 --- a/src/plugins/from/From.mli +++ b/src/plugins/from/From.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/from/callwise.ml b/src/plugins/from/callwise.ml index 60bf2c21ff4ed839a67d1e9b6f114ee68e9c3b63..d3c693b33c20200da2d0c76b9708b7052e3ba22a 100644 --- a/src/plugins/from/callwise.ml +++ b/src/plugins/from/callwise.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/from/callwise.mli b/src/plugins/from/callwise.mli index b6baae4b13eae5669531d67f21034291118e053d..19763a686e2fd29ae3347b37168669073055e9e4 100644 --- a/src/plugins/from/callwise.mli +++ b/src/plugins/from/callwise.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/from/from_compute.ml b/src/plugins/from/from_compute.ml index e981214f5801e59818080b49c4cbe96adcffb5aa..6217f6e42a334e014d44f07a1b24e1da0039c2b2 100644 --- a/src/plugins/from/from_compute.ml +++ b/src/plugins/from/from_compute.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/from/from_compute.mli b/src/plugins/from/from_compute.mli index 6da5695b3a197006f340ca54012b1218e3f3cde2..67c6424c758322397fb10f4db7a9f416c8c204ee 100644 --- a/src/plugins/from/from_compute.mli +++ b/src/plugins/from/from_compute.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/from/from_parameters.ml b/src/plugins/from/from_parameters.ml index 5a630f7d465b7ef77317df86038f8c0600aacf28..199db3316bef06476de4ca4a0d40413573718714 100644 --- a/src/plugins/from/from_parameters.ml +++ b/src/plugins/from/from_parameters.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/from/from_parameters.mli b/src/plugins/from/from_parameters.mli index 4e852c31bdc23ba375846fd0dc87d63f3e20caf4..8ec0e89c1f80e3780ab80d06b9241efe6c76235e 100644 --- a/src/plugins/from/from_parameters.mli +++ b/src/plugins/from/from_parameters.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/from/from_register.ml b/src/plugins/from/from_register.ml index 37f9782714d84cfaafad88a764c36ef6adef8ca8..a94fe66d8942f1c3737a79c75fb55a994cf77254 100644 --- a/src/plugins/from/from_register.ml +++ b/src/plugins/from/from_register.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/from/from_register.mli b/src/plugins/from/from_register.mli index 0d64e5863e84a8b99130e01e29936e8d65f48fd7..12f4614f4d769fa7061c0347c96e01f25387d98c 100644 --- a/src/plugins/from/from_register.mli +++ b/src/plugins/from/from_register.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/from/from_register_gui.ml b/src/plugins/from/from_register_gui.ml index debc860af56fb541652a743a910c1d9534392b51..25ad337ee723ff730b3456eacd163085cf247afb 100644 --- a/src/plugins/from/from_register_gui.ml +++ b/src/plugins/from/from_register_gui.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/from/from_register_gui.mli b/src/plugins/from/from_register_gui.mli index 1a2267ff8c6dfa201f1c1a023da59664f678ee66..9388d8500a0e6b9b149fabdd82e322f1c2d6fc65 100644 --- a/src/plugins/from/from_register_gui.mli +++ b/src/plugins/from/from_register_gui.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/from/functionwise.ml b/src/plugins/from/functionwise.ml index 2503909a4f7d6ba9ad02d6ece0358ec42c69a459..66d83674fe4205892624c5fdf2c01c365a269c53 100644 --- a/src/plugins/from/functionwise.ml +++ b/src/plugins/from/functionwise.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/from/functionwise.mli b/src/plugins/from/functionwise.mli index b007d736e6717d12bfbdb5420aaf8918009d98d5..c986491ab554bef03788ef78c7018190b2c296bd 100644 --- a/src/plugins/from/functionwise.mli +++ b/src/plugins/from/functionwise.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/GSourceView2.ml.in b/src/plugins/gui/GSourceView2.ml.in new file mode 100644 index 0000000000000000000000000000000000000000..4e29ebc67e652ab7109a56490a2e8fbe067c8864 --- /dev/null +++ b/src/plugins/gui/GSourceView2.ml.in @@ -0,0 +1,37 @@ +(**************************************************************************) +(* *) +(* This file is part of Frama-C. *) +(* *) +(* Copyright (C) 2007-2019 *) +(* CEA (Commissariat à l'énergie atomique et aux énergies *) +(* alternatives) *) +(* *) +(* you can redistribute it and/or modify it under the terms of the GNU *) +(* Lesser General Public License as published by the Free Software *) +(* Foundation, version 2.1. *) +(* *) +(* It is distributed in the hope that it will be useful, *) +(* but WITHOUT ANY WARRANTY; without even the implied warranty of *) +(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *) +(* GNU Lesser General Public License for more details. *) +(* *) +(* See the GNU Lesser General Public License version 2.1 *) +(* for more details (enclosed in the file licenses/LGPLv2.1). *) +(* *) +(**************************************************************************) + +(** compatibility layer between gtksourceview 2 and 3. *) +include GSourceView2 + +let make_marker_attributes + ~(source:source_view) + ~(category:string) + ~(priority: int) + ?(background: Gdk.color option) + ?(pixbuf:GdkPixbuf.pixbuf option) + ?(icon_name:string option) + () = + ignore icon_name; (* not in lablgtk2. *) + source#set_mark_category_priority ~category priority; + source#set_mark_category_pixbuf ~category pixbuf; + source#set_mark_category_background ~category background diff --git a/src/plugins/report/property_names.mli b/src/plugins/gui/GSourceView2.mli.in similarity index 78% rename from src/plugins/report/property_names.mli rename to src/plugins/gui/GSourceView2.mli.in index 23a5f2ea7261f6c6f6c52f618a6cb48b4d963f7b..4fbb9cf7b48fe706adafbaca81d998f9ce41834a 100644 --- a/src/plugins/report/property_names.mli +++ b/src/plugins/gui/GSourceView2.mli.in @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -20,20 +20,15 @@ (* *) (**************************************************************************) -open Cil_types +(* compatibility between gtksourceview 2 and 3. *) +include module type of GSourceView2 -type part = - | B of behavior - | K of kernel_function - | A of string - | I of identified_predicate - | P of predicate - | T of term - | S of stmt - -val is_name : string -> bool -val join : string list -> string - -val string_of_part : part -> string -val string_of_parts : part list -> string -val parts_of_property : Property.t -> part list +val make_marker_attributes: + source:source_view -> + category:string -> + priority: int -> + ?background: Gdk.color -> + ?pixbuf:GdkPixbuf.pixbuf -> + ?icon_name:string -> + unit -> + unit diff --git a/src/plugins/gui/GSourceView3.ml.in b/src/plugins/gui/GSourceView3.ml.in new file mode 100644 index 0000000000000000000000000000000000000000..1bb745b6611d6288aa837a926206c1231448d95e --- /dev/null +++ b/src/plugins/gui/GSourceView3.ml.in @@ -0,0 +1,38 @@ +(**************************************************************************) +(* *) +(* This file is part of Frama-C. *) +(* *) +(* Copyright (C) 2007-2019 *) +(* CEA (Commissariat à l'énergie atomique et aux énergies *) +(* alternatives) *) +(* *) +(* you can redistribute it and/or modify it under the terms of the GNU *) +(* Lesser General Public License as published by the Free Software *) +(* Foundation, version 2.1. *) +(* *) +(* It is distributed in the hope that it will be useful, *) +(* but WITHOUT ANY WARRANTY; without even the implied warranty of *) +(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *) +(* GNU Lesser General Public License for more details. *) +(* *) +(* See the GNU Lesser General Public License version 2.1 *) +(* for more details (enclosed in the file licenses/LGPLv2.1). *) +(* *) +(**************************************************************************) + +(** compatibility layer between gtksourceview 2 and 3. *) +include GSourceView3 + +let make_marker_attributes + ~(source:source_view) + ~(category:string) + ~(priority: int) + ?(background: Gdk.rgba option) + ?(pixbuf:GdkPixbuf.pixbuf option) + ?(icon_name:string option) + () = + let my_attributes = GSourceView3.source_mark_attributes () in + Extlib.may my_attributes#set_background background; + Extlib.may my_attributes#set_pixbuf pixbuf; + Extlib.may my_attributes#set_icon_name icon_name; + source#set_mark_attributes ~category my_attributes priority diff --git a/src/plugins/gui/GSourceView3.mli.in b/src/plugins/gui/GSourceView3.mli.in new file mode 100644 index 0000000000000000000000000000000000000000..91bac811df4d50606c4bc91046f914d643763ef9 --- /dev/null +++ b/src/plugins/gui/GSourceView3.mli.in @@ -0,0 +1,34 @@ +(**************************************************************************) +(* *) +(* This file is part of Frama-C. *) +(* *) +(* Copyright (C) 2007-2019 *) +(* CEA (Commissariat à l'énergie atomique et aux énergies *) +(* alternatives) *) +(* *) +(* you can redistribute it and/or modify it under the terms of the GNU *) +(* Lesser General Public License as published by the Free Software *) +(* Foundation, version 2.1. *) +(* *) +(* It is distributed in the hope that it will be useful, *) +(* but WITHOUT ANY WARRANTY; without even the implied warranty of *) +(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *) +(* GNU Lesser General Public License for more details. *) +(* *) +(* See the GNU Lesser General Public License version 2.1 *) +(* for more details (enclosed in the file licenses/LGPLv2.1). *) +(* *) +(**************************************************************************) + +(* compatibility between gtksourceview 2 and 3. *) +include module type of GSourceView3 + +val make_marker_attributes: + source:source_view -> + category:string -> + priority: int -> + ?background: Gdk.rgba -> + ?pixbuf:GdkPixbuf.pixbuf -> + ?icon_name:string -> + unit -> + unit diff --git a/src/plugins/gui/analyses_manager.ml b/src/plugins/gui/analyses_manager.ml index 5d895ae53bd2df8c3f29b66e4f3db01697f1834e..787a26083c232db5a65042182e836aba4ff9dcc3 100644 --- a/src/plugins/gui/analyses_manager.ml +++ b/src/plugins/gui/analyses_manager.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/analyses_manager.mli b/src/plugins/gui/analyses_manager.mli index 0741d3d824dc12ca0e9346537efb24face2638a1..3cbf6ac4282feb762ec5e2545733c58ba11984ee 100644 --- a/src/plugins/gui/analyses_manager.mli +++ b/src/plugins/gui/analyses_manager.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/book_manager.ml b/src/plugins/gui/book_manager.ml index 6b8d8785350055d8c59a7c7ea77d5130ef90e1d6..a00f5534f68ed7a5b23ff06b030a70918b5a8afa 100644 --- a/src/plugins/gui/book_manager.ml +++ b/src/plugins/gui/book_manager.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -24,7 +24,7 @@ let dkey = Gui_parameters.register_category "book_manager" module Q = Qstack.Make (struct - type t = GSourceView2.source_view + type t = GSourceView.source_view let equal x y = x == y end) @@ -112,7 +112,7 @@ let delete_all_views (t:t) = Q.iter (fun _ -> t.notebook#remove_page 0) t.views; Q.clear t.views -let append_view (t:t) (v:GSourceView2.source_view) = +let append_view (t:t) (v:GSourceView.source_view) = let nb = t.notebook in let next = Q.length t.views in let text = Printf.sprintf "Page %d" next in diff --git a/src/plugins/gui/book_manager.mli b/src/plugins/gui/book_manager.mli index 3d96b5f103caad40097aaef574317023dd4586ef..697bfdf7de15caf0cb3888a6a46116fa3e39e562 100644 --- a/src/plugins/gui/book_manager.mli +++ b/src/plugins/gui/book_manager.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -34,9 +34,9 @@ val make: val get_notebook: t -> GPack.notebook -val append_source_tab : t -> string -> GSourceView2.source_view +val append_source_tab : t -> string -> GSourceView.source_view -val prepend_source_tab : t -> string -> GSourceView2.source_view +val prepend_source_tab : t -> string -> GSourceView.source_view val get_nth_page: t -> int -> GObj.widget @@ -46,7 +46,7 @@ val last_page: t -> int val set_current_view: t -> int -> unit -val get_current_view: t -> GSourceView2.source_view +val get_current_view: t -> GSourceView.source_view val get_current_index: t -> int @@ -56,9 +56,9 @@ val delete_view: t -> int -> unit val delete_all_views: t -> unit -val append_view: t -> GSourceView2.source_view -> unit +val append_view: t -> GSourceView.source_view -> unit -val get_nth_view: t -> int -> GSourceView2.source_view +val get_nth_view: t -> int -> GSourceView.source_view val enable_popup : t -> bool -> unit diff --git a/src/plugins/gui/debug_manager.ml b/src/plugins/gui/debug_manager.ml index 4d7e45a1d505eca845707c743f67b47296ad77c9..8f6be189f5ba1e1555accccd1d2a05be6cf2c414 100644 --- a/src/plugins/gui/debug_manager.ml +++ b/src/plugins/gui/debug_manager.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -49,9 +49,7 @@ let graph_window main_window title mk_view = let height = int_of_float (float main_window#default_height *. 3. /. 4.) in let width = int_of_float (float main_window#default_width *. 3. /. 4.) in let window = - GWindow.window - ~width ~height ~title ~allow_shrink:true ~allow_grow:true - ~position:`CENTER () + GWindow.window ~width ~height ~title ~resizable:true ~position:`CENTER () in let view = mk_view ~packing:window#add () in window#show (); diff --git a/src/plugins/gui/debug_manager.mli b/src/plugins/gui/debug_manager.mli index 0741d3d824dc12ca0e9346537efb24face2638a1..3cbf6ac4282feb762ec5e2545733c58ba11984ee 100644 --- a/src/plugins/gui/debug_manager.mli +++ b/src/plugins/gui/debug_manager.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/design.ml b/src/plugins/gui/design.ml index d09abc67c1cc232e41df4dcc10effc9519a13049..076e35ac36a9b245e41d0eaf822cd695137cb502 100644 --- a/src/plugins/gui/design.ml +++ b/src/plugins/gui/design.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -34,7 +34,7 @@ let use_external_viewer = false class type reactive_buffer = object inherit error_manager - method buffer : GSourceView2.source_buffer + method buffer : GSourceView.source_buffer method locs : Pretty_source.Locs.state method rehighlight: unit method redisplay: unit @@ -61,7 +61,7 @@ class type main_window_extension_points = object (** Pretty print a message in the [annot_window]. *) method launcher : unit -> unit - method source_viewer : GSourceView2.source_view + method source_viewer : GSourceView.source_view method source_viewer_scroll : GBin.scrolled_window method display_globals : global list -> unit method register_source_selector : @@ -658,20 +658,19 @@ struct let fold_category = "fold" let unfold_category = "unfold" - let declare_markers (source:GSourceView2.source_view) = - source#set_mark_category_pixbuf - ~category:fold_category (Some Gtk_helper.Icon.(get Fold)); - source#set_mark_category_pixbuf - ~category:unfold_category (Some Gtk_helper.Icon.(get Unfold)); - (* Sets a high prioriy so that the icon for folding and unfolding are - printed on top of the status bullets. *) - source#set_mark_category_priority ~category:fold_category 2; - source#set_mark_category_priority ~category:unfold_category 2; +(*GTK3 does not exist anymore in gsourceview3. *) + let declare_markers (source:GSourceView.source_view) = + GSourceView.make_marker_attributes + ~source ~category:fold_category ~priority:2 + ~pixbuf:(Gtk_helper.Icon.(get Fold)) (); + GSourceView.make_marker_attributes + ~source ~category:unfold_category ~priority:2 + ~pixbuf:(Gtk_helper.Icon.(get Unfold)) (); List.iter (fun v -> - source#set_mark_category_pixbuf - ~category:(category v) - (Some (Gtk_helper.Icon.get (Gtk_helper.Icon.Feedback v)))) + GSourceView.make_marker_attributes + ~source ~category:(category v) ~priority:1 + ~pixbuf:(Gtk_helper.Icon.get (Gtk_helper.Icon.Feedback v)) ()) [ F.Never_tried; F.Considered_valid; F.Valid; @@ -696,19 +695,20 @@ struct Hashtbl.clear tooltip_marks; Hashtbl.clear call_sites - let mark (source:GSourceView2.source_buffer) ?call_site ~offset validity = + let mark (source:GSourceView.source_buffer) ?call_site ~offset validity = let iter = source#get_iter_at_char offset in + let mark = iter#set_line_offset 0 in let category = category validity in - source#remove_source_marks iter iter () ; - ignore (source#create_source_mark ~category iter) ; + source#remove_source_marks mark mark () ; + ignore (source#create_source_mark ~category mark) ; Hashtbl.replace tooltip_marks iter#line (long_category validity); match call_site with | None -> () | Some stmt -> Hashtbl.replace call_sites iter#line stmt; if Pretty_source.are_preconds_unfolded stmt - then ignore (source#create_source_mark ~category:fold_category iter) - else ignore (source#create_source_mark ~category:unfold_category iter) + then ignore (source#create_source_mark ~category:fold_category mark) + else ignore (source#create_source_mark ~category:unfold_category mark) end @@ -847,8 +847,7 @@ class main_window () : main_window_extension_points = ~width ~height ~position:`CENTER - ~allow_shrink:true - ~allow_grow:true + ~resizable:true ~show:false () in @@ -866,9 +865,7 @@ class main_window () : main_window_extension_points = in (* status bar (at bottom) *) (* toplevel_vbox->bottom_hbox-> *statusbar *) - let statusbar = - GMisc.statusbar ~has_resize_grip:false ~packing:bottom_hbox#add () - in + let statusbar = GMisc.statusbar ~packing:bottom_hbox#add () in let status_context = statusbar#new_context "messages" in (* progress bar (at bottom) *) @@ -1188,6 +1185,10 @@ class main_window () : main_window_extension_points = let show o = history (fun () -> History.push (History.Localizable loc)); let iter = self#source_viewer#buffer#get_iter (`OFFSET o) in + Gui_parameters.debug + ~dkey:dkey_scroll "scrolling in current view at iter %d,%d" + iter#line iter#line_offset + ; ignore (self#source_viewer#backward_display_line_start iter); self#source_viewer#buffer#place_cursor iter; ignore (self#source_viewer#scroll_to_mark @@ -1368,7 +1369,7 @@ class main_window () : main_window_extension_points = to be found (e.g. Ctrl+F). Otherwise, uses the last searched text (e.g. F3). *) method private focused_find_text use_dialog = - let find_text_in_viewer ~where (viewer : [`GTextViewer of GText.view |`GSourceViewer of GSourceView2.source_view]) text = + let find_text_in_viewer ~where (viewer : [`GTextViewer of GText.view |`GSourceViewer of GSourceView.source_view]) text = let buffer, scroll_to_iter = match viewer with | `GTextViewer v -> v#buffer,v#scroll_to_iter @@ -1498,11 +1499,22 @@ class main_window () : main_window_extension_points = let abs_x = int_of_float (GdkEvent.Button.x_root ev) in (* This function returns the absolute position of the top window, or the relative position of an intern widget. *) + let rec get_rel_from_main acc win = + let x = fst (Gdk.Window.get_position win) in + let acc = acc + x in + let win = Gdk.Window.get_parent win in + if Gobject.get_oid win = + Gobject.get_oid main_window#misc#window + then acc + else get_rel_from_main acc win + in let get_x obj = fst (Gdk.Window.get_position obj#misc#window) in (* Absolute position of the main window on the screen. *) let window_abs_x = get_x main_window in (* Relative position of the source_viewer in the main windows. *) - let viewer_rel_x = get_x source_viewer in + let viewer_rel_x = + get_rel_from_main 0 source_viewer#misc#window + in (* Width of the bullet column in the source viewer. *) if abs_x - (window_abs_x + viewer_rel_x) < 20 then begin @@ -1514,15 +1526,76 @@ class main_window () : main_window_extension_points = let line = iterpos#line in try let stmt = Hashtbl.find Feedback.call_sites line in - let kf = Kernel_function.find_englobing_kf stmt in Pretty_source.fold_preconds_at_callsite stmt; - self#reactive_buffer#redisplay; - self#scroll (PStmt (kf, stmt)) - with Not_found -> () + self#reset (); + (* give some time for the sourceview to recompute + its height, otherwise scrolling is broken. *) + let has_stabilized = ref false in + (* According to the blog post here + https://picheta.me/articles/2013/08/gtk-plus--a-method-to-guarantee-scrolling.html + the best way to check whether we have correctly scrolled + is to retrieve the rectangle corresponding to the mark, + the rectangle effectively displayed, and see whether + the former is included in the latter. + *) + let check () = + (* not entirely accurate because of + the (un)fold action, but should do the trick. + We will do the real scroll after stabilization + anyway. + *) + let iter = + source_viewer#buffer#get_iter (`LINE line) + in + let my_rect = source_viewer#get_iter_location iter in + let visible_rect = source_viewer#visible_rect in + (* in Gdk, x,y represents the top left corner of the + rectangle. We just check whether the beginning of the + selection is visible (we only have one line of text + anyway). *) + let res = + Gdk.Rectangle.( + y my_rect >= y visible_rect && + y my_rect <= y visible_rect + height visible_rect + ) + in + Gdk.Rectangle.(Gui_parameters.debug ~dkey:dkey_scroll + "my rect is %d (+%d) %d (+%d)@\n\ + vis rect is %d (+%d) %d (+%d)@\n\ + my rect is visible: %B@." + (x my_rect) (width my_rect) (y my_rect) (height my_rect) + (x visible_rect) (width visible_rect) (y visible_rect) + (height visible_rect) res); + has_stabilized := res; + (* when added as an idle procedure below, check will + be removed whenever it returns false. *) + not res + in + (* in case we were lucky and have stabilized directly. *) + ignore (check()); + let proc = Glib.Idle.add check in + (* in case we are unlucky, stop waiting after + 0.5 second and hope for the best. *) + let alarm = + Glib.Timeout.add + ~ms:500 + ~callback: + (fun () -> + has_stabilized := true; + Glib.Idle.remove proc; + false) + in + while (not !has_stabilized) do + (* do one main loop step so that buffer gets + a chance to recompute its height. *) + ignore (Glib.Main.iteration false) + done; + Glib.Timeout.remove alarm; + self#view_stmt stmt; + with Not_found -> () end; false) in - let extra_accel_group = GtkData.AccelGroup.create () in GtkData.AccelGroup.connect extra_accel_group ~key:GdkKeysyms._F diff --git a/src/plugins/gui/design.mli b/src/plugins/gui/design.mli index 7c6da50093d8633d871bd005c4a3ad0c6612c5bf..37ab9e4416273be9edd135eb2350c49df2f09b53 100644 --- a/src/plugins/gui/design.mli +++ b/src/plugins/gui/design.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -30,7 +30,7 @@ open Cil_types @since Beryllium-20090901 *) class type reactive_buffer = object inherit Gtk_helper.error_manager - method buffer : GSourceView2.source_buffer + method buffer : GSourceView.source_buffer method locs : Pretty_source.Locs.state method rehighlight : unit method redisplay : unit @@ -122,7 +122,7 @@ class type main_window_extension_points = object (** {4 Source viewers} *) - method source_viewer : GSourceView2.source_view + method source_viewer : GSourceView.source_view (** The [GText.view] showing the AST. *) method source_viewer_scroll : GBin.scrolled_window @@ -172,7 +172,7 @@ class type main_window_extension_points = object top of the other. @modify Aluminium-20160501: receives a {!reactive_buffer} instead - of a {!GSourceView2.source_buffer} *) + of a {!GSourceView.source_buffer} *) method register_panel : (main_window_extension_points->(string*GObj.widget*(unit-> unit) option)) @@ -263,14 +263,14 @@ val reactive_buffer : main_window_extension_points -> module Feedback : sig - val declare_markers: GSourceView2.source_view -> unit + val declare_markers: GSourceView.source_view -> unit (** Declares the icons used for the property status bullets, as marks in the left-margin of the source buffer. These icons depend on the GUI theme, and must be reset when the theme is changed. @since Chlorine-20180501 *) - val mark : GSourceView2.source_buffer + val mark : GSourceView.source_buffer -> ?call_site:stmt -> offset:int -> Property_status.Feedback.t -> unit diff --git a/src/plugins/gui/dgraph.ml.in b/src/plugins/gui/dgraph.ml.in new file mode 100644 index 0000000000000000000000000000000000000000..f672460d995880f279523fed4cc47a9e9b3625a3 --- /dev/null +++ b/src/plugins/gui/dgraph.ml.in @@ -0,0 +1,38 @@ +(**************************************************************************) +(* *) +(* This file is part of Frama-C. *) +(* *) +(* Copyright (C) 2007-2019 *) +(* CEA (Commissariat à l'énergie atomique et aux énergies *) +(* alternatives) *) +(* *) +(* you can redistribute it and/or modify it under the terms of the GNU *) +(* Lesser General Public License as published by the Free Software *) +(* Foundation, version 2.1. *) +(* *) +(* It is distributed in the hope that it will be useful, *) +(* but WITHOUT ANY WARRANTY; without even the implied warranty of *) +(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *) +(* GNU Lesser General Public License for more details. *) +(* *) +(* See the GNU Lesser General Public License version 2.1 *) +(* for more details (enclosed in the file licenses/LGPLv2.1). *) +(* *) +(**************************************************************************) + +(* dgraph module that always generates an error: Dgraph is not available + with gtk3 +*) + +module DGraphModel = struct + exception DotError of string +end + +module DGraphContainer = struct + type status = Global | Tree | Both + + module Dot = struct + let from_dot_with_commands ?packing:_ ?status:_ _ = + raise (DGraphModel.DotError "DGraph is unsupported in GTK3") + end +end diff --git a/src/plugins/gui/dgraph.mli.in b/src/plugins/gui/dgraph.mli.in new file mode 100644 index 0000000000000000000000000000000000000000..5cf0b53f22586ca29745199c4b73efdbd7401939 --- /dev/null +++ b/src/plugins/gui/dgraph.mli.in @@ -0,0 +1,42 @@ +(**************************************************************************) +(* *) +(* This file is part of Frama-C. *) +(* *) +(* Copyright (C) 2007-2019 *) +(* CEA (Commissariat à l'énergie atomique et aux énergies *) +(* alternatives) *) +(* *) +(* you can redistribute it and/or modify it under the terms of the GNU *) +(* Lesser General Public License as published by the Free Software *) +(* Foundation, version 2.1. *) +(* *) +(* It is distributed in the hope that it will be useful, *) +(* but WITHOUT ANY WARRANTY; without even the implied warranty of *) +(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *) +(* GNU Lesser General Public License for more details. *) +(* *) +(* See the GNU Lesser General Public License version 2.1 *) +(* for more details (enclosed in the file licenses/LGPLv2.1). *) +(* *) +(**************************************************************************) + +(* dgraph module that always generates an error: Dgraph is not available + with gtk3 +*) + +module DGraphModel: sig + exception DotError of string +end + +module DGraphContainer: sig + + type status = Global | Tree | Both + + module Dot: sig + val from_dot_with_commands: + ?packing:(GObj.widget ->unit) -> + ?status:status -> + string -> + GPack.table * <adapt_zoom: unit -> unit> + end +end diff --git a/src/plugins/gui/file_manager.ml b/src/plugins/gui/file_manager.ml index 2faba8cd78277ce2b9f7abbcd1ba77363fade909..ba532bf6bb70d030348711525496e36ee9584603 100644 --- a/src/plugins/gui/file_manager.ml +++ b/src/plugins/gui/file_manager.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/file_manager.mli b/src/plugins/gui/file_manager.mli index 0741d3d824dc12ca0e9346537efb24face2638a1..3cbf6ac4282feb762ec5e2545733c58ba11984ee 100644 --- a/src/plugins/gui/file_manager.mli +++ b/src/plugins/gui/file_manager.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/filetree.ml b/src/plugins/gui/filetree.ml index b835d12d195d52148fc8f004cb4e5b1bb246d5b2..025ade684ae402129dfc5500c43f66fafa9a3a0c 100644 --- a/src/plugins/gui/filetree.ml +++ b/src/plugins/gui/filetree.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -630,7 +630,7 @@ let make (tree_view:GTree.view) = let column = GTree.view_column ~renderer:(renderer,[]) () in ignore (tree_view#append_column column); let label = GMisc.label ~text:title () in - (GData.tooltips ())#set_tip ~text:tooltip label#coerce; + Gtk_helper.do_tooltip ~tooltip label; column#set_widget (Some label#coerce); column#set_alignment 0.5; column#set_reorderable true; diff --git a/src/plugins/gui/filetree.mli b/src/plugins/gui/filetree.mli index 017026685aaffbef0e43ca09c47ee8d1a8bed43a..de1edcb4c22c05bae45a541e7b42f386b913beb5 100644 --- a/src/plugins/gui/filetree.mli +++ b/src/plugins/gui/filetree.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/gtk_compat.2.ml b/src/plugins/gui/gtk_compat.2.ml new file mode 100644 index 0000000000000000000000000000000000000000..945c310aa97880c02aa80cec3c2bd9b35f1da11b --- /dev/null +++ b/src/plugins/gui/gtk_compat.2.ml @@ -0,0 +1,24 @@ +(**************************************************************************) +(* *) +(* This file is part of Frama-C. *) +(* *) +(* Copyright (C) 2007-2019 *) +(* CEA (Commissariat à l'énergie atomique et aux énergies *) +(* alternatives) *) +(* *) +(* you can redistribute it and/or modify it under the terms of the GNU *) +(* Lesser General Public License as published by the Free Software *) +(* Foundation, version 2.1. *) +(* *) +(* It is distributed in the hope that it will be useful, *) +(* but WITHOUT ANY WARRANTY; without even the implied warranty of *) +(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *) +(* GNU Lesser General Public License for more details. *) +(* *) +(* See the GNU Lesser General Public License version 2.1 *) +(* for more details (enclosed in the file licenses/LGPLv2.1). *) +(* *) +(**************************************************************************) + +let get_toolbar_index (toolbar:GButton.toolbar) (item:GButton.tool_item) = + toolbar#get_item_index item diff --git a/src/plugins/gui/gtk_compat.3.ml b/src/plugins/gui/gtk_compat.3.ml new file mode 100644 index 0000000000000000000000000000000000000000..b29fa610143511694a30dbd7a1358e153bbafeb6 --- /dev/null +++ b/src/plugins/gui/gtk_compat.3.ml @@ -0,0 +1,23 @@ +(**************************************************************************) +(* *) +(* This file is part of Frama-C. *) +(* *) +(* Copyright (C) 2007-2019 *) +(* CEA (Commissariat à l'énergie atomique et aux énergies *) +(* alternatives) *) +(* *) +(* you can redistribute it and/or modify it under the terms of the GNU *) +(* Lesser General Public License as published by the Free Software *) +(* Foundation, version 2.1. *) +(* *) +(* It is distributed in the hope that it will be useful, *) +(* but WITHOUT ANY WARRANTY; without even the implied warranty of *) +(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *) +(* GNU Lesser General Public License for more details. *) +(* *) +(* See the GNU Lesser General Public License version 2.1 *) +(* for more details (enclosed in the file licenses/LGPLv2.1). *) +(* *) +(**************************************************************************) + +let get_toolbar_index toolbar item = toolbar#get_item_index item#as_tool_item diff --git a/src/plugins/gui/gtk_compat.mli b/src/plugins/gui/gtk_compat.mli new file mode 100644 index 0000000000000000000000000000000000000000..61f6af64a07b6d382d0fb836b8f19b96049280dc --- /dev/null +++ b/src/plugins/gui/gtk_compat.mli @@ -0,0 +1,23 @@ +(**************************************************************************) +(* *) +(* This file is part of Frama-C. *) +(* *) +(* Copyright (C) 2007-2019 *) +(* CEA (Commissariat à l'énergie atomique et aux énergies *) +(* alternatives) *) +(* *) +(* you can redistribute it and/or modify it under the terms of the GNU *) +(* Lesser General Public License as published by the Free Software *) +(* Foundation, version 2.1. *) +(* *) +(* It is distributed in the hope that it will be useful, *) +(* but WITHOUT ANY WARRANTY; without even the implied warranty of *) +(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *) +(* GNU Lesser General Public License for more details. *) +(* *) +(* See the GNU Lesser General Public License version 2.1 *) +(* for more details (enclosed in the file licenses/LGPLv2.1). *) +(* *) +(**************************************************************************) + +val get_toolbar_index: GButton.toolbar -> GButton.tool_item -> int diff --git a/src/plugins/gui/gtk_form.ml b/src/plugins/gui/gtk_form.ml index 2054b86d0f53785a83780613f6f0dca96062ebeb..1a8acc5377e50963ad3ed17166eac4e33a6a4539 100644 --- a/src/plugins/gui/gtk_form.ml +++ b/src/plugins/gui/gtk_form.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -40,12 +40,6 @@ type 'a field = ?tooltip:string -> packing:(GObj.widget -> unit) -> (unit -> 'a) -> ('a -> unit) -> demon -> unit -let mk_tooltip ?tooltip obj = match tooltip with - | None -> () - | Some text -> - let tooltip = GData.tooltips () in - tooltip#set_tip ~text obj#coerce - (* ------------------------------------------------------------------------ *) (* --- Check Button --- *) (* ------------------------------------------------------------------------ *) @@ -54,7 +48,7 @@ let check ?label ?tooltip ~packing get set demon = let button = GButton.check_button ?label ~packing ~active:(get ()) () in - mk_tooltip ?tooltip button ; + Gtk_helper.do_tooltip ?tooltip button ; ignore (button#connect#toggled ~callback:(fun () -> set button#active)); register demon (fun () -> button#set_active (get())) @@ -88,7 +82,7 @@ let menu entries ?width ?tooltip ~packing get set demon = with Not_found -> () in ignore (combo_box#connect#changed callback) ; - mk_tooltip ?tooltip combo_box ; + Gtk_helper.do_tooltip ?tooltip combo_box ; register demon update (* ------------------------------------------------------------------------ *) @@ -105,7 +99,7 @@ let spinner ?(lower=0) ?(upper=max_int) ?width ?tooltip ~packing get set demon = if a<>b then set a in let update () = spin#adjustment#set_value (float (get ())) in ignore (spin#connect#value_changed ~callback) ; - mk_tooltip ?tooltip spin ; + Gtk_helper.do_tooltip ?tooltip spin ; register demon update (* ------------------------------------------------------------------------ *) @@ -137,5 +131,5 @@ let label ~text ~packing () = let button ~label ?tooltip ~callback ~packing () = let b = GButton.button ~label ~packing () in - mk_tooltip ?tooltip b ; + Gtk_helper.do_tooltip ?tooltip b ; ignore (b#connect#clicked ~callback) diff --git a/src/plugins/gui/gtk_form.mli b/src/plugins/gui/gtk_form.mli index 4b13156156b3c9e89b6c050dcfde683aeb59a73d..0ca26309745a2c4e3bc5bae9f839d3e5346f87e5 100644 --- a/src/plugins/gui/gtk_form.mli +++ b/src/plugins/gui/gtk_form.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/gtk_helper.ml b/src/plugins/gui/gtk_helper.ml index 0846a32080233072d06895460030f95c9ae73788..63bbcd3c9f4535fb2d4bce5a5ed485aaec8db6a4 100644 --- a/src/plugins/gui/gtk_helper.ml +++ b/src/plugins/gui/gtk_helper.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -359,9 +359,7 @@ type 'a chooser = let do_tooltip ?tooltip obj = match tooltip with | None -> () - | Some text -> - let tooltip = GData.tooltips () in - tooltip#set_tip ~text obj#coerce + | Some text -> obj#coerce#misc#set_tooltip_text text let on_bool ?tooltip ?use_markup (container:GPack.box) label get set = let result = ref (get ()) in @@ -550,10 +548,13 @@ let trace_event (w:GObj.event_ops) = | `DROP_FINISHED -> "drop-finish" | `CLIENT_EVENT -> "client-event" | `VISIBILITY_NOTIFY -> "visibility-notify" - | `NO_EXPOSE-> "no-expose" + (*GTK3 Event does not exist anymore *) + (* | `NO_EXPOSE-> "no-expose" *) | `SCROLL -> "scroll" | `WINDOW_STATE -> "window-state" | `SETTING -> "setting" + (*GTK3: leave room for more events. *) + | _ -> "unknown-gtk3-event" in ignore (w#connect#any ~callback:(fun e -> @@ -959,6 +960,45 @@ let source_files_chooser (main_ui: source_files_chooser_host) defaults f = dialog#show (); () +let default_dir = ref "" + +let select_file ?title ?(dir=default_dir) ?(filename="") () = + let filename = + if Filename.is_relative filename then + if !dir <> "" then !dir ^ "/" ^ filename + else "" + else begin + dir:= Filename.dirname filename; + filename + end + in + let dialog: GWindow.Buttons.file_selection GWindow.file_chooser_dialog = + GWindow.file_chooser_dialog + ~action:`OPEN + ?title + ~modal:true + () + in + ignore (dialog#set_filename filename); + let result = ref None in + let action r = + (match r with + | `OK -> + let file = dialog#filename in + (match file with + | None -> () + | Some file -> + dir := Filename.dirname file; + result := Some file) + | _ -> ()); + dialog#destroy () + in + dialog#add_select_button "Open" `OK; + dialog#add_button "Cancel" `CANCEL; + dialog#show (); + action (dialog#run ()); + !result + let spawn_command ?(timeout=0) ?stdout ?stderr s args f = let check_result = Command.command_async s ?stdout ?stderr args in let has_timeout = timeout > 0 in @@ -984,8 +1024,8 @@ let graph_window ~parent ~title make_view = let width = int_of_float (float parent#default_width *. 3. /. 4.) in let graph_window = GWindow.window - ~width ~height ~title ~allow_shrink:true ~allow_grow:true - ~position:`CENTER () in + ~width ~height ~title ~resizable:true ~position:`CENTER () + in let view = make_view ~packing:graph_window#add () in graph_window#show(); view#adapt_zoom(); @@ -1017,6 +1057,16 @@ let graph_window_through_dot ~parent ~title dot_formatter = (Printexc.to_string exn) ;; +let image_menu_item ~(image:GObj.widget) ~text ~packing = + let mi = GMenu.menu_item () in + let box = + GPack.hbox ~spacing:2 ~border_width:0 ~packing:mi#add () + in + box#add image; + box#add (GMisc.label ~justify:`LEFT ~xalign:0. ~xpad:0 ~text ())#coerce; + packing mi; + mi + (* Local Variables: compile-command: "make -C ../../.." diff --git a/src/plugins/gui/gtk_helper.mli b/src/plugins/gui/gtk_helper.mli index 679ebc2165cc9311ec086f817d689bb3248abbdc..37c82a18e9aa136c706fb35baa76c52a84bf370e 100644 --- a/src/plugins/gui/gtk_helper.mli +++ b/src/plugins/gui/gtk_helper.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -162,11 +162,11 @@ val make_tag : create_tag : ?name:string -> GText.tag_property list -> GText.tag ; .. > -> name:string -> GText.tag_property list -> GText.tag -val apply_tag : GSourceView2.source_buffer -> GText.tag -> int -> int -> unit -val remove_tag : GSourceView2.source_buffer -> GText.tag -> int -> int -> unit -val cleanup_tag : GSourceView2.source_buffer -> GText.tag -> unit +val apply_tag : GSourceView.source_buffer -> GText.tag -> int -> int -> unit +val remove_tag : GSourceView.source_buffer -> GText.tag -> int -> int -> unit +val cleanup_tag : GSourceView.source_buffer -> GText.tag -> unit -val cleanup_all_tags : GSourceView2.source_buffer -> unit +val cleanup_all_tags : GSourceView.source_buffer -> unit (* ************************************************************************** *) (** {2 Channels} *) @@ -321,6 +321,15 @@ val source_files_chooser: (string list -> unit) -> unit +(** Launches a standard gtk file chooser window and returns the name + of the selected file. Replaces GToolbox.select_file that has not been + ported to lablgtk3. + + @since Frama-C+dev +*) +val select_file: + ?title:string -> ?dir:(string ref)-> ?filename:string -> unit -> string option + (* ************************************************************************** *) (** {2 Miscellaneous} *) (* ************************************************************************** *) @@ -432,6 +441,16 @@ val graph_window_through_dot: (Format.formatter -> unit) -> unit +(** calls the packing function to append a new menu item + with an icon and a label. + replaces GMenu.image_menu_item that has been deprecated in GTK3 +*) +val image_menu_item: + image:GObj.widget -> + text: string -> + packing: (GMenu.menu_item -> unit) -> + GMenu.menu_item + (* Local Variables: compile-command: "make -C ../../.." diff --git a/src/plugins/gui/gui_parameters.ml b/src/plugins/gui/gui_parameters.ml index fe643d590185a999f518c383b92e16e061a52629..8bbdf42c6a9470ce09ce6e23593a349c591d00c1 100644 --- a/src/plugins/gui/gui_parameters.ml +++ b/src/plugins/gui/gui_parameters.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/gui_parameters.mli b/src/plugins/gui/gui_parameters.mli index c01930e0da8232ec6dd2ba3ee4d2355b9c93d2a1..c205f24c1356d8e09b10e56ca447a94d3bea0d9d 100644 --- a/src/plugins/gui/gui_parameters.mli +++ b/src/plugins/gui/gui_parameters.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/gui_printers.ml b/src/plugins/gui/gui_printers.ml index 877033200d49626ac9a564472223a26a1be9a6fc..7ff3bd0ebf04fcbb140eb2648410456140f8c80f 100644 --- a/src/plugins/gui/gui_printers.ml +++ b/src/plugins/gui/gui_printers.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/gui_printers.mli b/src/plugins/gui/gui_printers.mli index 7ff1bb9eb34891ca171d3cc1b9c83e7eb3455da7..9a2a6a98420efa709c1807c727fc08e40c159d9c 100644 --- a/src/plugins/gui/gui_printers.mli +++ b/src/plugins/gui/gui_printers.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/help_manager.ml b/src/plugins/gui/help_manager.ml index 74077c4c5986735221125992067c1100fe953bb5..055d3b33c18c680a827179523038538884c4782f 100644 --- a/src/plugins/gui/help_manager.ml +++ b/src/plugins/gui/help_manager.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/help_manager.mli b/src/plugins/gui/help_manager.mli index 0741d3d824dc12ca0e9346537efb24face2638a1..3cbf6ac4282feb762ec5e2545733c58ba11984ee 100644 --- a/src/plugins/gui/help_manager.mli +++ b/src/plugins/gui/help_manager.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/history.ml b/src/plugins/gui/history.ml index c76b534c41f10c8aec3b316a8a71b945db309005..f77df04ea400b2ecde4e298c5460b2da6b672939 100644 --- a/src/plugins/gui/history.ml +++ b/src/plugins/gui/history.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/history.mli b/src/plugins/gui/history.mli index d1ad34d8e0a7dbebcdc195083deeac5bf42a2747..fc0c35a5c08d6528d82ebe484a73f34ff609cc0a 100644 --- a/src/plugins/gui/history.mli +++ b/src/plugins/gui/history.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/launcher.ml b/src/plugins/gui/launcher.ml index 24761d0f03f493a6f77abbf0c2ead3deb7f63bd5..2ca7d6662843869e27bad911ff855e3cba0354ce 100644 --- a/src/plugins/gui/launcher.ml +++ b/src/plugins/gui/launcher.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -253,11 +253,10 @@ let show ?height ?width ~(host:basic_main) () = ~title:"Launching analysis" ~modal:true ~position:`CENTER_ON_PARENT - ~allow_shrink:true + ~resizable:true ?width ?height ~parent:host#main_window - ~allow_grow:true () in ignore (dialog#misc#connect#size_allocate diff --git a/src/plugins/gui/launcher.mli b/src/plugins/gui/launcher.mli index 7f19d5e23a4f122315679a4d31014f1473a6315d..3dff31269cd4fd784766742e9c5782ae890d711d 100644 --- a/src/plugins/gui/launcher.mli +++ b/src/plugins/gui/launcher.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/menu_manager.ml b/src/plugins/gui/menu_manager.ml index 0388411e620570cb58e3f13895611f70084c5a02..5fd3296da1ffcb65c4e41f94202129e6830df186 100644 --- a/src/plugins/gui/menu_manager.ml +++ b/src/plugins/gui/menu_manager.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -165,7 +165,10 @@ class menu_manager ?packing ~host:(_:Gtk_helper.host) = By default, add all the others just before this very first group. *) ref (match pos, first_tool_separator with | None, None -> 0 - | None, Some sep -> max 0 (toolbar#get_item_index sep) + | None, Some sep -> + max + 0 + (Gtk_compat.get_toolbar_index toolbar (sep:>GButton.tool_item)) | Some p, _ -> p) in let toolbar_packing w = @@ -213,7 +216,7 @@ class menu_manager ?packing ~host:(_:Gtk_helper.host) = (fun () -> b#set_active (active ())) :: set_active_states; BToggle b in - (bt_type_as_skel b)#set_tooltip (GData.tooltips ()) tooltip ""; + (bt_type_as_skel b)#misc#set_tooltip_text tooltip; toolbar_buttons <- (b, sensitive) :: toolbar_buttons; b in @@ -249,12 +252,10 @@ class menu_manager ?packing ~host:(_:Gtk_helper.host) = ignore (mi#connect#activate callback); MStandard mi | Some stock, Unit_callback callback -> - let image = GMisc.image ~stock () in - let mi = - (GMenu.image_menu_item - ~image ~packing:!!menubar_packing ~label () - :> GMenu.menu_item) - in + let image = (GMisc.image ~stock ~xalign:0. () :> GObj.widget) in + let text = label in + let packing = !!menubar_packing in + let mi = Gtk_helper.image_menu_item ~image ~text ~packing in ignore (mi#connect#activate callback); MStandard mi | _, Bool_callback (callback, active) -> diff --git a/src/plugins/gui/menu_manager.mli b/src/plugins/gui/menu_manager.mli index a833dc1a4aa1afc9f0306dc0b7fddf530d5d4a64..5c0ae0244b3315c05721bf88e6decf4b03012b87 100644 --- a/src/plugins/gui/menu_manager.mli +++ b/src/plugins/gui/menu_manager.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/pretty_source.ml b/src/plugins/gui/pretty_source.ml index e312d80acc0cb8d6ada21c6ca34c236ba54666db..4890fbe3eabed7487a5bf223ae81e877d9516e84 100644 --- a/src/plugins/gui/pretty_source.ml +++ b/src/plugins/gui/pretty_source.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -301,7 +301,7 @@ let buffer_formatter state source = gtk_fmt let display_source globals - (source:GSourceView2.source_buffer) ~(host:Gtk_helper.host) + (source:GSourceView.source_buffer) ~(host:Gtk_helper.host) ~highlighter ~selector state = Locs.clear state; host#protect diff --git a/src/plugins/gui/pretty_source.mli b/src/plugins/gui/pretty_source.mli index 79ed72539847433ac2f8ffb441ebbba02b904596..d25dd7021a265c1afe891d0acfb0db8486d72bae 100644 --- a/src/plugins/gui/pretty_source.mli +++ b/src/plugins/gui/pretty_source.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -57,7 +57,7 @@ val are_preconds_unfolded: stmt -> bool val display_source : global list -> - GSourceView2.source_buffer -> + GSourceView.source_buffer -> host:Gtk_helper.host -> highlighter:(localizable -> start:int -> stop:int -> unit) -> selector:(button:int -> localizable -> unit) -> diff --git a/src/plugins/gui/project_manager.ml b/src/plugins/gui/project_manager.ml index abea1ed48444ccfd1823969b6098c29cc284846c..23a8ecc27f0dd7f4ebc02e4697896bd6fde88c3d 100644 --- a/src/plugins/gui/project_manager.ml +++ b/src/plugins/gui/project_manager.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -218,10 +218,9 @@ and mk_project_entry window menu ?group p = let box = GPack.hbox ~packing:p_item#add () in ignore (GMisc.label ~text:pname ~packing:box#pack ()); let buttons_box = GPack.hbox ~packing:(box#pack ~from:`END) () in - let tooltips = GData.tooltips () in let add_action stock text callback = let item = GButton.button ~packing:buttons_box#pack () in - tooltips#set_tip item#coerce ~text; + Gtk_helper.do_tooltip ~tooltip:text item; item#set_relief `NONE; let image = GMisc.image ~stock () in item#set_image image#coerce; diff --git a/src/plugins/gui/project_manager.mli b/src/plugins/gui/project_manager.mli index 49ff3d46f494a3655c26778d578f2aab0a588647..6ccde330cb950a0701a59c9c8d248b64f6052978 100644 --- a/src/plugins/gui/project_manager.mli +++ b/src/plugins/gui/project_manager.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/property_navigator.ml b/src/plugins/gui/property_navigator.ml index ff5d82e01aceff0a10409d8903aba3ad698e192d..b98ba1d7a3ec946d4f0cc946e7e7c06aad04d9ca 100644 --- a/src/plugins/gui/property_navigator.ml +++ b/src/plugins/gui/property_navigator.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -774,6 +774,7 @@ let highlighter (buffer:reactive_buffer) localizable ~start ~stop = in let ips_sure, ips_unsure = Kernel_function.Hptset.fold (fun kf (ips_sure, ips_unsure) -> + Statuses_by_call.setup_all_preconditions_proxies kf; let ips_kf = Statuses_by_call.all_call_preconditions_at ~warn_missing:false kf stmt in diff --git a/src/plugins/gui/property_navigator.mli b/src/plugins/gui/property_navigator.mli index 2f85e4cf6b39500db83e97d59efba0779909559f..3192d2fc5e3e5b1ddf3f4b95b2e85346c0637fce 100644 --- a/src/plugins/gui/property_navigator.mli +++ b/src/plugins/gui/property_navigator.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/source_manager.ml b/src/plugins/gui/source_manager.ml index 08704a4f1b475140291a96d98993b39f574d75be..41c8e7f23323716e3574ffcf1348ea52bee585c6 100644 --- a/src/plugins/gui/source_manager.ml +++ b/src/plugins/gui/source_manager.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -25,7 +25,7 @@ type tab = { tab_file : Datatype.Filepath.t ; tab_page : int ; tab_select : line:int -> unit ; - tab_source_view : GSourceView2.source_view; + tab_source_view : GSourceView.source_view; } type t = { diff --git a/src/plugins/gui/source_manager.mli b/src/plugins/gui/source_manager.mli index 013cc6d35c6dfa65d11594e979a8b0b53c6cb8e4..8dcd10e6168beab275ca2f5f5969c1d80fab0a59 100644 --- a/src/plugins/gui/source_manager.mli +++ b/src/plugins/gui/source_manager.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -45,7 +45,7 @@ val load_file: val select_file: t -> Datatype.Filepath.t -> unit (** Selection by page filename *) val select_name: t -> string -> unit (** Selection by page title *) -val get_current_source_view : t -> GSourceView2.source_view +val get_current_source_view : t -> GSourceView.source_view (** Returns the source viewer for the currently displayed tab *) val clear : t -> unit diff --git a/src/plugins/gui/source_viewer.ml b/src/plugins/gui/source_viewer.ml index 0b7d27c8cd10cb5cd251e864fb868df05fe3327d..8e811b6ff6a7267862d32510ae17cebd916ab78b 100644 --- a/src/plugins/gui/source_viewer.ml +++ b/src/plugins/gui/source_viewer.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -23,9 +23,9 @@ (* Build a read only text view for C source code. *) -let set_language_to_C (buffer:GSourceView2.source_buffer) = +let set_language_to_C (buffer:GSourceView.source_buffer) = let original_source_language_manager = - GSourceView2.source_language_manager ~default:true + GSourceView.source_language_manager ~default:true in let original_lang = original_source_language_manager#guess_language @@ -44,7 +44,7 @@ let make ?name ~packing () = Utf8_logic.forall Utf8_logic.exists Utf8_logic.eq Utf8_logic.neq) ; *) let original_source_window = - GSourceView2.source_view + GSourceView.source_view ~show_line_numbers:true ~editable:false ~packing @@ -69,6 +69,6 @@ let make ?name ~packing () = let buffer () = - let original_source_buffer = GSourceView2.source_buffer () in + let original_source_buffer = GSourceView.source_buffer () in set_language_to_C original_source_buffer; original_source_buffer diff --git a/src/plugins/gui/source_viewer.mli b/src/plugins/gui/source_viewer.mli index 7a3ef5e6ba0566ebff87867aa6539e429f22d927..5211d0a4d6233bc98f100226c150658448dc83cb 100644 --- a/src/plugins/gui/source_viewer.mli +++ b/src/plugins/gui/source_viewer.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -24,8 +24,8 @@ That is the buffer where Frama-C puts its pretty-printed AST. *) val make : ?name:string -> packing:(GObj.widget -> unit) -> unit -> - GSourceView2.source_view + GSourceView.source_view (** Build a new source viewer. *) -val buffer : unit -> GSourceView2.source_buffer +val buffer : unit -> GSourceView.source_buffer (** @return the buffer displaying the pretty-printed AST. *) diff --git a/src/plugins/gui/warning_manager.ml b/src/plugins/gui/warning_manager.ml index 33bad35ef988323e07a107a2ab9e5d91be300e88..c27f8f1070dd489bb877a35ee0597d8e7755f003 100644 --- a/src/plugins/gui/warning_manager.ml +++ b/src/plugins/gui/warning_manager.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/warning_manager.mli b/src/plugins/gui/warning_manager.mli index d183c9a6f1548fd7190017f3f048b4aacc370a15..f939649d13a06410b7416358a56a67378fd1e777 100644 --- a/src/plugins/gui/warning_manager.mli +++ b/src/plugins/gui/warning_manager.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/wbox.ml b/src/plugins/gui/wbox.ml index 5e09ab8e1a68955e92edcdce75414a6495644dd5..593d2c11a6a2a80a7833e6895d25d18bf324a942 100644 --- a/src/plugins/gui/wbox.ml +++ b/src/plugins/gui/wbox.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/wbox.mli b/src/plugins/gui/wbox.mli index 95a5698eaa4480b97074445c4a1f81b7fa050331..3cf819eb36ac278f6a07af3f760c791c668f0e29 100644 --- a/src/plugins/gui/wbox.mli +++ b/src/plugins/gui/wbox.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/wfile.ml b/src/plugins/gui/wfile.ml index b32f0aa306380ab548345e8716db3e0bb9eff4eb..9b1fb7d925918d9db898595b68668adbaff60b4e 100644 --- a/src/plugins/gui/wfile.ml +++ b/src/plugins/gui/wfile.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -77,7 +77,8 @@ class button ?kind ?title ?select ?tooltip ?parent () = let fld = GMisc.label ~text:"(none)" ~xalign:0.0 ~packing:(box#pack ~expand:true) () in let _ = GMisc.separator `VERTICAL - ~packing:(box#pack ~expand:false ~padding:2) ~show:true () in + ~packing:(box#pack ~expand:false ~padding:2) ~show:true () + in let _ = GMisc.image ~packing:(box#pack ~expand:false) ~stock:`OPEN () in let button = GButton.button () in let dialog = new dialog ?kind ?title ?select ?parent () in diff --git a/src/plugins/gui/wfile.mli b/src/plugins/gui/wfile.mli index 94f29291958eccbd30d773c35e1ad23bfc03088f..835f48352ea3231af7c8ad8b7e970a54f44e6c4a 100644 --- a/src/plugins/gui/wfile.mli +++ b/src/plugins/gui/wfile.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/widget.ml b/src/plugins/gui/widget.ml index bc9c1f649ce8d4077079dcd9d95f2c66d67727b7..c7aa3c8f8a3a53b1f775ca718d429a76ef8dfc13 100644 --- a/src/plugins/gui/widget.ml +++ b/src/plugins/gui/widget.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -73,8 +73,8 @@ class label ?(style=`Label) ?(align=`Left) ?width ?text () = | Some c0 , `NORMAL -> w#misc#modify_fg [ `NORMAL , `COLOR c0 ] | None , (#GDraw.color as c) -> - fg <- Some (w#misc#style#fg `NORMAL) ; - w#misc#modify_fg [ `NORMAL , c ] + fg <- Some (w#misc#style#fg `NORMAL) ; + w#misc#modify_fg [ `NORMAL , c ] | Some _ , (#GDraw.color as c) -> w#misc#modify_fg [ `NORMAL , c ] @@ -84,8 +84,8 @@ class label ?(style=`Label) ?(align=`Left) ?width ?text () = | Some c0 , `NORMAL -> w#misc#modify_bg [ `NORMAL , `COLOR c0 ] | None , (#GDraw.color as c) -> - bg <- Some (w#misc#style#bg `NORMAL) ; - w#misc#modify_bg [ `NORMAL , c ] + bg <- Some (w#misc#style#bg `NORMAL) ; + w#misc#modify_bg [ `NORMAL , c ] | Some _ , (#GDraw.color as c) -> w#misc#modify_bg [ `NORMAL , c ] @@ -428,7 +428,7 @@ class popup () = method add_item ~label ~callback = if not empty && separator then - ignore (GMenu.separator_item ~packing:menu#append ()) ; + ignore (GMenu.separator_item ~packing:menu#append ()); let item = GMenu.menu_item ~label ~packing:menu#append () in ignore (item#connect#activate ~callback) ; empty <- false ; separator <- false diff --git a/src/plugins/gui/widget.mli b/src/plugins/gui/widget.mli index 54f04b43e0c4bc40a0fb1db6b5e7337c76f5ead7..1e2d10f714bfa474ffeb2d57ff62280ae14576cd 100644 --- a/src/plugins/gui/widget.mli +++ b/src/plugins/gui/widget.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/wpalette.ml b/src/plugins/gui/wpalette.ml index 497541b42f1c2bdc444c85d122c68840c665cc8f..b09ce3428296699ec841646223f4c3756c993dae 100644 --- a/src/plugins/gui/wpalette.ml +++ b/src/plugins/gui/wpalette.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/wpalette.mli b/src/plugins/gui/wpalette.mli index aaf07c501b3868fecc07583a008837979ffbbc4f..46640567b9936a871c18cc41a1ca742c8d85c600 100644 --- a/src/plugins/gui/wpalette.mli +++ b/src/plugins/gui/wpalette.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/wpane.ml b/src/plugins/gui/wpane.ml index 582ded99e873539e52573aef07d1967472eefb90..9f38f615462995d21eb459623eb3e69e7295f95f 100644 --- a/src/plugins/gui/wpane.ml +++ b/src/plugins/gui/wpane.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -217,7 +217,7 @@ class ['a] dialog ~title ~window ?(resize=false) () = let shell = GWindow.window ~title ~kind:`TOPLEVEL ~modal:true ~show:false ~decorated:true ~position:`CENTER_ON_PARENT - ~allow_grow:resize () + ~resizable:resize () in let hclip = GBin.alignment ~packing:shell#add () in diff --git a/src/plugins/gui/wpane.mli b/src/plugins/gui/wpane.mli index 523c1ceb1d219f8c96d6b11695d2da5a1c9cdfdd..b7c9d371b433bf23b041e1a5bc4e56f4f7221822 100644 --- a/src/plugins/gui/wpane.mli +++ b/src/plugins/gui/wpane.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/wtable.ml b/src/plugins/gui/wtable.ml index c6a8db052f516441f0a9c716d81cf084a506446c..d860a0fda1edf3f73f37671b5dedb808d9ec3b1d 100644 --- a/src/plugins/gui/wtable.ml +++ b/src/plugins/gui/wtable.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/wtable.mli b/src/plugins/gui/wtable.mli index e7fac74e6b76ccdb8afe5ee4dbead3caf228279d..3486654303d26980f5d20f4e944c7c5781a0f732 100644 --- a/src/plugins/gui/wtable.mli +++ b/src/plugins/gui/wtable.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/wtext.ml b/src/plugins/gui/wtext.ml index 828f80eb5b46279c5dfc433e069c97842df22042..53537274b92620d81cca223a4145bb68aaf8c66d 100644 --- a/src/plugins/gui/wtext.ml +++ b/src/plugins/gui/wtext.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/wtext.mli b/src/plugins/gui/wtext.mli index e2db70110515e9ebaa50847033a9efea13b7997c..75c7b4038841cfae30a595683ac6fea94fd80875 100644 --- a/src/plugins/gui/wtext.mli +++ b/src/plugins/gui/wtext.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/wutil.ml b/src/plugins/gui/wutil.ml index e9bc08890aaf9c46128b7cf644cb8649136aac5d..64421cb491ca77aab6056815a257086b0a8d803f 100644 --- a/src/plugins/gui/wutil.ml +++ b/src/plugins/gui/wutil.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/wutil.mli b/src/plugins/gui/wutil.mli index fd8080c4180b22fd17b6cb87a51ab595d163e83c..aa07048eedd8128813b0655684314b569fed8b57 100644 --- a/src/plugins/gui/wutil.mli +++ b/src/plugins/gui/wutil.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/impact/Impact.mli b/src/plugins/impact/Impact.mli index a5f48194f59239c24e5e41ffc15d98fcc328cbfe..5229c6a171611d5aa4d1a92f6615f2d7670e8c6c 100644 --- a/src/plugins/impact/Impact.mli +++ b/src/plugins/impact/Impact.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/impact/compute_impact.ml b/src/plugins/impact/compute_impact.ml index 7469c4bdd437974f8c72fd2ca36e8b2ecd26fe3c..9755c2489b728b74a59b81d49b507f9db090d7ea 100644 --- a/src/plugins/impact/compute_impact.ml +++ b/src/plugins/impact/compute_impact.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/impact/compute_impact.mli b/src/plugins/impact/compute_impact.mli index 5dae2604fdeb4ab0b2e07ba73c828fbc451e1d6d..2364e194d9ffb44eb9c51598fd387e61e010c1fd 100644 --- a/src/plugins/impact/compute_impact.mli +++ b/src/plugins/impact/compute_impact.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/impact/options.ml b/src/plugins/impact/options.ml index fce8d81baf85409f0c266795de46481e9e15f4e3..ebf40c8b2fda93f2ff4161e7cbb8aeb5607b6498 100644 --- a/src/plugins/impact/options.ml +++ b/src/plugins/impact/options.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/impact/options.mli b/src/plugins/impact/options.mli index ee4462716b6b7ab29c5aec9000952b5578db340f..3b406d65b2972d1ba5ff6d691d8204ef3c851443 100644 --- a/src/plugins/impact/options.mli +++ b/src/plugins/impact/options.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/impact/pdg_aux.ml b/src/plugins/impact/pdg_aux.ml index 212ff56a1345c1cbbd8f96c04f93f6bb6724c223..e6eb1eb05068b4adef86c7e9f958e1a9f920bb71 100644 --- a/src/plugins/impact/pdg_aux.ml +++ b/src/plugins/impact/pdg_aux.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/impact/pdg_aux.mli b/src/plugins/impact/pdg_aux.mli index 23e6d05b546a00408abe992f860254477c8bc536..94e0d409cd04671ec03407575c3c5d9fdd30e2e7 100644 --- a/src/plugins/impact/pdg_aux.mli +++ b/src/plugins/impact/pdg_aux.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/impact/reason_graph.ml b/src/plugins/impact/reason_graph.ml index d800e760a73e34c3cc5b04a8c2497a311b8e5e4b..105e52e8137497b06ca8870dbaa70666c37160d6 100644 --- a/src/plugins/impact/reason_graph.ml +++ b/src/plugins/impact/reason_graph.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/impact/register.ml b/src/plugins/impact/register.ml index 92619e2f2cc329c56824c1a5e84bfbd0e5db7b94..ddb6192baff94fd3579868f2317d9eac21f54f03 100644 --- a/src/plugins/impact/register.ml +++ b/src/plugins/impact/register.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/impact/register_gui.ml b/src/plugins/impact/register_gui.ml index a4a6d79740dac47aefd89442aecf8584adad557b..8d5440c104e789c97c1057151d64ef8d26847445 100644 --- a/src/plugins/impact/register_gui.ml +++ b/src/plugins/impact/register_gui.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -167,9 +167,7 @@ let reason_graph_window main_window ?in_kf reason = let height = int_of_float (float main_window#default_height *. 3. /. 4.) in let width = int_of_float (float main_window#default_width *. 3. /. 4.) in let window = - GWindow.window - ~width ~height ~allow_shrink:true ~allow_grow:true - ~position:`CENTER () + GWindow.window ~width ~height ~resizable:true ~position:`CENTER () in let view = reason_graph ~packing:window#add in window#show (); diff --git a/src/plugins/impact/register_gui.mli b/src/plugins/impact/register_gui.mli index 2df5ce4f6f9bc993b91552f9f3c72492067b8173..7dd3f590611a44adb96d21928184cbc1b7453dba 100644 --- a/src/plugins/impact/register_gui.mli +++ b/src/plugins/impact/register_gui.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/inout/Inout.mli b/src/plugins/inout/Inout.mli index e06b12d09de053ce1888e750c127b5ef7b4a1f61..7b269eb66e735955a93bfffde84624208a6d511c 100644 --- a/src/plugins/inout/Inout.mli +++ b/src/plugins/inout/Inout.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/inout/context.mli b/src/plugins/inout/context.mli index 691624a18d43a934503ff0cee5be090383f5d656..1e995906cded2b8932a0d6561d248aabcd7bd6b8 100644 --- a/src/plugins/inout/context.mli +++ b/src/plugins/inout/context.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/inout/cumulative_analysis.ml b/src/plugins/inout/cumulative_analysis.ml index 3a5f4085c0b4e5c48368f187248a3bc5e6b6c393..ca86a013946ae195cc20b412acad4dbb69ecfe87 100644 --- a/src/plugins/inout/cumulative_analysis.ml +++ b/src/plugins/inout/cumulative_analysis.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/inout/cumulative_analysis.mli b/src/plugins/inout/cumulative_analysis.mli index 328064a9ab740ff0e862454791f0fa69f01f3322..7844837205097c48d1c9ee32e21a0776190d9f29 100644 --- a/src/plugins/inout/cumulative_analysis.mli +++ b/src/plugins/inout/cumulative_analysis.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/inout/derefs.ml b/src/plugins/inout/derefs.ml index c218e2c227ba4b2fde44040bbea15c84c7469bfe..17ef8fb7dd3197553754330618873ec11af6eadb 100644 --- a/src/plugins/inout/derefs.ml +++ b/src/plugins/inout/derefs.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/inout/derefs.mli b/src/plugins/inout/derefs.mli index 4739b8f6acf4a90fdf5fd396142d1073243f9a5f..292b58e0922204772d134a18170fb9c8a7da88f1 100644 --- a/src/plugins/inout/derefs.mli +++ b/src/plugins/inout/derefs.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/inout/inout_parameters.ml b/src/plugins/inout/inout_parameters.ml index ded19972913da7b04451bc9f2d61ef0b7b412329..d7d36cd91c2412a91784b8669f97e5ec66c8a70f 100644 --- a/src/plugins/inout/inout_parameters.ml +++ b/src/plugins/inout/inout_parameters.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/inout/inout_parameters.mli b/src/plugins/inout/inout_parameters.mli index af8466915a7e1b22a32d1bbbbc1d9979d0023d1d..f8b4b5323434219510c8465c1ae98a0a95860a3c 100644 --- a/src/plugins/inout/inout_parameters.mli +++ b/src/plugins/inout/inout_parameters.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/inout/inputs.ml b/src/plugins/inout/inputs.ml index 70053c1b14551519c4390d8776a4abb70cb5c8d2..2819a6864d3f9c3bc155efdc1e2cdad6f51cc583 100644 --- a/src/plugins/inout/inputs.ml +++ b/src/plugins/inout/inputs.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/inout/inputs.mli b/src/plugins/inout/inputs.mli index b230b68870f17ade086a86b867a3f1f234b68581..ba2009189b5dc82d4e0b1d82ecdb55667f7a7d9a 100644 --- a/src/plugins/inout/inputs.mli +++ b/src/plugins/inout/inputs.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/inout/operational_inputs.ml b/src/plugins/inout/operational_inputs.ml index bb8055aa2baa74ad4aa983c7ab1b4118ded0bb1d..2cb17a9f3117cab4c8b0094832818263a62a7124 100644 --- a/src/plugins/inout/operational_inputs.ml +++ b/src/plugins/inout/operational_inputs.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/inout/outputs.ml b/src/plugins/inout/outputs.ml index 3ffd7ce047ee8aa02a80c0786d049899c6dc7696..35e15968f181dfbce0c2683dd9af346f27e776a0 100644 --- a/src/plugins/inout/outputs.ml +++ b/src/plugins/inout/outputs.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/inout/outputs.mli b/src/plugins/inout/outputs.mli index 9b15efee1c6f29139dec774a3febd4238130041b..c5026b234a2044a3630c4a0f08455ed0cbaab284 100644 --- a/src/plugins/inout/outputs.mli +++ b/src/plugins/inout/outputs.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/inout/register.ml b/src/plugins/inout/register.ml index a5be604821f752102bbdb5882586dcb9f5cd512f..8c1cfc00480ef89b21bf86ae5ffc4e9c0c962b7c 100644 --- a/src/plugins/inout/register.ml +++ b/src/plugins/inout/register.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/loop_analysis/LoopAnalysis.mli b/src/plugins/loop_analysis/LoopAnalysis.mli index f1a198c8e31fc53622b6efb24fef65586dc0af0a..a8ebbc54d3e9a276856d89421f151187ac38198c 100644 --- a/src/plugins/loop_analysis/LoopAnalysis.mli +++ b/src/plugins/loop_analysis/LoopAnalysis.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/loop_analysis/Makefile.in b/src/plugins/loop_analysis/Makefile.in index a4db47c12aee8da2b9c5de8f84abb0ce98a73a78..e835d79087e0263d335e09d82339dc428bf9cae6 100644 --- a/src/plugins/loop_analysis/Makefile.in +++ b/src/plugins/loop_analysis/Makefile.in @@ -2,7 +2,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/src/plugins/loop_analysis/configure.ac b/src/plugins/loop_analysis/configure.ac index c3ee573ee5855256589f71b8e8b6b4bb26eb62d3..fef407134e857a48c481bc6a9287658792ba206f 100644 --- a/src/plugins/loop_analysis/configure.ac +++ b/src/plugins/loop_analysis/configure.ac @@ -2,7 +2,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/src/plugins/loop_analysis/loop_analysis.ml b/src/plugins/loop_analysis/loop_analysis.ml index 92bef5b6d808b3e5f12489bab3f488a33118319c..9236b5240a4b5f0a8a1029e54a193344ec8c860a 100644 --- a/src/plugins/loop_analysis/loop_analysis.ml +++ b/src/plugins/loop_analysis/loop_analysis.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -462,7 +462,7 @@ module Store(* (B:sig *) success := true; add_loop_bound stmt adjusted_value end - with Failure _ -> (* overflow in Integer.to_int *) + with Z.Overflow -> (* overflow in Integer.to_int *) () (* TODO: check if this is useful and does not cause false alarms else diff --git a/src/plugins/loop_analysis/loop_analysis.mli b/src/plugins/loop_analysis/loop_analysis.mli index 4c7348d319079c1253121b4c8dda54b9491a75f2..c81b6d9dd66291f4bd89d5ba7aa068ec2fd0095c 100644 --- a/src/plugins/loop_analysis/loop_analysis.mli +++ b/src/plugins/loop_analysis/loop_analysis.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/loop_analysis/options.ml b/src/plugins/loop_analysis/options.ml index 035857981698216076a6937e5b042f36e27b037c..58848be42e5c1533a915fe22df28d5cc5193cf5f 100644 --- a/src/plugins/loop_analysis/options.ml +++ b/src/plugins/loop_analysis/options.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/loop_analysis/options.mli b/src/plugins/loop_analysis/options.mli index 9111b3a180ee7e89018e3f89b5ce641e4c670500..1a6d952eeb0ff40da17f7ee72883c3e52684a781 100644 --- a/src/plugins/loop_analysis/options.mli +++ b/src/plugins/loop_analysis/options.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/loop_analysis/region_analysis.ml b/src/plugins/loop_analysis/region_analysis.ml index 61d246c017ca70a6e311abb30427ea0a8ba65009..1031f4e2836d87e4e123fb19d70cf30bc8505863 100644 --- a/src/plugins/loop_analysis/region_analysis.ml +++ b/src/plugins/loop_analysis/region_analysis.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/loop_analysis/region_analysis.mli b/src/plugins/loop_analysis/region_analysis.mli index d84811e58bb722f9665d15bd7ea10c1a1ad8b7ff..e674d19f3bd2757170585b9d8610c26ac804a70d 100644 --- a/src/plugins/loop_analysis/region_analysis.mli +++ b/src/plugins/loop_analysis/region_analysis.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/loop_analysis/region_analysis_sig.ml b/src/plugins/loop_analysis/region_analysis_sig.ml index 0fda0291e8b371f8707bfd877f075ec9ed811543..636b16cfe8314493cebd1c041c5cf14a441bf7cb 100644 --- a/src/plugins/loop_analysis/region_analysis_sig.ml +++ b/src/plugins/loop_analysis/region_analysis_sig.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/loop_analysis/region_analysis_stmt.ml b/src/plugins/loop_analysis/region_analysis_stmt.ml index 0776c368f34602e1a79720ea8242a5ec96f0c5a7..39001f4901f753404c5b3ebb8c00316c82c6b7d7 100644 --- a/src/plugins/loop_analysis/region_analysis_stmt.ml +++ b/src/plugins/loop_analysis/region_analysis_stmt.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/loop_analysis/region_analysis_stmt.mli b/src/plugins/loop_analysis/region_analysis_stmt.mli index ebefb378fd8e9882857e461b37f24ca9d0fa6db6..26bbfb8d5e86889bc8220d2a9757bc16ae3da203 100644 --- a/src/plugins/loop_analysis/region_analysis_stmt.mli +++ b/src/plugins/loop_analysis/region_analysis_stmt.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/loop_analysis/register.ml b/src/plugins/loop_analysis/register.ml index 8ff1ef77d6d5dda7af5c483fecc75968e767f39e..702af8118b853f12a5ed381eb1b75acad1b0b204 100644 --- a/src/plugins/loop_analysis/register.ml +++ b/src/plugins/loop_analysis/register.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/loop_analysis/slevel_analysis.ml b/src/plugins/loop_analysis/slevel_analysis.ml index 97f61c53028b4ab3e6d181c9e3bdb69fbe7b9df2..898570e199963d3bf2c370398828f262c43aeb63 100644 --- a/src/plugins/loop_analysis/slevel_analysis.ml +++ b/src/plugins/loop_analysis/slevel_analysis.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -123,9 +123,9 @@ module Specific(KF:sig val kf: Kernel_function.t end) = struct then Some result else raise Exit with - | Invalid_argument _ (* Possible exponent too big *) - | Failure _ (* Integer too big *) - | Exit -> (* Above MaxIterations. *) + | Invalid_argument _ (* Possible negative exponent *) + | Z.Overflow (* Integer too big *) + | Exit -> (* Above MaxIterations. *) update_max_slevel_encountered (Some (Integer.mul entry (Integer.mul in_loop (Integer.of_int max_iteration)))); @@ -197,8 +197,7 @@ module SpecificNoBranches(KF:sig val kf: Kernel_function.t end) = struct Some Integer.(pred (mul (succ (of_int in_loop_i)) (of_int max_iteration))) with - | Invalid_argument _ (* Possible exponent too big *) - | Failure _ (* Integer too big *) + | Z.Overflow (* Integer too big *) -> update_max_slevel_encountered (Some (Integer.mul entry (Integer.mul in_loop (Integer.of_int max_iteration)))); diff --git a/src/plugins/metrics/Metrics.mli b/src/plugins/metrics/Metrics.mli index caa33bee585a2c5ca88c0008b84ff6a47826b3c5..c25dba5b58f411843cb29c50f04b2500021afc50 100644 --- a/src/plugins/metrics/Metrics.mli +++ b/src/plugins/metrics/Metrics.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/metrics/css_html.ml b/src/plugins/metrics/css_html.ml index 02bc17caeafec817ae82639bcf687bfebcf0d1ec..b0f9f8b51500710b52bbe68a5c651bde94a5dbc0 100644 --- a/src/plugins/metrics/css_html.ml +++ b/src/plugins/metrics/css_html.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/metrics/metrics_acsl.ml b/src/plugins/metrics/metrics_acsl.ml index ff85291148cbf85744807d9a211e720b8c8ba6f2..ebba36bb4033ebaf551f4c050edcbbd8174ce1c5 100644 --- a/src/plugins/metrics/metrics_acsl.ml +++ b/src/plugins/metrics/metrics_acsl.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/metrics/metrics_acsl.mli b/src/plugins/metrics/metrics_acsl.mli index 4434b9e8a4d03a08eb5cc34ab08a387fb8e3c42c..40c80b55e3a1e04223741b725f83cc6646c149b1 100644 --- a/src/plugins/metrics/metrics_acsl.mli +++ b/src/plugins/metrics/metrics_acsl.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/metrics/metrics_base.ml b/src/plugins/metrics/metrics_base.ml index def398aecbd91e37419870b7a5e0c4ab2d663c6e..9eb22f91a2d9727170f3ed7feb4acca0819f6c86 100644 --- a/src/plugins/metrics/metrics_base.ml +++ b/src/plugins/metrics/metrics_base.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/metrics/metrics_base.mli b/src/plugins/metrics/metrics_base.mli index 6e09e4383c029262d94a8b8910389f58dbfdf08e..6976f2c9c73fae948a022030d2ad5d2c0ac439ae 100644 --- a/src/plugins/metrics/metrics_base.mli +++ b/src/plugins/metrics/metrics_base.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/metrics/metrics_cabs.ml b/src/plugins/metrics/metrics_cabs.ml index d753f2330bfd69a72cf3313c176609919eb27613..8b46580b8dde6c35a78ace8a40a456a403455382 100644 --- a/src/plugins/metrics/metrics_cabs.ml +++ b/src/plugins/metrics/metrics_cabs.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/metrics/metrics_cabs.mli b/src/plugins/metrics/metrics_cabs.mli index 6216292b7e8f7cf11384b142d49b748f8fd39b37..3e8c434ff7fdb1461e2c41cbcbf8b9eaf2aa0268 100644 --- a/src/plugins/metrics/metrics_cabs.mli +++ b/src/plugins/metrics/metrics_cabs.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/metrics/metrics_cilast.ml b/src/plugins/metrics/metrics_cilast.ml index e910774d6677e142a90f8c01d6ad2058c0ddd154..ca998ba41855e3cd990898ff02e1527f68ddb103 100644 --- a/src/plugins/metrics/metrics_cilast.ml +++ b/src/plugins/metrics/metrics_cilast.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/metrics/metrics_cilast.mli b/src/plugins/metrics/metrics_cilast.mli index 4a826d9e3a9bb2603e13ac2aa473762db5007344..e08175f12ea50fdf69cdc0b13db21c846f7c5f52 100644 --- a/src/plugins/metrics/metrics_cilast.mli +++ b/src/plugins/metrics/metrics_cilast.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/metrics/metrics_coverage.ml b/src/plugins/metrics/metrics_coverage.ml index b87cd233c076804823159fd2f21246f1442f66a2..485a187e58a1840e4c0c2c9b43432a2fbd78492f 100644 --- a/src/plugins/metrics/metrics_coverage.ml +++ b/src/plugins/metrics/metrics_coverage.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/metrics/metrics_coverage.mli b/src/plugins/metrics/metrics_coverage.mli index 40f176bf3358be7b4947ccbcfa96d0cef01af078..4667ae15ad7fb6583f36b63445e0e36b268505ed 100644 --- a/src/plugins/metrics/metrics_coverage.mli +++ b/src/plugins/metrics/metrics_coverage.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/metrics/metrics_gui.ml b/src/plugins/metrics/metrics_gui.ml index 7887b852c64180954bd0a32f51651783f6d9930d..79839db62fc96a2e7edf1629d96188edf3be73d5 100644 --- a/src/plugins/metrics/metrics_gui.ml +++ b/src/plugins/metrics/metrics_gui.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/metrics/metrics_gui.mli b/src/plugins/metrics/metrics_gui.mli index d166c6e3e48153068e57164d424a6855f1fa8179..79bf1c0a381e1a51e4ec3c5a829c3556d2fb5773 100644 --- a/src/plugins/metrics/metrics_gui.mli +++ b/src/plugins/metrics/metrics_gui.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/metrics/metrics_parameters.ml b/src/plugins/metrics/metrics_parameters.ml index 700b02c9d98449183afbfd8ba645d84148bf39aa..507ed4b9f059590599f08a00c24655bc9a1fe541 100644 --- a/src/plugins/metrics/metrics_parameters.ml +++ b/src/plugins/metrics/metrics_parameters.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/metrics/metrics_parameters.mli b/src/plugins/metrics/metrics_parameters.mli index c02f1e9c5b5fa310a60b67300a13c1caf4fc8f21..c7913b12adee8ac85bc148f2669bec9ada6d7570 100644 --- a/src/plugins/metrics/metrics_parameters.mli +++ b/src/plugins/metrics/metrics_parameters.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/metrics/register.ml b/src/plugins/metrics/register.ml index d0c031236bd3e8504c8887b81cb4f9353aeb84d9..79e90edeac270a0f83cfaa0521d26b3f52299ed0 100644 --- a/src/plugins/metrics/register.ml +++ b/src/plugins/metrics/register.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/metrics/register_gui.ml b/src/plugins/metrics/register_gui.ml index 409334f21a2e2780911581779251d22303acaf59..f16d7007a7d889cf4c4682d7dc563ca724b6de87 100644 --- a/src/plugins/metrics/register_gui.ml +++ b/src/plugins/metrics/register_gui.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/nonterm/Makefile.in b/src/plugins/nonterm/Makefile.in index c134137e94f82234f57f442c44650c046ee9eefb..cd307311abf06fba69ae5b97c3969dc67d0153d6 100644 --- a/src/plugins/nonterm/Makefile.in +++ b/src/plugins/nonterm/Makefile.in @@ -2,7 +2,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/src/plugins/nonterm/Nonterm.mli b/src/plugins/nonterm/Nonterm.mli index ce7a42b00627eefcc76a75a6f9e90daf8a01614f..3426449cefa0c916735da3acb7e7c1591161ebe9 100644 --- a/src/plugins/nonterm/Nonterm.mli +++ b/src/plugins/nonterm/Nonterm.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/nonterm/configure.ac b/src/plugins/nonterm/configure.ac index c87bed3e956dbd0d25378d18539c87ebd88ff136..358ec738c755d1fdf119717c7e593df49bcc22ce 100644 --- a/src/plugins/nonterm/configure.ac +++ b/src/plugins/nonterm/configure.ac @@ -2,7 +2,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/src/plugins/nonterm/nonterm_run.ml b/src/plugins/nonterm/nonterm_run.ml index ea7e98bba64fda50f824b60748b1a2354f6a7178..7b8bfe248d9a90b5237ef2555aba7a49e59b9263 100644 --- a/src/plugins/nonterm/nonterm_run.ml +++ b/src/plugins/nonterm/nonterm_run.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/obfuscator/Makefile.in b/src/plugins/obfuscator/Makefile.in index 8baa937c05c2433ffb9a36335b046731863cac83..e12a27e8ac3f1ee3df569dcf23d40728c8a8d706 100644 --- a/src/plugins/obfuscator/Makefile.in +++ b/src/plugins/obfuscator/Makefile.in @@ -2,7 +2,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/src/plugins/obfuscator/Obfuscator.mli b/src/plugins/obfuscator/Obfuscator.mli index f485ca359542d646a90f681e0c987c9ad26c1d43..e78bcbb67bc76df70cd7909bec1c66db849f5d62 100644 --- a/src/plugins/obfuscator/Obfuscator.mli +++ b/src/plugins/obfuscator/Obfuscator.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/obfuscator/configure.ac b/src/plugins/obfuscator/configure.ac index 8ca06bc64fcca98571d5159bb2201c207c36b3e5..ff725af05b33b4402285622844604e872fd9d3c9 100644 --- a/src/plugins/obfuscator/configure.ac +++ b/src/plugins/obfuscator/configure.ac @@ -2,7 +2,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/src/plugins/obfuscator/dictionary.ml b/src/plugins/obfuscator/dictionary.ml index aebdd347bbba552421358940d53b00afd2687dd5..1ae55c07c0c65ce5661dd5eb3b841aefcd6ea444 100644 --- a/src/plugins/obfuscator/dictionary.ml +++ b/src/plugins/obfuscator/dictionary.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/obfuscator/dictionary.mli b/src/plugins/obfuscator/dictionary.mli index 5b2b362ac333c4fc9b260abe780ac727224da610..5756bf079679c0e6e13224632adcf7e4722e7369 100644 --- a/src/plugins/obfuscator/dictionary.mli +++ b/src/plugins/obfuscator/dictionary.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/obfuscator/obfuscate.ml b/src/plugins/obfuscator/obfuscate.ml index ab4d1a7991c24dcd51ffe3ee41a38952befedee4..213f983d1f4b5e0129ce8d670c81ebc49fdfcd13 100644 --- a/src/plugins/obfuscator/obfuscate.ml +++ b/src/plugins/obfuscator/obfuscate.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/obfuscator/obfuscate.mli b/src/plugins/obfuscator/obfuscate.mli index 2f52ce43ff52005bf3201cd3cc053c4e3f8cbbcd..44601430cbcc5814d40c2aca6dcc569989c03c98 100644 --- a/src/plugins/obfuscator/obfuscate.mli +++ b/src/plugins/obfuscator/obfuscate.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/obfuscator/obfuscator_kind.ml b/src/plugins/obfuscator/obfuscator_kind.ml index 175bec1ef6ff1bf85caa38330ab6636f0781c704..216651aca09b951745e6b6639b3be7cbf2f14f8f 100644 --- a/src/plugins/obfuscator/obfuscator_kind.ml +++ b/src/plugins/obfuscator/obfuscator_kind.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/obfuscator/obfuscator_kind.mli b/src/plugins/obfuscator/obfuscator_kind.mli index 05a7ab510d7cc1e8dbc63446215733b49c40bb9c..0aa33ec52230294a569a723f00e481c5e67c11e5 100644 --- a/src/plugins/obfuscator/obfuscator_kind.mli +++ b/src/plugins/obfuscator/obfuscator_kind.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/obfuscator/obfuscator_register.ml b/src/plugins/obfuscator/obfuscator_register.ml index 1d05a3df89afa4b21a3611cdc82c8fc306b7f760..0674063a9bfd7e2a9aafc0c5d4726a8072daafb4 100644 --- a/src/plugins/obfuscator/obfuscator_register.ml +++ b/src/plugins/obfuscator/obfuscator_register.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/obfuscator/options.ml b/src/plugins/obfuscator/options.ml index 130e5d9b77748cf768e1073b1e9864a74b72d2aa..71c1587030719c71b3941123a02a998a5fcc6516 100644 --- a/src/plugins/obfuscator/options.ml +++ b/src/plugins/obfuscator/options.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/obfuscator/options.mli b/src/plugins/obfuscator/options.mli index aaed28477eb6067a70eae2e3550c439d21b92681..7cf70c9b4890aaf46c320e33126d4e3db19f73d3 100644 --- a/src/plugins/obfuscator/options.mli +++ b/src/plugins/obfuscator/options.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/occurrence/Occurrence.mli b/src/plugins/occurrence/Occurrence.mli index f2302bc5205f4668b3f015c48c7a93a1067d6297..7a994acd4786b43d3231aa387770e18578ab39f1 100644 --- a/src/plugins/occurrence/Occurrence.mli +++ b/src/plugins/occurrence/Occurrence.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/occurrence/options.ml b/src/plugins/occurrence/options.ml index 282c56dbb3660da67bec88af532dd53fac16d13a..121d7898dbcb116dc52c3aa4e7fdd6e708ebd06e 100644 --- a/src/plugins/occurrence/options.ml +++ b/src/plugins/occurrence/options.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/occurrence/options.mli b/src/plugins/occurrence/options.mli index 2e3920d05a9f11d3514fe6861aa3d55c249e1bc9..7b31e27f5ae5c269c2f8a53db8b42e90a8608211 100644 --- a/src/plugins/occurrence/options.mli +++ b/src/plugins/occurrence/options.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/occurrence/register.ml b/src/plugins/occurrence/register.ml index 423c20ce2a963ea59b00d025fa405e87132ecc0a..2842ba4673991dfc8a8d96b4ab331c21dcb1dc02 100644 --- a/src/plugins/occurrence/register.ml +++ b/src/plugins/occurrence/register.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/occurrence/register_gui.ml b/src/plugins/occurrence/register_gui.ml index c46e1129372546af2ba1b293d812c5d65d1cea9d..648f2d0835759abff0ed053afc055f85ac7d9989 100644 --- a/src/plugins/occurrence/register_gui.ml +++ b/src/plugins/occurrence/register_gui.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/occurrence/register_gui.mli b/src/plugins/occurrence/register_gui.mli index 129334496b6875f1d24225bc0407e63a5dd63141..eb565b9364df7b9d34fd51d0ec8682bc87e4a479 100644 --- a/src/plugins/occurrence/register_gui.mli +++ b/src/plugins/occurrence/register_gui.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/pdg/Pdg.mli b/src/plugins/pdg/Pdg.mli index 71610fbf5226bbe8720e96af02b769d52677271b..dbb99cb05353f6cf92861443a289be0ecbd1f481 100644 --- a/src/plugins/pdg/Pdg.mli +++ b/src/plugins/pdg/Pdg.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/pdg/annot.ml b/src/plugins/pdg/annot.ml index 0fc782a338fa95b2d0ebfa94476933990a59a2a0..5d13fd69b773727811eaf98d34255739fa7756b7 100644 --- a/src/plugins/pdg/annot.ml +++ b/src/plugins/pdg/annot.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/pdg/annot.mli b/src/plugins/pdg/annot.mli index 56206eddfaebacad2b169a4cefc76b9393559774..44bd9249cfd43dcf6aa50f4a518f6dd3d084e913 100644 --- a/src/plugins/pdg/annot.mli +++ b/src/plugins/pdg/annot.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/pdg/build.ml b/src/plugins/pdg/build.ml index 28616d3d82468db87fcbf8d1443bfd8d1e054f07..29d65d3c4ca723ebf4c07abe6c55600d63a4015c 100644 --- a/src/plugins/pdg/build.ml +++ b/src/plugins/pdg/build.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/pdg/build.mli b/src/plugins/pdg/build.mli index b6a4c99841eb78cf50fe48a190cad979975b3f0b..d5f519b68a63f7eb596d4fa67dffd0239690e2a1 100644 --- a/src/plugins/pdg/build.mli +++ b/src/plugins/pdg/build.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/pdg/ctrlDpds.ml b/src/plugins/pdg/ctrlDpds.ml index c2bf5149bcf2a23fe34d82b17ccda939e972aae0..e75a06d60231e8ae9958c7306e1ee8bf5015a283 100644 --- a/src/plugins/pdg/ctrlDpds.ml +++ b/src/plugins/pdg/ctrlDpds.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/pdg/ctrlDpds.mli b/src/plugins/pdg/ctrlDpds.mli index 896be217692ce35e5290107ea9b3b5d36fa306f8..7feb4d2304cee1ae42ee5222d13174afdfc911cf 100644 --- a/src/plugins/pdg/ctrlDpds.mli +++ b/src/plugins/pdg/ctrlDpds.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/pdg/marks.ml b/src/plugins/pdg/marks.ml index 9d5e6ec6539504c339e83dd3037598c3b05c46cd..b2b261562ecaeafeeec70e5bcfda5fef3912e605 100644 --- a/src/plugins/pdg/marks.ml +++ b/src/plugins/pdg/marks.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/pdg/marks.mli b/src/plugins/pdg/marks.mli index 67e8ebacc5fdd2799def6017fb00102e6ea788ec..78f16accbdb7b01ffca8cfcb826771fdd6de5d99 100644 --- a/src/plugins/pdg/marks.mli +++ b/src/plugins/pdg/marks.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/pdg/pdg_parameters.ml b/src/plugins/pdg/pdg_parameters.ml index 287fbdc508ffd0d063206c81ba37884f0dfcb501..0b4a418e7836c54728fbbabf942bb16d55fbd10b 100644 --- a/src/plugins/pdg/pdg_parameters.ml +++ b/src/plugins/pdg/pdg_parameters.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/pdg/pdg_parameters.mli b/src/plugins/pdg/pdg_parameters.mli index 47cc3d5cc5d286d3eea050622e6ba589783e0275..e86fa9baf2719ba4279a8ae9be2de1cd1c649148 100644 --- a/src/plugins/pdg/pdg_parameters.mli +++ b/src/plugins/pdg/pdg_parameters.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/pdg/pdg_state.ml b/src/plugins/pdg/pdg_state.ml index 69f5c8122942759a7567a3df91b57ad51a496ac6..c43e3f7e1408077f5075b1ae1eaacc21cf629525 100644 --- a/src/plugins/pdg/pdg_state.ml +++ b/src/plugins/pdg/pdg_state.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/pdg/pdg_state.mli b/src/plugins/pdg/pdg_state.mli index f4575d421f50503c0a8da1619aa6abacf8df2404..7b6befacfa8e8b1f854122e87a294709f02233a2 100644 --- a/src/plugins/pdg/pdg_state.mli +++ b/src/plugins/pdg/pdg_state.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/pdg/register.ml b/src/plugins/pdg/register.ml index 99e4e28d7b1ab8170f9b629a1ed15ac0942c8898..d2ba48a8cccf755b4c6e8ce2fa45a2971832e502 100644 --- a/src/plugins/pdg/register.ml +++ b/src/plugins/pdg/register.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/pdg/sets.ml b/src/plugins/pdg/sets.ml index 00ce4d3fd1279482ecfecb86acb419a089a8fcfe..d2bd399d01b4beae2d72a7a19ca5deff6ce19a44 100644 --- a/src/plugins/pdg/sets.ml +++ b/src/plugins/pdg/sets.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/pdg/sets.mli b/src/plugins/pdg/sets.mli index ab20b26b5147af9dda5edde615e5c6e9199727de..90d3e803663fd643d8dccc5e2d42a5aefc7ccb03 100644 --- a/src/plugins/pdg/sets.mli +++ b/src/plugins/pdg/sets.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/pdg_types/pdgIndex.ml b/src/plugins/pdg_types/pdgIndex.ml index 32582569ec5175302cafd321086bc44fe45133eb..cbd70054e44bf564427c733e0321823e6c998bb8 100644 --- a/src/plugins/pdg_types/pdgIndex.ml +++ b/src/plugins/pdg_types/pdgIndex.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/pdg_types/pdgIndex.mli b/src/plugins/pdg_types/pdgIndex.mli index f851ffdc7916394bb362beae3cb0ceac1552960d..7f2eb8bb9ed837d44090383b8749294a08b2949b 100644 --- a/src/plugins/pdg_types/pdgIndex.mli +++ b/src/plugins/pdg_types/pdgIndex.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/pdg_types/pdgMarks.ml b/src/plugins/pdg_types/pdgMarks.ml index 58262686d3f9f6fad196703d43e0217af4740347..4e821825a0def318054d9dcd181d83a0117655ce 100644 --- a/src/plugins/pdg_types/pdgMarks.ml +++ b/src/plugins/pdg_types/pdgMarks.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/pdg_types/pdgMarks.mli b/src/plugins/pdg_types/pdgMarks.mli index 822f8302980bbc1d7976d417307acd07b2a5bf98..02b2cb43eb9e6b475f8e3425fed4adda83650ed5 100644 --- a/src/plugins/pdg_types/pdgMarks.mli +++ b/src/plugins/pdg_types/pdgMarks.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/pdg_types/pdgTypes.ml b/src/plugins/pdg_types/pdgTypes.ml index 45ad97155da5996fdbf2aafd0ca41f8e9841e5ed..fbc535bede0a646c12cf7abc5f7818ccedfda557 100644 --- a/src/plugins/pdg_types/pdgTypes.ml +++ b/src/plugins/pdg_types/pdgTypes.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/pdg_types/pdgTypes.mli b/src/plugins/pdg_types/pdgTypes.mli index 821bed7e11edb25a3ee04f57cc864200fb9908f1..00a87090f22adcd50fbd4964bc143ed5f6077526 100644 --- a/src/plugins/pdg_types/pdgTypes.mli +++ b/src/plugins/pdg_types/pdgTypes.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/postdominators/Postdominators.mli b/src/plugins/postdominators/Postdominators.mli index e5714845ed834dc071ba74909828fba524074cbe..3d30f40d2fd941e8df5381fd3191c4dfeeefaa05 100644 --- a/src/plugins/postdominators/Postdominators.mli +++ b/src/plugins/postdominators/Postdominators.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/postdominators/compute.ml b/src/plugins/postdominators/compute.ml index 6890a4f3f39fec089d3fcd71bf9b064eb4f48260..f766ae37ba196f9f95ca10abdae2be3a06f29bc3 100644 --- a/src/plugins/postdominators/compute.ml +++ b/src/plugins/postdominators/compute.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/postdominators/postdominators_parameters.ml b/src/plugins/postdominators/postdominators_parameters.ml index 306a092f231960550022a27625886b2621662e10..3df3d1d02b705053347a0eb1d20659e175fe541b 100644 --- a/src/plugins/postdominators/postdominators_parameters.ml +++ b/src/plugins/postdominators/postdominators_parameters.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/postdominators/postdominators_parameters.mli b/src/plugins/postdominators/postdominators_parameters.mli index 40e782789527080a999ad98a0efde146c1730c67..5fba2a98f47eb45e07d486d15a4beae86d498eaa 100644 --- a/src/plugins/postdominators/postdominators_parameters.mli +++ b/src/plugins/postdominators/postdominators_parameters.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/postdominators/print.ml b/src/plugins/postdominators/print.ml index 62e5d32c8ccf6039d739352712f32312cfa45c25..9da13536e5f0fe8479768e09a95285aacadd199b 100644 --- a/src/plugins/postdominators/print.ml +++ b/src/plugins/postdominators/print.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/print_api/Makefile b/src/plugins/print_api/Makefile index fc6fef61f9efae037492518df9a88390c424fd68..d19567e0b395b1411c28ab148d797815e6e077cc 100644 --- a/src/plugins/print_api/Makefile +++ b/src/plugins/print_api/Makefile @@ -2,7 +2,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/src/plugins/print_api/Print_api.mli b/src/plugins/print_api/Print_api.mli index 75bdb5a5c65100d292a651f939e7787376f177cc..20a52aa659aee1ac05ca6daecf93317a9372d953 100644 --- a/src/plugins/print_api/Print_api.mli +++ b/src/plugins/print_api/Print_api.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/print_api/grammar.mly b/src/plugins/print_api/grammar.mly index e18a1d639111b455534b6015a8ec5ad180c64fae..135acbfc15492ba7aac513d423dae4ddd1de71c1 100644 --- a/src/plugins/print_api/grammar.mly +++ b/src/plugins/print_api/grammar.mly @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/src/plugins/print_api/lexer.mll b/src/plugins/print_api/lexer.mll index d71791f2971b8037d5442952dc724be010cef53a..f2b1c81bb1666425bdffb98fda36ef97dee93084 100644 --- a/src/plugins/print_api/lexer.mll +++ b/src/plugins/print_api/lexer.mll @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/print_api/print_interface.ml b/src/plugins/print_api/print_interface.ml index 6073a20530dcde2ba3e634f2c452bedceaff1fde..4d5c5e934406baa2c8eb7deb0290b75d25463e33 100644 --- a/src/plugins/print_api/print_interface.ml +++ b/src/plugins/print_api/print_interface.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/qed/Makefile b/src/plugins/qed/Makefile index 55ead1807735a1144fccda6a697e8de242fba7ff..1ae301857fcc7ef990c97a5d55b6aaff89dd5132 100644 --- a/src/plugins/qed/Makefile +++ b/src/plugins/qed/Makefile @@ -2,7 +2,7 @@ # # # This file is part of WP plug-in of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat a l'energie atomique et aux energies # # alternatives) # # # diff --git a/src/plugins/qed/QedGui.ml b/src/plugins/qed/QedGui.ml index 80e3d971c3d7510d07ce5b7035646a64a87ddaa8..06fad53cc421ccdcf594e4e47bf99fa300f1e232 100644 --- a/src/plugins/qed/QedGui.ml +++ b/src/plugins/qed/QedGui.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/qed/bvars.ml b/src/plugins/qed/bvars.ml index a79a96e7a219b7ae9d68a07fe1f13401d57424ca..3256d571e749ef642f16466932a35e476695e753 100644 --- a/src/plugins/qed/bvars.ml +++ b/src/plugins/qed/bvars.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/qed/bvars.mli b/src/plugins/qed/bvars.mli index 803c8e427137d12ef6e7d807a8cc2ae0d2183e91..a6d3147db9c71c4cdf0317386a603969d10e5c6a 100644 --- a/src/plugins/qed/bvars.mli +++ b/src/plugins/qed/bvars.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/qed/cache.ml b/src/plugins/qed/cache.ml index 15e6f32f708762b220e3692cb8bb2d02a6fd3e66..25cb8661e672c7185ce84a2d5c5d6929c07291ed 100644 --- a/src/plugins/qed/cache.ml +++ b/src/plugins/qed/cache.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/qed/cache.mli b/src/plugins/qed/cache.mli index ef13fadc520849be59ce04582627598b4d2fbbf6..838d4e51cb90833fb6f0e1fb7a1cdacc90e93a5d 100644 --- a/src/plugins/qed/cache.mli +++ b/src/plugins/qed/cache.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/qed/collection.ml b/src/plugins/qed/collection.ml index 52f90ae9f24fb16ed67aa0edbca14df52d242738..b2f95fce33ed008f1ac6cc36a9c010a64cfc93fe 100644 --- a/src/plugins/qed/collection.ml +++ b/src/plugins/qed/collection.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/qed/collection.mli b/src/plugins/qed/collection.mli index e3645f1f9a7fd34030256055eb4c1e64a65ae1ae..2b87079b64796dacb13ba2d6e77287728c925ad2 100644 --- a/src/plugins/qed/collection.mli +++ b/src/plugins/qed/collection.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/qed/engine.ml b/src/plugins/qed/engine.ml index 7cd4d3ba03d82b833a410ae707ba36a951066df2..99de3004ab94a7afdc6edc13b6d4343451504ad1 100644 --- a/src/plugins/qed/engine.ml +++ b/src/plugins/qed/engine.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/qed/export.ml b/src/plugins/qed/export.ml index c44a99dea37d60de6a3450e03893182eb465acf3..b36fca33b8152f2f7dcba4a777d08de35fdf37f7 100644 --- a/src/plugins/qed/export.ml +++ b/src/plugins/qed/export.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/qed/export.mli b/src/plugins/qed/export.mli index beea594e3bb71124b3dc8979a1e260e473560bbf..aa15d1f6f46c6bb61742c4e58a29410c77a522fd 100644 --- a/src/plugins/qed/export.mli +++ b/src/plugins/qed/export.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/qed/export_altergo.ml b/src/plugins/qed/export_altergo.ml index e0ad7d149ebb12a348189e4600040111cab1d4c0..52864b8b16668ab498ef8c25f9eeebb6ff98629a 100644 --- a/src/plugins/qed/export_altergo.ml +++ b/src/plugins/qed/export_altergo.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/qed/export_altergo.mli b/src/plugins/qed/export_altergo.mli index aca09cb46685e227b4db8004a29b00cd49a8136f..55ba547b3586527e3afc8938ec68360daba1e316 100644 --- a/src/plugins/qed/export_altergo.mli +++ b/src/plugins/qed/export_altergo.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/qed/export_coq.ml b/src/plugins/qed/export_coq.ml index f486bf44644b33c26d007d428152eede078d7817..0c4862c0175ea3f4310a2472b40fe20b9b1d35c8 100644 --- a/src/plugins/qed/export_coq.ml +++ b/src/plugins/qed/export_coq.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/qed/export_coq.mli b/src/plugins/qed/export_coq.mli index c7ab31365464be9f7ca07ee21fe11fa886b5943c..7b9f366badfab043020ead1bd915b811048010e6 100644 --- a/src/plugins/qed/export_coq.mli +++ b/src/plugins/qed/export_coq.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/qed/export_why3.ml b/src/plugins/qed/export_why3.ml index f635a9b96ccdd20fa67b9ffdd9e7d1c19c37b8a9..f940aa001d959d5df4e7367751dd1fa65bbde490 100644 --- a/src/plugins/qed/export_why3.ml +++ b/src/plugins/qed/export_why3.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/qed/export_why3.mli b/src/plugins/qed/export_why3.mli index 2dec2c29a5928cf26f758b05a04a4e2b5720c09d..61028ef4915f25b41916475ecf69faf492991629 100644 --- a/src/plugins/qed/export_why3.mli +++ b/src/plugins/qed/export_why3.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/qed/export_whycore.ml b/src/plugins/qed/export_whycore.ml index 9ca5c20bcd585478e0dae383328d41387d3f320b..42f239cecf27106b6406455c49877982fdecf546 100644 --- a/src/plugins/qed/export_whycore.ml +++ b/src/plugins/qed/export_whycore.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/qed/export_whycore.mli b/src/plugins/qed/export_whycore.mli index 14c4acdc15b935a03dec33968afb7e973c765d7a..47151160a610231e3ce4f63466c39eecb1b28059 100644 --- a/src/plugins/qed/export_whycore.mli +++ b/src/plugins/qed/export_whycore.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/qed/hcons.ml b/src/plugins/qed/hcons.ml index d32de87bcefc8a34d11107f0bd4d4ccb3b781d95..b0f2f3f137ce7cf3362a7f6d726737c0f0476eca 100644 --- a/src/plugins/qed/hcons.ml +++ b/src/plugins/qed/hcons.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/qed/hcons.mli b/src/plugins/qed/hcons.mli index bb291b6718f5c3c8bc00483de208bd9e4d71920f..c930717f982736826f5ffdbf12e8ff001be68a5e 100644 --- a/src/plugins/qed/hcons.mli +++ b/src/plugins/qed/hcons.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/qed/idxmap.ml b/src/plugins/qed/idxmap.ml index 5e2ff3248e30f6247cc1468b711e25a8cc0195e5..5191cc5a62032c9c0e179f2f71e885d5e9649b33 100644 --- a/src/plugins/qed/idxmap.ml +++ b/src/plugins/qed/idxmap.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/qed/idxmap.mli b/src/plugins/qed/idxmap.mli index bee26749571290db85f0661f7c9a14919472a070..4a9f0fc8960a814b260a29c6aedbb3f8b5357ebe 100644 --- a/src/plugins/qed/idxmap.mli +++ b/src/plugins/qed/idxmap.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/qed/idxset.ml b/src/plugins/qed/idxset.ml index a72a859d1b454d5f0037fe5b09266afd118382d3..1f8b790394f25e86b71ebf7803e7eb62c4d2dfab 100644 --- a/src/plugins/qed/idxset.ml +++ b/src/plugins/qed/idxset.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/qed/idxset.mli b/src/plugins/qed/idxset.mli index 917eb06fabad3348249998f46f3d3bdb83509c89..f0fe4c700e57fbc469053bafa477d97d9ab49368 100644 --- a/src/plugins/qed/idxset.mli +++ b/src/plugins/qed/idxset.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/qed/intmap.ml b/src/plugins/qed/intmap.ml index a1254aa4dccca30ad93b1249089c0a1703057b49..70ded406022bd1b52ee7eedd9236f579e9f76dd3 100644 --- a/src/plugins/qed/intmap.ml +++ b/src/plugins/qed/intmap.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/qed/intmap.mli b/src/plugins/qed/intmap.mli index 71429cb4a84759589d8ef917ffc1f9972f422b1d..851009ede74488f66f5afa0d3480ff055c61900b 100644 --- a/src/plugins/qed/intmap.mli +++ b/src/plugins/qed/intmap.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/qed/intset.ml b/src/plugins/qed/intset.ml index 350cadbd84a0af520dfb5ec4b5c9abc2d5df05af..92c19c13c4613e27723dc94e42c1e79b21428fe7 100644 --- a/src/plugins/qed/intset.ml +++ b/src/plugins/qed/intset.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/qed/intset.mli b/src/plugins/qed/intset.mli index 36ee6b56140186d4ee985b3e5c24adc7eae0307c..9dcb84a2282c487538cda84f6a053193897fc8c9 100644 --- a/src/plugins/qed/intset.mli +++ b/src/plugins/qed/intset.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/qed/kind.ml b/src/plugins/qed/kind.ml index df1cb665479a43ae1840bf4dbee3714bded491c4..93d8d7fae87f4b8c513545a64548ea6273696858 100644 --- a/src/plugins/qed/kind.ml +++ b/src/plugins/qed/kind.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/qed/kind.mli b/src/plugins/qed/kind.mli index ef0426be02c5e38fe9ad89158432a6ddedfc3457..66dda5dab744ee43591ec87cb6a1af37c6e09bcc 100644 --- a/src/plugins/qed/kind.mli +++ b/src/plugins/qed/kind.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/qed/listmap.ml b/src/plugins/qed/listmap.ml index 76ec6a744acd88a757553ad4f7ab10e612eb95f9..d83fbecf9bc96f487b8932022a807d2bdd756a1b 100644 --- a/src/plugins/qed/listmap.ml +++ b/src/plugins/qed/listmap.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/qed/listmap.mli b/src/plugins/qed/listmap.mli index ea5ee970c51784dd82ff41508075ea139132530a..5819c1b62ae7b9918baf261a6939ec1c76c3a004 100644 --- a/src/plugins/qed/listmap.mli +++ b/src/plugins/qed/listmap.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/qed/listset.ml b/src/plugins/qed/listset.ml index d6b60b8f5f294fac748942e8b38c0cd1437fbcba..228dfd3439e239797292da925ac9ac6f07e73920 100644 --- a/src/plugins/qed/listset.ml +++ b/src/plugins/qed/listset.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/qed/listset.mli b/src/plugins/qed/listset.mli index 384079f7e4020ebda62746c99c28502ff62477a8..e37b3a70c4cfcc71b479a66a7cb74560bc9be49d 100644 --- a/src/plugins/qed/listset.mli +++ b/src/plugins/qed/listset.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/qed/logic.ml b/src/plugins/qed/logic.ml index d780bc42c4566df56a4e7e5d92ad4e91ca7e604c..a9079819ed7e584f342faa4a7aff9129d5ffda47 100644 --- a/src/plugins/qed/logic.ml +++ b/src/plugins/qed/logic.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/qed/mergemap.ml b/src/plugins/qed/mergemap.ml index fb52db99a528098e662b06cf08a05e9ffbd6b593..e33f068739c1ecf49720ee702748b84179403c18 100644 --- a/src/plugins/qed/mergemap.ml +++ b/src/plugins/qed/mergemap.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/qed/mergemap.mli b/src/plugins/qed/mergemap.mli index 4748684190b4f6ee72f2725aaf0f624a565b37e7..f5c9ae80412e6dbeaeb5a03d82a7b9f425c8437f 100644 --- a/src/plugins/qed/mergemap.mli +++ b/src/plugins/qed/mergemap.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/qed/mergeset.ml b/src/plugins/qed/mergeset.ml index 6dbe78f37692caa97d4a7a0962b7e6670abd64df..8bde72b1aae066597354ff9dd827bb7853a0023b 100644 --- a/src/plugins/qed/mergeset.ml +++ b/src/plugins/qed/mergeset.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/qed/mergeset.mli b/src/plugins/qed/mergeset.mli index a59c26f308307d93063e77bf8b658e7aff5b12a4..2309644e2178adf4d43b49c2623d39e81833f70e 100644 --- a/src/plugins/qed/mergeset.mli +++ b/src/plugins/qed/mergeset.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/qed/partition.ml b/src/plugins/qed/partition.ml index 16c6b4ddeb8858c45f3a77f31661742b73b13f36..f91a6739c9a15db8a6cf9ac13721e9242636dd2d 100644 --- a/src/plugins/qed/partition.ml +++ b/src/plugins/qed/partition.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/qed/partition.mli b/src/plugins/qed/partition.mli index 87313b74442659edf8c38f51471aea2b402ec422..3956ca12d034e0cfbf8658326811f51da5ea5490 100644 --- a/src/plugins/qed/partition.mli +++ b/src/plugins/qed/partition.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/qed/plib.ml b/src/plugins/qed/plib.ml index 7d2691d4435107381c3ca27053aa7492a94a0248..f6cea0df8fb1701f27383acdd2b4ee47f347a6eb 100644 --- a/src/plugins/qed/plib.ml +++ b/src/plugins/qed/plib.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/qed/plib.mli b/src/plugins/qed/plib.mli index 87eb363d58ae4562905d684e7e2ee7008fa460b7..a69bde53ce190b30c7c68b52067a23d98aaef5e9 100644 --- a/src/plugins/qed/plib.mli +++ b/src/plugins/qed/plib.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/qed/pool.ml b/src/plugins/qed/pool.ml index b8193ed8f1511f04dae49ea99207fc1d77ebc729..868e99b8a5791a5c5ac6e8a43aba25690daf7a51 100644 --- a/src/plugins/qed/pool.ml +++ b/src/plugins/qed/pool.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/qed/pool.mli b/src/plugins/qed/pool.mli index 7294a710ff8fb24c668dd1237d2f322561f5bea7..765ef3baecc390801f6558971f709ff3438ea68f 100644 --- a/src/plugins/qed/pool.mli +++ b/src/plugins/qed/pool.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/qed/pretty.ml b/src/plugins/qed/pretty.ml index 4d744d29f03ebbd1dc7c9f268827108efbe69718..a0e222ce890a6edbba5c3b95f085cdb9c0cfa306 100644 --- a/src/plugins/qed/pretty.ml +++ b/src/plugins/qed/pretty.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/qed/pretty.mli b/src/plugins/qed/pretty.mli index 87c92115b665bd8a7382a719ff340327dfa019d0..c7059cb415444ab33eca1ddc193cd73bc15062fd 100644 --- a/src/plugins/qed/pretty.mli +++ b/src/plugins/qed/pretty.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/qed/term.ml b/src/plugins/qed/term.ml index a52cef058545ab8dc3fc6a1b141c7aeb271af06f..0c05374f3a184680de0625a57c77d8cbced021aa 100644 --- a/src/plugins/qed/term.ml +++ b/src/plugins/qed/term.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -1950,10 +1950,11 @@ struct let rec lc_open m k v e = if not (Bvars.contains k e.bind) then e else match e.repr with - | Bvar _ -> v + | Bvar _ -> v (* e.bind is a singleton that can only contains k *) | _ -> - try cache_find m e - with Not_found -> cache_bind m e (rebuild (lc_open m k v) e) + if is_simple e then e else + try cache_find m e + with Not_found -> cache_bind m e (rebuild (lc_open m k v) e) let lc_open_term t e = let k = Bvars.order e.bind in diff --git a/src/plugins/qed/term.mli b/src/plugins/qed/term.mli index 54e3228f25a7308a0a4a197456f399e9d0817f4d..b8c79ff5c3bfe48f4546f1b8e8e5a33c873b07ee 100644 --- a/src/plugins/qed/term.mli +++ b/src/plugins/qed/term.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/report/Makefile.in b/src/plugins/report/Makefile.in index 6c6d41d7b0577e1a0fcbff0dea2f61e5745af3a7..7011cc664417688ec84af0e515664f7db4dd7504 100644 --- a/src/plugins/report/Makefile.in +++ b/src/plugins/report/Makefile.in @@ -2,7 +2,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # @@ -36,7 +36,7 @@ endif PLUGIN_DIR ?=. PLUGIN_ENABLE:=@ENABLE_REPORT@ PLUGIN_NAME:=Report -PLUGIN_CMO:= report_parameters scan dump csv property_names classify register +PLUGIN_CMO:= report_parameters scan dump csv classify register PLUGIN_DISTRIBUTED:=$(PLUGIN_ENABLE) PLUGIN_DISTRIB_EXTERNAL:= Makefile.in configure.ac configure #PLUGIN_NO_DEFAULT_TEST:=no diff --git a/src/plugins/report/Report.mli b/src/plugins/report/Report.mli index abcd40e9e0ec26b45e47c0bab96a3a4964ee251c..ff1fa82ea87e897f4c8d12f6f0b4e325a1b8b2e1 100644 --- a/src/plugins/report/Report.mli +++ b/src/plugins/report/Report.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/report/classify.ml b/src/plugins/report/classify.ml index d7844aa7a51d29087ca33fe2802617c21bf7de2e..f14ae80130e34ff8adf403f3605582636f5ad075 100644 --- a/src/plugins/report/classify.ml +++ b/src/plugins/report/classify.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -74,7 +74,7 @@ let errors = { type props = { ps_name : string ; ps_rules : rule Queue.t ; - ps_action : (unit -> string) ; + ps_action : (unit -> string) ; (* plugin option getter *) } let props ps_name ps_action = @@ -150,7 +150,7 @@ let get_queue env plugin = let add_rule jvalue = try match jvalue with - | Json.Assoc fields -> + | `Assoc fields -> let tgt , rule = List.fold_left rule_of_fields default fields in let properties p = if rule.r_plugin <> (snd default).r_plugin then @@ -177,7 +177,7 @@ let configure file = R.feedback "Loading '%a'" Datatype.Filepath.pretty path; try match Json.load_file file with - | Json.Array values -> List.iter add_rule values + | `List values -> List.iter add_rule values | _ -> failwith "Array expected" with | Json.Error(file,line,msg) -> @@ -230,7 +230,7 @@ let json_of_source = function ] let json_of_event e = - Json.Assoc + `Assoc begin [ "classid" , Json.of_string e.e_id ; "action" , Json.of_string @@ string_of_action e.e_action ; @@ -408,19 +408,50 @@ let pending f pending = (fun _ ips -> Property.Set.iter f ips) m) pending +let rec monitored_property ip = + let open Cil_types in + let open Property in + match ip with + | IPBehavior _ -> false + | IPPredicate (PKAssumes _,_,_,_) -> false + | IPPredicate (PKRequires _,_,_,_) -> true + | IPPredicate (PKEnsures _,_,_,_) -> true + | IPPredicate (PKTerminates,_,_,_) -> true + | IPAllocation(_,_,_,_) -> true + | IPAssigns(_,_,_,_) -> true + | IPFrom(_,_,_,_) -> true + | IPDecrease (_,_,_,_) -> true + | IPCodeAnnot (_,_, { annot_content = AStmtSpec _ } ) -> false + | IPCodeAnnot (_,_, { annot_content = APragma _ } ) -> false + | IPCodeAnnot (_,_, { annot_content = AExtended _ } ) -> true + | IPCodeAnnot (_,_, { annot_content = AAssert _ } ) -> true + | IPCodeAnnot (_,_, { annot_content = AInvariant _ } ) -> true + | IPCodeAnnot (_,_, { annot_content = AVariant _ } ) -> true + | IPCodeAnnot (_,_, { annot_content = AAssigns _ } ) -> true + | IPCodeAnnot (_,_, { annot_content = AAllocation _ } ) -> true + | IPComplete (_,_,_,_) -> true + | IPDisjoint(_,_,_,_) -> true + | IPReachable (None,_,_) -> false + | IPReachable (Some _,_,_) -> true + | IPAxiomatic _ | IPAxiom _ -> false + | IPLemma(_,_,_,_,_) -> true + | IPTypeInvariant(_,_,_,_) | IPGlobalInvariant(_,_,_) -> true + | IPOther(_,_) -> true + | IPExtended _ -> true + | IPPropertyInstance (_, _, _, ip) -> monitored_property ip + let monitor_status properties ip = - let ps = Property_names.parts_of_property ip in - if ps = [] then () else - let msg = Property_names.string_of_parts ps in + if monitored_property ip then + let name = Property.Names.get_prop_name_id ip in let lookup = find properties.ps_rules in let source = Property.source ip in let unclassified () = let e_id = "unclassified." ^ properties.ps_name in - let e_title = msg in + let e_title = name in let e_action = properties.ps_action () |> action in let e_descr = T.String.capitalize_ascii properties.ps_name ^ " status" in { unclassified with e_id ; e_action ; e_title ; e_descr } - in monitor ~lookup ~category:[] ~msg ~source unclassified + in monitor ~lookup ~category:[] ~msg:name ~source unclassified let monitor_property pool push ip = begin diff --git a/src/plugins/report/classify.mli b/src/plugins/report/classify.mli index a3a448dd758cc2fe4ca231b5d4b38917804871b2..c403765cb3d230915ab1139db3aef1f34efec03b 100644 --- a/src/plugins/report/classify.mli +++ b/src/plugins/report/classify.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/report/configure.ac b/src/plugins/report/configure.ac index 7a1ebd578478845656eccb6ebb881751e82224bf..e8ba69ec2a36616aa0ef82a145c4925795ee1f59 100644 --- a/src/plugins/report/configure.ac +++ b/src/plugins/report/configure.ac @@ -2,7 +2,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/src/plugins/report/csv.ml b/src/plugins/report/csv.ml index 646966112ef751e58e5e4ea46018a74c456bc30e..643168a388f3184f1ae4eea2a25a6995aa887656 100644 --- a/src/plugins/report/csv.ml +++ b/src/plugins/report/csv.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/report/csv.mli b/src/plugins/report/csv.mli index ce7a42b00627eefcc76a75a6f9e90daf8a01614f..3426449cefa0c916735da3acb7e7c1591161ebe9 100644 --- a/src/plugins/report/csv.mli +++ b/src/plugins/report/csv.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/report/dump.ml b/src/plugins/report/dump.ml index 87fa117fc9c473399ecf8b0e8ebbf7af76b9258d..a41dfb25e6e3410fe8218dc5bbd10f52d6d6cbe5 100644 --- a/src/plugins/report/dump.ml +++ b/src/plugins/report/dump.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/report/dump.mli b/src/plugins/report/dump.mli index ebb00e3481e8da401ce3d508d19776719ba66a07..0b412443d18e001b889511899518f00ec90c2902 100644 --- a/src/plugins/report/dump.mli +++ b/src/plugins/report/dump.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/report/property_names.ml b/src/plugins/report/property_names.ml deleted file mode 100644 index dd0ffca34ea836e827e830b5a6c98ebe9277e260..0000000000000000000000000000000000000000 --- a/src/plugins/report/property_names.ml +++ /dev/null @@ -1,131 +0,0 @@ -(**************************************************************************) -(* *) -(* This file is part of Frama-C. *) -(* *) -(* Copyright (C) 2007-2018 *) -(* CEA (Commissariat à l'énergie atomique et aux énergies *) -(* alternatives) *) -(* *) -(* you can redistribute it and/or modify it under the terms of the GNU *) -(* Lesser General Public License as published by the Free Software *) -(* Foundation, version 2.1. *) -(* *) -(* It is distributed in the hope that it will be useful, *) -(* but WITHOUT ANY WARRANTY; without even the implied warranty of *) -(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *) -(* GNU Lesser General Public License for more details. *) -(* *) -(* See the GNU Lesser General Public License version 2.1 *) -(* for more details (enclosed in the file licenses/LGPLv2.1). *) -(* *) -(**************************************************************************) - -open Cil_types - -type part = - | B of behavior - | K of kernel_function - | A of string - | I of identified_predicate - | P of predicate - | T of term - | S of stmt - -let is_name s = s <> "" && s <> "_" -let join ps = String.concat "_" (List.filter is_name ps) - -let string_of_part = function - | B bhv -> if Cil.is_default_behavior bhv then "" else bhv.b_name - | K kf -> Kernel_function.get_name kf - | A msg -> msg - | S stmt -> Printf.sprintf "s%d" stmt.sid - | I { ip_content = { pred_name = a } } - | P { pred_name = a } | T { term_name = a } -> join a - -let string_of_parts ps = join (List.map string_of_part ps) - -let rec parts_of_property ip : part list = - let open Property in - match ip with - | IPBehavior _ -> [] - | IPPredicate (PKAssumes _,_,_,_) -> [] - | IPPredicate (PKRequires bhv,kf,_,ip) -> - [ K kf ; B bhv ; A "requires" ; I ip ] - | IPPredicate (PKEnsures(bhv,Normal),kf,_,ip) -> - [ K kf ; B bhv ; A "ensures" ; I ip ] - | IPPredicate (PKEnsures(bhv,Exits),kf,_,ip) -> - [ K kf ; B bhv ; A "exits" ; I ip ] - | IPPredicate (PKEnsures(bhv,Breaks),kf,_,ip) -> - [ K kf ; B bhv ; A "breaks" ; I ip ] - | IPPredicate (PKEnsures(bhv,Continues),kf,_,ip) -> - [ K kf ; B bhv ; A "continues" ; I ip ] - | IPPredicate (PKEnsures(bhv,Returns),kf,_,ip) -> - [ K kf ; B bhv ; A "returns" ; I ip ] - | IPPredicate (PKTerminates,kf,_,ip) -> - [ K kf ; A "terminates" ; I ip ] - - | IPAllocation(kf,_,Id_contract(_,bhv),_) -> - [ K kf ; B bhv ; A "allocates" ] - | IPAllocation(kf,_,Id_loop _,_) -> - [ K kf ; A "loop_allocates" ] - - | IPAssigns(kf,_,Id_contract(_,bhv),_) -> - [ K kf ; B bhv ; A "assigns" ] - - | IPAssigns(kf,_,Id_loop _,_) -> - [ K kf ; A "loop_assigns" ] - - | IPFrom(kf,_,Id_contract(_,bhv),_) -> - [ K kf ; B bhv ; A "assigns_from" ] - - | IPFrom(kf,_,Id_loop _,_) -> - [ K kf ; A "loop_assigns_from" ] - - | IPDecrease (kf,_,None,_) -> - [ K kf ; A "variant" ] - - | IPDecrease (kf,_,Some _,_) -> - [ K kf ; A "loop_variant" ] - - | IPCodeAnnot (_,_, { annot_content = AStmtSpec _ } ) -> [] - | IPCodeAnnot (_,_, { annot_content = APragma _ | AExtended _ } ) -> [] - | IPCodeAnnot (kf,_, { annot_content = AAssert(_,p) } ) -> - [K kf ; A "assert" ; P p ] - | IPCodeAnnot (kf,_, { annot_content = AInvariant(_,true,p) } ) -> - [K kf ; A "loop_invariant" ; P p ] - | IPCodeAnnot (kf,_, { annot_content = AInvariant(_,false,p) } ) -> - [K kf ; A "invariant" ; P p ] - | IPCodeAnnot (kf,_, { annot_content = AVariant(e,_) } ) -> - [K kf ; A "loop_variant" ; T e ] - | IPCodeAnnot (kf,_, { annot_content = AAssigns _ } ) -> - [K kf ; A "loop_assigns" ] - | IPCodeAnnot (kf,_, { annot_content = AAllocation _ } ) -> - [K kf ; A "loop_allocates" ] - - | IPComplete (kf,_,_,cs) -> - (K kf :: A "complete" :: List.map (fun a -> A a) cs) - | IPDisjoint(kf,_,_,cs) -> - (K kf :: A "disjoint" :: List.map (fun a -> A a) cs) - - | IPReachable (None, _, _) -> [] - | IPReachable (Some kf,Kglobal,Before) -> - [ K kf ; A "reachable" ] - | IPReachable (Some kf,Kglobal,After) -> - [ K kf ; A "reachable_post" ] - | IPReachable (Some kf,Kstmt s,Before) -> - [ K kf ; S s ; A "reachable" ] - | IPReachable (Some kf,Kstmt s,After) -> - [ K kf ; S s ; A "reachable_after" ] - | IPAxiomatic _ | IPAxiom _ -> [] - | IPLemma(name,_,_,_,_) -> [ A "lemma" ; A name ] - | IPTypeInvariant(name,_,_,_) - | IPGlobalInvariant(name,_,_) -> [ A "invariant" ; A name] - | IPOther(name, OLContract kf) -> [ K kf ; A name ] - | IPOther(name, OLStmt (kf, s)) -> [K kf; S s; A name] - | IPOther(name,OLGlob _) -> [ A name ] - | IPPropertyInstance (_, _, _, ip) -> parts_of_property ip - | IPExtended(ELContract kf,(_,name,_,_)) -> [ K kf ; A name ] - | IPExtended(ELStmt (kf, s),(_,name,_,_)) -> [ K kf ; S s ; A name ] - | IPExtended(ELGlob, (_,name,_,_)) -> [ A name ] - -(**************************************************************************) diff --git a/src/plugins/report/register.ml b/src/plugins/report/register.ml index 1bb13f3ea9b516d512e17b6bddff7c35e020776c..973c77728b4e202f183acea9e3649642052c3bfd 100644 --- a/src/plugins/report/register.ml +++ b/src/plugins/report/register.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/report/register.mli b/src/plugins/report/register.mli index 4d5a7d21592bc5f1825631eeeb9e83eaa9bfbf24..349e981744e406fa9853fae543542b39b69e35f8 100644 --- a/src/plugins/report/register.mli +++ b/src/plugins/report/register.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/report/report_parameters.ml b/src/plugins/report/report_parameters.ml index 0741efc5214520e0ef5cc85c15769d18a12b9295..0c92d67b4b0c8c616b9ee021c96ace986fd23c8e 100644 --- a/src/plugins/report/report_parameters.ml +++ b/src/plugins/report/report_parameters.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/report/report_parameters.mli b/src/plugins/report/report_parameters.mli index b1dd169b3330a1f37a97a3872e6588116ad739fa..49b7c8db13fb8a70fd961cab4c73c720590855ac 100644 --- a/src/plugins/report/report_parameters.mli +++ b/src/plugins/report/report_parameters.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/report/scan.ml b/src/plugins/report/scan.ml index f830c660887f75a08606e832da68cb1514ba91c4..72128bedbef5b67eba275b97ea68231e7e09bc6a 100644 --- a/src/plugins/report/scan.ml +++ b/src/plugins/report/scan.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/report/scan.mli b/src/plugins/report/scan.mli index cccce842b570b2e9cb02a8d3412c5695d06abeca..6d34d6094322f62ccefcaea68d780e143d0e890a 100644 --- a/src/plugins/report/scan.mli +++ b/src/plugins/report/scan.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/report/tests/report/oracle/classify.0.res.oracle b/src/plugins/report/tests/report/oracle/classify.0.res.oracle index 08e3a2f22246d9b0ce10e23016c15f9413fe8218..2d9f271aea5752a9bbc3037c9c42b90aac05b38e 100644 --- a/src/plugins/report/tests/report/oracle/classify.0.res.oracle +++ b/src/plugins/report/tests/report/oracle/classify.0.res.oracle @@ -4,8 +4,8 @@ [wp] Running WP plugin... [wp] Warning: Missing RTE guards [wp] 2 goals scheduled -[wp] [Qed] Goal typed_f_assign : Valid -[wp] [Qed] Goal typed_f_post : Valid +[wp] [Qed] Goal typed_f_assigns : Valid +[wp] [Qed] Goal typed_f_ensures : Valid [wp] Proved goals: 2 / 2 Qed: 2 [report] Classification diff --git a/src/plugins/report/tests/report/oracle/classify.1.res.oracle b/src/plugins/report/tests/report/oracle/classify.1.res.oracle index 5dc01f6e288d62097d7aeb8bcff5de4b9a758aeb..9266851bb999c61aaf138053b920459d475fb73d 100644 --- a/src/plugins/report/tests/report/oracle/classify.1.res.oracle +++ b/src/plugins/report/tests/report/oracle/classify.1.res.oracle @@ -5,8 +5,8 @@ [wp] Running WP plugin... [wp] Warning: Missing RTE guards [wp] 2 goals scheduled -[wp] [Qed] Goal typed_f_assign : Valid -[wp] [Qed] Goal typed_f_post : Valid +[wp] [Qed] Goal typed_f_assigns : Valid +[wp] [Qed] Goal typed_f_ensures : Valid [wp] Proved goals: 2 / 2 Qed: 2 [report] Classification diff --git a/src/plugins/report/tests/report/oracle/classify.2.res.oracle b/src/plugins/report/tests/report/oracle/classify.2.res.oracle index 0d4bf582b12dcdfdfcd194cce2b00f461d03f48b..8e0f90163361e74984979077ddaa1a85702be12e 100644 --- a/src/plugins/report/tests/report/oracle/classify.2.res.oracle +++ b/src/plugins/report/tests/report/oracle/classify.2.res.oracle @@ -5,8 +5,8 @@ [wp] Running WP plugin... [wp] Warning: Missing RTE guards [wp] 2 goals scheduled -[wp] [Qed] Goal typed_f_assign : Valid -[wp] [Qed] Goal typed_f_post : Valid +[wp] [Qed] Goal typed_f_assigns : Valid +[wp] [Qed] Goal typed_f_ensures : Valid [wp] Proved goals: 2 / 2 Qed: 2 [report] Classification diff --git a/src/plugins/report/tests/report/oracle/classify.3.res.oracle b/src/plugins/report/tests/report/oracle/classify.3.res.oracle index e41bd323df63f3913f41fe42d9e7ac2fdf50227b..5fab349a04e38664af8b21b15febbb573588c6c7 100644 --- a/src/plugins/report/tests/report/oracle/classify.3.res.oracle +++ b/src/plugins/report/tests/report/oracle/classify.3.res.oracle @@ -6,8 +6,8 @@ [wp] Running WP plugin... [wp] Warning: Missing RTE guards [wp] 2 goals scheduled -[wp] [Qed] Goal typed_f_assign : Valid -[wp] [Qed] Goal typed_f_post : Valid +[wp] [Qed] Goal typed_f_assigns : Valid +[wp] [Qed] Goal typed_f_ensures : Valid [wp] Proved goals: 2 / 2 Qed: 2 [report] Classification diff --git a/src/plugins/report/tests/report/oracle/classify.4.res.oracle b/src/plugins/report/tests/report/oracle/classify.4.res.oracle index 70e846d1bf34b306e607d9579046c28735bb18d0..4fe970e76ac2d9a5d2c965d22a6f185ebaeb2f95 100644 --- a/src/plugins/report/tests/report/oracle/classify.4.res.oracle +++ b/src/plugins/report/tests/report/oracle/classify.4.res.oracle @@ -6,8 +6,8 @@ [wp] Running WP plugin... [wp] Warning: Missing RTE guards [wp] 2 goals scheduled -[wp] [Qed] Goal typed_f_assign : Valid -[wp] [Qed] Goal typed_f_post : Valid +[wp] [Qed] Goal typed_f_assigns : Valid +[wp] [Qed] Goal typed_f_ensures : Valid [wp] Proved goals: 2 / 2 Qed: 2 [report] Classification diff --git a/src/plugins/report/tests/report/oracle/classify.5.res.oracle b/src/plugins/report/tests/report/oracle/classify.5.res.oracle index da6f9a37f4f68fd31782b82428ff795cf9ea9ebc..fe7d84466c0e64effca171af82723994cecf7759 100644 --- a/src/plugins/report/tests/report/oracle/classify.5.res.oracle +++ b/src/plugins/report/tests/report/oracle/classify.5.res.oracle @@ -5,8 +5,8 @@ unbound logic variable ignored. Ignoring code annotation [wp] Running WP plugin... [wp] Warning: Missing RTE guards -[wp] Goal typed_f_post : not tried -[wp] Goal typed_f_assign : trivial +[wp] Goal typed_f_ensures : not tried +[wp] Goal typed_f_assigns : trivial [report] Classification [report] Output tests/report/result/classified.5.json [report] Reviews : 2 diff --git a/src/plugins/rte/RteGen.mli b/src/plugins/rte/RteGen.mli index 19ed668df98207f3ab59ecb13d4db7adf9644fd3..9926f78e4a0920cb8cc90aa4c4082d8b86e8dad7 100644 --- a/src/plugins/rte/RteGen.mli +++ b/src/plugins/rte/RteGen.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/rte/generator.ml b/src/plugins/rte/generator.ml index eb028233479bd084ad50817c16c3f27990c56315..b6c626b68c4f91251fcdb19397896dc6fec6c40d 100644 --- a/src/plugins/rte/generator.ml +++ b/src/plugins/rte/generator.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/rte/generator.mli b/src/plugins/rte/generator.mli index fe1bc704b6e5a40b5e5b6a2b97d59e954c12cbc9..2ed6fe38a32711de556d8e0466b224b5050a7655 100644 --- a/src/plugins/rte/generator.mli +++ b/src/plugins/rte/generator.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/rte/options.ml b/src/plugins/rte/options.ml index 5e524548226b08f91ada9eb23928266eb3955cb2..7c646c80c6e977aaf0ae01337b4425641a45e1c1 100644 --- a/src/plugins/rte/options.ml +++ b/src/plugins/rte/options.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/rte/options.mli b/src/plugins/rte/options.mli index dc9ba70440b639b8ce38747718a94e3e3445f2ac..b589769be9d80587d572b2f245fb1d02072de4c3 100644 --- a/src/plugins/rte/options.mli +++ b/src/plugins/rte/options.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/rte/register.ml b/src/plugins/rte/register.ml index d5d298f765af140292c97886bfc5bd915e3b8894..5a7a9ba4af947ea862faa59e349c55e4b3cb1805 100644 --- a/src/plugins/rte/register.ml +++ b/src/plugins/rte/register.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/rte/rte.ml b/src/plugins/rte/rte.ml index 677399a2325b5e810d3ee84033f17566aab8a61e..855e2b4e729349a97a695626041ebe7d19df816c 100644 --- a/src/plugins/rte/rte.ml +++ b/src/plugins/rte/rte.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/rte/rte.mli b/src/plugins/rte/rte.mli index f71f39eaae91a32f04b349180ad8a5af0f423fe0..0b1d55a21e304b9ccec0cb61b1c270fe232f69a9 100644 --- a/src/plugins/rte/rte.mli +++ b/src/plugins/rte/rte.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/rte/visit.ml b/src/plugins/rte/visit.ml index 506d5a0c6ca1fba2cffd49280d327c887f215261..c8091e90c750efa7277e1caec1f71c0451f8906e 100644 --- a/src/plugins/rte/visit.ml +++ b/src/plugins/rte/visit.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/rte/visit.mli b/src/plugins/rte/visit.mli index 053f8d8e13b27781b1856db222a537f2ee043474..1413e3b8f7bf3411f312dd1401f8664fa1c4d521 100644 --- a/src/plugins/rte/visit.mli +++ b/src/plugins/rte/visit.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/scope/Scope.mli b/src/plugins/scope/Scope.mli index e9ccc605c8ffe94b5236ef65f5e9143d836a8acb..ef9bd97b7afe2853f67f00c5d9fd87a2d36c53bf 100644 --- a/src/plugins/scope/Scope.mli +++ b/src/plugins/scope/Scope.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/scope/datascope.ml b/src/plugins/scope/datascope.ml index 9230b2cc714db7943a140b0f80d920c26820cf62..b64f3530965336676e0abe2f7855017ae6475bb3 100644 --- a/src/plugins/scope/datascope.ml +++ b/src/plugins/scope/datascope.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/scope/datascope.mli b/src/plugins/scope/datascope.mli index 389abf383186d16b80e704af403b1deed5dd45ce..fec9e9beb33b119df4fa0e711f9b17d0fd7bc417 100644 --- a/src/plugins/scope/datascope.mli +++ b/src/plugins/scope/datascope.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/scope/defs.ml b/src/plugins/scope/defs.ml index 208eeefb9655dfd82f2c935a37abb90450650124..71a16a540e41288bca6c81ce5ec846e94303a9cf 100644 --- a/src/plugins/scope/defs.ml +++ b/src/plugins/scope/defs.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/scope/defs.mli b/src/plugins/scope/defs.mli index 35278fe4c69ee7d74ab951db1008101d72efcb18..98dc4ad615ddda145f0544a271b3dff865a7d128 100644 --- a/src/plugins/scope/defs.mli +++ b/src/plugins/scope/defs.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/scope/dpds_gui.ml b/src/plugins/scope/dpds_gui.ml index d4c99d3e2bc1bf63aa43ab2136acbc826e4c6245..6e0723bfc9586bd336a33869b6acb22487209646 100644 --- a/src/plugins/scope/dpds_gui.ml +++ b/src/plugins/scope/dpds_gui.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/scope/zones.ml b/src/plugins/scope/zones.ml index a9b23f3233bf7d7712bc2e83b1a671d06657a425..2a31ef57059930ac2687e3b1e1031598f834940e 100644 --- a/src/plugins/scope/zones.ml +++ b/src/plugins/scope/zones.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/scope/zones.mli b/src/plugins/scope/zones.mli index 23252d450dfcd3c8eb60a9ef6da6520d144d089b..7f4aebfb3c75b09b5a701c265aefd22016bb1212 100644 --- a/src/plugins/scope/zones.mli +++ b/src/plugins/scope/zones.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/security_slicing/Makefile.in b/src/plugins/security_slicing/Makefile.in index 0a934acbdc7cea14d5773eaec7a8aa5ee8aa74da..cdb19ff6ef7a431d6ea0e1ef2e21990c6f58ff47 100644 --- a/src/plugins/security_slicing/Makefile.in +++ b/src/plugins/security_slicing/Makefile.in @@ -2,7 +2,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/src/plugins/security_slicing/Security_slicing.mli b/src/plugins/security_slicing/Security_slicing.mli index e3d48c472069ae34644336209b58c872dd1fa784..33e47692473b7d355666ea1a781bcaa388acab54 100644 --- a/src/plugins/security_slicing/Security_slicing.mli +++ b/src/plugins/security_slicing/Security_slicing.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/security_slicing/components.ml b/src/plugins/security_slicing/components.ml index d66e418e75abee0e1903162b352d59774b8a5d04..d126b3dfeb4f6495088c1b50f39bc3d01aee34ad 100644 --- a/src/plugins/security_slicing/components.ml +++ b/src/plugins/security_slicing/components.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/security_slicing/components.mli b/src/plugins/security_slicing/components.mli index 6a6e4a6dc38e0613bb9dd8fcb24cc8e9d721ce88..b5141d0bb58ca8edbe5b2ab765a05be8a6a96689 100644 --- a/src/plugins/security_slicing/components.mli +++ b/src/plugins/security_slicing/components.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/security_slicing/configure.ac b/src/plugins/security_slicing/configure.ac index bd2896471aa66cff305a4ae2214a62e77c69cdc2..97058ce4811d40a6a345ab9dab6ddd6c8dfaf188 100644 --- a/src/plugins/security_slicing/configure.ac +++ b/src/plugins/security_slicing/configure.ac @@ -2,7 +2,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/src/plugins/security_slicing/register_gui.ml b/src/plugins/security_slicing/register_gui.ml index 94bdd16a4958793e69a2f2c62fd1b0d2112aa962..79dd59da0b4e99693eca31d702c307e252ae8a65 100644 --- a/src/plugins/security_slicing/register_gui.ml +++ b/src/plugins/security_slicing/register_gui.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/security_slicing/register_gui.mli b/src/plugins/security_slicing/register_gui.mli index b629e7abe107df74dc438fe37a64900e506bc80c..6b0e6a98505e2f63ea33f8c8cb1e91b7bebbd52a 100644 --- a/src/plugins/security_slicing/register_gui.mli +++ b/src/plugins/security_slicing/register_gui.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/security_slicing/security_slicing_parameters.ml b/src/plugins/security_slicing/security_slicing_parameters.ml index 047e4b6d07f44f14cb02e0e09a3b5844fc78c6d3..7ab89e0f0914bb580892017db993878de7c4489c 100644 --- a/src/plugins/security_slicing/security_slicing_parameters.ml +++ b/src/plugins/security_slicing/security_slicing_parameters.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/security_slicing/security_slicing_parameters.mli b/src/plugins/security_slicing/security_slicing_parameters.mli index b1ee7bf5431335d7598135aa56ba8febc04451b2..eb20275210da8366d5069a2e0309d0427c3a65b7 100644 --- a/src/plugins/security_slicing/security_slicing_parameters.mli +++ b/src/plugins/security_slicing/security_slicing_parameters.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/slicing/Slicing.mli b/src/plugins/slicing/Slicing.mli index f96cc3f347288a2787896161ac9637babd7b1161..422c2cabb567f591c3f99cf9393cf952e7458f18 100644 --- a/src/plugins/slicing/Slicing.mli +++ b/src/plugins/slicing/Slicing.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/slicing/api.ml b/src/plugins/slicing/api.ml index b65f92a8f9f6f1aa74086f93d735cc4ec3ba5ebc..2ada57e9d0e831ba21e5fd8f1b3bc3050ff96a81 100644 --- a/src/plugins/slicing/api.ml +++ b/src/plugins/slicing/api.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/slicing/fct_slice.ml b/src/plugins/slicing/fct_slice.ml index 9f84620fdca807e8e57e89b28ab56cb83a5db92e..ae957bc05f425bac74797f557e0a4f6bfff7112f 100644 --- a/src/plugins/slicing/fct_slice.ml +++ b/src/plugins/slicing/fct_slice.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/slicing/fct_slice.mli b/src/plugins/slicing/fct_slice.mli index cc5ac28ac433dfed3e0713a1a625ec99997ac4a9..989184c2cdba2fee99a8027ec3e1ae1dbb37abdb 100644 --- a/src/plugins/slicing/fct_slice.mli +++ b/src/plugins/slicing/fct_slice.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/slicing/printSlice.ml b/src/plugins/slicing/printSlice.ml index 1f0109af6dd177363c41988512b1aa0221f8e92a..ab5ff941236c1838428f38f7483f90a1229641d5 100644 --- a/src/plugins/slicing/printSlice.ml +++ b/src/plugins/slicing/printSlice.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -75,7 +75,7 @@ class printerClass optional_ff = object(self) str_m super#vdecl var - method! stmtkind next fmt kind = + method! stmtkind sattr next fmt kind = let stmt_info fmt stmt = match opt_ff with | None -> Format.fprintf fmt "@[/* %d */@]" stmt.Cil_types.sid | Some ff -> @@ -94,7 +94,7 @@ class printerClass optional_ff = object(self) try Format.fprintf fmt "@[<v>%a@ %a@]" stmt_info s - (fun fmt -> super#stmtkind next fmt) kind + (fun fmt -> super#stmtkind sattr next fmt) kind with Not_found -> (* some sub statements may be visible *) let sub_stmts = find_sub_stmts s in diff --git a/src/plugins/slicing/printSlice.mli b/src/plugins/slicing/printSlice.mli index 120a904f5e473c089b3cc8da67d1d4d9e680c989..5832e94bb25e33001a2b3a820594dacea140a2a6 100644 --- a/src/plugins/slicing/printSlice.mli +++ b/src/plugins/slicing/printSlice.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/slicing/register.ml b/src/plugins/slicing/register.ml index 5f5f376a784e03db921b99ae81143f3e052e6d6f..888b5b31500e719a48025aff744d22167c41b853 100644 --- a/src/plugins/slicing/register.ml +++ b/src/plugins/slicing/register.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/slicing/register_gui.ml b/src/plugins/slicing/register_gui.ml index aac60dd4ae409b2e7b9bfb02b0fd69ea76fbebf7..f5f6a7ddfce5901dff8e038ea823fe83d5a17fee 100644 --- a/src/plugins/slicing/register_gui.ml +++ b/src/plugins/slicing/register_gui.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/slicing/register_gui.mli b/src/plugins/slicing/register_gui.mli index c4385f438ab5808e16abca3fe60270ced837545f..3f278a7d75e4d5a0a4ca62f0c703be09d0781f92 100644 --- a/src/plugins/slicing/register_gui.mli +++ b/src/plugins/slicing/register_gui.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/slicing/slicingActions.ml b/src/plugins/slicing/slicingActions.ml index ff80ca3f9b93fa0e413baaebbb79498e938e74e7..e59c8e9c6a9399eea3c4f3edf01844074b2c275b 100644 --- a/src/plugins/slicing/slicingActions.ml +++ b/src/plugins/slicing/slicingActions.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/slicing/slicingActions.mli b/src/plugins/slicing/slicingActions.mli index 3fe904c8ce1f2320255ea5a63ea61a33110222d7..01896e758b6ab0fee699f7d5444b09666c36459a 100644 --- a/src/plugins/slicing/slicingActions.mli +++ b/src/plugins/slicing/slicingActions.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/slicing/slicingCmds.ml b/src/plugins/slicing/slicingCmds.ml index 59c1f30ae8ae4b9e570b6bfa9656e67f2043149a..7ab823c36cfaa2028c440af02fcbbc3b2277313e 100644 --- a/src/plugins/slicing/slicingCmds.ml +++ b/src/plugins/slicing/slicingCmds.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/slicing/slicingCmds.mli b/src/plugins/slicing/slicingCmds.mli index 7afdfe94c708dd1afbd250663e9b68ef08d88696..9c018a7e44cf41f2cf8299fab91f5b1e8c7251ad 100644 --- a/src/plugins/slicing/slicingCmds.mli +++ b/src/plugins/slicing/slicingCmds.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/slicing/slicingInternals.ml b/src/plugins/slicing/slicingInternals.ml index 7fea8d0516f87ec06d1a38fe187e761ff16d4603..6142277b74918cd255794e1405b88fb7b705318e 100644 --- a/src/plugins/slicing/slicingInternals.ml +++ b/src/plugins/slicing/slicingInternals.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/slicing/slicingMacros.ml b/src/plugins/slicing/slicingMacros.ml index f22b685dd6d9f18602b8924ee3d123ca3ec2bbd0..7031f9dd07bb37aea6a5b40358b859d03771e2dd 100644 --- a/src/plugins/slicing/slicingMacros.ml +++ b/src/plugins/slicing/slicingMacros.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/slicing/slicingMacros.mli b/src/plugins/slicing/slicingMacros.mli index bc1f6fd3ceee3d9244f2d22ea3f4bbbe805d4576..3c4ebe51fcd9ef19d6c74eb32ecd123116d5d859 100644 --- a/src/plugins/slicing/slicingMacros.mli +++ b/src/plugins/slicing/slicingMacros.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/slicing/slicingMarks.ml b/src/plugins/slicing/slicingMarks.ml index 6d7b888acb06c3fb3b5d1b7e6ebec2d5f2d842cd..db24b76b89468ea13f51767f32ba54227a2f0669 100644 --- a/src/plugins/slicing/slicingMarks.ml +++ b/src/plugins/slicing/slicingMarks.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/slicing/slicingMarks.mli b/src/plugins/slicing/slicingMarks.mli index 0945f18ed2a32ea21366bc8f04a2c8c2b88cb2e4..e9bacd135ff26119c87afcd7bf5fa0b619f6a9b5 100644 --- a/src/plugins/slicing/slicingMarks.mli +++ b/src/plugins/slicing/slicingMarks.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/slicing/slicingParameters.ml b/src/plugins/slicing/slicingParameters.ml index 431c0641c968781c1b327b473f969e1be4491986..a7cb63cfe760f95f3e4353d3cbb938109ed0f1a9 100644 --- a/src/plugins/slicing/slicingParameters.ml +++ b/src/plugins/slicing/slicingParameters.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/slicing/slicingParameters.mli b/src/plugins/slicing/slicingParameters.mli index e9960bafe954dd2c4fd5c94f407bdf3e6e9b1ca8..40f8eb2f1fe7dad9b2ef233042aaf321bbd992d8 100644 --- a/src/plugins/slicing/slicingParameters.mli +++ b/src/plugins/slicing/slicingParameters.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/slicing/slicingProject.ml b/src/plugins/slicing/slicingProject.ml index 5d6ab46ceb3f782f369968ac3cd585c5e8648646..a02fcaf8fd2339de2ff76b4a33ed3274632faef3 100644 --- a/src/plugins/slicing/slicingProject.ml +++ b/src/plugins/slicing/slicingProject.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/slicing/slicingProject.mli b/src/plugins/slicing/slicingProject.mli index 2be6bc082ba3ab21077c08adb2754e1a230e15e9..c09d98f5ff563b7c7a582311ca79cad31700eb40 100644 --- a/src/plugins/slicing/slicingProject.mli +++ b/src/plugins/slicing/slicingProject.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/slicing/slicingSelect.ml b/src/plugins/slicing/slicingSelect.ml index 43fb69b15721102d89d540f36fdf6495f1e9c18f..87c704d27573c40a14420bbfa5984185157742dd 100644 --- a/src/plugins/slicing/slicingSelect.ml +++ b/src/plugins/slicing/slicingSelect.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/slicing/slicingState.ml b/src/plugins/slicing/slicingState.ml index 2681d66cad177c0cad32fe2e28388bf84f6668c2..41ddc0ae1958a1e8c1f4a7c6705b16c32db2c1ce 100644 --- a/src/plugins/slicing/slicingState.ml +++ b/src/plugins/slicing/slicingState.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/slicing/slicingState.mli b/src/plugins/slicing/slicingState.mli index 581c23f618f35d1d4b92e27e354fd2b6c1fe4734..0254acc7435ca613f27ecbf98347ebe54b127032 100644 --- a/src/plugins/slicing/slicingState.mli +++ b/src/plugins/slicing/slicingState.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/slicing/slicingTransform.ml b/src/plugins/slicing/slicingTransform.ml index 399ff0b2d1f34fd1fb1383e3340163493460fb5b..35b30b376fe483d7977fe7a8790adfcafb84a1f6 100644 --- a/src/plugins/slicing/slicingTransform.ml +++ b/src/plugins/slicing/slicingTransform.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/slicing/slicingTransform.mli b/src/plugins/slicing/slicingTransform.mli index 0d4b56e4499b9a7585ded548ee650c58bd0a9327..36fdb2a39945bb4d988af7050189ebbc1df8f6d3 100644 --- a/src/plugins/slicing/slicingTransform.mli +++ b/src/plugins/slicing/slicingTransform.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/slicing/slicingTypes.ml b/src/plugins/slicing/slicingTypes.ml index e4e4703b699db017dddb8300b5a71179b41a82eb..2de02cd5faf3e2cb35e3cfb423e3c4c5a62c2f3e 100644 --- a/src/plugins/slicing/slicingTypes.ml +++ b/src/plugins/slicing/slicingTypes.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/sparecode/Sparecode.mli b/src/plugins/sparecode/Sparecode.mli index 215ceebc480a3ebc6367086812ec7e1b77d2cc97..e2a726634a19d35cb2e54f142c1b6413051aaa06 100644 --- a/src/plugins/sparecode/Sparecode.mli +++ b/src/plugins/sparecode/Sparecode.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/sparecode/globs.ml b/src/plugins/sparecode/globs.ml index ef643b0063b604806c8cacdd044df7686b7702c0..eb84a71c48abcc51a8426777bde0d3247c18dfec 100644 --- a/src/plugins/sparecode/globs.ml +++ b/src/plugins/sparecode/globs.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/sparecode/register.ml b/src/plugins/sparecode/register.ml index 175f8b328abfb88ad69882fa234faa6ac44ced8c..cb375e46dba0a36fbd09762813273405092901a3 100644 --- a/src/plugins/sparecode/register.ml +++ b/src/plugins/sparecode/register.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/sparecode/spare_marks.ml b/src/plugins/sparecode/spare_marks.ml index 7f87e25c71119697f95768a9f7ef0b5e513e99d7..5d9c7acde6a326f5811c508aa7acebbf33c25e97 100644 --- a/src/plugins/sparecode/spare_marks.ml +++ b/src/plugins/sparecode/spare_marks.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/sparecode/spare_marks.mli b/src/plugins/sparecode/spare_marks.mli index ac2a77a631e169468f2ecc11727caa7d2ca6f359..a054113cbebe508d15ba826b810a458ecffcca27 100644 --- a/src/plugins/sparecode/spare_marks.mli +++ b/src/plugins/sparecode/spare_marks.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/sparecode/sparecode_params.ml b/src/plugins/sparecode/sparecode_params.ml index a78279b94db9b5870c4bb4988c52bd4deb4569c4..fee87425697c25d573de6c90acb24097b77b1de9 100644 --- a/src/plugins/sparecode/sparecode_params.ml +++ b/src/plugins/sparecode/sparecode_params.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/sparecode/sparecode_params.mli b/src/plugins/sparecode/sparecode_params.mli index f9d91498312e7a9840b2270ca9ab788466bc4908..4db44d3e28a7277dabbd1978b4c45b30d379b511 100644 --- a/src/plugins/sparecode/sparecode_params.mli +++ b/src/plugins/sparecode/sparecode_params.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/sparecode/transform.ml b/src/plugins/sparecode/transform.ml index a59dd97535c7c268ad3ea6efe385f3f5ff71f833..7812565a7daadc4a2f226f626cc375bb37ae31bc 100644 --- a/src/plugins/sparecode/transform.ml +++ b/src/plugins/sparecode/transform.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/studia/Makefile b/src/plugins/studia/Makefile index 0f8b72e7d638df4a2a6d9c829b9406a86d24740e..b7665d764aa3b3bd662493144754cf2d67af457c 100644 --- a/src/plugins/studia/Makefile +++ b/src/plugins/studia/Makefile @@ -2,7 +2,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/src/plugins/studia/Studia.mli b/src/plugins/studia/Studia.mli index c10d7cb05c978340c8f3e5dfc7bd530ee607ad2c..52715cb61ccce3275ea10d616c62724ed5cb3178 100644 --- a/src/plugins/studia/Studia.mli +++ b/src/plugins/studia/Studia.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/studia/options.ml b/src/plugins/studia/options.ml index af6dccf4f8fbc71babc80c9fb08cdd1bfc7b0bfe..69fc4caf32fc5739c0c986208748f25f43b27886 100644 --- a/src/plugins/studia/options.ml +++ b/src/plugins/studia/options.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/studia/options.mli b/src/plugins/studia/options.mli index 7139184c3a8e2cc0ddd9ddaafc922d24955efc61..e5247f0055e95441826a5bc4b5214dbf3657e18f 100644 --- a/src/plugins/studia/options.mli +++ b/src/plugins/studia/options.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/studia/reads.ml b/src/plugins/studia/reads.ml index 5404eac5118aecfd73d9b725ca794addeccfb495..0fb3d4ac68954ff1786f0213fe6e35ea59597126 100644 --- a/src/plugins/studia/reads.ml +++ b/src/plugins/studia/reads.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/studia/reads.mli b/src/plugins/studia/reads.mli index 72df6b67cedd03f14ed36bd5feb5b4fa9db436ff..1207e9d1d35b0770db3dc3d45de1b338aba4a86f 100644 --- a/src/plugins/studia/reads.mli +++ b/src/plugins/studia/reads.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/studia/studia_gui.ml b/src/plugins/studia/studia_gui.ml index 552a1ee2e0c214b8217a9e6c635beaa4349574e6..230c8b7940580c619b214f1fbb1a6b139efcc97d 100644 --- a/src/plugins/studia/studia_gui.ml +++ b/src/plugins/studia/studia_gui.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/studia/studia_gui.mli b/src/plugins/studia/studia_gui.mli index 8248830969f5f25208000c856c64f412b78695ea..1ff3bd8f076fe0200d1c9b41fc599428aa4876b2 100644 --- a/src/plugins/studia/studia_gui.mli +++ b/src/plugins/studia/studia_gui.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/studia/writes.ml b/src/plugins/studia/writes.ml index 1178f50bfa321338fe16a257f7ba1d1aad98826d..87cd013914e0db622f3151e0e55038017520c9ee 100644 --- a/src/plugins/studia/writes.ml +++ b/src/plugins/studia/writes.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/studia/writes.mli b/src/plugins/studia/writes.mli index 8b04c5e0b16d9e674f7129695f75a0ad8bb1be07..963ded99e680c475142439bc1ce1ca7dc0b5d65c 100644 --- a/src/plugins/studia/writes.mli +++ b/src/plugins/studia/writes.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/users/Users.mli b/src/plugins/users/Users.mli index f9510c0056cc4daaffd633efa2955229cc8e4665..5a726447229afaef03d997276378e33961831584 100644 --- a/src/plugins/users/Users.mli +++ b/src/plugins/users/Users.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/users/users_register.ml b/src/plugins/users/users_register.ml index f61d4e7665edab65d0a7d48774088c57fa021f0b..0d775e8b8a96d943030977b2cc992c4b4ee683a5 100644 --- a/src/plugins/users/users_register.ml +++ b/src/plugins/users/users_register.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/Eva.mli b/src/plugins/value/Eva.mli index e095c472ff8a40e6bdac196683ca9ef344fdf434..d27f426c32f2806ad0bd341278af380fbaad0195 100644 --- a/src/plugins/value/Eva.mli +++ b/src/plugins/value/Eva.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/alarmset.ml b/src/plugins/value/alarmset.ml index 203797e611ca718d11798d5edee3a6f516da3faa..062f57f05174f880780c1207d6b44d8f42d9f9ec 100644 --- a/src/plugins/value/alarmset.ml +++ b/src/plugins/value/alarmset.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/alarmset.mli b/src/plugins/value/alarmset.mli index 16b15ec5dcb0cc42532323d8ecdd285443376242..e978d5708b4bdc5de5789104fbfbc93f691cedd1 100644 --- a/src/plugins/value/alarmset.mli +++ b/src/plugins/value/alarmset.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/abstract_domain.mli b/src/plugins/value/domains/abstract_domain.mli index 1443485df2b94efc35622b9d975f2c7abe6a6ba5..f2dc9ff30e5586e3f4e7d7eb7ed713781fe82655 100644 --- a/src/plugins/value/domains/abstract_domain.mli +++ b/src/plugins/value/domains/abstract_domain.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/apron/apron_domain.ko.ml b/src/plugins/value/domains/apron/apron_domain.ko.ml index 0683e0d3ba738a7ffa651d64b48c6663c7101b6a..9ccb3680e2919874b7ad15a85c8b3c597e39083d 100644 --- a/src/plugins/value/domains/apron/apron_domain.ko.ml +++ b/src/plugins/value/domains/apron/apron_domain.ko.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/apron/apron_domain.mli b/src/plugins/value/domains/apron/apron_domain.mli index 993f8bb70dd955de64456396db742acbe18245ab..19c6611afb1159e90e569e04971eec187da1bbab 100644 --- a/src/plugins/value/domains/apron/apron_domain.mli +++ b/src/plugins/value/domains/apron/apron_domain.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/apron/apron_domain.ok.ml b/src/plugins/value/domains/apron/apron_domain.ok.ml index 7b8510916ff3c3a3da4eea71780fcf7a2944d8ec..27aa29d81c1fb68e1a7fccaddc91b732dd74962b 100644 --- a/src/plugins/value/domains/apron/apron_domain.ok.ml +++ b/src/plugins/value/domains/apron/apron_domain.ok.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -252,7 +252,7 @@ let translate_lval = function let translate_constant = function | CInt64 (i, _, _) -> begin try Coeff.s_of_int (Integer.to_int i) (* TODO: skip OCaml int type *) - with Failure _ -> raise (Out_of_Scope "translate_constant big int") + with Z.Overflow | Failure _ -> raise (Out_of_Scope "translate_constant big int") end | _ -> raise (Out_of_Scope "translate_constant not integer") @@ -501,7 +501,7 @@ module Make (* May happen when evaluating an expression in the GUI, while the states of Apron have not been saved. In this case, we evaluate in the top apron state, whose environment raises the Failure exception. *) - | Failure _ -> top + | Z.Overflow | Failure _ -> top let extract_expr _oracle state expr = compute state expr (Cil.typeOf expr) diff --git a/src/plugins/value/domains/cvalue/builtins.ml b/src/plugins/value/domains/cvalue/builtins.ml index d4132f06f95e3655939340f0485a3ae3e86028d4..fb2479c5e3c896d33ad478cb4d07bd459e6354d1 100644 --- a/src/plugins/value/domains/cvalue/builtins.ml +++ b/src/plugins/value/domains/cvalue/builtins.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/cvalue/builtins.mli b/src/plugins/value/domains/cvalue/builtins.mli index e08655ff57eeb067d7e5b475e7ecaed8aa077a00..351bf9a11ddd32c6df1c74fbba77bbe45f1ecf6e 100644 --- a/src/plugins/value/domains/cvalue/builtins.mli +++ b/src/plugins/value/domains/cvalue/builtins.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/cvalue/builtins_float.ml b/src/plugins/value/domains/cvalue/builtins_float.ml index e86afb819ce7f4ce89672805a3dec951f252b898..458470bfbd5d68f8ad26fab04d9ce4939cdc3369 100644 --- a/src/plugins/value/domains/cvalue/builtins_float.ml +++ b/src/plugins/value/domains/cvalue/builtins_float.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/cvalue/builtins_float.mli b/src/plugins/value/domains/cvalue/builtins_float.mli index 7929492d6e6fbdfbe9915eb44a174212d44c160d..2c8eaa212090b6c862e8d9a043c0657d81da4acf 100644 --- a/src/plugins/value/domains/cvalue/builtins_float.mli +++ b/src/plugins/value/domains/cvalue/builtins_float.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/cvalue/builtins_malloc.ml b/src/plugins/value/domains/cvalue/builtins_malloc.ml index c3f6e9ce06e866ac373bbb37d95c52fdc37fd10e..ae944aa55f87b4c15792a40735e33ef0c1bd7bee 100644 --- a/src/plugins/value/domains/cvalue/builtins_malloc.ml +++ b/src/plugins/value/domains/cvalue/builtins_malloc.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/cvalue/builtins_malloc.mli b/src/plugins/value/domains/cvalue/builtins_malloc.mli index 85c2d2d2eee33a1fcf478936255f8daabc413fcd..ddb847fde07c1b902e21b1e54681648ec071ba84 100644 --- a/src/plugins/value/domains/cvalue/builtins_malloc.mli +++ b/src/plugins/value/domains/cvalue/builtins_malloc.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/cvalue/builtins_memory.ml b/src/plugins/value/domains/cvalue/builtins_memory.ml index a66f81bdeb013e52ce3351b90ac1a40f22bf9226..e413f5d9ac2483cb764c1ee6bcf84d08d4b3f7f4 100644 --- a/src/plugins/value/domains/cvalue/builtins_memory.ml +++ b/src/plugins/value/domains/cvalue/builtins_memory.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/cvalue/builtins_memory.mli b/src/plugins/value/domains/cvalue/builtins_memory.mli index c7addb3ec5c933bf96ec9e72714aa442959b2c57..185407cdb125e4b63ec5a242f7297e46b67727e5 100644 --- a/src/plugins/value/domains/cvalue/builtins_memory.mli +++ b/src/plugins/value/domains/cvalue/builtins_memory.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/cvalue/builtins_misc.ml b/src/plugins/value/domains/cvalue/builtins_misc.ml index 9fd4aedcde6ded2fb3b922a820102705669ce894..fa69ac070b47b5a2288656980f50350bfefc11aa 100644 --- a/src/plugins/value/domains/cvalue/builtins_misc.ml +++ b/src/plugins/value/domains/cvalue/builtins_misc.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/cvalue/builtins_misc.mli b/src/plugins/value/domains/cvalue/builtins_misc.mli index d6cad0553821faf26ecfad001cd80e4152c2d948..f21a8808855a093e83bf1821b84748fa3bf1e540 100644 --- a/src/plugins/value/domains/cvalue/builtins_misc.mli +++ b/src/plugins/value/domains/cvalue/builtins_misc.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/cvalue/builtins_print_c.ml b/src/plugins/value/domains/cvalue/builtins_print_c.ml index a0faa9434838c52a2dc1f348ffd20e091f519440..dc13b3c198bf1d6b72b6453abdbce44a0801fb10 100644 --- a/src/plugins/value/domains/cvalue/builtins_print_c.ml +++ b/src/plugins/value/domains/cvalue/builtins_print_c.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -280,7 +280,7 @@ let state_pretty cas fmt m = begin try offsetmap_pretty cas name print_ampamp fmt offs with - | Failure _ + | Z.Overflow | Too_large_to_enumerate -> Value_parameters.warning "base %s too large, \ will not print it" name diff --git a/src/plugins/value/domains/cvalue/builtins_print_c.mli b/src/plugins/value/domains/cvalue/builtins_print_c.mli index c8f11e3bee0cc0ffe5a7bf56617605a841e3ec24..80f0da7ad4b8e9bddfd782ee398b542ad1f34e0e 100644 --- a/src/plugins/value/domains/cvalue/builtins_print_c.mli +++ b/src/plugins/value/domains/cvalue/builtins_print_c.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/cvalue/builtins_split.ml b/src/plugins/value/domains/cvalue/builtins_split.ml index af7b11e3b0cd321cff2161c75d035b3b676634a3..91d13f06f876ea2f94e5bb36888ad8d43436842e 100644 --- a/src/plugins/value/domains/cvalue/builtins_split.ml +++ b/src/plugins/value/domains/cvalue/builtins_split.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/cvalue/builtins_split.mli b/src/plugins/value/domains/cvalue/builtins_split.mli index b2bc6e43aff24a610877258dad99dc57eb10dbbf..534162c0101132c4e2f6707cf38e2512e7561c52 100644 --- a/src/plugins/value/domains/cvalue/builtins_split.mli +++ b/src/plugins/value/domains/cvalue/builtins_split.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/cvalue/builtins_string.ml b/src/plugins/value/domains/cvalue/builtins_string.ml index d3d2477f886fdcf33b70ea803c87154aad84d7ec..d6c9c6040bdc299c6f7333e710b8a18838236c41 100644 --- a/src/plugins/value/domains/cvalue/builtins_string.ml +++ b/src/plugins/value/domains/cvalue/builtins_string.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/cvalue/builtins_string.mli b/src/plugins/value/domains/cvalue/builtins_string.mli index 8106fdbca792516c9bb87d930af8a490a92e6a5e..a19e4d7b09194af36918c3be2c7a7146782d9c47 100644 --- a/src/plugins/value/domains/cvalue/builtins_string.mli +++ b/src/plugins/value/domains/cvalue/builtins_string.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/cvalue/builtins_watchpoint.ml b/src/plugins/value/domains/cvalue/builtins_watchpoint.ml index 32bb43ff20c32bfadd523d4e3367ff0ed73271ab..c8a2c01c80691c941addde50bee86e9388863795 100644 --- a/src/plugins/value/domains/cvalue/builtins_watchpoint.ml +++ b/src/plugins/value/domains/cvalue/builtins_watchpoint.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -89,7 +89,7 @@ let make_watch_cardinal target_value = let target_value = Cvalue.V.project_ival target_value in Cardinal (Integer.to_int (Ival.project_int target_value)) with V.Not_based_on_null | Ival.Not_Singleton_Int - | Failure _ (* from Integer.to_int *) -> + | Z.Overflow (* from Integer.to_int *) -> raise Db.Value.Outside_builtin_possibilities let () = diff --git a/src/plugins/value/domains/cvalue/builtins_watchpoint.mli b/src/plugins/value/domains/cvalue/builtins_watchpoint.mli index 6f878a7648805a1b4310e0d9ea44f1de6bd9b01c..94b276ff5a639b62fc8cb7b9fbd4a25152470153 100644 --- a/src/plugins/value/domains/cvalue/builtins_watchpoint.mli +++ b/src/plugins/value/domains/cvalue/builtins_watchpoint.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/cvalue/cvalue_domain.ml b/src/plugins/value/domains/cvalue/cvalue_domain.ml index a079226139cf67156b5a9f570465a1c9fa144c8c..798c4ea72f7d652d2d5a98d80780ce0f814e5619 100644 --- a/src/plugins/value/domains/cvalue/cvalue_domain.ml +++ b/src/plugins/value/domains/cvalue/cvalue_domain.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/cvalue/cvalue_domain.mli b/src/plugins/value/domains/cvalue/cvalue_domain.mli index 62b8a279b0f70209e7ab5fc074da46edebd07297..34436ded0ad5db8a2d0b97d157f0d802891256a4 100644 --- a/src/plugins/value/domains/cvalue/cvalue_domain.mli +++ b/src/plugins/value/domains/cvalue/cvalue_domain.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/cvalue/cvalue_init.ml b/src/plugins/value/domains/cvalue/cvalue_init.ml index 0826cdec7d9539da8c47485874db975a4d45d3c7..60d60a97157b848e6a0d39a1a6283617002810c0 100644 --- a/src/plugins/value/domains/cvalue/cvalue_init.ml +++ b/src/plugins/value/domains/cvalue/cvalue_init.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/cvalue/cvalue_init.mli b/src/plugins/value/domains/cvalue/cvalue_init.mli index 1d20d46c2a9fdc845879eb0be5eece5d9a021f30..163e195deece5f2105d7f9b31b1731ea88695987 100644 --- a/src/plugins/value/domains/cvalue/cvalue_init.mli +++ b/src/plugins/value/domains/cvalue/cvalue_init.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/cvalue/cvalue_offsetmap.ml b/src/plugins/value/domains/cvalue/cvalue_offsetmap.ml index 876fa9f8c07974c920722980238b0e0af75c91d1..63d5ecc055684941150765ddeecf4633f48ce626 100644 --- a/src/plugins/value/domains/cvalue/cvalue_offsetmap.ml +++ b/src/plugins/value/domains/cvalue/cvalue_offsetmap.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/cvalue/cvalue_offsetmap.mli b/src/plugins/value/domains/cvalue/cvalue_offsetmap.mli index 2210ce9a62dbcbfb5a2a8ff96406df8386e296b3..0616e65de568f8945ba6c21a0d87fa2622ad0f67 100644 --- a/src/plugins/value/domains/cvalue/cvalue_offsetmap.mli +++ b/src/plugins/value/domains/cvalue/cvalue_offsetmap.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/cvalue/cvalue_specification.ml b/src/plugins/value/domains/cvalue/cvalue_specification.ml index 78eafb146fa49b529afda90d7f1dfef2f55ff15a..69a39589b185ee6e2704837a43b0681356a91340 100644 --- a/src/plugins/value/domains/cvalue/cvalue_specification.ml +++ b/src/plugins/value/domains/cvalue/cvalue_specification.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/cvalue/cvalue_specification.mli b/src/plugins/value/domains/cvalue/cvalue_specification.mli index 2736468c75a7b0547a7c3b4cc5a1c106c11dd134..fd1768ba7917eed2249efe75f81a3440c2ebfe3b 100644 --- a/src/plugins/value/domains/cvalue/cvalue_specification.mli +++ b/src/plugins/value/domains/cvalue/cvalue_specification.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/cvalue/cvalue_transfer.ml b/src/plugins/value/domains/cvalue/cvalue_transfer.ml index 32065df1460ccfeb77971aea5a42c6bd0e20fdbf..a53f6cf775e0fd80581d1887435b1336fc636403 100644 --- a/src/plugins/value/domains/cvalue/cvalue_transfer.ml +++ b/src/plugins/value/domains/cvalue/cvalue_transfer.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/cvalue/cvalue_transfer.mli b/src/plugins/value/domains/cvalue/cvalue_transfer.mli index e09a9f0ccc24085c6d312a37bfa63efb2a6f7d56..a2bff4ae04a3cf219e64549d2aa4e701b6545dfa 100644 --- a/src/plugins/value/domains/cvalue/cvalue_transfer.mli +++ b/src/plugins/value/domains/cvalue/cvalue_transfer.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/cvalue/locals_scoping.ml b/src/plugins/value/domains/cvalue/locals_scoping.ml index 0848647262e988b767613b579f13bbe919b81239..2059c345c71b2421ed931990f7471fccdfa83ad5 100644 --- a/src/plugins/value/domains/cvalue/locals_scoping.ml +++ b/src/plugins/value/domains/cvalue/locals_scoping.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/cvalue/locals_scoping.mli b/src/plugins/value/domains/cvalue/locals_scoping.mli index 67d4cdfd3fb02a92c9ee83296efddcd93a6c40f0..e0b8c5d181d57181580186b48c8a832594d15550 100644 --- a/src/plugins/value/domains/cvalue/locals_scoping.mli +++ b/src/plugins/value/domains/cvalue/locals_scoping.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/cvalue/warn.ml b/src/plugins/value/domains/cvalue/warn.ml index 187b99bac2c1e494266dd8119672b459ef3450c7..d97c541ab5cc3c2ce14edc09a88752c4af8b237a 100644 --- a/src/plugins/value/domains/cvalue/warn.ml +++ b/src/plugins/value/domains/cvalue/warn.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/cvalue/warn.mli b/src/plugins/value/domains/cvalue/warn.mli index 8bd3c81baa06a49b073d86a0f1f9925037c66a4d..3e60e835876ad42d9d7aa4b56df63dfde7f007b0 100644 --- a/src/plugins/value/domains/cvalue/warn.mli +++ b/src/plugins/value/domains/cvalue/warn.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/domain_builder.ml b/src/plugins/value/domains/domain_builder.ml index 88bbc85b21d0d757728ed1849c20cc4ba1b32dfc..108c1c4eada23618cd0484c2038734e547a3503d 100644 --- a/src/plugins/value/domains/domain_builder.ml +++ b/src/plugins/value/domains/domain_builder.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/domain_builder.mli b/src/plugins/value/domains/domain_builder.mli index 40a364106085914c7314e539b7e44afb5c87a1d7..7d3b426a606878abe05699292d827739fcec4948 100644 --- a/src/plugins/value/domains/domain_builder.mli +++ b/src/plugins/value/domains/domain_builder.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/domain_lift.ml b/src/plugins/value/domains/domain_lift.ml index caf7b8e1533bbf87390eef8227340e761d72369f..02eaa96e98d63b5f8cccfe3bfa8463d6565ef361 100644 --- a/src/plugins/value/domains/domain_lift.ml +++ b/src/plugins/value/domains/domain_lift.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/domain_lift.mli b/src/plugins/value/domains/domain_lift.mli index f3a3f84eec375414e1b0e2e61408eb12ae2df2bd..9e16a8a292ee65d5fd7ff670ac2e9228b9180ba1 100644 --- a/src/plugins/value/domains/domain_lift.mli +++ b/src/plugins/value/domains/domain_lift.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/domain_product.ml b/src/plugins/value/domains/domain_product.ml index 08a9cf5b6eb2f03bec67ca21ec75420940c8442b..35ada8461ccc5a2169f4c2a5be3ccbb3bfb8e483 100644 --- a/src/plugins/value/domains/domain_product.ml +++ b/src/plugins/value/domains/domain_product.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/domain_product.mli b/src/plugins/value/domains/domain_product.mli index 196495d26de0b569280e7234d55fbe976d4c2ff6..c883a94ba8d1cb26816c742f8c8bf9a5bbe8532c 100644 --- a/src/plugins/value/domains/domain_product.mli +++ b/src/plugins/value/domains/domain_product.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/domain_store.ml b/src/plugins/value/domains/domain_store.ml index 448ef904987aeaf4eca09f7d6f249f3600bd1be4..22d08a628389a8585217a2e021dd8e381598a756 100644 --- a/src/plugins/value/domains/domain_store.ml +++ b/src/plugins/value/domains/domain_store.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/domain_store.mli b/src/plugins/value/domains/domain_store.mli index 01c6ab0a8ac691a02b9d647207aa6088877b3e70..0e310a36d82fc4734954ea133285456322a2e9f9 100644 --- a/src/plugins/value/domains/domain_store.mli +++ b/src/plugins/value/domains/domain_store.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/equality/equality.ml b/src/plugins/value/domains/equality/equality.ml index 9fac38b57f2cf8121a8e0d11399bf726c5ef605b..278404749c6349fd2f5ac17cbc0a3cf21da46c44 100644 --- a/src/plugins/value/domains/equality/equality.ml +++ b/src/plugins/value/domains/equality/equality.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/equality/equality.mli b/src/plugins/value/domains/equality/equality.mli index f77042ade83f10406fd9b0384cd89651b9de15cc..9c5800dfd1f01daba51afb0a6508eef34810e005 100644 --- a/src/plugins/value/domains/equality/equality.mli +++ b/src/plugins/value/domains/equality/equality.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/equality/equality_domain.ml b/src/plugins/value/domains/equality/equality_domain.ml index f2db71da693e981cf70d699cb9c6c241c6188c50..844b890277e5e45e324a1911239fec5037816f51 100644 --- a/src/plugins/value/domains/equality/equality_domain.ml +++ b/src/plugins/value/domains/equality/equality_domain.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -406,7 +406,9 @@ module Make let assign _stmt left_value right_expr value valuation state = let open Locations in let left_loc = Precise_locs.imprecise_location left_value.lloc in - let direct_left_zone = Locations.enumerate_bits left_loc in + let direct_left_zone = + Locations.enumerate_valid_bits ~for_writing:true left_loc + in let state = kill Hcexprs.Modified direct_left_zone state in let right_expr = Cil.constFold true right_expr in try @@ -513,7 +515,7 @@ module Make let logic_assign _assigns location ~pre:_ state = let loc = Precise_locs.imprecise_location location in - let zone = Locations.enumerate_bits loc in + let zone = Locations.enumerate_valid_bits ~for_writing:true loc in kill Hcexprs.Modified zone state let evaluate_predicate _ _ _ = Alarmset.Unknown diff --git a/src/plugins/value/domains/equality/equality_domain.mli b/src/plugins/value/domains/equality/equality_domain.mli index 0e0371e9697f2bf7a727c421a054b8492475d3bf..6f6d041654125ff27303bcd95cd853297b8ba836 100644 --- a/src/plugins/value/domains/equality/equality_domain.mli +++ b/src/plugins/value/domains/equality/equality_domain.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/gauges/gauges_domain.ml b/src/plugins/value/domains/gauges/gauges_domain.ml index 943a466c31d40297d45579dfce6bc24f3cba01f4..e6845dd9d7764f6dd6d671e1143e04b3738958a1 100644 --- a/src/plugins/value/domains/gauges/gauges_domain.ml +++ b/src/plugins/value/domains/gauges/gauges_domain.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -156,8 +156,9 @@ module G = struct let zero = Some Integer.zero, Some Integer.zero (* Widening between two bounds. Unstable bounds are widened to infty - aggressively. This widening does not assumes that [is_included i1 i2] - holds, unlike the widening of Ival. *) + aggressively, unless [threshold] is supplied. This widening + does not assumes that [is_included i1 i2] holds, unlike the + widening of Ival. *) let widen ?threshold (min1, max1: t) (min2, max2: t) : t = let widen_unstable_min b1 b2 = if Extlib.opt_equal Integer.equal b1 b2 then b1 else None @@ -213,7 +214,7 @@ module G = struct (* Computes the possible [n] such that [(add b)^n = r], when [f^n] is [f] consecutive applications of [f]. *) - let backward_nb ~(b:t) ~(r:Ival.t) = + let backward_nb ~(b:t) ~(r:Ival.t) = let r = from_ival r in let nb_max = match classify_sign b with @@ -466,6 +467,14 @@ module G = struct let threshold = None (* LoopAnalysis.Loop_analysis.get_bounds _stmt *) in + (* TODO: since we cannot easily use LoopAnalysis here, we + should instead: + - collect the conditionals that exit the loop, as done + for syntactic hints, if possible in a structured way + (i.e. base + interval for which we exit the loop) + - invert this interval using the gauges domain, to + deduce the number of iterations from which we exit + - use the max of those values as threshold. *) let threshold = Extlib.opt_map Integer.of_int threshold in let (min, max as w) = Bounds.widen ?threshold i1.nb i2.nb in (* Limit min bound to 0 *) @@ -905,7 +914,10 @@ module G = struct let shift = Cvalue.V.inject_ival (Bounds.to_ival (aux l lg)) in Cvalue.V.add_untyped ctg ~factor:Int_Base.one shift - let backward_loop (ct, l: t) b v : t option = + (* Assuming [b] has value [v], backward-propagate this information to + the number of iterations in [t]. Reduce [None] if no reduction + occurred. *) + let backward_loop (ct, l: t) b v : t or_bottom option = (* This function gather the non-zero coefficients for [b], together with the number of iterations of the relevant loops. *) let rec gather = function @@ -941,14 +953,14 @@ module G = struct | _ :: _ :: _ -> None (* TODO: linearize and solve *) | [(stmt, c, nb)] -> match Bounds.backward_nb ~b:c ~r:d with - | `Bottom -> None (* TODO: return bottom *) + | `Bottom -> Some `Bottom | `Value n_iter -> match Bounds.narrow n_iter nb with - | `Bottom -> None (* TODO: return bottom *) + | `Bottom -> Some `Bottom | `Value n_iter -> if not (Bounds.equal nb n_iter) then let l' = replace stmt n_iter l in - Some (ct, l') + Some (`Value (ct, l')) else None with Not_found -> None @@ -1188,24 +1200,29 @@ module D_Impl : Abstract_domain.S_with_Structure match e.enode with | Lval lv -> begin match Valuation.find_loc valuation lv with - | `Top -> state + | `Top -> `Value state | `Value {loc} -> let loc = Precise_locs.imprecise_location loc in try let b = loc_to_base loc (Cil.typeOfLval lv) in match r.value.v with - | `Bottom -> state + | `Bottom -> `Value state | `Value v -> match backward_loop state b v with - | Some state -> state - | None -> state - with Untranslatable -> state + | Some `Bottom -> `Bottom + | Some (`Value _ as s) -> s + | None -> `Value state + with Untranslatable -> `Value state end - | _ -> state - else state + | _ -> `Value state + else `Value state + + let assume_exp_bot valuation e r state = + state >>- assume_exp valuation e r let assume _ _ _ valuation state = - `Value (Valuation.fold (assume_exp valuation) valuation state) + let assume_one = assume_exp_bot valuation in + Valuation.fold assume_one valuation (`Value state) let finalize_call _stmt _call ~pre ~post = let state = diff --git a/src/plugins/value/domains/gauges/gauges_domain.mli b/src/plugins/value/domains/gauges/gauges_domain.mli index f5655172d17f14ae3653bb1acef26021fe5ec346..a1609d838a046745346cd36f02e063314057b88a 100644 --- a/src/plugins/value/domains/gauges/gauges_domain.mli +++ b/src/plugins/value/domains/gauges/gauges_domain.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/hcexprs.ml b/src/plugins/value/domains/hcexprs.ml index aeb38a8e29d818ef207f3c54d24fb69a9f01cc35..449fe39ffdebac08675489ab196560b6d3d0ee5a 100644 --- a/src/plugins/value/domains/hcexprs.ml +++ b/src/plugins/value/domains/hcexprs.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/hcexprs.mli b/src/plugins/value/domains/hcexprs.mli index ffd04c2f5b9e1d7e39fed5f7fb5fd567795c9359..54e76aaebff0dd600cc181065f535abd3d4a3fcb 100644 --- a/src/plugins/value/domains/hcexprs.mli +++ b/src/plugins/value/domains/hcexprs.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/inout_domain.ml b/src/plugins/value/domains/inout_domain.ml index 8621fc06e9bc74e931793c612fe12b5ff8854a05..d6dd5b5afde403c01c75a6bb3e40162e6f017069 100644 --- a/src/plugins/value/domains/inout_domain.ml +++ b/src/plugins/value/domains/inout_domain.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/inout_domain.mli b/src/plugins/value/domains/inout_domain.mli index 9bd5cad97b8bfa5d04903a40a1be8f362ebcfec9..0304f94f6900c3178afd03ca5c1d3534896a70a6 100644 --- a/src/plugins/value/domains/inout_domain.mli +++ b/src/plugins/value/domains/inout_domain.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/numerors/numerors_domain.ko.ml b/src/plugins/value/domains/numerors/numerors_domain.ko.ml index 9c6b7345979bad5fb2b36d69877f4325b3eebb1d..eb6bc8b9a4fd68b544826004a66bc62dc4b3f43d 100644 --- a/src/plugins/value/domains/numerors/numerors_domain.ko.ml +++ b/src/plugins/value/domains/numerors/numerors_domain.ko.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/numerors/numerors_domain.mli b/src/plugins/value/domains/numerors/numerors_domain.mli index 48f8be955e71dba357aa1bb70bebbc7243aaa689..d08ef39909623588ccb4c7582daf7c7a05bdce2a 100644 --- a/src/plugins/value/domains/numerors/numerors_domain.mli +++ b/src/plugins/value/domains/numerors/numerors_domain.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/numerors/numerors_domain.ok.ml b/src/plugins/value/domains/numerors/numerors_domain.ok.ml index 3b1c183d85262c608917a0722bbab334078dd1c7..c385ee3a1f37c30e99efc18590ee2ddb462048fe 100644 --- a/src/plugins/value/domains/numerors/numerors_domain.ok.ml +++ b/src/plugins/value/domains/numerors/numerors_domain.ok.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -110,7 +110,7 @@ let add_numerors_value (module Value: Abstract_value.Internal) = Numerors_value.of_ints ~prec min max | _, _ -> num (* Integer.to_int may fail for too big integers. *) - with Cvalue.V.Not_based_on_null | Failure _ -> num + with Cvalue.V.Not_based_on_null | Z.Overflow -> num end | _, _ -> num in diff --git a/src/plugins/value/domains/offsm_domain.ml b/src/plugins/value/domains/offsm_domain.ml index b97f63123ef2c681284b0c5aafd7fa7fa73e9489..c2653e2de79aad95f7cc5d6d6b5d7fbf056deb03 100644 --- a/src/plugins/value/domains/offsm_domain.ml +++ b/src/plugins/value/domains/offsm_domain.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/offsm_domain.mli b/src/plugins/value/domains/offsm_domain.mli index f7bc45f4ecfb22b772766df11c3b860c3ea39468..4567fc14d3f21c1ad2db640e9264fe6ec387e4cb 100644 --- a/src/plugins/value/domains/offsm_domain.mli +++ b/src/plugins/value/domains/offsm_domain.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/powerset.ml b/src/plugins/value/domains/powerset.ml index 15a746153c4ed0bea6a9a3c40baf065f353e77f5..a431bce712e76a8dd69049202264e15a8d277d8e 100644 --- a/src/plugins/value/domains/powerset.ml +++ b/src/plugins/value/domains/powerset.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/powerset.mli b/src/plugins/value/domains/powerset.mli index b482fb4a17f69a8834c522a4a951ab558cf0bb59..1af4f56c15fc7632d333f1642fd05103b857e887 100644 --- a/src/plugins/value/domains/powerset.mli +++ b/src/plugins/value/domains/powerset.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/printer_domain.ml b/src/plugins/value/domains/printer_domain.ml index 5dba02581423cfad72de991eae94882f6d8057fc..6e77dfe64e77dc709f991386cd8cbc65199cc2a1 100644 --- a/src/plugins/value/domains/printer_domain.ml +++ b/src/plugins/value/domains/printer_domain.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/printer_domain.mli b/src/plugins/value/domains/printer_domain.mli index 7e340510eac6033ceeade92538717c0d950a31fd..5355cebbd9cbf82b76690098e670e0af76855c9c 100644 --- a/src/plugins/value/domains/printer_domain.mli +++ b/src/plugins/value/domains/printer_domain.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/sign_domain.ml b/src/plugins/value/domains/sign_domain.ml index cc271dd112351a22f85671fe876775539532fd78..ef15d89e009d8ff9a34541c42976af3671bac13b 100644 --- a/src/plugins/value/domains/sign_domain.ml +++ b/src/plugins/value/domains/sign_domain.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/sign_domain.mli b/src/plugins/value/domains/sign_domain.mli index 0c23ee538eccde6f807ca430779f0d9332721922..fafc9f18c67cf1cd72ee5d88375dfce1631f8fe6 100644 --- a/src/plugins/value/domains/sign_domain.mli +++ b/src/plugins/value/domains/sign_domain.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/simple_memory.ml b/src/plugins/value/domains/simple_memory.ml index b747e4990a2f34fe2c046aef884c44c2d92586f1..9612b41755a7250178110686083158252d2d048d 100644 --- a/src/plugins/value/domains/simple_memory.ml +++ b/src/plugins/value/domains/simple_memory.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/simple_memory.mli b/src/plugins/value/domains/simple_memory.mli index aae5f8623381d008db759acd7c99300e78370245..e45eef5cb3a61dcb648a8934330ceabd2d36552f 100644 --- a/src/plugins/value/domains/simple_memory.mli +++ b/src/plugins/value/domains/simple_memory.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/simpler_domains.mli b/src/plugins/value/domains/simpler_domains.mli index dcff643730fa3b0e69355686f2521817d4e4b2e3..2b4d654bdde07ef30011bb6c4a568da82dfa7c54 100644 --- a/src/plugins/value/domains/simpler_domains.mli +++ b/src/plugins/value/domains/simpler_domains.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/symbolic_locs.ml b/src/plugins/value/domains/symbolic_locs.ml index 13f955dfe652a63f0e0a94a29498a142424a8a00..6bf6163b4fa0a638d1735a23b11ae68bcb8376b9 100644 --- a/src/plugins/value/domains/symbolic_locs.ml +++ b/src/plugins/value/domains/symbolic_locs.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/symbolic_locs.mli b/src/plugins/value/domains/symbolic_locs.mli index 288ea0e90887672540e462762b13f3050baefe3e..06cda3ce5eb47f2d1ac33fdfe85205c3dbb1afbb 100644 --- a/src/plugins/value/domains/symbolic_locs.mli +++ b/src/plugins/value/domains/symbolic_locs.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/unit_domain.ml b/src/plugins/value/domains/unit_domain.ml index 79b07a092e046bc59ff51da4f641ce997e52e807..62aba6028cf854463f08c4ed2e6e2d6b6a308070 100644 --- a/src/plugins/value/domains/unit_domain.ml +++ b/src/plugins/value/domains/unit_domain.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/unit_domain.mli b/src/plugins/value/domains/unit_domain.mli index 5af811c418fa65d1a134dfeaf8b8cc6707e4f572..03a18359466383b2b457973f30e5d872e498228f 100644 --- a/src/plugins/value/domains/unit_domain.mli +++ b/src/plugins/value/domains/unit_domain.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/engine/abstractions.ml b/src/plugins/value/engine/abstractions.ml index 1dc30656cba4182863f7c94759661e59f405b794..a15c6bb25a6ae1ad5012ae5f60c65402df76b20c 100644 --- a/src/plugins/value/engine/abstractions.ml +++ b/src/plugins/value/engine/abstractions.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/engine/abstractions.mli b/src/plugins/value/engine/abstractions.mli index 308dd9b6a2e6eb50418d70c70365b5f5b49a2613..499cb28161de7616d59642119cb7b820b0825050 100644 --- a/src/plugins/value/engine/abstractions.mli +++ b/src/plugins/value/engine/abstractions.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/engine/analysis.ml b/src/plugins/value/engine/analysis.ml index 752da011df58f00616da3f64781bd30fc6dd98aa..d11f2ec4640a155548971d5acf9d85c146c377d1 100644 --- a/src/plugins/value/engine/analysis.ml +++ b/src/plugins/value/engine/analysis.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/engine/analysis.mli b/src/plugins/value/engine/analysis.mli index 72e3662a5b608291a3349592daf5ce8d7683c315..4ecfde378fd0c90f6ca56c0bb9c93909e95c18d6 100644 --- a/src/plugins/value/engine/analysis.mli +++ b/src/plugins/value/engine/analysis.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/engine/basic_partitioning.ml b/src/plugins/value/engine/basic_partitioning.ml index a2ee7cd2334c2054306e511758b2aff6391218ef..4a790f63214cb4110f506432f5b5a23262b78576 100644 --- a/src/plugins/value/engine/basic_partitioning.ml +++ b/src/plugins/value/engine/basic_partitioning.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -182,6 +182,9 @@ struct w.previous_state <- `Bottom; w.widening_counter <- widening_delay + let reset_widening_counter (w : widening) : unit = + w.widening_counter <- max w.widening_counter (widening_period - 1) + (* Operators *) let clear_propagation (p : propagation) : unit = diff --git a/src/plugins/value/engine/basic_partitioning.mli b/src/plugins/value/engine/basic_partitioning.mli index fe7972d190564ee0224be97a4b2b4f58eedf26f5..9006e977b10eb7d8b3f6c62af203180b23055a08 100644 --- a/src/plugins/value/engine/basic_partitioning.mli +++ b/src/plugins/value/engine/basic_partitioning.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/engine/compute_functions.ml b/src/plugins/value/engine/compute_functions.ml index c0bc45aa552d631451eb8e32270b9ec98810b74c..8d30fe872600f79d13bc9f9a24482987d2d06122 100644 --- a/src/plugins/value/engine/compute_functions.ml +++ b/src/plugins/value/engine/compute_functions.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/engine/compute_functions.mli b/src/plugins/value/engine/compute_functions.mli index 33d60700a7fd28c4a38101c8e33d99454b59e948..2e04b81105ccdd39ca0cd1ce04bc941516580d8a 100644 --- a/src/plugins/value/engine/compute_functions.mli +++ b/src/plugins/value/engine/compute_functions.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/engine/evaluation.ml b/src/plugins/value/engine/evaluation.ml index b020de87b292080cf85983ecf88a0e87698bf39d..abc4b8f7c0214faa1e1662cb269a16906cb1a39f 100644 --- a/src/plugins/value/engine/evaluation.ml +++ b/src/plugins/value/engine/evaluation.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -1593,15 +1593,15 @@ module Make let typ = Cil.typeOf expr in let eval acc state = match fst (evaluate state expr) with - | `Bottom -> acc + | `Bottom -> (state, `Bottom, false) :: acc | `Value (_cache, value) -> let zero_or_one = Cvalue.V.cardinal_zero_or_one (get value) in - (state, value, zero_or_one) :: acc + (state, `Value value, zero_or_one) :: acc in let eval_states = List.fold_left eval [] states in let match_expected_value expected_value states = let process_one_state (eq, mess, neq) (s, v, zero_or_one as current) = - if Value.is_included expected_value v then + if Bottom.is_included Value.is_included expected_value v then (* The integer on which we split is part of the result *) if zero_or_one then (s :: eq, mess, neq) (* Clean split *) @@ -1613,7 +1613,7 @@ module Make List.fold_left process_one_state ([], false, []) states in let process_one_value (acc, states) i = - let value = Value.reduce (Value.inject_int typ i) in + let value = `Value (Value.reduce (Value.inject_int typ i)) in let eq, mess, neq = match_expected_value value states in (i, eq, mess) :: acc, neq in diff --git a/src/plugins/value/engine/evaluation.mli b/src/plugins/value/engine/evaluation.mli index 3a17bf67f9bb49f5c079088c105a61e6057d471d..9f263d86b3617566128fbf0c44959873c4f65810 100644 --- a/src/plugins/value/engine/evaluation.mli +++ b/src/plugins/value/engine/evaluation.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/engine/initialization.ml b/src/plugins/value/engine/initialization.ml index eea8d5276e9495123916642b1584326b85c530f2..317446467c2dcd3b4e657f30019dc3407b098146 100644 --- a/src/plugins/value/engine/initialization.ml +++ b/src/plugins/value/engine/initialization.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/engine/initialization.mli b/src/plugins/value/engine/initialization.mli index 45e78a129c74aeec9c3d990a0e65f0254a3a1834..d3bf03c164d12c1a524f8efffead3446eb2b17eb 100644 --- a/src/plugins/value/engine/initialization.mli +++ b/src/plugins/value/engine/initialization.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/engine/legacy_partitioning.ml b/src/plugins/value/engine/legacy_partitioning.ml index 119ce80be5b7c8fc63e922e867423bda28c061a4..bb2b4660552bdd4cb95ac52621f595d414375e5b 100644 --- a/src/plugins/value/engine/legacy_partitioning.ml +++ b/src/plugins/value/engine/legacy_partitioning.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -141,6 +141,9 @@ struct w.previous_state <- `Bottom; w.widening_counter <- widening_delay + let reset_widening_counter w = + w.widening_counter <- max w.widening_counter (widening_period - 1) + (* Operators *) let clear_propagation (p : propagation) : unit = diff --git a/src/plugins/value/engine/legacy_partitioning.mli b/src/plugins/value/engine/legacy_partitioning.mli index fe7972d190564ee0224be97a4b2b4f58eedf26f5..9006e977b10eb7d8b3f6c62af203180b23055a08 100644 --- a/src/plugins/value/engine/legacy_partitioning.mli +++ b/src/plugins/value/engine/legacy_partitioning.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/engine/loop_partitioning.ml b/src/plugins/value/engine/loop_partitioning.ml index eda3d98eaddd19d1e10df402a34e5cf313d77c21..03d1616d54cfadb27310fdf87453a80adf9b288e 100644 --- a/src/plugins/value/engine/loop_partitioning.ml +++ b/src/plugins/value/engine/loop_partitioning.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -359,6 +359,12 @@ struct in Tree.iter reset w.widening_tree + let reset_widening_counter (w : widening) : unit = + let reset w = + w.widening_counter <- max w.widening_counter (widening_period - 1) + in + Tree.iter reset w.widening_tree + (* Operators *) let clear_propagation (p : propagation) : unit = @@ -516,7 +522,7 @@ struct let merge t1 t2 = if not (is_empty_propagation_tree t2) then Value_parameters.warning ~once:true ~current:true - ~wkey:Value_parameters.wkey_loop_unrolling + ~wkey:Value_parameters.wkey_loop_unroll "loop not completely unrolled"; join_propagation_tree t1 t2 in diff --git a/src/plugins/value/engine/loop_partitioning.mli b/src/plugins/value/engine/loop_partitioning.mli index fe7972d190564ee0224be97a4b2b4f58eedf26f5..9006e977b10eb7d8b3f6c62af203180b23055a08 100644 --- a/src/plugins/value/engine/loop_partitioning.mli +++ b/src/plugins/value/engine/loop_partitioning.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/engine/mem_exec.ml b/src/plugins/value/engine/mem_exec.ml index b3a94a8126fcfedd2b2687c07c2f41f8e4693c88..85441fdeda5600eda20137d367788091b923b6e6 100644 --- a/src/plugins/value/engine/mem_exec.ml +++ b/src/plugins/value/engine/mem_exec.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/engine/mem_exec.mli b/src/plugins/value/engine/mem_exec.mli index 8ccd52d98f72cc92e020759014d0f219dde96f40..0b3fc959820db051608932a33d8a7d781b2850c9 100644 --- a/src/plugins/value/engine/mem_exec.mli +++ b/src/plugins/value/engine/mem_exec.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/engine/partitioned_dataflow.ml b/src/plugins/value/engine/partitioned_dataflow.ml index 24468248e01ddab61772479a99508b42e6ec234a..c5ba74ba824eabb2efdf771143bf2cc87247045d 100644 --- a/src/plugins/value/engine/partitioned_dataflow.ml +++ b/src/plugins/value/engine/partitioned_dataflow.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -110,7 +110,22 @@ module Make_Dataflow let unroll (stmt : stmt) : int = let local_unroll = match Unroll_annots.get_unroll_terms stmt with - | [] -> None + | [] -> + let is_attribute a = Cil.hasAttribute a stmt.sattr in + begin + match List.filter is_attribute ["for" ; "while" ; "dowhile"] with + | [] -> () + | loop_kind :: _ -> + let wkey = + if loop_kind = "for" + then Value_parameters.wkey_missing_loop_unroll_for + else Value_parameters.wkey_missing_loop_unroll + in + Value_parameters.warning + ~wkey ~source:(fst (Cil_datatype.Stmt.loc stmt)) ~once:true + "%s loop without unroll annotation" loop_kind + end; + None | [t] -> (* Inlines the value of const variables in [t]. *) let global_init vi = @@ -623,9 +638,12 @@ module Make_Dataflow | Wto.Node v -> ignore (process_vertex v) | Wto.Component (v, w) as component -> - (* Reset the component if hierachical_convergence is set *) - if hierachical_convergence then - reset_component (v :: Wto.flatten w); + (* Reset the component if hierachical_convergence is set. + Otherwise, only resets the widening counter for this component. This + is especially useful for nested loops. *) + if hierachical_convergence + then reset_component (v :: Wto.flatten w) + else Partition.reset_widening_counter (get_vertex_widening v); (* Iterate until convergence *) let iteration_count = ref 0 in while diff --git a/src/plugins/value/engine/partitioned_dataflow.mli b/src/plugins/value/engine/partitioned_dataflow.mli index eba1a96907d13d635b9c6296e67c592c24229ca7..e65f83e2d4f777f2173a8969d034145da641fb28 100644 --- a/src/plugins/value/engine/partitioned_dataflow.mli +++ b/src/plugins/value/engine/partitioned_dataflow.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/engine/partitioning.ml b/src/plugins/value/engine/partitioning.ml index 4299bf9ab95e6f0e5d88e8c6050c1625c721f94e..3b6f292b4f6f572cb609f4d6054c7c9b8dd33c84 100644 --- a/src/plugins/value/engine/partitioning.ml +++ b/src/plugins/value/engine/partitioning.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/engine/partitioning.mli b/src/plugins/value/engine/partitioning.mli index 895b4a244e647851776ba91f1b237b88a2f4ab1d..40bb50a1f25a6f772a4f8980cec36c87c0f883a3 100644 --- a/src/plugins/value/engine/partitioning.mli +++ b/src/plugins/value/engine/partitioning.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/engine/recursion.ml b/src/plugins/value/engine/recursion.ml index 331252d3e02393ba0c256a47803ae6e6dcaa6f43..4380f2bff85338347f5a784628334dae89f38014 100644 --- a/src/plugins/value/engine/recursion.ml +++ b/src/plugins/value/engine/recursion.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/engine/recursion.mli b/src/plugins/value/engine/recursion.mli index 97df11c77c155d4d40d60b9b0bd4f125beae7ad0..de91c06f2ef3cd31972294f4315cdf22d8540138 100644 --- a/src/plugins/value/engine/recursion.mli +++ b/src/plugins/value/engine/recursion.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/engine/split_return.ml b/src/plugins/value/engine/split_return.ml index de949160de431266a213feda34e261ee90876284..1eee0ba4880351fe4ec4f855e9a5a78acc882655 100644 --- a/src/plugins/value/engine/split_return.ml +++ b/src/plugins/value/engine/split_return.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/engine/split_return.mli b/src/plugins/value/engine/split_return.mli index 974c221242b4ee9c89141a8858f6c4ae9c8de2ff..ca01a8bea7ab879d9717332b5cdf0852f0cc0f62 100644 --- a/src/plugins/value/engine/split_return.mli +++ b/src/plugins/value/engine/split_return.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/engine/state_partitioning.mli b/src/plugins/value/engine/state_partitioning.mli index 50932afe1d8bee85ac3cadc44c8906d4c0fcc080..b9958356da1a916830c3c1d4bcce6a9164e61f50 100644 --- a/src/plugins/value/engine/state_partitioning.mli +++ b/src/plugins/value/engine/state_partitioning.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -91,6 +91,12 @@ sig val reset_shadow : shadow -> unit val reset_widening : widening -> unit + (** Resets (or just delays) the widening counter. Used on nested loops, to + postpone the widening of the inner loop when iterating on the outer + loops. This is especially useful when the inner loop fixpoint does not + depend on the outer loop. *) + val reset_widening_counter : widening -> unit + (* --- Partition transfer functions --- *) diff --git a/src/plugins/value/engine/subdivided_evaluation.ml b/src/plugins/value/engine/subdivided_evaluation.ml index 61af69319604dbc4cea28939d3c48b3e6bdc5142..ae1efe494c8c2dd823b6c5a7dd6b428795ecf024 100644 --- a/src/plugins/value/engine/subdivided_evaluation.ml +++ b/src/plugins/value/engine/subdivided_evaluation.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/engine/subdivided_evaluation.mli b/src/plugins/value/engine/subdivided_evaluation.mli index 0a19f1989e556988f0f4cf84db9a940bea301d6c..745624c457517ac366c4f7734bd7960c9bb6d3d7 100644 --- a/src/plugins/value/engine/subdivided_evaluation.mli +++ b/src/plugins/value/engine/subdivided_evaluation.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/engine/transfer_logic.ml b/src/plugins/value/engine/transfer_logic.ml index b6473fd05be862991d7a497167eadaa2a5eedbad..c9e1050abf3cda4b83c8429a7bdcb8145d129bd5 100644 --- a/src/plugins/value/engine/transfer_logic.ml +++ b/src/plugins/value/engine/transfer_logic.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/engine/transfer_logic.mli b/src/plugins/value/engine/transfer_logic.mli index 6762a2ae21d03e1872c78032859ffd4e9a45a8af..c31c1938545a89d95c0ea782c779761e74f1642a 100644 --- a/src/plugins/value/engine/transfer_logic.mli +++ b/src/plugins/value/engine/transfer_logic.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/engine/transfer_specification.ml b/src/plugins/value/engine/transfer_specification.ml index 9f6183bed8376ef98376e99d3d97d00c1ec878d2..4caa148ad2398fe93a5674f80078f0e6e6367b63 100644 --- a/src/plugins/value/engine/transfer_specification.ml +++ b/src/plugins/value/engine/transfer_specification.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/engine/transfer_specification.mli b/src/plugins/value/engine/transfer_specification.mli index 63c97deb7e45d211a8624454e03918e37e9bd72f..056587e6cbbf6557ef0b850e86d56e39be369520 100644 --- a/src/plugins/value/engine/transfer_specification.mli +++ b/src/plugins/value/engine/transfer_specification.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/engine/transfer_stmt.ml b/src/plugins/value/engine/transfer_stmt.ml index 7aac4ed59485aa399d691ccdc62e25129478e960..2a2ac4ca72bba20f9bb343495dacf900ba5c5799 100644 --- a/src/plugins/value/engine/transfer_stmt.ml +++ b/src/plugins/value/engine/transfer_stmt.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/engine/transfer_stmt.mli b/src/plugins/value/engine/transfer_stmt.mli index 1e83ea5538cc65a1b27a4989436257189780f4d5..3fb197fdbc085a8259e64ac6bad5bd02f9a3b12a 100644 --- a/src/plugins/value/engine/transfer_stmt.mli +++ b/src/plugins/value/engine/transfer_stmt.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/eval.ml b/src/plugins/value/eval.ml index 23e0e1f91c38d2e7821f146b3e75fc7defe5e5db..90deaf2c91746955b9fa3e61f2f3990e4e122b4b 100644 --- a/src/plugins/value/eval.ml +++ b/src/plugins/value/eval.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/eval.mli b/src/plugins/value/eval.mli index 02c603aa44121362b4393f31a92ab9d16945e4cc..a00ef79939cf24710edc64b6b25d351f388e68ef 100644 --- a/src/plugins/value/eval.mli +++ b/src/plugins/value/eval.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/gui_files/gui_callstacks_filters.ml b/src/plugins/value/gui_files/gui_callstacks_filters.ml index 3105c9f97aa23b8b07e2def286fc3fb9bf417f43..540a16d761b49f518bb2810cb8daf85e40b3ff28 100644 --- a/src/plugins/value/gui_files/gui_callstacks_filters.ml +++ b/src/plugins/value/gui_files/gui_callstacks_filters.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/gui_files/gui_callstacks_filters.mli b/src/plugins/value/gui_files/gui_callstacks_filters.mli index 13d41c7437d5a438ee472d73205ed401bc35d871..f0c1cf8d2800389f6c790eba80ef6afb672b351e 100644 --- a/src/plugins/value/gui_files/gui_callstacks_filters.mli +++ b/src/plugins/value/gui_files/gui_callstacks_filters.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/gui_files/gui_callstacks_manager.ml b/src/plugins/value/gui_files/gui_callstacks_manager.ml index 2d6a51bb4e7065d60798c25627b6407439db3676..d75eefad24279240861c589c4aa2a7199f74d8a5 100644 --- a/src/plugins/value/gui_files/gui_callstacks_manager.ml +++ b/src/plugins/value/gui_files/gui_callstacks_manager.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -326,7 +326,6 @@ module Make (Input: Input) = struct list_mem equal_column_type col_type model.hidden_columns then let show = GMenu.check_menu_item ~label:txt () in - show#set_show_toggle true; show#set_active column#visible; (* Hide this column. Keep it alive for filters and co. *) let callback_show_hide () = @@ -354,8 +353,7 @@ module Make (Input: Input) = struct let _lbl = GMisc.label ~text ~packing:h#pack () in let icon = GMisc.image ~xpad:10 ~stock:`COLOR_PICKER ~packing:h#pack () in icon#misc#hide (); - let tooltip_before = GData.tooltips () in - tooltip_before#set_tip ~text:tooltip h#coerce; + Gtk_helper.do_tooltip ~tooltip h; (* set_widget forces Gtk to create a header button for the view_column. *) col#set_widget (Some h#coerce); icon diff --git a/src/plugins/value/gui_files/gui_callstacks_manager.mli b/src/plugins/value/gui_files/gui_callstacks_manager.mli index 500bc0a1ccad7aa4e997c5acc725608b44f7443d..0485419075741ff6ce43530dee0a2a10e4d82219 100644 --- a/src/plugins/value/gui_files/gui_callstacks_manager.mli +++ b/src/plugins/value/gui_files/gui_callstacks_manager.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/gui_files/gui_eval.ml b/src/plugins/value/gui_files/gui_eval.ml index a97979e0a092e4fee9e653311fa501510394c18c..a2b2f89b7048974510abc4680a7c074a3a0223b9 100644 --- a/src/plugins/value/gui_files/gui_eval.ml +++ b/src/plugins/value/gui_files/gui_eval.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/gui_files/gui_eval.mli b/src/plugins/value/gui_files/gui_eval.mli index f6811bb4174dadece2591965d6ea3ac88cf4afd5..8939fb156438dd19d513d2e3e61449a0cd37d02a 100644 --- a/src/plugins/value/gui_files/gui_eval.mli +++ b/src/plugins/value/gui_files/gui_eval.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/gui_files/gui_red.ml b/src/plugins/value/gui_files/gui_red.ml index a55f8bfddf8dc723e2360468d46f5ba937080469..03929af50d5f22280fc3dec000de633004b5d86e 100644 --- a/src/plugins/value/gui_files/gui_red.ml +++ b/src/plugins/value/gui_files/gui_red.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/gui_files/gui_red.mli b/src/plugins/value/gui_files/gui_red.mli index 188b2adb2b1299a7a974bba8cd83de01a42243c6..71b07d1bac0fa5b931cda9ac35b52d637c349408 100644 --- a/src/plugins/value/gui_files/gui_red.mli +++ b/src/plugins/value/gui_files/gui_red.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/gui_files/gui_types.ml b/src/plugins/value/gui_files/gui_types.ml index 50b4054e9d2adf807f1c6020b9a3b6a88f68bfa9..683fa0398606aed22d2fafb21e85f26d2de82070 100644 --- a/src/plugins/value/gui_files/gui_types.ml +++ b/src/plugins/value/gui_files/gui_types.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/gui_files/gui_types.mli b/src/plugins/value/gui_files/gui_types.mli index 6aab7eaa4b256fc357f880a58352fa6b81527837..538247fa92dbd26e535d14362659b9d9ecc0fe87 100644 --- a/src/plugins/value/gui_files/gui_types.mli +++ b/src/plugins/value/gui_files/gui_types.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/gui_files/register_gui.ml b/src/plugins/value/gui_files/register_gui.ml index 93447af2def866334f234bb8f768d0b4188e7e48..e3444722321ce3c02d97555c47c12c0538965fa0 100644 --- a/src/plugins/value/gui_files/register_gui.ml +++ b/src/plugins/value/gui_files/register_gui.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/gui_files/register_gui.mli b/src/plugins/value/gui_files/register_gui.mli index d8d9c5ac42a6a0358dedcfa61048785fc114217f..eb1db4e991f0aa9bff556c4aff0f607e61f68001 100644 --- a/src/plugins/value/gui_files/register_gui.mli +++ b/src/plugins/value/gui_files/register_gui.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/legacy/eval_annots.ml b/src/plugins/value/legacy/eval_annots.ml index 87eaf8c5a645cbe31e73a729cdb23822c9dfa4cb..e81cf164105c817b09af211696cd504a5c6ca7b7 100644 --- a/src/plugins/value/legacy/eval_annots.ml +++ b/src/plugins/value/legacy/eval_annots.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/legacy/eval_annots.mli b/src/plugins/value/legacy/eval_annots.mli index 0d142c044c522fef06eca32c62a90a53aa67261a..615cb9b0190583e182d34ed3549b116420141fd5 100644 --- a/src/plugins/value/legacy/eval_annots.mli +++ b/src/plugins/value/legacy/eval_annots.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/legacy/eval_op.ml b/src/plugins/value/legacy/eval_op.ml index 9d71ea3b085fb3b8706c1162294f007d59969fc3..ce1da249d7ff3a4dc6ddf6b9b77d02544940d87f 100644 --- a/src/plugins/value/legacy/eval_op.ml +++ b/src/plugins/value/legacy/eval_op.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/legacy/eval_op.mli b/src/plugins/value/legacy/eval_op.mli index d9b3c013e096838e54102819ac9c92151425a697..a50dbf5673ea90f5b762553805b77c48e0bbeb5f 100644 --- a/src/plugins/value/legacy/eval_op.mli +++ b/src/plugins/value/legacy/eval_op.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/legacy/eval_terms.ml b/src/plugins/value/legacy/eval_terms.ml index b020a7e58cbfaf6defce3089cead6f710d3862da..1b237eb589ee34e3a7dd7d79530a7dbabe304302 100644 --- a/src/plugins/value/legacy/eval_terms.ml +++ b/src/plugins/value/legacy/eval_terms.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/legacy/eval_terms.mli b/src/plugins/value/legacy/eval_terms.mli index 8afa6108f9ecef98c10944ab60c7ec2b24a7e325..6f8c8f5334b54504e3ccafaa95d2f48351c0ad50 100644 --- a/src/plugins/value/legacy/eval_terms.mli +++ b/src/plugins/value/legacy/eval_terms.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/legacy/function_args.ml b/src/plugins/value/legacy/function_args.ml index 7aa5f25fde6bf47297dcdcb3733bec6eb20f75c1..9db8d461bfeb742479e496bc1521bea71f4881ad 100644 --- a/src/plugins/value/legacy/function_args.ml +++ b/src/plugins/value/legacy/function_args.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/legacy/function_args.mli b/src/plugins/value/legacy/function_args.mli index e2bd17bfb39fd19f5c33c2de87a8e07dad801e0e..b37af105c94ad5fa82a19265cbc57c0657b8b611 100644 --- a/src/plugins/value/legacy/function_args.mli +++ b/src/plugins/value/legacy/function_args.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/register.ml b/src/plugins/value/register.ml index 7a4d0873531b213f01e070a0b594a17bf565dae2..2c7b988317afb6be1d88c75938e1ede69361e660 100644 --- a/src/plugins/value/register.ml +++ b/src/plugins/value/register.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/register.mli b/src/plugins/value/register.mli index 290b8de3083d37543b1acb4f00e1dbd1eb5f783e..4ed6b42d7f17f9b73bfdf65d4e90b79e9cb0c706 100644 --- a/src/plugins/value/register.mli +++ b/src/plugins/value/register.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/slevel/per_stmt_slevel.ml b/src/plugins/value/slevel/per_stmt_slevel.ml index b5a596bb4eeb9f514c200b8bf20093ecc1023d62..6d07d943e250a6db6bd7007a021c8a5a46aef69c 100644 --- a/src/plugins/value/slevel/per_stmt_slevel.ml +++ b/src/plugins/value/slevel/per_stmt_slevel.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/slevel/per_stmt_slevel.mli b/src/plugins/value/slevel/per_stmt_slevel.mli index 1a930ee2b3468339af1bac76003acbcf5de63b11..9da6b39a44eed6afc1ffc90a09b4d926a2481f70 100644 --- a/src/plugins/value/slevel/per_stmt_slevel.mli +++ b/src/plugins/value/slevel/per_stmt_slevel.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/slevel/split_strategy.ml b/src/plugins/value/slevel/split_strategy.ml index 9b2ccd3224dd25de32127ab56978ad5c19a6e44d..9ab22e48e569688454dd2bb2a64bd81b07646e44 100644 --- a/src/plugins/value/slevel/split_strategy.ml +++ b/src/plugins/value/slevel/split_strategy.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -80,7 +80,7 @@ let of_string s = let r = Str.regexp ":" in let conv s = try Integer.of_string s - with Failure _ -> raise (ParseFailure s) + with Invalid_argument _ -> raise (ParseFailure s) in SplitEqList (List.map conv (Str.split r s)) let to_string = function diff --git a/src/plugins/value/slevel/split_strategy.mli b/src/plugins/value/slevel/split_strategy.mli index 85b7bda61d4ca0d365fa01908386a951967ad45b..68b35e3c53523b38c3a2f815c39c748cda508476 100644 --- a/src/plugins/value/slevel/split_strategy.mli +++ b/src/plugins/value/slevel/split_strategy.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/test.assert.sh b/src/plugins/value/test.assert.sh index a68048c098cfaf3fd9d18a030b03d7c412581785..38049b28c4c8d1e44620765127875b5d1773f8db 100755 --- a/src/plugins/value/test.assert.sh +++ b/src/plugins/value/test.assert.sh @@ -14,7 +14,7 @@ gcc $GCC3264 -pipe t$N.a.i $CSMITH/dump_assert_nop-$FRAMAC3264.o -o e$N rcexec=$? if [[ $rcexec != 127 && $rcexec != 152 && $rcexec != 137 ]] then - ( ulimit -S -t 18000 -m 2500000 ; exec ~/ppc/bin/toplevel.opt -no-collapse-call-cast -slevel-function main:0 -no-results -warn-signed-overflow -val t$N.a.i -no-val-show-progress -machdep $FRAMAC3264 -precise-unions > res$N.value ) + ( ulimit -S -t 18000 -m 2500000 ; exec ~/ppc/bin/toplevel.opt -no-collapse-call-cast -slevel-function main:0 -no-results -warn-signed-overflow -eva t$N.a.i -eva-no-show-progress -machdep $FRAMAC3264 -precise-unions > res$N.value ) rc=$? if grep imprecise res$N.value then diff --git a/src/plugins/value/test.sh b/src/plugins/value/test.sh index 8cfbcc5b403c19145934a1d2ddc19d376ed14a56..1c19540871f090abbdb78f4ee1c4eda1b8f15625 100755 --- a/src/plugins/value/test.sh +++ b/src/plugins/value/test.sh @@ -15,7 +15,7 @@ if [[ $rcexec != 152 && $rcexec != 137 ]] then if grep "user.0m0.0[01]" time$N then - ( ulimit -S -t 18000 -m 2500000 ; exec ~/ppc/bin/toplevel.opt -warn-signed-overflow -val t$N.i -stop-at-first-alarm -no-val-show-progress -machdep $FRAMAC3264 -obviously-terminates -precise-unions > res$N.value ) + ( ulimit -S -t 18000 -m 2500000 ; exec ~/ppc/bin/toplevel.opt -warn-signed-overflow -eva t$N.i -stop-at-first-alarm -eva-no-show-progress -machdep $FRAMAC3264 -obviously-terminates -precise-unions > res$N.value ) rc=$? if grep imprecise res$N.value then diff --git a/src/plugins/value/utils/backward_formals.ml b/src/plugins/value/utils/backward_formals.ml index 92890ea9d83a7fcbd91114c8a18169c27699b828..d7be9c99b5b18ff1c74af1fde6d2234fb94a26da 100644 --- a/src/plugins/value/utils/backward_formals.ml +++ b/src/plugins/value/utils/backward_formals.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/utils/backward_formals.mli b/src/plugins/value/utils/backward_formals.mli index f94bdb657990b17332a640d2fd9933c4f3929f08..9e5cfddf70a64ef45b05ae99060d272d97c35203 100644 --- a/src/plugins/value/utils/backward_formals.mli +++ b/src/plugins/value/utils/backward_formals.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/utils/eval_typ.ml b/src/plugins/value/utils/eval_typ.ml index b32fb9967cfac7ac90ae8e70dab3ade910023c19..d749568e9f5bb57c6b531f14ef9d693a76856e19 100644 --- a/src/plugins/value/utils/eval_typ.ml +++ b/src/plugins/value/utils/eval_typ.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/utils/eval_typ.mli b/src/plugins/value/utils/eval_typ.mli index 95eb4c0f4205f95a7e97b7998a519f36945dc60f..ed2cdd50fecc1b0df0244d3ea86bad8db0d38fe3 100644 --- a/src/plugins/value/utils/eval_typ.mli +++ b/src/plugins/value/utils/eval_typ.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/utils/library_functions.ml b/src/plugins/value/utils/library_functions.ml index 3fe6e14423bd51ab084fc456529b6b677725e6ea..0cb2c758547d844a1af22eb5b4376b1d3c459a98 100644 --- a/src/plugins/value/utils/library_functions.ml +++ b/src/plugins/value/utils/library_functions.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/utils/library_functions.mli b/src/plugins/value/utils/library_functions.mli index b022aa4fe880bc6b28e816d586f2996db75c2469..39ac19bb895faf7c8acff10e373024bc96d0bd88 100644 --- a/src/plugins/value/utils/library_functions.mli +++ b/src/plugins/value/utils/library_functions.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/utils/mark_noresults.ml b/src/plugins/value/utils/mark_noresults.ml index 6835134d2350db10d766c391818e20d785091301..17243d0575b3e248058347c73e26bdd47e564797 100644 --- a/src/plugins/value/utils/mark_noresults.ml +++ b/src/plugins/value/utils/mark_noresults.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/utils/red_statuses.ml b/src/plugins/value/utils/red_statuses.ml index 9703fc1cc626a4203bed2b4a227fbaa7daa1985d..016ab1eedc87bec67799bc703b2c2f783f61c343 100644 --- a/src/plugins/value/utils/red_statuses.ml +++ b/src/plugins/value/utils/red_statuses.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/utils/red_statuses.mli b/src/plugins/value/utils/red_statuses.mli index aab3c842eb17c00682661c7a009391837ca865bf..8c6402fddee0c5cdc05b0c0eb5276f21acac5be6 100644 --- a/src/plugins/value/utils/red_statuses.mli +++ b/src/plugins/value/utils/red_statuses.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/utils/state_import.ml b/src/plugins/value/utils/state_import.ml index e2b8b75cbb8076fa08be3c224a98790cbd36829c..a9416c835aff3982f9930deeaf01dbe65110d412 100644 --- a/src/plugins/value/utils/state_import.ml +++ b/src/plugins/value/utils/state_import.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/utils/state_import.mli b/src/plugins/value/utils/state_import.mli index d876e3896c3f2bf10ad80edcc15d88ef9a35ff58..91c1c43e9149888c1ee16b811c93561aa3915f36 100644 --- a/src/plugins/value/utils/state_import.mli +++ b/src/plugins/value/utils/state_import.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/utils/structure.ml b/src/plugins/value/utils/structure.ml index 0bb9ceff120d4d35e6409361709d89f2eab99866..af63dc0f92d72a2a76c7fa92211b4802e02d1cc5 100644 --- a/src/plugins/value/utils/structure.ml +++ b/src/plugins/value/utils/structure.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/utils/structure.mli b/src/plugins/value/utils/structure.mli index 0a9c35a199988b2f77f7a324a31822931a18432c..9d52978f6930c2a52e2231c8bb41468ce4ca24e6 100644 --- a/src/plugins/value/utils/structure.mli +++ b/src/plugins/value/utils/structure.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/utils/unroll_annots.ml b/src/plugins/value/utils/unroll_annots.ml index 53ee56b7bc884e132682503dbaf237e4ef04784b..8ef330e7a56731f5a03e374463a54299eb1d380d 100644 --- a/src/plugins/value/utils/unroll_annots.ml +++ b/src/plugins/value/utils/unroll_annots.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/utils/unroll_annots.mli b/src/plugins/value/utils/unroll_annots.mli index c6bbbc78cd62505c26c6f8d35a91d5ff4c0d98c0..f47d4f9ea36ca3fc749f09f85f500c0e6db00255 100644 --- a/src/plugins/value/utils/unroll_annots.mli +++ b/src/plugins/value/utils/unroll_annots.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/utils/value_perf.ml b/src/plugins/value/utils/value_perf.ml index 71e990cdb7a8c41d31eb1afe4e50c70f9ce97cb7..9476dbbb11f8dd59b13b986fb989f0bb918a95a2 100644 --- a/src/plugins/value/utils/value_perf.ml +++ b/src/plugins/value/utils/value_perf.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/utils/value_perf.mli b/src/plugins/value/utils/value_perf.mli index 4fe17c229aa24e99a532e638899dbb606fe30595..71a78b8802f814e6c8c5f06a27ca4664d3d90faa 100644 --- a/src/plugins/value/utils/value_perf.mli +++ b/src/plugins/value/utils/value_perf.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/utils/value_results.ml b/src/plugins/value/utils/value_results.ml index 7ec7a62390f818c967fd831a1925592eefc71e26..c9db33d1cca57a42727963b1c262e568220b01df 100644 --- a/src/plugins/value/utils/value_results.ml +++ b/src/plugins/value/utils/value_results.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/utils/value_results.mli b/src/plugins/value/utils/value_results.mli index 24ca466621275c913b1c59d97ac56e69fd72fe64..ae92d8878ad5f6a6dd35716ef6a6fdac8abbae83 100644 --- a/src/plugins/value/utils/value_results.mli +++ b/src/plugins/value/utils/value_results.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/utils/value_util.ml b/src/plugins/value/utils/value_util.ml index 0a9f4e8d73e9d4a104df8f3bb8b8a49d8c21ff08..db6e355de381ed3b50f4901515712679478e4972 100644 --- a/src/plugins/value/utils/value_util.ml +++ b/src/plugins/value/utils/value_util.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -269,8 +269,9 @@ let rec zone_of_expr find_loc expr = (* dereference of an lvalue: first, its address must be computed, then its contents themselves are read *) and zone_of_lval find_loc lval = - let loc = find_loc lval in - let zone = Locations.enumerate_bits (Precise_locs.imprecise_location loc) in + let ploc = find_loc lval in + let loc = Precise_locs.imprecise_location ploc in + let zone = Locations.enumerate_valid_bits ~for_writing:false loc in Locations.Zone.join zone (indirect_zone_of_lval find_loc lval) diff --git a/src/plugins/value/utils/value_util.mli b/src/plugins/value/utils/value_util.mli index c405b30931ba221f90b62163c0570f8f551a82ea..a631d797987bfab295360fc4b9e837bcaf042922 100644 --- a/src/plugins/value/utils/value_util.mli +++ b/src/plugins/value/utils/value_util.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -115,7 +115,7 @@ val height_lval: lval -> int val skip_specifications: kernel_function -> bool (** Should we skip the specifications of this function, according to - [-val-skip-stdlib-specs] *) + [-eva-skip-stdlib-specs] *) (* Local Variables: diff --git a/src/plugins/value/utils/widen.ml b/src/plugins/value/utils/widen.ml index e54fd1dac304e5d58527c46088ffee2832310ecf..2356d40a5625ee76dca0b91c517da77d1160d3e7 100644 --- a/src/plugins/value/utils/widen.ml +++ b/src/plugins/value/utils/widen.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/utils/widen.mli b/src/plugins/value/utils/widen.mli index 9d0697f9145e39d5d85de83e610071c203e20e57..283459456db5881ad44fa1aeef2dd4be2f6ed06c 100644 --- a/src/plugins/value/utils/widen.mli +++ b/src/plugins/value/utils/widen.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/utils/widen_hints_ext.ml b/src/plugins/value/utils/widen_hints_ext.ml index 122fa78c73ef554368db5d580e86a72bffb62a15..4917e6810c90b5d0d315a24bde976b79dd1442db 100644 --- a/src/plugins/value/utils/widen_hints_ext.ml +++ b/src/plugins/value/utils/widen_hints_ext.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/utils/widen_hints_ext.mli b/src/plugins/value/utils/widen_hints_ext.mli index ce4b5a15631c92bfb4ca88d6dfeebea5b4573edf..fc66e3f6ba84fff2d9738f5cc1e0597f55012955 100644 --- a/src/plugins/value/utils/widen_hints_ext.mli +++ b/src/plugins/value/utils/widen_hints_ext.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/value_parameters.ml b/src/plugins/value/value_parameters.ml index 5e3234f75f8b2094bf7900a1f20b1b64516d4849..7eda5b6c514775c67657840a9e3910d2109fec0a 100644 --- a/src/plugins/value/value_parameters.ml +++ b/src/plugins/value/value_parameters.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -90,8 +90,12 @@ let () = set_warn_status wkey_garbled_mix Log.Winactive let wkey_builtins_missing_spec = register_warn_category "builtins:missing-spec" let wkey_builtins_override = register_warn_category "builtins:override" let wkey_libc_unsupported_spec = register_warn_category "libc:unsupported-spec" -let wkey_loop_unrolling = register_warn_category "loop-unrolling" -let () = set_warn_status wkey_loop_unrolling Log.Wfeedback +let wkey_loop_unroll = register_warn_category "loop-unroll" +let () = set_warn_status wkey_loop_unroll Log.Wfeedback +let wkey_missing_loop_unroll = register_warn_category "missing-loop-unroll" +let () = set_warn_status wkey_missing_loop_unroll Log.Winactive +let wkey_missing_loop_unroll_for = register_warn_category "missing-loop-unroll:for" +let () = set_warn_status wkey_missing_loop_unroll_for Log.Winactive module ForceValues = WithOutput diff --git a/src/plugins/value/value_parameters.mli b/src/plugins/value/value_parameters.mli index 65bf98a6d20653d1cb99aeba7e07282495bbbe1f..66b79243da3954408a1b7a1bddf828ecf4d4fb82 100644 --- a/src/plugins/value/value_parameters.mli +++ b/src/plugins/value/value_parameters.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -180,7 +180,13 @@ val wkey_builtins_override: warn_category val wkey_libc_unsupported_spec : warn_category (** Warning category used for "loop not completely unrolled" *) -val wkey_loop_unrolling : warn_category +val wkey_loop_unroll : warn_category + +(** Warning category used to identify loops without unroll annotations *) +val wkey_missing_loop_unroll : warn_category + +(** Warning category used to identify for loops without unroll annotations *) +val wkey_missing_loop_unroll_for : warn_category (** Debug category used to print information about invalid pointer comparisons*) val dkey_pointer_comparison: category diff --git a/src/plugins/value/values/abstract_location.mli b/src/plugins/value/values/abstract_location.mli index 8045f9a568dff9c4c7e4bd5d843ddc746a1c072d..2c7266aa87353cdcf86e012121bc23f026d2d010 100644 --- a/src/plugins/value/values/abstract_location.mli +++ b/src/plugins/value/values/abstract_location.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/values/abstract_value.mli b/src/plugins/value/values/abstract_value.mli index abffc3316d89f99ff61bed3a5537afe424c55750..28fec80b0e53acad4535b0655b86601a5e0b690d 100644 --- a/src/plugins/value/values/abstract_value.mli +++ b/src/plugins/value/values/abstract_value.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/values/cvalue_backward.ml b/src/plugins/value/values/cvalue_backward.ml index 06fd996ee2fbf8609a11a106cb3cbcb818d12612..64356b2faf5b109a805661bcc8fcd0a6ca891e67 100644 --- a/src/plugins/value/values/cvalue_backward.ml +++ b/src/plugins/value/values/cvalue_backward.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -200,7 +200,6 @@ let _backward_mult typ v1 v2 res_value = let backward_band ~v1 ~v2 ~res typ = let size = Cil.bitsSizeOf typ in let signed = Bit_utils.is_signed_int_enum_pointer typ in - let bitwise_and = V.bitwise_and ~size ~signed in (* Reduction of a when a & b = res. *) let backward_band_aux a b = (* For each bit, if a & _ = 1 then a = 1. [a1] is [a] with all such bits at 1 @@ -210,21 +209,18 @@ let backward_band ~v1 ~v2 ~res typ = (for the others, not (xor res b) = 1 and this bitwise_and has no effect on a). *) let a2 = - bitwise_and a (V.bitwise_not_size ~size ~signed (V.bitwise_xor res b)) + V.bitwise_and a (V.bitwise_not ~size ~signed (V.bitwise_xor res b)) in V.narrow a1 a2 in backward_band_aux v1 v2, backward_band_aux v2 v1 -let backward_bor ~v1 ~v2 ~res typ = - let size = Cil.bitsSizeOf typ in - let signed = Bit_utils.is_signed_int_enum_pointer typ in - let bitwise_and = V.bitwise_and ~size ~signed in +let backward_bor ~v1 ~v2 ~res = (* Reduction of a when a | b = res. *) let backward_bor_aux a b = (* For each bit, if a | _ = 0 then a = 0. [a1] is [a] with all such bits at 0 (for the others, res = 1 and this bitwise_and has no effect on a). *) - let a1 = bitwise_and res a in + let a1 = V.bitwise_and res a in (* For each bit, if a | 0 = 1 then a = 1. [a2] is [a] with all such bits at 1 (for the others, xor res b = 0 and this bitwise_or has no effect on a). *) let a2 = V.bitwise_or (V.bitwise_xor res b) a in @@ -305,7 +301,7 @@ let backward_binop ~typ_res ~res_value ~typ_e1 v1 binop v2 = | BAnd, TInt _ -> Some (backward_band ~v1 ~v2 ~res:res_value typ) - | BOr, TInt _ -> Some (backward_bor ~v1 ~v2 ~res:res_value typ) + | BOr, TInt _ -> Some (backward_bor ~v1 ~v2 ~res:res_value) | _, _ -> None diff --git a/src/plugins/value/values/cvalue_backward.mli b/src/plugins/value/values/cvalue_backward.mli index aa45654c89426fa541266ac01f8f71d7ca6898fe..ff2ea2825d067a749fab17b0354fbaabd6da3592 100644 --- a/src/plugins/value/values/cvalue_backward.mli +++ b/src/plugins/value/values/cvalue_backward.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/values/cvalue_forward.ml b/src/plugins/value/values/cvalue_forward.ml index dfa37387807a03fdf09fbde858a8578df40e937c..9051330001c931db8f5ab8ba54637a8e4bf402c5 100644 --- a/src/plugins/value/values/cvalue_forward.ml +++ b/src/plugins/value/values/cvalue_forward.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -338,10 +338,7 @@ let forward_binop_int ~typ ev1 op ev2 = | Shiftlt -> V.shift_left ev1 ev2 | BXor -> V.bitwise_xor ev1 ev2 | BOr -> V.bitwise_or ev1 ev2 - | BAnd -> - let size = Cil.bitsSizeOf typ in - let signed = Bit_utils.is_signed_int_enum_pointer typ in - V.bitwise_and ~size ~signed ev1 ev2 + | BAnd -> V.bitwise_and ev1 ev2 (* Strict evaluation. The caller of this function is supposed to take into account the laziness of those operators itself *) | LOr -> @@ -404,7 +401,7 @@ let forward_unop typ op value = | TInt (ik, _) | TEnum ({ekind=ik}, _) -> let size = Cil.bitsSizeOfInt ik in let signed = Cil.isSigned ik in - V.bitwise_not_size ~signed ~size value + V.bitwise_not ~signed ~size value | _ -> assert false end | LNot -> diff --git a/src/plugins/value/values/cvalue_forward.mli b/src/plugins/value/values/cvalue_forward.mli index e3dd0ec771be750523e503c156768f1f86d15b96..4196228166df01aa55f908cd7655ae54fdb071b6 100644 --- a/src/plugins/value/values/cvalue_forward.mli +++ b/src/plugins/value/values/cvalue_forward.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/values/location_lift.ml b/src/plugins/value/values/location_lift.ml index 1ef5e92f7429675b3d401d76164fb5d20404494c..ce5ae27c8641259ef90652d9d36dffffee6ad2bf 100644 --- a/src/plugins/value/values/location_lift.ml +++ b/src/plugins/value/values/location_lift.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/values/location_lift.mli b/src/plugins/value/values/location_lift.mli index 4fbcd262fa8905360d2e07500de6f2d6643aa35f..1eb2d98d38c1da61d05b0891f7e6f88cda650e87 100644 --- a/src/plugins/value/values/location_lift.mli +++ b/src/plugins/value/values/location_lift.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/values/main_locations.ml b/src/plugins/value/values/main_locations.ml index ba547df614f9d6e0d44b29f715f2b5f3414c980b..3645e0e14d083b08ac4c3f6e9908415602b18d1f 100644 --- a/src/plugins/value/values/main_locations.ml +++ b/src/plugins/value/values/main_locations.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/values/main_locations.mli b/src/plugins/value/values/main_locations.mli index 976f6ca01e96bcc0dcdb7f48cd427355d56e7490..28d11c16b762f742bdcc3364c4d01de67d6ca0c3 100644 --- a/src/plugins/value/values/main_locations.mli +++ b/src/plugins/value/values/main_locations.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/values/main_values.ml b/src/plugins/value/values/main_values.ml index 838588191bf20919c58d9c9aaeab8f4666eb9699..155133c9fc98f532e16842e46134d19220b4096c 100644 --- a/src/plugins/value/values/main_values.ml +++ b/src/plugins/value/values/main_values.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/values/main_values.mli b/src/plugins/value/values/main_values.mli index 0aadefff4e30185f9c661cf6a3850eca406b1a81..fd148fcfcc5208e58353e0a847249b4d715a3c14 100644 --- a/src/plugins/value/values/main_values.mli +++ b/src/plugins/value/values/main_values.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/values/numerors/numerors_arithmetics.ml b/src/plugins/value/values/numerors/numerors_arithmetics.ml index ca4a121106d215bce1c773bba7fd2db44f6d9688..d4c6fb2559c4abea9155fb49a663962fb8ec6540 100644 --- a/src/plugins/value/values/numerors/numerors_arithmetics.ml +++ b/src/plugins/value/values/numerors/numerors_arithmetics.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/values/numerors/numerors_arithmetics.mli b/src/plugins/value/values/numerors/numerors_arithmetics.mli index 26b87324db689649790776ef5ff82f9a77652811..6e30d9c1c793f729c398c29d61ced85bb2ae1308 100644 --- a/src/plugins/value/values/numerors/numerors_arithmetics.mli +++ b/src/plugins/value/values/numerors/numerors_arithmetics.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/values/numerors/numerors_float.ml b/src/plugins/value/values/numerors/numerors_float.ml index b57d99f90868468f27d587fabbc4df2da2856a70..a080a79ed23030f7fee606fc0868747c9226e17d 100644 --- a/src/plugins/value/values/numerors/numerors_float.ml +++ b/src/plugins/value/values/numerors/numerors_float.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/values/numerors/numerors_float.mli b/src/plugins/value/values/numerors/numerors_float.mli index e1ce8a3fcf482487a22c97b75dd6a0d3912ef419..2f673a73003824d3cb1d275980c773797a84a579 100644 --- a/src/plugins/value/values/numerors/numerors_float.mli +++ b/src/plugins/value/values/numerors/numerors_float.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/values/numerors/numerors_interval.ml b/src/plugins/value/values/numerors/numerors_interval.ml index fd14446bf90481716601a94e0ce1670192344873..bb9f4c20a7d2b931b41a6d160b0bc5c07bc3191e 100644 --- a/src/plugins/value/values/numerors/numerors_interval.ml +++ b/src/plugins/value/values/numerors/numerors_interval.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/values/numerors/numerors_interval.mli b/src/plugins/value/values/numerors/numerors_interval.mli index 4a5a13318c2112154a0e7d4004f492ec756fb467..158f875c67345ee2bf6cbc58962c48e308f5de61 100644 --- a/src/plugins/value/values/numerors/numerors_interval.mli +++ b/src/plugins/value/values/numerors/numerors_interval.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/values/numerors/numerors_utils.ml b/src/plugins/value/values/numerors/numerors_utils.ml index c0c27d7e2a6d21780869c7c4ad6d0b34dd7cfade..b456540037a4cf3864cdd94c2955030e80216a6a 100644 --- a/src/plugins/value/values/numerors/numerors_utils.ml +++ b/src/plugins/value/values/numerors/numerors_utils.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/values/numerors/numerors_utils.mli b/src/plugins/value/values/numerors/numerors_utils.mli index e985cb5d7ee786b165e782b7532c861153788352..e44fa0b29c6e70b5e6fe0c05286473a2d23f6b1c 100644 --- a/src/plugins/value/values/numerors/numerors_utils.mli +++ b/src/plugins/value/values/numerors/numerors_utils.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/values/numerors/numerors_value.ml b/src/plugins/value/values/numerors/numerors_value.ml index 1c1b1bfc95b294f76ceb928d58577cafd7d403ae..8fa47dc923f6337a7a09483991e497cb2d08da7f 100644 --- a/src/plugins/value/values/numerors/numerors_value.ml +++ b/src/plugins/value/values/numerors/numerors_value.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/values/numerors/numerors_value.mli b/src/plugins/value/values/numerors/numerors_value.mli index 96663a724fc4f238386d20fc24a7905607da850b..d73b689cd75ca60a4fe10a2cb2eaad9bc625d97a 100644 --- a/src/plugins/value/values/numerors/numerors_value.mli +++ b/src/plugins/value/values/numerors/numerors_value.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/values/offsm_value.ml b/src/plugins/value/values/offsm_value.ml index faccc93f4dae5d61bef5df6cd25ae4beb357e9b1..ad5cffc13e11f7d514c14e8a0ce508935d8a8d2d 100644 --- a/src/plugins/value/values/offsm_value.ml +++ b/src/plugins/value/values/offsm_value.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -244,8 +244,7 @@ let aux_and (b, e) (vv1: offsm_range) (vv2: offsm_range) = of inverse sign. extract_bits generate always positive integers, which is good. The good solution would be have V.bitwise_and to accept both signs simultaneously. *) - let f = V.bitwise_and ~signed:false ~size:(Integer.to_int size) in - lift f size vv1 vv2 + lift V.bitwise_and size vv1 vv2 (* O is neutral for xor, and v ^ v = 0 *) let aux_xor (b, e) (vv1: offsm_range) (vv2: offsm_range) = @@ -346,7 +345,7 @@ let cast ~old_size ~new_size ~signed o = let bnot o = let aux itv (v, s, rel) o = - let v' = V_Or_Uninitialized.map V.bitwise_not v in + let v' = V_Or_Uninitialized.map V.bitwise_signed_not v in V_Offsetmap.add ~exact:true itv (v', s, rel) o in V_Offsetmap.fold aux o o diff --git a/src/plugins/value/values/offsm_value.mli b/src/plugins/value/values/offsm_value.mli index cedd4c2d50911b05970d72e569f71ff7b7ad6a72..1ad67480937996b32bffb54068b50d30ec4ef640 100644 --- a/src/plugins/value/values/offsm_value.mli +++ b/src/plugins/value/values/offsm_value.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/values/sign_value.ml b/src/plugins/value/values/sign_value.ml index 8f980b33d015ba7e5dc25bc63022a9fd0a402fcc..2a6908fcf334bc60a6ace07bf11fbdeeb28be111 100644 --- a/src/plugins/value/values/sign_value.ml +++ b/src/plugins/value/values/sign_value.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/values/sign_value.mli b/src/plugins/value/values/sign_value.mli index ab680b44d2b17aee74010c6bb113be034f00103f..14deeda643e120747070f6106980b9acb1d5494f 100644 --- a/src/plugins/value/values/sign_value.mli +++ b/src/plugins/value/values/sign_value.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/values/value_product.ml b/src/plugins/value/values/value_product.ml index 948475014791a74364455213fd777ff7a13f7446..131d47bfa680cd438e8146e4de79bcf1a3b99d29 100644 --- a/src/plugins/value/values/value_product.ml +++ b/src/plugins/value/values/value_product.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/values/value_product.mli b/src/plugins/value/values/value_product.mli index b2ed9ee170df4eb1cdda87492674494c814e1ee3..f6369ee2efd75c5241cb13ca4243de875428f610 100644 --- a/src/plugins/value/values/value_product.mli +++ b/src/plugins/value/values/value_product.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value_types/cilE.ml b/src/plugins/value_types/cilE.ml index d78ee56ab881fba193b00b7b34b218c95f2a4c0b..5636a43d9e76432a01a8ed2084cf85f0d4ff8ecb 100644 --- a/src/plugins/value_types/cilE.ml +++ b/src/plugins/value_types/cilE.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value_types/cilE.mli b/src/plugins/value_types/cilE.mli index d74af69de2cb1e0371181e27cfbf0d09a5670757..64dacbc5d17aca92a2582d59d3056170658d44b9 100644 --- a/src/plugins/value_types/cilE.mli +++ b/src/plugins/value_types/cilE.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value_types/cvalue.ml b/src/plugins/value_types/cvalue.ml index 3774848d76af67fef09c41c73da4d4e624609d5b..0801bc27aeaae7fe35af12942c61d04ab113c446 100644 --- a/src/plugins/value_types/cvalue.ml +++ b/src/plugins/value_types/cvalue.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -586,27 +586,27 @@ module V = struct else import_function ~topify:Origin.K_Arith Ival.bitwise_or v1 v2 - let bitwise_and ~signed ~size v1 v2 = + let bitwise_and v1 v2 = if equal v1 v2 && cardinal_zero_or_one v1 then v1 else - let f i1 i2 = Ival.bitwise_and ~size ~signed i1 i2 in + let f i1 i2 = Ival.bitwise_and i1 i2 in import_function ~topify:Origin.K_Arith f v1 v2 let shift_right e1 e2 = arithmetic_function Ival.shift_right e1 e2 - let bitwise_not v = + let bitwise_signed_not v = try let i = project_ival v in - inject_ival (Ival.bitwise_not i) + inject_ival (Ival.bitwise_signed_not i) with Not_based_on_null -> topify_arith_origin v - let bitwise_not_size ~signed ~size v = + let bitwise_not ~size ~signed v = try let i = project_ival v in - inject_ival (Ival.bitwise_not_size ~size ~signed i) + inject_ival (Ival.bitwise_not ~size ~signed i) with Not_based_on_null -> topify_arith_origin v - + let extract_bits ~topify ~start ~stop ~size v = try let i = project_ival_bottom v in @@ -635,7 +635,7 @@ module V = struct if Integer.is_zero factor then v else topify_with_origin_kind topify v - | Integer.Too_big -> top_int + | Z.Overflow -> top_int let restrict_topint_to_size value size = if is_topint value diff --git a/src/plugins/value_types/cvalue.mli b/src/plugins/value_types/cvalue.mli index cfb06aadf7cdc90eb736c61d137c5e05bac721ec..050be2bc75fa411d4c3a971f1c5366e597aac08c 100644 --- a/src/plugins/value_types/cvalue.mli +++ b/src/plugins/value_types/cvalue.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -135,11 +135,11 @@ module V : sig val c_rem: t -> t -> t val shift_right: t -> t -> t val shift_left: t -> t -> t - val bitwise_and: signed:bool -> size:int -> t -> t -> t + val bitwise_and: t -> t -> t val bitwise_xor: t -> t -> t val bitwise_or : t -> t -> t - val bitwise_not: t -> t - val bitwise_not_size: signed:bool -> size:int -> t -> t + val bitwise_signed_not: t -> t + val bitwise_not: size:int -> signed:bool -> t -> t (** [all_values ~size v] returns true iff v contains all integer values representable in [size] bits. *) diff --git a/src/plugins/value_types/function_Froms.ml b/src/plugins/value_types/function_Froms.ml index 687906c47e166b429322d2aa1d8e7aa08871cfed..4fd759f702f1107d6c7c6cd8a7626235e56c6fc7 100644 --- a/src/plugins/value_types/function_Froms.ml +++ b/src/plugins/value_types/function_Froms.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value_types/function_Froms.mli b/src/plugins/value_types/function_Froms.mli index d2781866ad38a3daeb5dace5bfb48a4568fa038a..0c385d0254460a1a49b0e71bdef0a6be2dac09fd 100644 --- a/src/plugins/value_types/function_Froms.mli +++ b/src/plugins/value_types/function_Froms.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value_types/inout_type.ml b/src/plugins/value_types/inout_type.ml index 61f6e5af355eb835436e5f64ef3510a47861b334..e1215d02c1cbef10cae6fd63ad6f8d3e33cce9fc 100644 --- a/src/plugins/value_types/inout_type.ml +++ b/src/plugins/value_types/inout_type.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value_types/inout_type.mli b/src/plugins/value_types/inout_type.mli index 2609f0a542de28d2ea17e1119d600cc70630a479..9b3c40753085f610550f23d3db314609699b4be2 100644 --- a/src/plugins/value_types/inout_type.mli +++ b/src/plugins/value_types/inout_type.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value_types/precise_locs.ml b/src/plugins/value_types/precise_locs.ml index d1768d9ee197b28ae4c6bc0bd2290da3037e19b5..9d0eb8c75c7e121ae1b213838bcc975f50337be0 100644 --- a/src/plugins/value_types/precise_locs.ml +++ b/src/plugins/value_types/precise_locs.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value_types/precise_locs.mli b/src/plugins/value_types/precise_locs.mli index e2d1907544271b3058be88317e01aa178fb3e5e0..2ed59ce10ab8a729bfc076f87a4c58731256d525 100644 --- a/src/plugins/value_types/precise_locs.mli +++ b/src/plugins/value_types/precise_locs.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value_types/value_types.ml b/src/plugins/value_types/value_types.ml index 2af2fae927240061be7a72dc6b8eb92fbd6599c9..b35e493a677f3c3a654ff7835bab32018972ebd2 100644 --- a/src/plugins/value_types/value_types.ml +++ b/src/plugins/value_types/value_types.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value_types/value_types.mli b/src/plugins/value_types/value_types.mli index fb7297abd75f5d258384ac52b698bcdd352897f0..31e044c34ecb432616c8ab3d10b9571f3f126609 100644 --- a/src/plugins/value_types/value_types.mli +++ b/src/plugins/value_types/value_types.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value_types/widen_type.ml b/src/plugins/value_types/widen_type.ml index d30eaba6b121d1c72fd26caad2a4050ea330160c..7f05346b3e9d56a45b2dadca0d11a8f5cf87301d 100644 --- a/src/plugins/value_types/widen_type.ml +++ b/src/plugins/value_types/widen_type.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value_types/widen_type.mli b/src/plugins/value_types/widen_type.mli index b3fa02b6a85561a9af02014ba8eafe5a2e3cf63c..e017c3c17f7aab7600aeca22737eac6b22f8001c 100644 --- a/src/plugins/value_types/widen_type.mli +++ b/src/plugins/value_types/widen_type.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/variadic/Makefile.in b/src/plugins/variadic/Makefile.in index c57f5cbf9aeba86ea116b6be2f3e3d6358fe843d..da8434256a8abdd5193f66acd434b784d334aaa6 100644 --- a/src/plugins/variadic/Makefile.in +++ b/src/plugins/variadic/Makefile.in @@ -2,7 +2,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/src/plugins/variadic/Variadic.mli b/src/plugins/variadic/Variadic.mli index 943f778bca3727a58eddb17fa47d26f16e44d0ba..c1c6015cbe39ba3a17299024432c6a604b6f4de7 100644 --- a/src/plugins/variadic/Variadic.mli +++ b/src/plugins/variadic/Variadic.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/variadic/classify.ml b/src/plugins/variadic/classify.ml index 158c514e48827c4cfee7f721c0f4e6ba20716415..a5d940464abe384f438c75730f8bbfea3f7a3c63 100644 --- a/src/plugins/variadic/classify.ml +++ b/src/plugins/variadic/classify.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/variadic/configure.ac b/src/plugins/variadic/configure.ac index 7d4a3627f5f51c914f7136803da682702a1fd623..5deee2d144395ceceb3e14f13897e9808c61baf7 100644 --- a/src/plugins/variadic/configure.ac +++ b/src/plugins/variadic/configure.ac @@ -2,7 +2,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/src/plugins/variadic/environment.ml b/src/plugins/variadic/environment.ml index 50005f1648bbe6b7286f1f314ea610f4171d36b8..a99f08c3c917d87de489aace909f4f709d9d66b4 100644 --- a/src/plugins/variadic/environment.ml +++ b/src/plugins/variadic/environment.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/variadic/extends.ml b/src/plugins/variadic/extends.ml index 0be934087b468897db3e4d4679290ed5fa7ec744..3b796f36c97be94451b34b454527c86ec004f633 100644 --- a/src/plugins/variadic/extends.ml +++ b/src/plugins/variadic/extends.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/variadic/extends.mli b/src/plugins/variadic/extends.mli index 1dccf5b2e93528e26cf9c5c18f1cb56b280b6189..93f8e685daabc9cd856d1c19942679921ba8803f 100644 --- a/src/plugins/variadic/extends.mli +++ b/src/plugins/variadic/extends.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/variadic/format_parser.ml b/src/plugins/variadic/format_parser.ml index 048715ddd26b008501a989780b7e6c44db8a4b93..aa4d1471117bab1bfa394c5466a3f280426c8263 100644 --- a/src/plugins/variadic/format_parser.ml +++ b/src/plugins/variadic/format_parser.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/variadic/format_parser.mli b/src/plugins/variadic/format_parser.mli index b9b1182f69899e6995425417b19ef9a5c43e54bd..6c19d691ab107d3f376f450bbbbe333f84a3835d 100644 --- a/src/plugins/variadic/format_parser.mli +++ b/src/plugins/variadic/format_parser.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/variadic/format_pprint.ml b/src/plugins/variadic/format_pprint.ml index ed339e9acda5d726d0ba080c12ec6c64d2a13060..7951ada686cc750a931ec160a75b68739e1f567e 100644 --- a/src/plugins/variadic/format_pprint.ml +++ b/src/plugins/variadic/format_pprint.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/variadic/format_pprint.mli b/src/plugins/variadic/format_pprint.mli index 2dc8254848ed0666cf836c92142b94503e94e1a7..3dfcd1483c8c9df96c3b07ae37def0548a0ef976 100644 --- a/src/plugins/variadic/format_pprint.mli +++ b/src/plugins/variadic/format_pprint.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/variadic/format_string.ml b/src/plugins/variadic/format_string.ml index 41cd255bf813695945dc72bc8bf47e386c51c700..ee76a55cf2462f3da676d17dc45fa076f77789ff 100644 --- a/src/plugins/variadic/format_string.ml +++ b/src/plugins/variadic/format_string.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/variadic/format_typer.ml b/src/plugins/variadic/format_typer.ml index 16000ca2b965766a9ff9020d11e8db2e5db6a218..810347030ce58256d854ef8edd2f79e4949a7c6d 100644 --- a/src/plugins/variadic/format_typer.ml +++ b/src/plugins/variadic/format_typer.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/variadic/format_typer.mli b/src/plugins/variadic/format_typer.mli index 62fc72874d6054ffca5a75ea2755f7227eb3275b..ab2b84d48f4746e842ee01a24d0aaf5a3128b1d7 100644 --- a/src/plugins/variadic/format_typer.mli +++ b/src/plugins/variadic/format_typer.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/variadic/format_types.mli b/src/plugins/variadic/format_types.mli index ff41ed84f31dbf1796a22aede49ecb709ac5c2b8..c2e4b6fcc73afed182321ed85312d774673f0b05 100644 --- a/src/plugins/variadic/format_types.mli +++ b/src/plugins/variadic/format_types.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/variadic/generic.ml b/src/plugins/variadic/generic.ml index 19f5876a5766ddb286dea0f7f1bd20161c47e10b..ace7d6b5d8b31e3f93c60628c24609cec8fff14d 100644 --- a/src/plugins/variadic/generic.ml +++ b/src/plugins/variadic/generic.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/variadic/options.ml b/src/plugins/variadic/options.ml index 7a9c04df07a9c29390e99b2e755306ce166c39e9..c58347df44409c70f9ab5f686fc021329845fb04 100644 --- a/src/plugins/variadic/options.ml +++ b/src/plugins/variadic/options.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/variadic/options.mli b/src/plugins/variadic/options.mli index d73262bb0e7f0224964b4128d25421eb3750eb92..56f1a7fc9dd04733b326671120037cb9882edcf2 100644 --- a/src/plugins/variadic/options.mli +++ b/src/plugins/variadic/options.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/variadic/register.ml b/src/plugins/variadic/register.ml index 75443abd7d03cbe6d477a2284f9955b1fbf04b52..78be5dac81892b56a864f9f96d2161fe0725bec3 100644 --- a/src/plugins/variadic/register.ml +++ b/src/plugins/variadic/register.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/variadic/standard.ml b/src/plugins/variadic/standard.ml index 47d3b3efaec5c22acdc9544754ab4c35ed745748..af4fefa77c6ff1afd14bbe039b0a338210481b10 100644 --- a/src/plugins/variadic/standard.ml +++ b/src/plugins/variadic/standard.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/variadic/tests/known/oracle/print_libc.pretty.c b/src/plugins/variadic/tests/known/oracle/print_libc.pretty.c index 78b1f67254f4b3e518e44e833281bf69678f1dcb..284877a285f94ca211c4ebd5a8348246e422729c 100644 --- a/src/plugins/variadic/tests/known/oracle/print_libc.pretty.c +++ b/src/plugins/variadic/tests/known/oracle/print_libc.pretty.c @@ -12,7 +12,7 @@ \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int printf_va_1(char const *format); +int printf_va_1(char const * __restrict format); int main(void) { @@ -37,7 +37,7 @@ int main(void) \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int printf_va_1(char const *format); +int printf_va_1(char const * __restrict format); int main(void) { diff --git a/src/plugins/variadic/tests/known/oracle/printf.res.oracle b/src/plugins/variadic/tests/known/oracle/printf.res.oracle index 3b1f6578d437c9794821379b3c7521f520326b57..6468d9e5be5263ef8d9f565e6a6f053d9d7730bf 100644 --- a/src/plugins/variadic/tests/known/oracle/printf.res.oracle +++ b/src/plugins/variadic/tests/known/oracle/printf.res.oracle @@ -172,7 +172,7 @@ \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int printf_va_1(char const *format); +int printf_va_1(char const * __restrict format); /*@ requires valid_read_string(format); requires \valid(param1); @@ -192,7 +192,7 @@ int printf_va_1(char const *format); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), *(param0 + (0 ..)); */ -int printf_va_2(char const *format, char *param0, int *param1); +int printf_va_2(char const * __restrict format, char *param0, int *param1); /*@ requires valid_read_string(format); requires valid_read_wstring(param0); @@ -206,7 +206,7 @@ int printf_va_2(char const *format, char *param0, int *param1); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), *(param0 + (0 ..)); */ -int printf_va_3(char const *format, wchar_t *param0); +int printf_va_3(char const * __restrict format, wchar_t *param0); /*@ requires valid_read_string(format); requires \valid(param1); @@ -225,7 +225,8 @@ int printf_va_3(char const *format, wchar_t *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_4(char const *format, int param0, signed char *param1); +int printf_va_4(char const * __restrict format, int param0, + signed char *param1); /*@ requires valid_read_string(format); requires \valid(param1); @@ -244,7 +245,7 @@ int printf_va_4(char const *format, int param0, signed char *param1); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_5(char const *format, int param0, short *param1); +int printf_va_5(char const * __restrict format, int param0, short *param1); /*@ requires valid_read_string(format); requires \valid(param1); @@ -263,7 +264,7 @@ int printf_va_5(char const *format, int param0, short *param1); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_6(char const *format, int param0, long *param1); +int printf_va_6(char const * __restrict format, int param0, long *param1); /*@ requires valid_read_string(format); requires \valid(param1); @@ -282,7 +283,8 @@ int printf_va_6(char const *format, int param0, long *param1); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_7(char const *format, long param0, long long *param1); +int printf_va_7(char const * __restrict format, long param0, + long long *param1); /*@ requires valid_read_string(format); requires \valid(param1); @@ -301,7 +303,8 @@ int printf_va_7(char const *format, long param0, long long *param1); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_8(char const *format, long long param0, intmax_t *param1); +int printf_va_8(char const * __restrict format, long long param0, + intmax_t *param1); /*@ requires valid_read_string(format); requires \valid(param1); @@ -320,7 +323,8 @@ int printf_va_8(char const *format, long long param0, intmax_t *param1); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_9(char const *format, intmax_t param0, size_t *param1); +int printf_va_9(char const * __restrict format, intmax_t param0, + size_t *param1); /*@ requires valid_read_string(format); requires \valid(param1); @@ -339,7 +343,8 @@ int printf_va_9(char const *format, intmax_t param0, size_t *param1); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_10(char const *format, size_t param0, ptrdiff_t *param1); +int printf_va_10(char const * __restrict format, size_t param0, + ptrdiff_t *param1); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -352,7 +357,7 @@ int printf_va_10(char const *format, size_t param0, ptrdiff_t *param1); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_11(char const *format, ptrdiff_t param0); +int printf_va_11(char const * __restrict format, ptrdiff_t param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -365,7 +370,7 @@ int printf_va_11(char const *format, ptrdiff_t param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_12(char const *format, unsigned int param0); +int printf_va_12(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -378,7 +383,7 @@ int printf_va_12(char const *format, unsigned int param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_13(char const *format, int param0); +int printf_va_13(char const * __restrict format, int param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -391,7 +396,7 @@ int printf_va_13(char const *format, int param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_14(char const *format, int param0); +int printf_va_14(char const * __restrict format, int param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -404,7 +409,7 @@ int printf_va_14(char const *format, int param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_15(char const *format, unsigned long param0); +int printf_va_15(char const * __restrict format, unsigned long param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -417,7 +422,7 @@ int printf_va_15(char const *format, unsigned long param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_16(char const *format, unsigned long long param0); +int printf_va_16(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -430,7 +435,7 @@ int printf_va_16(char const *format, unsigned long long param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_17(char const *format, uintmax_t param0); +int printf_va_17(char const * __restrict format, uintmax_t param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -443,7 +448,8 @@ int printf_va_17(char const *format, uintmax_t param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param1, param0; */ -int printf_va_18(char const *format, size_t param0, ptrdiff_t param1); +int printf_va_18(char const * __restrict format, size_t param0, + ptrdiff_t param1); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -456,7 +462,7 @@ int printf_va_18(char const *format, size_t param0, ptrdiff_t param1); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_19(char const *format, unsigned long long param0); +int printf_va_19(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -469,7 +475,7 @@ int printf_va_19(char const *format, unsigned long long param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_20(char const *format, int param0); +int printf_va_20(char const * __restrict format, int param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -482,7 +488,7 @@ int printf_va_20(char const *format, int param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_21(char const *format, unsigned long long param0); +int printf_va_21(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -495,7 +501,7 @@ int printf_va_21(char const *format, unsigned long long param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_22(char const *format, int param0); +int printf_va_22(char const * __restrict format, int param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -508,7 +514,8 @@ int printf_va_22(char const *format, int param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param1, param0; */ -int printf_va_23(char const *format, double param0, long double param1); +int printf_va_23(char const * __restrict format, double param0, + long double param1); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -521,7 +528,7 @@ int printf_va_23(char const *format, double param0, long double param1); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_24(char const *format, int param0); +int printf_va_24(char const * __restrict format, int param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -534,7 +541,7 @@ int printf_va_24(char const *format, int param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_25(char const *format, void *param0); +int printf_va_25(char const * __restrict format, void *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -547,8 +554,8 @@ int printf_va_25(char const *format, void *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param3, param2, param1, param0; */ -int printf_va_26(char const *format, int param0, int param1, int param2, - unsigned int param3); +int printf_va_26(char const * __restrict format, int param0, int param1, + int param2, unsigned int param3); /*@ requires valid_read_string(format); requires valid_read_nstring(param1, param0); @@ -562,7 +569,7 @@ int printf_va_26(char const *format, int param0, int param1, int param2, __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), *(param1 + (0 ..)), param0; */ -int printf_va_27(char const *format, int param0, char *param1); +int printf_va_27(char const * __restrict format, int param0, char *param1); /*@ requires valid_read_string(format); requires valid_read_nstring(param0, 4); @@ -576,7 +583,7 @@ int printf_va_27(char const *format, int param0, char *param1); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), *(param0 + (0 ..)); */ -int printf_va_28(char const *format, char *param0); +int printf_va_28(char const * __restrict format, char *param0); int main(void) { diff --git a/src/plugins/variadic/tests/known/oracle/printf_wrong_arity.res.oracle b/src/plugins/variadic/tests/known/oracle/printf_wrong_arity.res.oracle index 4812a0dc010a8f6ee8c0bc296d70be976bfa2f3d..ab84ecbf690af6f9eeca1e86ddd262df7fd12f85 100644 --- a/src/plugins/variadic/tests/known/oracle/printf_wrong_arity.res.oracle +++ b/src/plugins/variadic/tests/known/oracle/printf_wrong_arity.res.oracle @@ -55,7 +55,7 @@ __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_1(char const *format, int param0); +int printf_va_1(char const * __restrict format, int param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -68,7 +68,7 @@ int printf_va_1(char const *format, int param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param1, param0; */ -int printf_va_2(char const *format, int param0, int param1); +int printf_va_2(char const * __restrict format, int param0, int param1); int main(void) { diff --git a/src/plugins/variadic/tests/known/oracle/printf_wrong_pointers.res.oracle b/src/plugins/variadic/tests/known/oracle/printf_wrong_pointers.res.oracle index 9cd2d1296fb315cb05ab3447aa36d98f50c6237d..3acc772c1d3ab401b05f19de09877346e9ed4f89 100644 --- a/src/plugins/variadic/tests/known/oracle/printf_wrong_pointers.res.oracle +++ b/src/plugins/variadic/tests/known/oracle/printf_wrong_pointers.res.oracle @@ -66,7 +66,7 @@ \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int printf_va_1(char const *format, int *param0); +int printf_va_1(char const * __restrict format, int *param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -82,7 +82,7 @@ int printf_va_1(char const *format, int *param0); \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int printf_va_2(char const *format, int *param0); +int printf_va_2(char const * __restrict format, int *param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -98,7 +98,7 @@ int printf_va_2(char const *format, int *param0); \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int printf_va_3(char const *format, signed char *param0); +int printf_va_3(char const * __restrict format, signed char *param0); /*@ requires valid_read_string(format); requires valid_read_string(param0); @@ -112,7 +112,7 @@ int printf_va_3(char const *format, signed char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), *(param0 + (0 ..)); */ -int printf_va_4(char const *format, char *param0); +int printf_va_4(char const * __restrict format, char *param0); /*@ requires valid_read_string(format); requires valid_read_wstring(param0); @@ -126,7 +126,7 @@ int printf_va_4(char const *format, char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), *(param0 + (0 ..)); */ -int printf_va_5(char const *format, wchar_t *param0); +int printf_va_5(char const * __restrict format, wchar_t *param0); int main(void) { diff --git a/src/plugins/variadic/tests/known/oracle/printf_wrong_types.res.oracle b/src/plugins/variadic/tests/known/oracle/printf_wrong_types.res.oracle index 2255eda5046cf674c38b99110d886ecdc4d1af1c..0bb2cd97335e2418ef8ddedeb6cfdbf5ae09c1f9 100644 --- a/src/plugins/variadic/tests/known/oracle/printf_wrong_types.res.oracle +++ b/src/plugins/variadic/tests/known/oracle/printf_wrong_types.res.oracle @@ -113,7 +113,7 @@ typedef enum __anonenum_RC_1 RC; __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_1(char const *format, int param0); +int printf_va_1(char const * __restrict format, int param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -126,7 +126,7 @@ int printf_va_1(char const *format, int param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_2(char const *format, int param0); +int printf_va_2(char const * __restrict format, int param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -139,7 +139,7 @@ int printf_va_2(char const *format, int param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_3(char const *format, unsigned int param0); +int printf_va_3(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -152,7 +152,7 @@ int printf_va_3(char const *format, unsigned int param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_4(char const *format, long param0); +int printf_va_4(char const * __restrict format, long param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -165,7 +165,7 @@ int printf_va_4(char const *format, long param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_5(char const *format, int param0); +int printf_va_5(char const * __restrict format, int param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -178,7 +178,7 @@ int printf_va_5(char const *format, int param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_6(char const *format, unsigned long param0); +int printf_va_6(char const * __restrict format, unsigned long param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -191,7 +191,7 @@ int printf_va_6(char const *format, unsigned long param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_7(char const *format, unsigned int param0); +int printf_va_7(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -204,7 +204,7 @@ int printf_va_7(char const *format, unsigned int param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_8(char const *format, void *param0); +int printf_va_8(char const * __restrict format, void *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -217,7 +217,7 @@ int printf_va_8(char const *format, void *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_9(char const *format, double param0); +int printf_va_9(char const * __restrict format, double param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -230,7 +230,7 @@ int printf_va_9(char const *format, double param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_10(char const *format, double param0); +int printf_va_10(char const * __restrict format, double param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -243,7 +243,7 @@ int printf_va_10(char const *format, double param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_11(char const *format, double param0); +int printf_va_11(char const * __restrict format, double param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -256,7 +256,7 @@ int printf_va_11(char const *format, double param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_12(char const *format, long double param0); +int printf_va_12(char const * __restrict format, long double param0); /*@ requires valid_read_string(format); requires valid_read_string(param0); @@ -270,7 +270,7 @@ int printf_va_12(char const *format, long double param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), *(param0 + (0 ..)); */ -int printf_va_13(char const *format, char *param0); +int printf_va_13(char const * __restrict format, char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -283,7 +283,7 @@ int printf_va_13(char const *format, char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_14(char const *format, int param0); +int printf_va_14(char const * __restrict format, int param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -296,7 +296,7 @@ int printf_va_14(char const *format, int param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_15(char const *format, unsigned int param0); +int printf_va_15(char const * __restrict format, unsigned int param0); int main(void) { @@ -496,7 +496,7 @@ typedef enum __anonenum_RC_1 RC; __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_1(char const *format, int param0); +int printf_va_1(char const * __restrict format, int param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -509,7 +509,7 @@ int printf_va_1(char const *format, int param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_2(char const *format, int param0); +int printf_va_2(char const * __restrict format, int param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -522,7 +522,7 @@ int printf_va_2(char const *format, int param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_3(char const *format, unsigned int param0); +int printf_va_3(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -535,7 +535,7 @@ int printf_va_3(char const *format, unsigned int param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_4(char const *format, long param0); +int printf_va_4(char const * __restrict format, long param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -548,7 +548,7 @@ int printf_va_4(char const *format, long param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_5(char const *format, int param0); +int printf_va_5(char const * __restrict format, int param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -561,7 +561,7 @@ int printf_va_5(char const *format, int param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_6(char const *format, unsigned long param0); +int printf_va_6(char const * __restrict format, unsigned long param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -574,7 +574,7 @@ int printf_va_6(char const *format, unsigned long param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_7(char const *format, unsigned int param0); +int printf_va_7(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -587,7 +587,7 @@ int printf_va_7(char const *format, unsigned int param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_8(char const *format, void *param0); +int printf_va_8(char const * __restrict format, void *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -600,7 +600,7 @@ int printf_va_8(char const *format, void *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_9(char const *format, double param0); +int printf_va_9(char const * __restrict format, double param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -613,7 +613,7 @@ int printf_va_9(char const *format, double param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_10(char const *format, double param0); +int printf_va_10(char const * __restrict format, double param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -626,7 +626,7 @@ int printf_va_10(char const *format, double param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_11(char const *format, double param0); +int printf_va_11(char const * __restrict format, double param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -639,7 +639,7 @@ int printf_va_11(char const *format, double param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_12(char const *format, long double param0); +int printf_va_12(char const * __restrict format, long double param0); /*@ requires valid_read_string(format); requires valid_read_string(param0); @@ -653,7 +653,7 @@ int printf_va_12(char const *format, long double param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), *(param0 + (0 ..)); */ -int printf_va_13(char const *format, char *param0); +int printf_va_13(char const * __restrict format, char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -666,7 +666,7 @@ int printf_va_13(char const *format, char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_14(char const *format, int param0); +int printf_va_14(char const * __restrict format, int param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -679,7 +679,7 @@ int printf_va_14(char const *format, int param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_15(char const *format, unsigned int param0); +int printf_va_15(char const * __restrict format, unsigned int param0); int main(void) { diff --git a/src/plugins/variadic/tests/known/oracle/scanf.res.oracle b/src/plugins/variadic/tests/known/oracle/scanf.res.oracle index 7bb9be7190b143b90f3d53037ccfd74b47bb18f2..e2b30a7dd895f33300054cade576ecafafe22376 100644 --- a/src/plugins/variadic/tests/known/oracle/scanf.res.oracle +++ b/src/plugins/variadic/tests/known/oracle/scanf.res.oracle @@ -56,7 +56,8 @@ \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_1(char const *format, char *param0, char *param1, int *param2); +int scanf_va_1(char const * __restrict format, char *param0, char *param1, + int *param2); int main(void) { diff --git a/src/plugins/variadic/tests/known/oracle/scanf_loop.res.oracle b/src/plugins/variadic/tests/known/oracle/scanf_loop.res.oracle index dcf0c89e66abcfe65ee83802231b2ced9fdbf5a6..a9a7845b251755db6d2e2b4dc57b4347b5d7db6f 100644 --- a/src/plugins/variadic/tests/known/oracle/scanf_loop.res.oracle +++ b/src/plugins/variadic/tests/known/oracle/scanf_loop.res.oracle @@ -45,7 +45,7 @@ int volatile nondet; \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_1(char const *format, int *param0); +int scanf_va_1(char const * __restrict format, int *param0); int main(void) { diff --git a/src/plugins/variadic/tests/known/oracle/scanf_wrong.res.oracle b/src/plugins/variadic/tests/known/oracle/scanf_wrong.res.oracle index b37a1ee08b70425ae2099762f4835ac5c762c11a..41d5dc140e7a787788e70c9a0c76ade24252cb31 100644 --- a/src/plugins/variadic/tests/known/oracle/scanf_wrong.res.oracle +++ b/src/plugins/variadic/tests/known/oracle/scanf_wrong.res.oracle @@ -57,7 +57,8 @@ \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_1(char const *format, char *param0, char *param1, int *param2); +int scanf_va_1(char const * __restrict format, char *param0, char *param1, + int *param2); int main(void) { diff --git a/src/plugins/variadic/tests/known/oracle/snprintf.res.oracle b/src/plugins/variadic/tests/known/oracle/snprintf.res.oracle index 0c1183e4c7e1f5734771b96c6ef3763389dbe52b..5283467af6bbb18db5204643152c4cc5f705fac6 100644 --- a/src/plugins/variadic/tests/known/oracle/snprintf.res.oracle +++ b/src/plugins/variadic/tests/known/oracle/snprintf.res.oracle @@ -60,7 +60,8 @@ int volatile nondet; assigns *(s + (0 ..)) \from (indirect: n), (indirect: *(format + (0 ..))), *(param0 + (0 ..)); */ -int snprintf_va_1(char *s, size_t n, char const *format, char *param0); +int snprintf_va_1(char * __restrict s, size_t n, + char const * __restrict format, char *param0); /*@ requires \valid(s + (0 .. n - 1)) ∨ @@ -73,7 +74,8 @@ int snprintf_va_1(char *s, size_t n, char const *format, char *param0); assigns *(s + (0 ..)) \from (indirect: n), (indirect: *(format + (0 ..))), *(param0 + (0 ..)); */ -int snprintf_va_2(char *s, size_t n, char const *format, char *param0); +int snprintf_va_2(char * __restrict s, size_t n, + char const * __restrict format, char *param0); int main(void) { diff --git a/src/plugins/variadic/tests/known/oracle/stdio_print.res.oracle b/src/plugins/variadic/tests/known/oracle/stdio_print.res.oracle index f464a7a17aa00308563d5beda6450feacd5c8019..3affc42a4ed5738d640e76c6e044fc219e085106 100644 --- a/src/plugins/variadic/tests/known/oracle/stdio_print.res.oracle +++ b/src/plugins/variadic/tests/known/oracle/stdio_print.res.oracle @@ -79,8 +79,8 @@ (indirect: *(format + (0 ..))), param2, *(param1 + (0 ..)), param0; */ -int fprintf_va_1(FILE *stream, char const *format, int param0, char *param1, - int param2); +int fprintf_va_1(FILE * __restrict stream, char const * __restrict format, + int param0, char *param1, int param2); /*@ requires valid_read_string(format); requires valid_read_string(param1); @@ -94,7 +94,8 @@ int fprintf_va_1(FILE *stream, char const *format, int param0, char *param1, __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param2, *(param1 + (0 ..)), param0; */ -int printf_va_1(char const *format, int param0, char *param1, int param2); +int printf_va_1(char const * __restrict format, int param0, char *param1, + int param2); /*@ requires \valid(s + (0 .. n - 1)) ∨ @@ -109,8 +110,9 @@ int printf_va_1(char const *format, int param0, char *param1, int param2); \from (indirect: n), (indirect: *(format + (0 ..))), param2, *(param1 + (0 ..)), param0; */ -int snprintf_va_1(char *s, size_t n, char const *format, int param0, - char *param1, int param2); +int snprintf_va_1(char * __restrict s, size_t n, + char const * __restrict format, int param0, char *param1, + int param2); /*@ requires valid_read_string(format); requires valid_read_string(param1); @@ -122,8 +124,8 @@ int snprintf_va_1(char *s, size_t n, char const *format, int param0, \from (indirect: *(format + (0 ..))), param2, *(param1 + (0 ..)), param0; */ -int sprintf_va_1(char *s, char const *format, int param0, char *param1, - int param2); +int sprintf_va_1(char * __restrict s, char const * __restrict format, + int param0, char *param1, int param2); /*@ requires valid_read_string(format); requires valid_read_string(param2); @@ -133,8 +135,8 @@ int sprintf_va_1(char *s, char const *format, int param0, char *param1, \from (indirect: fd), (indirect: *(format + (0 ..))), *(param2 + (0 ..)), *(param1 + (0 ..)), param0; */ -int dprintf_va_1(int fd, char const *format, int param0, char *param1, - char *param2); +int dprintf_va_1(int fd, char const * __restrict format, int param0, + char *param1, char *param2); int main(void) { diff --git a/src/plugins/variadic/tests/known/oracle/stdio_scan.res.oracle b/src/plugins/variadic/tests/known/oracle/stdio_scan.res.oracle index 2c35bd8632dd711b185033e34c5484d63fa16416..9d9d9383a4ddbc022b77af8f23c1ea97b165e98e 100644 --- a/src/plugins/variadic/tests/known/oracle/stdio_scan.res.oracle +++ b/src/plugins/variadic/tests/known/oracle/stdio_scan.res.oracle @@ -74,8 +74,8 @@ \from (indirect: stream->__fc_FILE_id), stream->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int fscanf_va_1(FILE *stream, char const *format, int *param0, char *param1, - int *param2); +int fscanf_va_1(FILE * __restrict stream, char const * __restrict format, + int *param0, char *param1, int *param2); /*@ requires valid_read_string(format); requires \valid(param2); @@ -100,7 +100,8 @@ int fscanf_va_1(FILE *stream, char const *format, int *param0, char *param1, \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_1(char const *format, int *param0, char *param1, int *param2); +int scanf_va_1(char const * __restrict format, int *param0, char *param1, + int *param2); /*@ requires valid_read_string(s); requires valid_read_string(format); @@ -118,8 +119,8 @@ int scanf_va_1(char const *format, int *param0, char *param1, int *param2); assigns *param0 \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); */ -int sscanf_va_1(char const *s, char const *format, int *param0, char *param1, - int *param2); +int sscanf_va_1(char const * __restrict s, char const * __restrict format, + int *param0, char *param1, int *param2); int main(void) { diff --git a/src/plugins/variadic/translate.ml b/src/plugins/variadic/translate.ml index 9936b75b5b6dddd779b642cda5a5120f040b37d1..0dbf07862c4da167cad784fc1e547b6b06f098f9 100644 --- a/src/plugins/variadic/translate.ml +++ b/src/plugins/variadic/translate.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/variadic/va_build.ml b/src/plugins/variadic/va_build.ml index 98fbeaf7a9e740016f987bdff765ecc955591dec..77f3bbaf0475a97369a8dfdd005d54874ffa7cd4 100644 --- a/src/plugins/variadic/va_build.ml +++ b/src/plugins/variadic/va_build.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/variadic/va_types.mli b/src/plugins/variadic/va_types.mli index 2b886a87cb4a200bccdae35ab414720dc1ad0558..407dcbfcc805290b39d7935327cef1d44829612a 100644 --- a/src/plugins/variadic/va_types.mli +++ b/src/plugins/variadic/va_types.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Auto.ml b/src/plugins/wp/Auto.ml index 7d851adddcc420f1e7d5eb65aa072ee0005db5c3..86d62474d957176721e555f38477e58f3346b108 100644 --- a/src/plugins/wp/Auto.ml +++ b/src/plugins/wp/Auto.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -162,12 +162,12 @@ struct Tmap.interf (fun _ a b -> try Some(Integer.to_int a,Integer.to_int b) - with Integer.Too_big -> None + with Z.Overflow -> None ) rg.vmin rg.vmax let small = function | None -> None - | Some z -> try Some(Integer.to_int z) with Integer.Too_big -> None + | Some z -> try Some(Integer.to_int z) with Z.Overflow -> None let bounds rg = Tmap.merge diff --git a/src/plugins/wp/Auto.mli b/src/plugins/wp/Auto.mli index 4c8b2eabb74a10fa906f3d3f92d10d6ff98dc704..b91ae66a573fdf480367c2f5ba86429f9a2e6a83 100644 --- a/src/plugins/wp/Auto.mli +++ b/src/plugins/wp/Auto.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -35,7 +35,7 @@ val contrapose : ?priority:float -> selection -> strategy val compound : ?priority:float -> selection -> strategy val cut : ?priority:float -> ?modus:bool -> selection -> strategy val filter : ?priority:float -> ?anti:bool -> unit -> strategy -val havoc : ?priority:float -> havoc:selection -> addr:selection -> strategy +val havoc : ?priority:float -> havoc:selection -> strategy val separated : ?priority:float -> selection -> strategy val instance : ?priority:float -> selection -> selection list -> strategy val lemma : ?priority:float -> ?at:selection -> string -> selection list -> strategy diff --git a/src/plugins/wp/CfgCompiler.ml b/src/plugins/wp/CfgCompiler.ml index 8d45608209ab17381973d9f43006f61c3ab21b79..88e5892d9bd0b61e6faa5341bb51aeaba0c6621a 100644 --- a/src/plugins/wp/CfgCompiler.ml +++ b/src/plugins/wp/CfgCompiler.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/CfgCompiler.mli b/src/plugins/wp/CfgCompiler.mli index 9263f60dd378eb7d20ec0f27e35df06f75fcd6eb..5f9ed192ea937bbbade66e9e1a7f05b881fb2f1f 100644 --- a/src/plugins/wp/CfgCompiler.mli +++ b/src/plugins/wp/CfgCompiler.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Cfloat.ml b/src/plugins/wp/Cfloat.ml index 8b1731f3c5c198fbf3e71fa25bb6d2f932fa15d5..81842f01a2eb694506b55e6640baba76d03a7870 100644 --- a/src/plugins/wp/Cfloat.ml +++ b/src/plugins/wp/Cfloat.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -45,7 +45,7 @@ let ftau = function | Float32 -> t32 | Float64 -> t64 -let suffix fmt = function +let pp_suffix fmt = function | Float32 -> Format.pp_print_string fmt "f32" | Float64 -> Format.pp_print_string fmt "f64" @@ -55,9 +55,9 @@ let link phi = Lang.infoprover (Qed.Engine.F_call phi) let fq32 = extern_f ~library ~result:t32 ~link:(link "to_f32") "q32" let fq64 = extern_f ~library ~result:t64 ~link:(link "to_f64") "q64" -let f_model ft = extern_f ~library ~result:(ftau ft) "model_%a" suffix ft -let f_delta ft = extern_f ~library ~result:(ftau ft) "delta_%a" suffix ft -let f_epsilon ft = extern_f ~library ~result:(ftau ft) "epsilon_%a" suffix ft +let f_model ft = extern_f ~library ~result:(ftau ft) "model_%a" pp_suffix ft +let f_delta ft = extern_f ~library ~result:(ftau ft) "delta_%a" pp_suffix ft +let f_epsilon ft = extern_f ~library ~result:(ftau ft) "epsilon_%a" pp_suffix ft (* -------------------------------------------------------------------------- *) (* --- Model Setting --- *) @@ -135,39 +135,45 @@ let fmake ulp value = match ulp with | Float64 -> F.e_fun fq64 [F.e_float value] let qmake ulp q = fmake ulp (Transitioning.Q.to_float q) - let mantissa = "\\([-+]?[0-9]*\\)" let comma = "\\(.\\(\\(0*[1-9]\\)*\\)0*\\)?" let exponent = "\\([eE]\\([-+]?[0-9]*\\)\\)?" -let real = Str.regexp (mantissa ^ comma ^ exponent ^ "$") +let suffix = "\\([flFL]\\)?" +let real = Str.regexp (mantissa ^ comma ^ exponent ^ suffix ^ "$") -let parse_literal v r = +let parse_literal ~model v r = try if Str.string_match real r 0 then - let ma = Str.matched_group 1 r in - let mb = try Str.matched_group 3 r with Not_found -> "" in - let me = try Str.matched_group 6 r with Not_found -> "0" in - let n = int_of_string me - String.length mb in - let d n = - let s = Bytes.make (succ n) '0' in - Bytes.set s 0 '1' ; Q.of_string (Bytes.to_string s) in - let m = Q.of_string (ma ^ mb) in - if n < 0 then Q.div m (d (-n)) else - if n > 0 then Q.mul m (d n) else m + let has_suffix = + try ignore (Str.matched_group 7 r) ; true + with Not_found -> false in + if has_suffix && model = Float then + Q.of_float v + else + let ma = Str.matched_group 1 r in + let mb = try Str.matched_group 3 r with Not_found -> "" in + let me = try Str.matched_group 6 r with Not_found -> "0" in + let n = int_of_string me - String.length mb in + let d n = + let s = Bytes.make (succ n) '0' in + Bytes.set s 0 '1' ; Q.of_string (Bytes.to_string s) in + let m = Q.of_string (ma ^ mb) in + if n < 0 then Q.div m (d (-n)) else + if n > 0 then Q.mul m (d n) else m else Q.of_float v with Failure _ -> Warning.error "Unexpected constant literal %S" r let acsl_lit l = let open Cil_types in - F.e_real (parse_literal l.r_nearest l.r_literal) + F.e_real (parse_literal ~model:(Context.get model) l.r_nearest l.r_literal) let code_lit ulp value original = match Context.get model , ulp , original with | Float , Float32 , _ -> F.e_fun fq32 [F.e_float value] | Float , Float64 , _ -> F.e_fun fq64 [F.e_float value] | Real , _ , None -> F.e_float value - | Real , _ , Some r -> F.e_real (parse_literal value r) + | Real , _ , Some r -> F.e_real (parse_literal ~model:Real value r) (* -------------------------------------------------------------------------- *) (* --- Computations --- *) @@ -200,13 +206,13 @@ let compute op ulp xs = let make_fun_float ?result name op ft = let result = match result with None -> ftau ft | Some r -> r in - let phi = extern_f ~library ~result "%s_%a" name suffix ft in + let phi = extern_f ~library ~result "%s_%a" name pp_suffix ft in Lang.F.set_builtin phi (compute op ft) ; REGISTRY.define phi (op,ft) ; phi let make_pred_float name op ft = - let prop = Pretty_utils.sfprintf "%s_%a" name suffix ft in - let bool = Pretty_utils.sfprintf "%s_%ab" name suffix ft in + let prop = Pretty_utils.sfprintf "%s_%a" name pp_suffix ft in + let bool = Pretty_utils.sfprintf "%s_%ab" name pp_suffix ft in let phi = extern_p ~library ~bool ~prop () in Lang.F.set_builtin phi (compute op ft) ; REGISTRY.define phi (op,ft) ; phi diff --git a/src/plugins/wp/Cfloat.mli b/src/plugins/wp/Cfloat.mli index eb3a12e514d63205a9d953d5e1bedf59fa088fd8..f1f46e5950f89fe509e97f6015f2dbf0c5906338 100644 --- a/src/plugins/wp/Cfloat.mli +++ b/src/plugins/wp/Cfloat.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Changelog b/src/plugins/wp/Changelog index 405600b3263fe6ba89283519d2f9b81372e9c413..65843136872b5e143fc4ce3420645d94c8a8c47e 100644 --- a/src/plugins/wp/Changelog +++ b/src/plugins/wp/Changelog @@ -20,6 +20,36 @@ # <Prover>: prover ############################################################################### + - Wp [2019/01/28] New floating-point model + - WP [2018/02/16] Filter out some variables from separation + - TIP [2018/02/15] Extend bitwise-eq auto-strategy on hypotheses + - TIP [2018/02/15] Fix wrong reconciliation of sub-scripts during replay + - Wp [2018/02/15] Better naming convention, consistent with report-classify + - Wp [2018/01/18] Auto-Search mode, see -wp-auto + - TIP [2018/01/18] Auto-Search mode from the GUI + - TIP [2018/01/18] New Strategies for bitwise and congruence operations + - TIP [2017/12/17] Fix bug that makes the TIP wrongly reuse previous results + - Wp [2017/12/17] Option -wp-print-separation changed into -wp-warn-separation + - Wp [2017/12/17] Option -wp-unfold-assigns for proving assigns of aggregates field by field + - TIP [2017/04/25] New tactical Congruence (divisions and products) + - Qed [2017/10/30] Extends simplifications for lsl,lsr and div + - Wp [2017/10/27] Fix soundness bug when assigning non-valid ranges + - Qed [2017/10/27] New simplifications for validirt and ranges + - TIP [2017/10/27] New tacticals for validity and ranges + - TIP [2017/04/25] Options -wp-time-{extra|margin} for more stability + -* Gui [2017/04/25] Fixed bug when running prover from the TIP + - Wp [2017/04/25] Improved model and simplifications of logical shifts + - Wp [2017/04/25] New simplification logic functions (-wp-reduce) + - Wp [2017/04/25] New simplification of unused variables (-wp-parasite) + - Wp [2017/04/25] New simplification for ground terms (-wp-ground) + - Wp [2017/04/25] Option -wp-prenex to normalize nested binders + - Wp [2017/04/25] Option -wp-overflows to add explicit assumptions + - TIP [2017/04/25] New tactical Overflow (to cope with modulus) + - TIP [2017/04/25] New tactical Bitwised, BitRange and Shift + - TIP [2017/04/25] New tactical Rewrite (two apply equalities) + - Wp [2017/03/12] Reduction of equalities with logic functions + - Wp [2017/03/12] More simplifications wrt integer domains + ###################### Plugin WP 18.0 (Argon) ###################### @@ -33,6 +63,26 @@ Plugin WP 18.0 (Argon) - Qed [2018/06/20] Added more simplifications for invertible functions - TIP [2018/06/07] Extends tactical 'Split' to distribution of qualitifiers +######################### +Plugin WP Sulfur-20171101 +######################### + + - Wp [2017/10/18] Support for LoopCurrent and LoopEntry + - TIP [2017/04/25] Options -wp-time-{extra|margin} for more stability + -* Gui [2017/04/25] Fixed bug when running prover from the TIP + - Wp [2017/04/25] Improved model and simplifications of logical shifts + - Wp [2017/04/25] New simplification logic functions (-wp-reduce) + - Wp [2017/04/25] New simplification of unused variables (-wp-parasite) + - Wp [2017/04/25] New simplification for ground terms (-wp-ground) + - Wp [2017/04/25] Option -wp-prenex to normalize nested binders + - Wp [2017/04/25] Option -wp-overflows to add explicit assumptions + - TIP [2017/04/25] New tactical Overflow (to cope with modulus) + - TIP [2017/04/25] New tactical Ratio (divisions and products) + - TIP [2017/04/25] New tactical Bitwised, BitRange and Shift + - TIP [2017/04/25] New tactical Rewrite (two apply equalities) + - Wp [2017/03/12] Reduction of equalities with logic functions + - Wp [2017/03/12] More simplifications wrt integer domains + ########################### Plugin WP Chlorine-20180501 ########################### @@ -84,6 +134,7 @@ Plugin WP Sulfur-20171101 Plugin WP Phosphorus-20170501 ############################# +- Qed [2017/12/13] Transforms some quantifications into let constructs - WP [2017/05/15] Extract inductive predicates as Inductive in Coq -! WP [2017/03/24] Remove support for generalized invariants (-wp-invariants) -o Ergo [2017/01/12] Update qualif tests to Alt-Ergo 1.30 diff --git a/src/plugins/wp/Cint.ml b/src/plugins/wp/Cint.ml index a61fa8f329735c6ee72859a16b6f85145a21858d..02c88290a4e5bf52db262ee8661d51cce8d337a2 100644 --- a/src/plugins/wp/Cint.ml +++ b/src/plugins/wp/Cint.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -153,7 +153,7 @@ let match_positive_or_null e = if not (is_positive_or_null e) then raise Not_found; e -let match_power2, match_power2_minus1 = +let match_power2, _match_power2_minus1 = let highest_bit_number = let hsb p = if p land 2 = 0 then 0 else 1 in let hsb p = let n = p lsr 2 in if n = 0 then hsb p else 2 + hsb n @@ -258,21 +258,6 @@ let simplify_f_to_conv f iota e conv e' = signed iota -> iota' can have any sign *) else raise Not_found -let simplify_f_to_land f iota e es' = - let size', es' = match_list_head match_power2_minus1 es' in - (* land (2**(size')-1) _ is equivalent to a conversion - to an unsigned integer of size' bits. - So, the end of this function is similar to [simplify_conv] *) - let size = Ctypes.i_bits iota in - match is_leq (e_int size) size' with - | Logic.Yes -> - let e' = match es' with - | [] -> assert false - | [_] -> es' | _ -> [e_fun f_land es'] - in e_fun f e' - | Logic.No -> e - | Logic.Maybe -> raise Not_found - let simplify_f_to_bounds iota e = (* min(ctypes)<=y<=max(ctypes) ==> to_ctypes(y)=y *) let lower,upper = Ctypes.bounds iota in @@ -285,37 +270,40 @@ let f_to_int = Ctypes.i_memo (fun iota -> make_fun_int "to" iota) let configure_to_int iota = let f = f_to_int iota in - let simplify = function - | [e] -> - begin - match F.repr e with - | Logic.Kint value -> - let size = Integer.of_int (Ctypes.i_bits iota) in - let signed = Ctypes.signed iota in - F.e_zint (Integer.cast ~size ~signed ~value) - | Logic.Fun( fland , es ) when Fun.equal fland f_land -> - (try simplify_f_to_land f iota e es - with Not_found -> simplify_f_to_bounds iota e) - | Logic.Fun( flor , es ) when (Fun.equal flor f_lor) - && not (Ctypes.signed iota) -> - (* to_uintN(a|b) == (to_uintN(a) | to_uintN(b)) *) - e_fun f_lor (List.map (fun e' -> e_fun f [e']) es) - | Logic.Fun( flnot , [ e ] ) when (Fun.equal flnot f_lnot) - && not (Ctypes.signed iota) -> - begin - match F.repr e with - | Logic.Fun( f' , w ) when f' == f -> - e_fun f [ e_fun f_lnot w ] - | _ -> raise Not_found - end - | Logic.Fun( conv , [e'] ) -> (* unary op *) - (try simplify_f_to_conv f iota e conv e' - with Not_found -> simplify_f_to_bounds iota e) - | _ -> simplify_f_to_bounds iota e - end - | _ -> raise Not_found + let simplify e = + begin + try match F.repr e with + | Logic.Kint value -> + let size = Integer.of_int (Ctypes.i_bits iota) in + let signed = Ctypes.signed iota in + F.e_zint (Integer.cast ~size ~signed ~value) + | Logic.Fun( fland , es ) + when Fun.equal fland f_land && + not (Ctypes.signed iota) && + List.exists is_positive_or_null es -> + (* to_uintN(a) == a & (2^N-1) when a >= 0 *) + let m = F.e_zint (snd (Ctypes.bounds iota)) in + F.e_fun f_land (m :: es) + | Logic.Fun( flor , es ) when (Fun.equal flor f_lor) + && not (Ctypes.signed iota) -> + (* to_uintN(a|b) == (to_uintN(a) | to_uintN(b)) *) + F.e_fun f_lor (List.map (fun e' -> e_fun f [e']) es) + | Logic.Fun( flnot , [ e ] ) when (Fun.equal flnot f_lnot) + && not (Ctypes.signed iota) -> + begin + match F.repr e with + | Logic.Fun( f' , w ) when f' == f -> + e_fun f [ e_fun f_lnot w ] + | _ -> raise Not_found + end + | Logic.Fun( conv , [e'] ) -> (* unary op *) + simplify_f_to_conv f iota e conv e' + | _ -> raise Not_found + with Not_found -> + simplify_f_to_bounds iota e + end in - F.set_builtin f simplify ; + F.set_builtin_1 f simplify ; let simplify_leq x y = let lower,upper = Ctypes.bounds iota in @@ -593,12 +581,12 @@ let smp_eq_with_lor a b = (* 0==(a1|a2) <=> (0==a1 && 0==a2) *) F.e_and (List.map (e_eq b) es) -let smp_eq_with_lxor a b = (* b1==(a2^e) <==> ~(b1^a2)==e *) +let smp_eq_with_lxor a b = (* b1==(a2^e) <==> (b1^a2)==e *) let b1 = match_integer b in let es = match_fun f_lxor a in - try (* b1==(a2^e) <==> ~(b1^a2)==e *) + try (* b1==(a2^e) <==> (b1^a2)==e *) let a2,es = match_integer_extraction es in - let k1 = Integer.lognot (Integer.logxor b1 a2) in + let k1 = Integer.logxor b1 a2 in e_eq (e_zint k1) (e_fun f_lxor es) with Not_found when b == e_zero -> (* 0==(a1^a2) <=> (a1==a2) *) @@ -621,7 +609,7 @@ let smp_eq_with_lnot a b = (* b1==~e <==> ~b1==e *) let two_power_k_minus1 k = try Integer.pred (Integer.two_power k) - with Integer.Too_big -> raise Not_found + with Z.Overflow -> raise Not_found let smp_eq_with_lsl_cst a0 b0 = let b1 = match_integer b0 in diff --git a/src/plugins/wp/Cint.mli b/src/plugins/wp/Cint.mli index 72a86838ff4feee8085d9f38a480be2fffff88c1..263c43e16af4d329a7578bcb4d3890451ccd90be 100644 --- a/src/plugins/wp/Cint.mli +++ b/src/plugins/wp/Cint.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Cleaning.ml b/src/plugins/wp/Cleaning.ml index 0f084445a1d695287936aecb5dcbe4e538df2658..852694ddb73c35df6a80f840292c36547d1a3748 100644 --- a/src/plugins/wp/Cleaning.ml +++ b/src/plugins/wp/Cleaning.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Cleaning.mli b/src/plugins/wp/Cleaning.mli index 1e4ec67190398e74339451d52f405814e89f3a2c..36bdfe91a2d787aabb3c50f3ab4570758e9d9776 100644 --- a/src/plugins/wp/Cleaning.mli +++ b/src/plugins/wp/Cleaning.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Cmath.ml b/src/plugins/wp/Cmath.ml index c607be8a5d7e8acbd0cf6384ccba307f33040026..73f81d6118262bce0d8ca3dd8dc02befcbab9597 100644 --- a/src/plugins/wp/Cmath.ml +++ b/src/plugins/wp/Cmath.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Cmath.mli b/src/plugins/wp/Cmath.mli index a5b431075358a30a0e70625033b4332926103c90..e27a286e076c264de3d18f930b477a3019700f5c 100644 --- a/src/plugins/wp/Cmath.mli +++ b/src/plugins/wp/Cmath.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/CodeSemantics.ml b/src/plugins/wp/CodeSemantics.ml index eaf5063d82c11316ba3980706ddc0b4dedaf17c9..d1c55685ea4d7add16b3f3e43080df932afe60c3 100644 --- a/src/plugins/wp/CodeSemantics.ml +++ b/src/plugins/wp/CodeSemantics.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -32,6 +32,26 @@ open Sigs open Lang open Lang.F +module WpLog = Wp_parameters +let constfold_ctyp = function + | TArray (_,Some {enode = (Const CInt64 _) },_,_) as ct -> ct + | TArray (ty,Some len,cache,attr) as ct -> begin + match Cil.constFold true len with + | {enode = (Const CInt64 _) } as len -> + TArray(ty,Some len,cache,attr) + | _ -> ct + end + | ct -> ct + +let constfold_coffset = function + | Index({enode=Const (CInt64 _)}, _) as off -> off + | Index(idx, next) as off -> begin + match Cil.constFold true idx with + | {enode = (Const CInt64 _) } as idx -> Index(idx, next) + | _ -> off + end + | off -> off + module Make(M : Sigs.Model) = struct @@ -448,22 +468,18 @@ struct init_value ~sigma lv (Cil.typeOfLval lv) (Some exp) :: acc | CompoundInit ( ct , initl ) -> - - let len = List.length initl in - let acc = + let ct = constfold_ctyp ct in + let acc = (* updated acc with default init of structure *) match ct with - | TArray (ty,Some {enode = (Const CInt64 (size,_,_))},_,_) - when Integer.lt (Integer.of_int len) size -> - init_range ~sigma lv ty (Integer.of_int len) size None :: acc - - | TComp (cp,_,_) when len < (List.length cp.cfields) -> - + | TComp (cp,_,_) when cp.cstruct && (* not for union... *) + (List.length initl) < (List.length cp.cfields) -> + (* default init for unintialized field of a struct *) List.fold_left (fun acc f -> if List.exists (function | Field(g,_),_ -> Fieldinfo.equal f g - | _ -> false) + | _ -> WpLog.fatal "Kernel invariant broken into an initializer") initl then acc else @@ -477,47 +493,80 @@ struct | _ -> acc in match ct with - | TArray (ty,_,_,_) - when Wp_parameters.InitWithForall.get () -> - (* delayed: the last consecutive index have the same value - and are not yet initialized. - (i0,pred,il) =def \forall x. x \in [il;i0] t[x] == pred - *) + | TArray (ty,len,_,_) -> + let delayed = + match len with (* number of required elements *) + | Some {enode = (Const CInt64 (size,_,_))} -> + (size, None) + | _ -> (* CIL invariant broken. *) + WpLog.fatal "CIL invariant broken: unknown initialized array size" + in let make_quant acc = function - | None -> acc - | Some (Index({enode=Const (CInt64 (i0,_,_))}, NoOffset),exp,il) - when Integer.lt il i0 -> + (* adds delayed initializations from info about + the last consecutive indices having + the same value, but that have not yet initialized. *) + | (_,None) -> acc (* nothing was delayed *) + | (il,Some (i0,_,exp)) when Integer.lt il i0 -> + (* Added pred: \forall i \in [il .. i0] ; t[i]==exp *) let i2 = Integer.succ i0 in init_range ~sigma lv ty il i2 (Some exp) :: acc - | Some (off,exp,_) -> + | (_il,Some (_i0,off,exp)) -> + (* case [_il=_i0], so uses [off] corresponding to [_i0] + Added pred: t[i]==exp*) let lv = Cil.addOffsetLval off lv in init_value ~sigma lv ty (Some exp) :: acc in + let add_missing_indices acc i0 = function + (* adds eventual default value for missing indices. *) + | (i1, _) -> + if Integer.ge i0 i1 then (* no hole *) acc + else (* defaults values + Added pred: \forall i \in [i0 .. i1[ ; t[i]==default *) + init_range ~sigma lv ty i0 i1 None :: acc + in let acc, delayed = List.fold_left (fun (acc,delayed) (off,init) -> - match delayed, off, init with - | None, Index({enode=Const (CInt64 (i0,_,_))}, NoOffset), - SingleInit curr -> - (acc,Some(off,curr,i0)) - | Some (i0,prev,ip), Index({enode=Const (CInt64 (i,_,_))}, NoOffset), - SingleInit curr - when ExpStructEq.equal prev curr - && Integer.equal (Integer.pred ip) i -> - (acc,Some(i0,prev,i)) - | _, _,_ -> + let off = constfold_coffset off in + let idx,acc = match off with + | Index({enode=Const CInt64 (idx,_,_)}, _) -> + (match delayed with + | (iprev, _) when Integer.lt iprev idx -> + (* CIL invariant broken. + without that invariant, an algo with a 2sd pass + is required for introducing default values *) + WpLog.fatal "CIL invariant broken: unordered initializer"; + | _ -> ()) ; + idx, + (* adds default values for missing indices *) + add_missing_indices acc (Integer.succ idx) delayed + | _ -> (* CIL invariant broken. *) + WpLog.fatal "CIL invariant broken: unknown initialized index" + in + match off, init with (* only simple init can be delayed *) + | Index(_, NoOffset), SingleInit init -> begin + match delayed with + | (i_prev,(Some (_,_,init_delayed) as delayed_info)) + when Wp_parameters.InitWithForall.get () + && Integer.equal (Integer.pred i_prev) idx + && ExpStructEq.equal init_delayed init -> + acc, (idx,delayed_info) + | _ -> (* flush the delayed init, and store the new one *) + let acc = make_quant acc delayed in + acc, (idx, Some (idx,off,init)) + end + | Index(_, _),_ -> + (* flush the delayed init, and adds the current one *) let acc = make_quant acc delayed in - begin match off, init with - | Index({enode=Const (CInt64 (i0,_,_))}, NoOffset), - SingleInit curr -> - acc, Some (off,curr,i0) - | _ -> - let lv = Cil.addOffsetLval off lv in - init_variable ~sigma lv init acc, None - end) - (acc,None) - (List.rev initl) in - (make_quant acc delayed) + let lv = Cil.addOffsetLval off lv in + (init_variable ~sigma lv init acc), (idx, None) + | _ -> WpLog.fatal "CIL invariant broken: not an index" + ) + (acc,delayed) + (List.rev initl) + in + let acc = make_quant acc delayed in + add_missing_indices acc Integer.zero delayed | _ -> List.fold_left (fun acc (off,init) -> diff --git a/src/plugins/wp/CodeSemantics.mli b/src/plugins/wp/CodeSemantics.mli index 4f00c12f9fa347c7d26fa1242b2a0251ccc7138b..e138cd94c5c631e40408a7c748d106b8aafbf3cb 100644 --- a/src/plugins/wp/CodeSemantics.mli +++ b/src/plugins/wp/CodeSemantics.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Conditions.ml b/src/plugins/wp/Conditions.ml index 1924b4baef3fe90208c7269b1480e7091bbea6f6..aa3a1478d52da357018dc3b254a78f684a5f0fbf 100644 --- a/src/plugins/wp/Conditions.ml +++ b/src/plugins/wp/Conditions.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Conditions.mli b/src/plugins/wp/Conditions.mli index 55e1671f282b914ad709543b683a10f5a2fa9b81..46607fa5871173d89b7e1b914b7de19f670f60cb 100644 --- a/src/plugins/wp/Conditions.mli +++ b/src/plugins/wp/Conditions.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Context.ml b/src/plugins/wp/Context.ml index 318e88c322d3e809db2856db3d5f0d510208f4ea..a63b62de007a6630c618303133df4af009460118 100644 --- a/src/plugins/wp/Context.ml +++ b/src/plugins/wp/Context.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Context.mli b/src/plugins/wp/Context.mli index d3f1f68da919bc00fd6eaf4c1045c896fae62630..160b1782f9c904c193f0345a367babc00c080ce2 100644 --- a/src/plugins/wp/Context.mli +++ b/src/plugins/wp/Context.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Cstring.ml b/src/plugins/wp/Cstring.ml index c135322e91923ebbebc25b55f3e6346e284f0951..66f3ab3afb6e32672107fa09484c648640827026 100644 --- a/src/plugins/wp/Cstring.ml +++ b/src/plugins/wp/Cstring.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Cstring.mli b/src/plugins/wp/Cstring.mli index 8bddad4a5a0a0b65db6ee7743d0e3d2962dcc514..65dd792f0b8b6f2f0072ab78b5b08723cfc207b8 100644 --- a/src/plugins/wp/Cstring.mli +++ b/src/plugins/wp/Cstring.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Cvalues.ml b/src/plugins/wp/Cvalues.ml index 30534510f19f8d0cc07ec83b34740722e37f679a..f952969897624f89bcd5642823903d87a23adfb4 100644 --- a/src/plugins/wp/Cvalues.ml +++ b/src/plugins/wp/Cvalues.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Cvalues.mli b/src/plugins/wp/Cvalues.mli index 6072a98ee4646f255ede84ed36cb55cc80a2f801..e7a09ec5b78fa01ef642bb1fe717cff19ffddfa1 100644 --- a/src/plugins/wp/Cvalues.mli +++ b/src/plugins/wp/Cvalues.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Definitions.ml b/src/plugins/wp/Definitions.ml index e6fa54c7037c1fb7cede23ee5e8879ace611199c..7769f37de54a3e829cb3ce2effe381e771632b6b 100644 --- a/src/plugins/wp/Definitions.ml +++ b/src/plugins/wp/Definitions.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Definitions.mli b/src/plugins/wp/Definitions.mli index 587b3add5e890654b1b677e4fad76137eea831b6..f4a0d98b31b64e56f0021c970df0e97089d44c2a 100644 --- a/src/plugins/wp/Definitions.mli +++ b/src/plugins/wp/Definitions.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Factory.ml b/src/plugins/wp/Factory.ml index a4f06c8dee9df498dd9ce5b048a01b3ca300e138..bc0f3667d600ba5553a818df622c507c70a01f48 100644 --- a/src/plugins/wp/Factory.ml +++ b/src/plugins/wp/Factory.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Factory.mli b/src/plugins/wp/Factory.mli index aea6adcb7b5d7efddb705fd459859ddfcba225dd..9d416b4a0ed9bc71b5b564c3ee019a301964b4e1 100644 --- a/src/plugins/wp/Factory.mli +++ b/src/plugins/wp/Factory.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Filtering.ml b/src/plugins/wp/Filtering.ml index ae163c270a93b8e62862a5e4830852cc02073f93..adf5bbd31779b2ab6a62b9f9f1ffcfd97ce8d63f 100644 --- a/src/plugins/wp/Filtering.ml +++ b/src/plugins/wp/Filtering.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -211,7 +211,7 @@ struct begin match F.repr k with | Kint z -> let d = - try Dindex(Integer.to_int z) with Integer.Too_big -> Darray in + try Dindex(Integer.to_int z) with Z.Overflow -> Darray in X( x , ds @ [ d ] ) | _ -> let ds = ds @ [ Darray ] in diff --git a/src/plugins/wp/Filtering.mli b/src/plugins/wp/Filtering.mli index 2bc50c6969ab49ceba66a89e392d6fdd42b6036d..7a0944c37bc7ff689e70e5703a565121d655e275 100644 --- a/src/plugins/wp/Filtering.mli +++ b/src/plugins/wp/Filtering.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Footprint.ml b/src/plugins/wp/Footprint.ml index dd036fcd8f9b46c4c43c4e763e1ed3660730108f..60245a5aa1eeed737fd4218823948b30e12ba69d 100644 --- a/src/plugins/wp/Footprint.ml +++ b/src/plugins/wp/Footprint.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Footprint.mli b/src/plugins/wp/Footprint.mli index cf30f499dbffa5c1b32c7d01c4b46c7b4a75a97a..2054c4d776d4032001d4e5b6f1a3061307599f2c 100644 --- a/src/plugins/wp/Footprint.mli +++ b/src/plugins/wp/Footprint.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Generator.ml b/src/plugins/wp/Generator.ml index f97165ae9e133e71b5d2328a3c73084a3ec7783f..0bab01bf8b94a9543a6b53524d0793cb68fcb25b 100644 --- a/src/plugins/wp/Generator.ml +++ b/src/plugins/wp/Generator.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Generator.mli b/src/plugins/wp/Generator.mli index 141bd268ad7290fc8958e628d3ea9fc439fe81d4..466834a6541e5e1573824fa772d1416d254c2279 100644 --- a/src/plugins/wp/Generator.mli +++ b/src/plugins/wp/Generator.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/GuiComposer.ml b/src/plugins/wp/GuiComposer.ml index 930109069888b07cf910bdd1dbe3396a3a941890..c550f764282a454e18e65b476a82f4ac97150148 100644 --- a/src/plugins/wp/GuiComposer.ml +++ b/src/plugins/wp/GuiComposer.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -69,7 +69,7 @@ class composer (focused : GuiSequent.focused) = match args with | a::b::_ when cc#ranged -> begin - match self#get_int a, self#get_int b with + match Tactical.get_int a, Tactical.get_int b with | Some a,Some b when a <= b -> let callback () = cc#set_value (Tactical.range a b) ; @@ -89,11 +89,6 @@ class composer (focused : GuiSequent.focused) = update () in focused#button ~title:"Stack" ~callback fmt - method private get_int = function - | Tactical.Compose(Tactical.Cint z) -> - (try Some (Integer.to_int z) with _ -> None) - | _ -> None - method private op1 title job args fmt = match args with | a::w -> let callback () = diff --git a/src/plugins/wp/GuiComposer.mli b/src/plugins/wp/GuiComposer.mli index ca31943be1cf53c7697323fe7a81f9756fdec4db..37d21d8ab93efb11d4dee24feb08de5a5bc36c15 100644 --- a/src/plugins/wp/GuiComposer.mli +++ b/src/plugins/wp/GuiComposer.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/GuiConfig.ml b/src/plugins/wp/GuiConfig.ml index 9ef8e8f6e880c8a5cb2bea221593072511bdb493..3b3a7c4f43e4201cfa2543e4e12f47581fd2f4d8 100644 --- a/src/plugins/wp/GuiConfig.ml +++ b/src/plugins/wp/GuiConfig.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/GuiConfig.mli b/src/plugins/wp/GuiConfig.mli index bf0464c09ee200a675ccfe81ee10785e95af84d1..4bbb3b11ad16d4626299896161542ac9f2b5c524 100644 --- a/src/plugins/wp/GuiConfig.mli +++ b/src/plugins/wp/GuiConfig.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/GuiGoal.ml b/src/plugins/wp/GuiGoal.ml index 40d95b6abbc3f257325e9eee710777eba8f8f86a..9264e1884c35c347282aaf8b07294a8f3fdb6a45 100644 --- a/src/plugins/wp/GuiGoal.ml +++ b/src/plugins/wp/GuiGoal.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -35,30 +35,38 @@ type mode = [ `Refresh | `Autofocus | `ViewModel | `ViewAll | `ViewRaw ] module Config = Gtk_helper.Configuration -class autofocus = - let options = [ - `Refresh , "Refresh" ; - `Autofocus , "Autofocus" ; - `ViewAll , "Full Context" ; - `ViewModel , "Unmangled Memory" ; - `ViewRaw , "Raw Obligation" ; - ] in - let values = [ - `Refresh , "REFRESH" ; - `Autofocus , "AUTOFOCUS" ; - `ViewAll , "VIEW_ALL" ; - `ViewModel , "VIEW_MODEL" ; - `ViewRaw , "VIEW_RAW" ; - ] in +class ['a] menu ~(data : ('a * string * string) list) ~key ~default = + let options = List.map (fun (v,d,_) -> v,d) data in + let values = List.map (fun (v,_,k) -> v,k) data in object(self) - inherit [mode] Widget.menu ~default:`Autofocus ~options () + inherit ['a] Widget.menu ~default ~options () initializer - Wutil.later - begin fun () -> - Config.config_values - ~key:"GuiGoal.autofocus" - ~default:`Autofocus ~values self - end + Wutil.later (fun () -> Config.config_values ~key ~default ~values self) + end + + +class autofocus = + object inherit [mode] menu + ~key:"GuiGoal.autofocus" + ~default:`Autofocus + ~data:[ + `Refresh , "Refresh" , "REFRESH" ; + `Autofocus , "Autofocus" , "AUTOFOCUS" ; + `ViewAll , "Full Context" , "VIEW_ALL" ; + `ViewModel , "Unmangled Memory" , "VIEW_MODEL" ; + `ViewRaw , "Raw Obligation" , "VIEW_RAW" ; + ] + end + +class iformat = + object inherit [Plang.iformat] menu + ~key:"GuiGoal.iformat" + ~default:`Dec + ~data:[ + `Dec , "Decimal" , "DEC" ; + `Hex , "Hexa" , "HEX" ; + `Bin , "Binary" , "BIN" ; + ] end (* -------------------------------------------------------------------------- *) @@ -74,7 +82,12 @@ class pane (proverpane : GuiConfig.provers) = let composer = new GuiComposer.composer printer in let browser = new GuiComposer.browser printer in let layout = new Wutil.layout in + let scroll_palette = + GBin.scrolled_window ~vpolicy:`AUTOMATIC ~hpolicy:`NEVER () + in + let scroll_palette_widget = new Wutil.gobj_widget scroll_palette in let palette = new Wpalette.panel () in + let () = scroll_palette#add palette#coerce in let help = new Widget.button ~label:"Tactics" ~border:false ~tooltip:"List Available Tactics" () in let delete = new Widget.button @@ -92,6 +105,7 @@ class pane (proverpane : GuiConfig.provers) = let save_script = new Widget.button ~icon:`SAVE ~tooltip:"Save Script" () in let autofocus = new autofocus in + let iformat = new iformat in let strategies = new GuiTactic.strategies () in object(self) @@ -104,10 +118,11 @@ class pane (proverpane : GuiConfig.provers) = let toolbar = Wbox.(toolbar [ w prev ; w next ; w cancel ; w forward ; - w autofocus ; w play_script ; w save_script ; + w autofocus ; w iformat ; + w play_script ; w save_script ; w ~padding:6 icon ; h ~padding:6 status ] [ w help ; w delete ]) in - layout#populate (Wbox.panel ~top:toolbar ~right:palette#widget text) ; + layout#populate (Wbox.panel ~top:toolbar ~right:scroll_palette_widget text) ; provers <- VCS.([ new GuiProver.prover ~console:text ~prover:AltErgo ] @ List.map @@ -135,6 +150,7 @@ class pane (proverpane : GuiConfig.provers) = save_script#connect (fun () -> self#save_script) ; play_script#connect (fun () -> self#play_script) ; autofocus#connect self#autofocus ; + iformat#connect self#iformat ; composer#connect (fun () -> self#update) ; browser#connect (fun () -> self#update) ; help#connect (fun () -> self#open_help) ; @@ -203,6 +219,8 @@ class pane (proverpane : GuiConfig.provers) = | `Leaf (k,_) -> ProofEngine.goto p (`Leaf(f k)) ; self#update | `Main | `Internal _ -> () + method private iformat f = printer#set_iformat f ; self#update + method private autofocus = function | `Autofocus -> printer#set_focus_mode true ; @@ -237,6 +255,7 @@ class pane (proverpane : GuiConfig.provers) = | Proof p -> ProofEngine.reset p ; ProverScript.spawn + ~provers:[ VCS.AltErgo ] ~result: (fun wpo prv res -> text#printf "[%a] %a : %a@." @@ -338,13 +357,13 @@ class pane (proverpane : GuiConfig.provers) = printer#set_target Tactical.Empty ; strategies#connect None ; List.iter (fun tactic -> tactic#clear) tactics - | Some(model,sequent,sel) -> + | Some(model,tree,sequent,sel) -> strategies#connect (Some (self#strategies sequent)) ; let select (tactic : GuiTactic.tactic) = let process = self#apply in let composer = self#compose in let browser = self#browse in - tactic#select ~process ~composer ~browser sel + tactic#select ~process ~composer ~browser ~tree sel in Model.with_model model (List.iter select) tactics ; let tgt = @@ -451,7 +470,7 @@ class pane (proverpane : GuiConfig.provers) = let sequent = printer#sequent in let select = printer#selection in let model = wpo.Wpo.po_model in - self#update_tactics (Some(model,sequent,select)) ; + self#update_tactics (Some(model,proof,sequent,select)) ; end | Composer _ | Browser _ -> () diff --git a/src/plugins/wp/GuiGoal.mli b/src/plugins/wp/GuiGoal.mli index 090a744a23ea8a7eda8fe8c25a278fe7a6c48732..fd60b80fa866f48cc812eca08b1de154985a3bad 100644 --- a/src/plugins/wp/GuiGoal.mli +++ b/src/plugins/wp/GuiGoal.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/GuiList.ml b/src/plugins/wp/GuiList.ml index 7c391c70811ae10467298ead5057375d06e28e32..9fa9f6a98f4fd53c58649ca20bdf3472eb0df248 100644 --- a/src/plugins/wp/GuiList.ml +++ b/src/plugins/wp/GuiList.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/GuiList.mli b/src/plugins/wp/GuiList.mli index 17c7ea2e7346358d40852b394e3ab73edb275be1..7b34f43d5db14f6cc3080193182ca80fbc2ea9e9 100644 --- a/src/plugins/wp/GuiList.mli +++ b/src/plugins/wp/GuiList.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/GuiNavigator.ml b/src/plugins/wp/GuiNavigator.ml index 345667e8b32195be0d0700cf28620654314ad3b2..7da1c5d3d9f9a6dc365f93b24f5c4d18001792ee 100644 --- a/src/plugins/wp/GuiNavigator.ml +++ b/src/plugins/wp/GuiNavigator.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/GuiNavigator.mli b/src/plugins/wp/GuiNavigator.mli index ef490a0e946f843f5b00ca2a7638cc86fb348aef..6604b2d739453754c513ba0fc0c63d2600e923d4 100644 --- a/src/plugins/wp/GuiNavigator.mli +++ b/src/plugins/wp/GuiNavigator.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/GuiPanel.ml b/src/plugins/wp/GuiPanel.ml index e9e2f4c1a6b64e522db79493239668fb11ece380..d9ee8c78e5e31502ce01a27098e6d9e0c137a41c 100644 --- a/src/plugins/wp/GuiPanel.ml +++ b/src/plugins/wp/GuiPanel.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -167,7 +167,7 @@ class model_selector (main : Design.main_window_extension_points) = let wp_dir = ref (Sys.getcwd()) let wp_script () = - let file = GToolbox.select_file + let file = Gtk_helper.select_file ~title:"Script File for Coq proofs" ~dir:wp_dir ~filename:"wp.script" () in diff --git a/src/plugins/wp/GuiPanel.mli b/src/plugins/wp/GuiPanel.mli index 630d5cd1f6fba173fba803d1c67e5cf6fc8dbb11..b5fe2af514a1af179b7f13cfedf2d38d03606829 100644 --- a/src/plugins/wp/GuiPanel.mli +++ b/src/plugins/wp/GuiPanel.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/GuiProof.ml b/src/plugins/wp/GuiProof.ml index fef695c3b98db203ef4f1cfd8cbf3dd06651067d..58acb6cefb502103b10fc79c45905b722d9e932e 100644 --- a/src/plugins/wp/GuiProof.ml +++ b/src/plugins/wp/GuiProof.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/GuiProof.mli b/src/plugins/wp/GuiProof.mli index 758b76cd8f4c8b6c4b68eb06711ae0ab57499e3f..50b09ebbefccc1975fc94651d928fab67e68bee9 100644 --- a/src/plugins/wp/GuiProof.mli +++ b/src/plugins/wp/GuiProof.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/GuiProver.ml b/src/plugins/wp/GuiProver.ml index 56d70305d93b57b3f6d2c6ee8e966e9e7e8c786e..1ed614ee5f2eab4fb5e7a1d5813a17ac5a3caf8c 100644 --- a/src/plugins/wp/GuiProver.ml +++ b/src/plugins/wp/GuiProver.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/GuiProver.mli b/src/plugins/wp/GuiProver.mli index 697c8c598be4a62576d8c482ad7cdb08c48bb8c6..ab5562587b26392e4c7770a39aeabd899276ea70 100644 --- a/src/plugins/wp/GuiProver.mli +++ b/src/plugins/wp/GuiProver.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/GuiSequent.ml b/src/plugins/wp/GuiSequent.ml index 6def97686314b8d3e198fdaed8f651cf4f94afeb..9caaecce6659ed64c2dac555ff2f1c4a7aa17375 100644 --- a/src/plugins/wp/GuiSequent.ml +++ b/src/plugins/wp/GuiSequent.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -526,6 +526,9 @@ class focused (wtext : Wtext.text) = method get_state_mode = pcond#get_state method set_state_mode = pcond#set_state + method set_iformat = plang#set_iformat + method get_iformat = plang#get_iformat + method selected = begin self#set_target self#selection ; diff --git a/src/plugins/wp/GuiSequent.mli b/src/plugins/wp/GuiSequent.mli index f4a4ee15659f1629bfce2629bad34f37e977b4bb..b11d583cdf96a71bb0e8379df39f930610c2de04 100644 --- a/src/plugins/wp/GuiSequent.mli +++ b/src/plugins/wp/GuiSequent.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -37,6 +37,8 @@ class focused : Wtext.text -> method set_focus_mode : bool -> unit method get_state_mode : bool method set_state_mode : bool -> unit + method get_iformat : Plang.iformat + method set_iformat : Plang.iformat -> unit method selected : unit method unselect : target diff --git a/src/plugins/wp/GuiSource.ml b/src/plugins/wp/GuiSource.ml index bee8bb5c7297dbdf27ee55d0f669b8301845d029..f08cafce93e0caddc5953dc4d4588599c2b51ba5 100644 --- a/src/plugins/wp/GuiSource.ml +++ b/src/plugins/wp/GuiSource.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/GuiSource.mli b/src/plugins/wp/GuiSource.mli index 6259bab54fed44818c91277294b09008bbe079a3..c459b1eb40f57055266d5b397cc0b58ad3f29c0a 100644 --- a/src/plugins/wp/GuiSource.mli +++ b/src/plugins/wp/GuiSource.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/GuiTactic.ml b/src/plugins/wp/GuiTactic.ml index 27f6d123ee7c7130e54aaf8147a7fd4ed13f49bf..a71c86bd8a48d1f81cbfc6e44352367def4e89a8 100644 --- a/src/plugins/wp/GuiTactic.ml +++ b/src/plugins/wp/GuiTactic.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -340,6 +340,7 @@ let wfield tac form pp = function (* -------------------------------------------------------------------------- *) type edited = { + tree : ProofEngine.tree ; target : selection ; browser : (browser -> unit) ; composer : (composer -> unit) ; @@ -388,6 +389,10 @@ class tactic (* --- Feedback API --- *) (* -------------------------------------------------------------------------- *) + method pool = match edited with + | None -> assert false + | Some { tree } -> ProofEngine.pool tree + method interactive = self#is_active method get_title = title method has_error = error @@ -437,8 +442,8 @@ class tactic method private updated () = match edited with | None -> () - | Some { process ; composer ; browser ; target } -> - self#select ~process ~composer ~browser target + | Some { process ; composer ; browser ; target ; tree } -> + self#select ~process ~composer ~browser ~tree target method clear = begin @@ -455,9 +460,11 @@ class tactic try tac#select (self :> feedback) target with Not_found | Exit -> Not_applicable - method select ~process ~browser ~composer (target : selection) = + method select ~process ~browser ~composer ~tree + (target : selection) = begin self#reset_dongle ; + edited <- Some { process ; composer ; browser ; target ; tree } ; let status = self#status target in match status , error with | Not_applicable , _ -> @@ -466,12 +473,10 @@ class tactic self#set_action () ; | Not_configured , _ | Applicable _ , true -> self#set_visible true ; - edited <- Some { process ; composer ; browser ; target } ; self#set_status `DIALOG_WARNING ; self#set_action () ; | Applicable proc , false -> self#set_visible true ; - edited <- Some { process ; composer ; browser ; target } ; self#set_status `APPLY ; let callback () = process tac target proc in self#set_action ~callback () ; diff --git a/src/plugins/wp/GuiTactic.mli b/src/plugins/wp/GuiTactic.mli index 85cf4e3ca7a633e235072ee3d6f663b132aeeda8..40b9f2cc2320a3783ac0a6c5ddb1343137ffe308 100644 --- a/src/plugins/wp/GuiTactic.mli +++ b/src/plugins/wp/GuiTactic.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -64,6 +64,7 @@ class tactic : Tactical.t -> (Format.formatter -> Tactical.selection -> unit) -> process:(tactical -> selection -> process -> unit) -> browser:(browser -> unit) -> composer:(composer -> unit) -> + tree:ProofEngine.tree -> selection -> unit end diff --git a/src/plugins/wp/Lang.ml b/src/plugins/wp/Lang.ml index 3487ca4d34cb494a7764c7afe871f55e14ccd964..8577ac6702ad80d543bdcdd3cd103aeee30db076 100644 --- a/src/plugins/wp/Lang.ml +++ b/src/plugins/wp/Lang.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -801,7 +801,9 @@ struct else match Context.get_opt context_pp with | Some env -> Pretty.pp_term_env env fmt e - | None -> Pretty.pp_term Pretty.empty fmt e + | None -> + let env = Pretty.known Pretty.empty (QED.vars e) in + Pretty.pp_term env fmt e let pp_pred = pp_term let pp_var fmt x = pp_term fmt (e_var x) let pp_vars fmt xs = diff --git a/src/plugins/wp/Lang.mli b/src/plugins/wp/Lang.mli index 5caf9fe2cec5d60fb42ff19d8eade955b2b1747b..4644a22391f0473387a54a6fad9ed2871a6d5e0a 100644 --- a/src/plugins/wp/Lang.mli +++ b/src/plugins/wp/Lang.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Letify.ml b/src/plugins/wp/Letify.ml index a6d1257b1a476ddbc3eaf439f88adfd94b891441..e9dbaabf9892365985f4579693f361d3e365bd96 100644 --- a/src/plugins/wp/Letify.ml +++ b/src/plugins/wp/Letify.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Letify.mli b/src/plugins/wp/Letify.mli index 2007c5994f7fa21a4f773ba19680294c74665c62..4ae9d7b4ce9a8a812aa475ad5e995f3f78fa69bb 100644 --- a/src/plugins/wp/Letify.mli +++ b/src/plugins/wp/Letify.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/LogicAssigns.ml b/src/plugins/wp/LogicAssigns.ml index f3739d5f0193058592a351f51d9c881b3449b78a..024797e31770826ea1a2ef947e00793690f57e50 100644 --- a/src/plugins/wp/LogicAssigns.ml +++ b/src/plugins/wp/LogicAssigns.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/LogicAssigns.mli b/src/plugins/wp/LogicAssigns.mli index 72a0985b9f89cfad80b217dad5d8224b6b6c4254..92cd1d2006bb61cfbbe5f75ab8966db08f01d1c2 100644 --- a/src/plugins/wp/LogicAssigns.mli +++ b/src/plugins/wp/LogicAssigns.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/LogicBuiltins.ml b/src/plugins/wp/LogicBuiltins.ml index afc8e9bdb4ffd61a650ec9ec297fa26511206637..1e20d51a4afe8ec605a214a06beb1a050d16bfce 100644 --- a/src/plugins/wp/LogicBuiltins.ml +++ b/src/plugins/wp/LogicBuiltins.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/LogicBuiltins.mli b/src/plugins/wp/LogicBuiltins.mli index 4f5d992935c604896d449f51308eb119e342c9fb..41a530ff77b0ece0f423052649aa5795b3dc7803 100644 --- a/src/plugins/wp/LogicBuiltins.mli +++ b/src/plugins/wp/LogicBuiltins.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/LogicCompiler.ml b/src/plugins/wp/LogicCompiler.ml index 11bcfaec17cee8d0d0f4842fe093f13120f084d8..216df75f16769a7a8b4a5968c78c54af63729cc4 100644 --- a/src/plugins/wp/LogicCompiler.ml +++ b/src/plugins/wp/LogicCompiler.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/LogicCompiler.mli b/src/plugins/wp/LogicCompiler.mli index 9e45c3ad7ec33a1c9f5eec6a74f823b254f0b5ba..a34f3a35511f0f8ecd7a8f06270419e251ec7c9c 100644 --- a/src/plugins/wp/LogicCompiler.mli +++ b/src/plugins/wp/LogicCompiler.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/LogicSemantics.ml b/src/plugins/wp/LogicSemantics.ml index c6d0f4b3ef6ecff886c9f508498b7771f4ef7de8..60c0efae3922f9f7c5b7ae12876965847cd93b65 100644 --- a/src/plugins/wp/LogicSemantics.ml +++ b/src/plugins/wp/LogicSemantics.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/LogicSemantics.mli b/src/plugins/wp/LogicSemantics.mli index 7ccf8ee676ea24469e2faeca178bf8e387ec1f59..fb23bab846388e687dfac32ca04a932e7ab08b09 100644 --- a/src/plugins/wp/LogicSemantics.mli +++ b/src/plugins/wp/LogicSemantics.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/LogicUsage.ml b/src/plugins/wp/LogicUsage.ml index ed2e54b9d0ba7cb82ad7cb1b733c8fdbbe887562..f3e9b63d653ae29eff374583cbd62728ab5a7584 100644 --- a/src/plugins/wp/LogicUsage.ml +++ b/src/plugins/wp/LogicUsage.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/LogicUsage.mli b/src/plugins/wp/LogicUsage.mli index b2a8f1ca475d0c456ff63c80502b361cbd8cc1ea..a2efdc07b7c42f8600e061a4395d2cabf4ad62e8 100644 --- a/src/plugins/wp/LogicUsage.mli +++ b/src/plugins/wp/LogicUsage.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Makefile.in b/src/plugins/wp/Makefile.in index 81575977d66bab822094aaa11fcd3d1be5e5ba8e..2a924fd195d13dade963059d5cacda597be774d4 100644 --- a/src/plugins/wp/Makefile.in +++ b/src/plugins/wp/Makefile.in @@ -2,7 +2,7 @@ # # # This file is part of WP plug-in of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat a l'energie atomique et aux energies # # alternatives) # # # @@ -40,7 +40,7 @@ include $(PLUGIN_DIR)/share/Makefile.resources # Extension of the GUI for wp is compilable # only if gnomecanvas is available -ifeq ($(HAS_GNOMECANVAS),yes) +#ifeq ($(HAS_GNOMECANVAS),yes) PLUGIN_GUI_CMO:= \ GuiConfig \ GuiList \ @@ -53,7 +53,7 @@ PLUGIN_GUI_CMO:= \ GuiSource \ GuiPanel \ GuiNavigator -endif +#endif PLUGIN_ENABLE:=@ENABLE_WP@ PLUGIN_NAME:=Wp diff --git a/src/plugins/wp/Matrix.ml b/src/plugins/wp/Matrix.ml index 3e1e87778423922d130919717086aa74f40f15ef..9a3aadbb39831d0732ae0c1fd3b346109d2ffe79 100644 --- a/src/plugins/wp/Matrix.ml +++ b/src/plugins/wp/Matrix.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Matrix.mli b/src/plugins/wp/Matrix.mli index d0620674280f00a28c2dbd808279006d7d7d2848..10f6e6f9b573061d464e010c942b12a920203dca 100644 --- a/src/plugins/wp/Matrix.mli +++ b/src/plugins/wp/Matrix.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/MemEmpty.ml b/src/plugins/wp/MemEmpty.ml index a29a2014e35a2e2fa7380f224c095dc3d2505f7b..cf7d3dc174069393407c5a60dcbca667178d9fb0 100644 --- a/src/plugins/wp/MemEmpty.ml +++ b/src/plugins/wp/MemEmpty.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -35,6 +35,8 @@ let configure () = Context.set Lang.pointer (fun _typ -> Logic.Int) ; Context.set Cvalues.null (p_equal e_zero) ; end +let no_binder = { bind = fun _ f v -> f v } +let configure_ia _ = no_binder let hypotheses () = [] diff --git a/src/plugins/wp/MemEmpty.mli b/src/plugins/wp/MemEmpty.mli index 7e5e49fc9f560f0b15309824694f6f1319ccde85..6191649db155bbd608cd6adb2fc67907cc03e8a0 100644 --- a/src/plugins/wp/MemEmpty.mli +++ b/src/plugins/wp/MemEmpty.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/MemTyped.ml b/src/plugins/wp/MemTyped.ml index 5c215d6736d287d57fa8d0bba7ca60c5492a1482..410076e90d5b76643c128246e264f40d836807d6 100644 --- a/src/plugins/wp/MemTyped.ml +++ b/src/plugins/wp/MemTyped.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -149,7 +149,6 @@ let a_addr b k = a_shift (a_global b) k (* --- Qed Simplifiers --- *) (* -------------------------------------------------------------------------- *) - (* Pointer arithmetic for structure access and array access could be defined directly using the record [{ base = p.base; offset = p.offset @@ -367,6 +366,7 @@ let phi_addr_of_int p = (* -------------------------------------------------------------------------- *) (* --- Simplifier Registration --- *) (* -------------------------------------------------------------------------- *) + let () = Context.register begin fun () -> F.set_builtin_1 f_base phi_base ; @@ -391,6 +391,8 @@ let configure () = Context.set Lang.pointer (fun _ -> t_addr) ; Context.set Cvalues.null (p_equal a_null) ; end +let no_binder = { bind = fun _ f v -> f v } +let configure_ia _ = no_binder type pointer = NoCast | Fits | Unsafe let pointer = Context.create "MemTyped.pointer" @@ -1028,7 +1030,7 @@ let load sigma obj l = Val (loadvalue sigma obj l) (* --- Locations --- *) (* -------------------------------------------------------------------------- *) -let null = a_null +let null = a_null (* as a loc *) let literal ~eid cst = shift (a_global (STRING.get (eid,cst))) (C_int (Ctypes.c_char ())) e_zero diff --git a/src/plugins/wp/MemTyped.mli b/src/plugins/wp/MemTyped.mli index 17488a1f3a064d70634f3d0bfd205b568ade922a..6c23647b4fe25faa6e81b96584cbae0f23199dae 100644 --- a/src/plugins/wp/MemTyped.mli +++ b/src/plugins/wp/MemTyped.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/MemVar.ml b/src/plugins/wp/MemVar.ml index 417845558f72153c98aab7b1309b63e45604f4f1..b4d8a304b5e39ebcfb26c760a27b16bc269f24c9 100644 --- a/src/plugins/wp/MemVar.ml +++ b/src/plugins/wp/MemVar.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -49,6 +49,8 @@ struct let datatype = "MemVar." ^ V.datatype ^ M.datatype let configure = M.configure + let no_binder = { bind = fun _ f v -> f v } + let configure_ia _ = no_binder let hypotheses () = V.hypotheses () @ M.hypotheses () diff --git a/src/plugins/wp/MemVar.mli b/src/plugins/wp/MemVar.mli index e84b525cdca9faad3722529cf57b5a80663acc52..440155a4434e46fad298916793e992e77b2e1f03 100644 --- a/src/plugins/wp/MemVar.mli +++ b/src/plugins/wp/MemVar.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/MemZeroAlias.ml b/src/plugins/wp/MemZeroAlias.ml index e0386d60131474730280e52095bafae9bb4fe8f6..c88f4531a438160afc5b4b7377c13978f189b43e 100644 --- a/src/plugins/wp/MemZeroAlias.ml +++ b/src/plugins/wp/MemZeroAlias.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -39,6 +39,8 @@ let configure () = Context.set Lang.pointer (fun _typ -> Logic.Int) ; Context.set Cvalues.null F.(p_equal e_zero) ; end +let no_binder = { bind = fun _ f v -> f v } +let configure_ia _ = no_binder (* TODO: compute actual separation hypotheses *) let hypotheses () = [] diff --git a/src/plugins/wp/MemZeroAlias.mli b/src/plugins/wp/MemZeroAlias.mli index 7e5e49fc9f560f0b15309824694f6f1319ccde85..6191649db155bbd608cd6adb2fc67907cc03e8a0 100644 --- a/src/plugins/wp/MemZeroAlias.mli +++ b/src/plugins/wp/MemZeroAlias.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/MemoryContext.ml b/src/plugins/wp/MemoryContext.ml index 0d2686fee45dce9271b3240fd7792ffe46b8c1e2..6779dba0fc23987dd8b23f62448bc411b1a93fa8 100644 --- a/src/plugins/wp/MemoryContext.ml +++ b/src/plugins/wp/MemoryContext.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/MemoryContext.mli b/src/plugins/wp/MemoryContext.mli index 27168e496e6741c4cc36bc9ecb97d1f069b8e80b..4b1cb73ae2dd0c2bef2a28986d3cf1cbe50943b3 100644 --- a/src/plugins/wp/MemoryContext.mli +++ b/src/plugins/wp/MemoryContext.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Model.ml b/src/plugins/wp/Model.ml index 041f5ec4acc8ab5c446848c86c62a12118eff499..a69ac68fabd0e5f415491a0310c9752eb5ef3791 100644 --- a/src/plugins/wp/Model.ml +++ b/src/plugins/wp/Model.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Model.mli b/src/plugins/wp/Model.mli index 303c20707fe0c2289b50c814d649e10e3872c8c8..948e6e08ea68419eeef685e9dda8bdca2c18d143 100644 --- a/src/plugins/wp/Model.mli +++ b/src/plugins/wp/Model.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Mstate.ml b/src/plugins/wp/Mstate.ml index 8a2a6229a34de3532d9337bb2761a3c8716df62d..a8a5cebc6dcf29c1afe1b747ae3a6028ec9f4ee7 100644 --- a/src/plugins/wp/Mstate.ml +++ b/src/plugins/wp/Mstate.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Mstate.mli b/src/plugins/wp/Mstate.mli index 962e55630786722275edf590588410368df64120..517b57efb245f980c5271a71b6fc590fa57173eb 100644 --- a/src/plugins/wp/Mstate.mli +++ b/src/plugins/wp/Mstate.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Partitioning.ml b/src/plugins/wp/Partitioning.ml index 7a53e3519e16767385577fdd9608ac4e10222bb4..d8490466d97760335742e961c84e7c13a06b27ee 100644 --- a/src/plugins/wp/Partitioning.ml +++ b/src/plugins/wp/Partitioning.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Partitioning.mli b/src/plugins/wp/Partitioning.mli index 9f3193ce8db53dd6e51170ce8b6244d22cacea86..ae3501d929342b216bc7b9f4d68c3213ecf6706b 100644 --- a/src/plugins/wp/Partitioning.mli +++ b/src/plugins/wp/Partitioning.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Passive.ml b/src/plugins/wp/Passive.ml index f1fe090ee96bb606d1f8cf758f8b5c54185fca84..0788b826e1358703fb1d7c408697c94454ba4ba8 100644 --- a/src/plugins/wp/Passive.ml +++ b/src/plugins/wp/Passive.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Passive.mli b/src/plugins/wp/Passive.mli index 5a730291439c7486a97190c307614d7da19e660a..2dc9000fc06a8c661714e03644de65638201e6e7 100644 --- a/src/plugins/wp/Passive.mli +++ b/src/plugins/wp/Passive.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Pcfg.ml b/src/plugins/wp/Pcfg.ml index 70edd6ba7121117ad6a4fcf1a7f8e1a3b7d9dd5e..34a886762d2e4cfc4ad475a419cbc9e6c2e9c607 100644 --- a/src/plugins/wp/Pcfg.ml +++ b/src/plugins/wp/Pcfg.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Pcfg.mli b/src/plugins/wp/Pcfg.mli index de876597ba152f1f589e9ab3d6843e9174a18732..7e2a61dfd935661731b3dc85eb1b5d12c6eb10bd 100644 --- a/src/plugins/wp/Pcfg.mli +++ b/src/plugins/wp/Pcfg.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Pcond.ml b/src/plugins/wp/Pcond.ml index 670f4171b09ae43e67c40a5e67ed35dcf6d1aa54..4f7d7f313c9e87d143496774a632407e655814f8 100644 --- a/src/plugins/wp/Pcond.ml +++ b/src/plugins/wp/Pcond.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Pcond.mli b/src/plugins/wp/Pcond.mli index b27e080ead5147df62eb96fc5627b669165cfbec..b56695f7fe66b75b3054816aa563f016f3964408 100644 --- a/src/plugins/wp/Pcond.mli +++ b/src/plugins/wp/Pcond.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Plang.ml b/src/plugins/wp/Plang.ml index 4b0b51a9b9dc3dd93704345b7e054731dcf285ff..bc6277756c078987be36f7cf5b8b7946d6d57aed 100644 --- a/src/plugins/wp/Plang.ml +++ b/src/plugins/wp/Plang.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -67,6 +67,7 @@ module E = Qed.Export.Make(Lang.F.QED) module Env = E.Env type scope = Qed.Engine.scope +type iformat = [ `Dec | `Hex | `Bin ] let sanitizer = Qed.Export.sanitize ~to_lowercase:false class engine = @@ -75,6 +76,10 @@ class engine = inherit Lang.idprinting method infoprover w = w.altergo + val mutable iformat : iformat = `Dec + method get_iformat = iformat + method set_iformat (f : iformat) = iformat <- f + (* --- Types --- *) method t_int = "Z" @@ -97,7 +102,20 @@ class engine = method e_true _ = "true" method e_false _ = "false" - method pp_int _ = Integer.pretty ~hexa:false + + method pp_int _ fmt z = + try + let n = Integer.to_int z in + if -256 <= n && n <= 256 then + Format.pp_print_int fmt n + else + raise Z.Overflow + with Z.Overflow -> + match iformat with + | `Dec -> Integer.pretty ~hexa:false fmt z + | `Hex -> Integer.pp_hex ~sep:"," fmt z + | `Bin -> Integer.pp_bin ~sep:"," fmt z + method pp_real fmt q = match Q.classify q with | Q.ZERO -> Format.pp_print_string fmt ".0" diff --git a/src/plugins/wp/Plang.mli b/src/plugins/wp/Plang.mli index 4cc1a28b935b9fc3f115f846591bc755aa4b8961..3dd2bf095125c2c298443944d4eb8e32aeedd74f 100644 --- a/src/plugins/wp/Plang.mli +++ b/src/plugins/wp/Plang.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -36,9 +36,13 @@ val alloc_xs : pool -> (var -> unit) -> Vars.t -> unit val alloc_domain : pool -> Vars.t val sanitizer : string -> string +type iformat = [ `Hex | `Dec | `Bin ] + class engine : object inherit [Z.t,ADT.t,Field.t,Fun.t,tau,var,term,Env.t] Qed.Engine.engine + method get_iformat : iformat + method set_iformat : iformat -> unit method marks : Env.t * Lang.F.marks method pp_pred : Format.formatter -> pred -> unit method lookup : term -> scope diff --git a/src/plugins/wp/PrecisionLoss.mli b/src/plugins/wp/PrecisionLoss.mli index 31d3b148f6f60d0d2f895f6001ce9a1b1b99e92a..791197b43d9f8b4689339fa56331635712fe1820 100644 --- a/src/plugins/wp/PrecisionLoss.mli +++ b/src/plugins/wp/PrecisionLoss.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/ProofEngine.ml b/src/plugins/wp/ProofEngine.ml index 299b800d8ce44ae72a68db4e2b25c04617c67aeb..af909388a75859ce192afc8e84976e67c7c22711 100644 --- a/src/plugins/wp/ProofEngine.ml +++ b/src/plugins/wp/ProofEngine.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -40,6 +40,7 @@ and script = type tree = { main : Wpo.t ; (* Main goal to be proved. *) + mutable pool : Lang.F.pool option ; (* Global pool variable *) mutable saved : bool ; (* Saved on Disk. *) mutable gid : int ; (* WPO goal numbering *) mutable head : node option ; (* the current node *) @@ -53,6 +54,7 @@ module PROOFS = Model.StaticGenerator(Wpo.S) let name = "Wp.ProofEngine.Proofs" let compile main = { main ; gid = 0 ; + pool = None ; head = None ; root = None ; saved = false ; @@ -69,9 +71,18 @@ let get wpo = | Some { script = Tactic _ } -> if proof.saved then `Saved else `Proof with Not_found -> if ProofSession.exists wpo then `Script else `None + let iter_all f ns = List.iter (fun (_,n) -> f n) ns let map_all f ns = List.map (fun (k,n) -> k,f n) ns +let pool tree = + match tree.pool with + | Some pool -> pool + | None -> + let _,sequent = Wpo.compute tree.main in + let pool = Lang.new_pool ~vars:(Conditions.vars_seq sequent) () in + tree.pool <- Some pool ; pool + (* -------------------------------------------------------------------------- *) (* --- Constructors --- *) (* -------------------------------------------------------------------------- *) @@ -277,6 +288,7 @@ let mk_goal t ~title ~part ~axioms sequent = let sid = Printf.sprintf "%s-%d" t.main.Wpo.po_sid id in Wpo.({ po_gid = gid ; + po_leg = "" ; (* no use for legacy name *) po_sid = sid ; po_name = Printf.sprintf "%s (%s)" title part ; po_idx = t.main.po_idx ; diff --git a/src/plugins/wp/ProofEngine.mli b/src/plugins/wp/ProofEngine.mli index fb6f88aa0b4871cc3fa33033bcea4597e4aee0d0..78174d15cdf221a002c5b32a22ed8da79435290d 100644 --- a/src/plugins/wp/ProofEngine.mli +++ b/src/plugins/wp/ProofEngine.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -40,6 +40,7 @@ type state = [ `Opened | `Proved | `Pending of int | `Script of int ] type current = [ `Main | `Internal of node | `Leaf of int * node ] type position = [ `Main | `Node of node | `Leaf of int ] +val pool : tree -> Lang.F.pool val saved : tree -> bool val set_saved : tree -> bool -> unit diff --git a/src/plugins/wp/ProofScript.ml b/src/plugins/wp/ProofScript.ml index d3d6b9c26f6aed8e5e2dfe5edecdf31f8f48c988..9bc0cf1931a1ea4d1942d60313099e0e3b65e683 100644 --- a/src/plugins/wp/ProofScript.ml +++ b/src/plugins/wp/ProofScript.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -91,7 +91,7 @@ let pattern p = let occur p t = Footprint.locate ~inside:(Lang.F.e_prop p) ~select:t -let j_select s = "select" , Json.String s +let j_select s = "select" , `String s let j_goal = j_select "clause-goal" let j_step = j_select "clause-step" let j_ingoal = j_select "inside-goal" @@ -99,51 +99,51 @@ let j_instep = j_select "inside-step" let j_compose = j_select "compose" let j_kint = j_select "kint" let j_range = j_select "range" -let j_id a = "id" , Json.String a -let j_at s = "at" , Json.Int s.id -let j_int z = "val" , Json.String (Integer.to_string z) -let j_min a = "min" , Json.Int a -let j_max b = "max" , Json.Int b -let j_kind s = "kind" , Json.String (s_kind s) -let j_pattern p = "pattern" , Json.String p +let j_id a = "id" , `String a +let j_at s = "at" , `Int s.id +let j_int z = "val" , `String (Integer.to_string z) +let j_min a = "min" , `Int a +let j_max b = "max" , `Int b +let j_kind s = "kind" , `String (s_kind s) +let j_pattern p = "pattern" , `String p let j_ppattern p = j_pattern (pattern p) -let j_occur k = "occur" , Json.Int k +let j_occur k = "occur" , `Int k let j_pred p = let tgt = Pretty_utils.to_string Lang.F.pp_pred p in - "target" , Json.String tgt + "target" , `String tgt let j_term e = let tgt = Pretty_utils.to_string Lang.F.pp_term e in - "target" , Json.String tgt + "target" , `String tgt let rec json_of_selection = function - | Empty -> Json.Null + | Empty -> `Null | Compose code -> json_of_compose code | Clause (Goal p) -> - Json.(Assoc[ j_goal ; j_pred p ; j_ppattern p ]) + `Assoc[ j_goal ; j_pred p ; j_ppattern p ] | Clause (Step s) -> let p = Conditions.head s in - Json.(Assoc[ j_step ; j_at s ; j_kind s ; j_pred p ; j_ppattern p ]) + `Assoc[ j_step ; j_at s ; j_kind s ; j_pred p ; j_ppattern p ] | Inside(Goal p,e) -> let n,m = occur p e in - Json.(Assoc [ j_ingoal ; j_occur n ; j_term e ; j_pattern m ]) + `Assoc [ j_ingoal ; j_occur n ; j_term e ; j_pattern m ] | Inside(Step s,e) -> let n,m = occur (Conditions.head s) e in - Json.(Assoc [ j_instep ; j_at s ; j_kind s ; j_occur n ; - j_term e ; j_pattern m ]) + `Assoc [ j_instep ; j_at s ; j_kind s ; j_occur n ; + j_term e ; j_pattern m ] and j_args = function | [] -> [] - | es -> ["args" , Json.Array (List.map json_of_selection es)] + | es -> ["args" , `List (List.map json_of_selection es)] and json_of_compose = function - | Cint a -> Json.(Assoc [j_kint ; j_int a]) - | Range(a,b) -> Json.(Assoc [j_range ; j_min a ; j_max b]) - | Code(_,id,es) -> Json.(Assoc (j_compose :: j_id id :: j_args es)) + | Cint a -> `Assoc [j_kint ; j_int a] + | Range(a,b) -> `Assoc [j_range ; j_min a ; j_max b] + | Code(_,id,es) -> `Assoc (j_compose :: j_id id :: j_args es) (* -------------------------------------------------------------------------- *) (* --- Json to Selection --- *) @@ -193,12 +193,12 @@ let rec selection_of_json ((hs,g) as s : sequent) js = let selection_target js = js >? "target" |> Json.string let json_of_named = function - | None -> Json.Null + | None -> `Null | Some a -> - Json.Assoc Tactical.[ - "id" , Json.String a.vid ; - "title" , Json.String a.title ; - "descr" , Json.String a.descr ; + `Assoc Tactical.[ + "id" , `String a.vid ; + "title" , `String a.title ; + "descr" , `String a.descr ; ] let named_of_json find js = @@ -219,7 +219,7 @@ let json_of_param (tac : tactical) = function | Spinner(fd,_) -> ident fd , Json.of_int (tac#get_field fd) | Composer(fd,_) -> ident fd , json_of_selection (tac#get_field fd) | Selector(fd,options,equal) -> - ident fd , Json.String + ident fd , `String begin try let a = tac#get_field fd in @@ -260,7 +260,7 @@ let param_of_json (tac : tactical) seq js = function end let json_of_parameters (tac : tactical) = - Json.Assoc (List.map (json_of_param tac) tac#params) + `Assoc (List.map (json_of_param tac) tac#params) let parameters_of_json (tac : tactical) sequent js = List.iter (param_of_json tac sequent js) tac#params @@ -285,27 +285,28 @@ let jtactic ~title (tac : tactical) (sel : selection) = } let json_of_tactic t js = - Json.(Assoc [ - "header" , Json.String t.header ; - "tactic" , Json.String t.tactic ; - "params" , t.params ; - "select" , t.select ; - "children" , Json.Assoc js ; - ]) + `Assoc [ + "header" , `String t.header ; + "tactic" , `String t.tactic ; + "params" , t.params ; + "select" , t.select ; + "children" , `Assoc js ; + ] let children_of_json = function - | Json.Array js -> + | `List js -> Wp_parameters.warning ~current:false ~once:true "Deprecated script(s) found ; consider using prover 'tip'" ; List.map (fun j -> "",j) js - | Json.Assoc fs -> fs + | `Assoc fs -> fs | _ -> [] + let tactic_of_json js = try let header = js >? "header" |> Json.string in let tactic = js >? "tactic" |> Json.string in - let params = try js >? "params" with Not_found -> Json.Null in - let select = try js >? "select" with Not_found -> Json.Null in + let params = try js >? "params" with Not_found -> `Null in + let select = try js >? "select" with Not_found -> `Null in let children = try js >? "children" |> children_of_json with Not_found -> [] in Some( { header ; tactic ; params ; select } , children ) with _ -> None @@ -315,31 +316,31 @@ let tactic_of_json js = (* -------------------------------------------------------------------------- *) let json_of_verdict = function - | VCS.NoResult | VCS.Checked | VCS.Computing _ -> Json.String "none" - | VCS.Valid -> Json.String "valid" - | VCS.Unknown -> Json.String "unknown" - | VCS.Timeout -> Json.String "timeout" - | VCS.Stepout -> Json.String "stepout" - | VCS.Invalid -> Json.String "invalid" - | VCS.Failed -> Json.String "failed" + | VCS.NoResult | VCS.Checked | VCS.Computing _ -> `String "none" + | VCS.Valid -> `String "valid" + | VCS.Unknown -> `String "unknown" + | VCS.Timeout -> `String "timeout" + | VCS.Stepout -> `String "stepout" + | VCS.Invalid -> `String "invalid" + | VCS.Failed -> `String "failed" let verdict_of_json = function - | Json.String "valid" -> VCS.Valid - | Json.String "unknown" -> VCS.Unknown - | Json.String "timeout" -> VCS.Timeout - | Json.String "stepout" -> VCS.Stepout - | Json.String "invalid" -> VCS.Invalid - | Json.String "failed" -> VCS.Failed + | `String "valid" -> VCS.Valid + | `String "unknown" -> VCS.Unknown + | `String "timeout" -> VCS.Timeout + | `String "stepout" -> VCS.Stepout + | `String "invalid" -> VCS.Invalid + | `String "failed" -> VCS.Failed | _ -> VCS.NoResult let json_of_result (p : VCS.prover) (r : VCS.result) = let open VCS in - let name = "prover" , Json.String (VCS.name_of_prover p) in + let name = "prover" , `String (VCS.name_of_prover p) in let verdict = "verdict" , json_of_verdict r.verdict in - let time = if r.prover_time > 0.0 then [ "time" , Json.Float r.prover_time ] else [] in - let steps = if r.prover_steps > 0 then [ "steps" , Json.Int r.prover_steps ] else [] in - let depth = if r.prover_depth > 0 then [ "depth" , Json.Int r.prover_depth ] else [] in - Json.Assoc (name :: verdict :: (time @ steps @ depth)) + let time = if r.prover_time > 0.0 then [ "time" , `Float r.prover_time ] else [] in + let steps = if r.prover_steps > 0 then [ "steps" , `Int r.prover_steps ] else [] in + let depth = if r.prover_depth > 0 then [ "depth" , `Int r.prover_depth ] else [] in + `Assoc (name :: verdict :: (time @ steps @ depth)) let prover_of_json js = try VCS.prover_of_name (js >? "prover" |> Json.string) @@ -382,15 +383,15 @@ let rec subgoals n = function | (_,a)::s -> subgoals (n + status a) s let a_prover p r = Prover(p,r) -let a_tactic tac children = Tactic(subgoals 0 children,tac,children) +let a_tactic tac children = Tactic(subgoals 0 children,tac,children) (* -------------------------------------------------------------------------- *) (* --- Codecs --- *) (* -------------------------------------------------------------------------- *) let rec decode = function - | Json.Null -> [] - | Json.Array alts -> List.map alternative alts + | `Null -> [] + | `List alts -> List.map alternative alts | js -> [Error("Invalid Script",js)] and subscript (key,js) = key , decode js @@ -404,7 +405,7 @@ and alternative js = a_tactic tactic (List.map subscript children) | None -> Error("Invalid Tactic",js) -let rec encode script = Json.Array (alternatives script) +let rec encode script = `List (alternatives script) and subgoal (k,alt) = k , encode alt @@ -428,11 +429,12 @@ let configure jtactic sequent = (* --- Console --- *) (* -------------------------------------------------------------------------- *) -class console ~title = +class console ~pool ~title = object val mutable the_title = title + method pool : Lang.F.pool = pool method interactive = false method get_title = the_title method set_title : 'a. 'a formatter = diff --git a/src/plugins/wp/ProofScript.mli b/src/plugins/wp/ProofScript.mli index 40e193974f68eaab8d30b4d118cd4c6c34f142e0..aca4732eea85763555c4597783ed0c00ec910921 100644 --- a/src/plugins/wp/ProofScript.mli +++ b/src/plugins/wp/ProofScript.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -23,7 +23,7 @@ open Tactical open Conditions -class console : title:string -> Tactical.feedback +class console : pool:Lang.F.pool -> title:string -> Tactical.feedback type jscript = alternative list and alternative = private diff --git a/src/plugins/wp/ProofSession.ml b/src/plugins/wp/ProofSession.ml index 4806d19fff05fd0d5a4fd99b110d7a1eb054d5ec..e79a9491ca5cac9e75d54e7b49b80bfd8ec60e94 100644 --- a/src/plugins/wp/ProofSession.ml +++ b/src/plugins/wp/ProofSession.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -22,39 +22,79 @@ open Wpo -let files = Hashtbl.create 32 +type status = + | NoScript + | Script of string + | Deprecated of string -let filename wpo = +let files : (string,status) Hashtbl.t = Hashtbl.create 32 + +let filename ?(legacy=false) wpo = let m = Model.get_id wpo.po_model in let d = Wp_parameters.get_session_dir m in - Printf.sprintf "%s/%s.json" d wpo.po_gid + Printf.sprintf "%s/%s.json" d (if legacy then wpo.po_leg else wpo.po_gid) let pretty fmt wpo = Format.pp_print_string fmt (filename wpo) -let exists wpo = +let status wpo = let f = filename wpo in try Hashtbl.find files f with Not_found -> - let e = Sys.file_exists f in - Hashtbl.add files f e ; e + let status = + if Sys.file_exists f then Script f else + let f' = filename ~legacy:true wpo in + if Sys.file_exists f' then + ( Wp_parameters.warning ~current:false + "Deprecated script for '%s'" wpo.po_sid ; + Deprecated f' ) + else NoScript in + Hashtbl.add files f status ; status + +let exists wpo = + match status wpo with NoScript -> false | Script _ | Deprecated _ -> true let load wpo = - let f = filename wpo in - if Sys.file_exists f then Json.load_file f else Json.Null + match status wpo with + | NoScript -> `Null + | Script f | Deprecated f -> + if Sys.file_exists f then Json.load_file f else `Null + +let remove wpo = + match status wpo with + | NoScript -> () + | Script f -> + begin + Extlib.safe_remove f ; + Hashtbl.replace files f NoScript ; + end + | Deprecated f0 -> + begin + Wp_parameters.feedback + "Removed deprecated script for '%s'" wpo.po_sid ; + Extlib.safe_remove f0 ; + Hashtbl.replace files (filename wpo) NoScript ; + end let save wpo js = - let f = filename wpo in let empty = match js with - | Json.Null | Json.Array [] | Json.Assoc [] -> true - | _ -> false - in - ( if empty - then Extlib.safe_remove f - else Json.save_file f js ) ; - Hashtbl.replace files f (not empty) - -let remove wpo = - let f = filename wpo in - Extlib.safe_remove f ; - Hashtbl.replace files f false + | `Null | `List [] | `Assoc [] -> true + | _ -> false in + if empty then remove wpo else + match status wpo with + | Script f -> Json.save_file f js + | NoScript -> + begin + let f = filename wpo in + Json.save_file f js ; + Hashtbl.replace files f (Script f) ; + end + | Deprecated f0 -> + begin + Wp_parameters.feedback + "Upgraded script for '%s'" wpo.po_sid ; + Extlib.safe_remove f0 ; + let f = filename wpo in + Json.save_file f js ; + Hashtbl.replace files f (Script f) ; + end diff --git a/src/plugins/wp/ProofSession.mli b/src/plugins/wp/ProofSession.mli index 27529560620f52fce540db2bd9d3a93f164a5d4f..1387357f27ae30e98cd0b8da4f52d81bf22f022d 100644 --- a/src/plugins/wp/ProofSession.mli +++ b/src/plugins/wp/ProofSession.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -21,7 +21,7 @@ (**************************************************************************) val pretty : Format.formatter -> Wpo.t -> unit -val filename : Wpo.t -> string +val filename : ?legacy:bool -> Wpo.t -> string val exists : Wpo.t -> bool val save : Wpo.t -> Json.t -> unit val load : Wpo.t -> Json.t diff --git a/src/plugins/wp/ProverCoq.ml b/src/plugins/wp/ProverCoq.ml index 586e793483fde89f784770d83c44c736ed8c6b64..7f07fdfe2587d78255717aa24699c2fec2bcd482 100644 --- a/src/plugins/wp/ProverCoq.ml +++ b/src/plugins/wp/ProverCoq.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -523,6 +523,7 @@ open Wpo type coq_wpo = { cw_pid : WpPropId.prop_id ; cw_gid : string ; + cw_leg : string ; cw_goal : string ; (* filename for goal without proof *) cw_script : string ; (* filename for goal with proof script *) cw_headers : string list ; (* filename for libraries *) @@ -559,14 +560,14 @@ let rec try_hints w = function if succeed then let required,hints = WpPropId.prop_id_keys w.cw_pid in let keys = List.merge String.compare required hints in - Proof.add_script w.cw_gid keys script closing ; + Proof.add_script_for ~gid:w.cw_gid keys script closing ; Task.return true else try_hints w hints let try_prove w = begin - match Proof.script_for ~pid:w.cw_pid ~gid:w.cw_gid with + match Proof.script_for ~pid:w.cw_pid ~gid:w.cw_gid ~legacy:w.cw_leg with | Some (script,closing) -> Wp_parameters.feedback ~ontty "[Coq] Goal %s : Saved script" w.cw_gid ; try_script w script closing @@ -579,7 +580,8 @@ let try_prove w = try_hints w (Proof.hints_for ~pid:w.cw_pid) let try_coqide w = - let script,closing = Proof.script_for_ide ~pid:w.cw_pid ~gid:w.cw_gid in + let script,closing = + Proof.script_for_ide ~pid:w.cw_pid ~gid:w.cw_gid ~legacy:w.cw_leg in make_script w script closing ; (new runcoq w.cw_includes w.cw_script)#coqide >>= fun st -> if st = 0 then @@ -588,16 +590,16 @@ let try_coqide w = Wp_parameters.feedback "[Coq] No proof found" ; Task.return false | Some(script,closing) -> - if Proof.is_empty script then + if Proof.is_empty_script script then begin - Proof.delete_script w.cw_gid ; + Proof.delete_script_for ~gid:w.cw_gid ; Task.canceled () ; end else begin let req,hs = WpPropId.prop_id_keys w.cw_pid in let hints = List.merge String.compare req hs in - Proof.add_script w.cw_gid hints script closing ; + Proof.add_script_for ~gid:w.cw_gid hints script closing ; Wp_parameters.feedback ~ontty "[Coq] Goal %s : Script" w.cw_gid ; try_script w script closing end @@ -651,6 +653,7 @@ let prove_session ~mode w = let prove_prop wpo ~mode ~axioms ~prop = let pid = wpo.po_pid in let gid = wpo.po_gid in + let leg = wpo.po_leg in let model = wpo.po_model in let script = DISK.file_goal ~pid ~model ~prover:Coq in let includes , headers , goal = @@ -659,6 +662,7 @@ let prove_prop wpo ~mode ~axioms ~prop = prove_session ~mode { cw_pid = pid ; cw_gid = gid ; + cw_leg = leg ; cw_goal = goal ; cw_script = script ; cw_headers = headers ; diff --git a/src/plugins/wp/ProverCoq.mli b/src/plugins/wp/ProverCoq.mli index 717096886f2ef60a5c7c577ec99fb042dc589ac2..d34debd31a41638c55677c2587fd6b7180cfc5cf 100644 --- a/src/plugins/wp/ProverCoq.mli +++ b/src/plugins/wp/ProverCoq.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/ProverErgo.ml b/src/plugins/wp/ProverErgo.ml index 1700574ccac638588a4346bf485518d3d00d577c..cd1dab60a3bfd292dd297f033da95bbafb695967 100644 --- a/src/plugins/wp/ProverErgo.ml +++ b/src/plugins/wp/ProverErgo.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/ProverErgo.mli b/src/plugins/wp/ProverErgo.mli index 619b62a2fcf0ae19954dafb1e5b8fb0f3e7bcc91..9813d0c76cec4ea97bb9abe3ce1cdb47525d67ef 100644 --- a/src/plugins/wp/ProverErgo.mli +++ b/src/plugins/wp/ProverErgo.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/ProverScript.ml b/src/plugins/wp/ProverScript.ml index 14b162a84018a4bfe0bb452716afff0662839740..6893ddb27814038b4a1516ab4657ce25218d71d4 100644 --- a/src/plugins/wp/ProverScript.ml +++ b/src/plugins/wp/ProverScript.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -78,7 +78,9 @@ let jconfigure (console : #Tactical.feedback) jtactic goal = end let jfork tree ?node jtactic = - let console = new ProofScript.console ~title:jtactic.header in + let console = new ProofScript.console + ~pool:(ProofEngine.pool tree) + ~title:jtactic.header in try let anchor = ProofEngine.anchor tree ?node () in let goal = ProofEngine.goal anchor in @@ -102,6 +104,7 @@ open Task module Env = struct + type t = { tree : ProofEngine.tree ; valid : bool ; (* play valid provers *) @@ -410,6 +413,7 @@ type 'a process = let skip1 _ = () let skip2 _ _ = () let skip3 _ _ _ = () + let prove ?(valid = true) ?(failed = true) ?(provers = []) ?(depth = 0) ?(width = 0) ?(backtrack = 0) ?(auto = []) diff --git a/src/plugins/wp/ProverScript.mli b/src/plugins/wp/ProverScript.mli index 7b5d1d33e15800629d57f3f5064d64222fe88a8a..b11248551cce6c8b7aeaa917557d8c5f67f4077c 100644 --- a/src/plugins/wp/ProverScript.mli +++ b/src/plugins/wp/ProverScript.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/ProverSearch.ml b/src/plugins/wp/ProverSearch.ml index f9b7bb718eb7787e4835fa9701d6b1aaa4fef6eb..cdd825cbe4aefaaf71992c28f4f1dbe917954e64 100644 --- a/src/plugins/wp/ProverSearch.ml +++ b/src/plugins/wp/ProverSearch.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -40,7 +40,9 @@ let configure (console : #Tactical.feedback) strategy = | _ -> None let fork tree anchor strategy = - let console = new ProofScript.console ~title:strategy.tactical#title in + let console = new ProofScript.console + ~pool:(ProofEngine.pool tree) + ~title:strategy.tactical#title in try let model = ProofEngine.node_model anchor in match Model.with_model model (configure console) strategy with diff --git a/src/plugins/wp/ProverSearch.mli b/src/plugins/wp/ProverSearch.mli index 40fa69dc15d713055b3d901ab20b3ec8994dcb22..b676f64053737308a38f1cf4f773832704a629b2 100644 --- a/src/plugins/wp/ProverSearch.mli +++ b/src/plugins/wp/ProverSearch.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/ProverTask.ml b/src/plugins/wp/ProverTask.ml index 6d8713e3ec8b00aa1f56b700a35505b9aa4bc985..69aa5ea1cd391c6ac1dbbae0653f96a040f495bb 100644 --- a/src/plugins/wp/ProverTask.ml +++ b/src/plugins/wp/ProverTask.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/ProverTask.mli b/src/plugins/wp/ProverTask.mli index d6ed40de78f109f05a8e4613bcc80aa8c39d9d43..e3a567f91212221236f292dfc94a84c68dbf91bf 100644 --- a/src/plugins/wp/ProverTask.mli +++ b/src/plugins/wp/ProverTask.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/ProverWhy3.ml b/src/plugins/wp/ProverWhy3.ml index 8ef36dceb89fef288894fab01853fd4c976ae8c7..4480ea68e99f8fb138ab27deed9f3208e2ce5a04 100644 --- a/src/plugins/wp/ProverWhy3.ml +++ b/src/plugins/wp/ProverWhy3.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/ProverWhy3.mli b/src/plugins/wp/ProverWhy3.mli index 9aec91ec09c4e8329bb17c68fcacd26fa1f78aba..bab64eec2e2a1e150f9c44b5e766031f49c3408f 100644 --- a/src/plugins/wp/ProverWhy3.mli +++ b/src/plugins/wp/ProverWhy3.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/ProverWhy3ide.ml b/src/plugins/wp/ProverWhy3ide.ml index 43d88028dd1fc67a776569bc8e3366e9b6becece..1a39a76e959913e04f5434c8a1603ca0fef2a5d9 100644 --- a/src/plugins/wp/ProverWhy3ide.ml +++ b/src/plugins/wp/ProverWhy3ide.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/ProverWhy3ide.mli b/src/plugins/wp/ProverWhy3ide.mli index b24ae6931a03ee6f1c47ae58e66a3e9c3a55bbfc..04144226000fe0c14c17942edd512adb605b08b7 100644 --- a/src/plugins/wp/ProverWhy3ide.mli +++ b/src/plugins/wp/ProverWhy3ide.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/RefUsage.ml b/src/plugins/wp/RefUsage.ml index baf1635677625eda34dd5acd8b975e4cc31683f3..b8781dce07e38ae0dec39ff8f93a169c0d40e891 100644 --- a/src/plugins/wp/RefUsage.ml +++ b/src/plugins/wp/RefUsage.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/RefUsage.mli b/src/plugins/wp/RefUsage.mli index 59208b07c41d717d59337fa657ea63a67077f290..7a50bebcd53f2583d69fbabd16f295037295320e 100644 --- a/src/plugins/wp/RefUsage.mli +++ b/src/plugins/wp/RefUsage.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Region.ml b/src/plugins/wp/Region.ml index 36c8d006275d1eb7ef5be50259f63fc29d945e2f..22813de5c12093676432f308fbce7fec0de96961 100644 --- a/src/plugins/wp/Region.ml +++ b/src/plugins/wp/Region.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Region.mli b/src/plugins/wp/Region.mli index 60f91992634bc5fc29b11716e1ba97f1c44e103f..f7a5eba2289224f8072eb1b563eae5d56859b1c3 100644 --- a/src/plugins/wp/Region.mli +++ b/src/plugins/wp/Region.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Repr.ml b/src/plugins/wp/Repr.ml index 07994f7d6c93ec03a95748cb4be6869f795fc281..e10b247a8389fad67e374541ce5a8084011ce5cc 100644 --- a/src/plugins/wp/Repr.ml +++ b/src/plugins/wp/Repr.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Repr.mli b/src/plugins/wp/Repr.mli index 3684d5a9c617831d81f0a4a1cf533ec6d9af8f55..2719bc5d1e0de0d798bc5aa75af55cdf70cef4ed 100644 --- a/src/plugins/wp/Repr.mli +++ b/src/plugins/wp/Repr.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Sigma.ml b/src/plugins/wp/Sigma.ml index baa5036369a9f8665c7de7107236203efb929ba4..08e6a595ad964ff8820e01ffa6bfa5736e51e6ad 100644 --- a/src/plugins/wp/Sigma.ml +++ b/src/plugins/wp/Sigma.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Sigma.mli b/src/plugins/wp/Sigma.mli index d40b74ac52ded7b667dbf645419aa8b51fb0d326..8d8742b4ce1dd27f5de80eecea4d11982fc7c16f 100644 --- a/src/plugins/wp/Sigma.mli +++ b/src/plugins/wp/Sigma.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Sigs.ml b/src/plugins/wp/Sigs.ml index 13b0d563d5680e5351ade772a77dfe280703f6b1..d451e04f15fcb2003abd1d85c6769e6a4afc1da0 100644 --- a/src/plugins/wp/Sigs.ml +++ b/src/plugins/wp/Sigs.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -27,6 +27,7 @@ open Cil_types open Ctypes open Lang.F +open Interpreted_automata (* -------------------------------------------------------------------------- *) (** {1 General Definitions} *) @@ -34,6 +35,8 @@ open Lang.F type 'a sequence = { pre : 'a ; post : 'a } +type 'a binder = { bind: 'b 'c. 'a -> ('b -> 'c) -> 'b -> 'c } + (** Oriented equality or arbitrary relation *) type equation = | Set of term * term (** [Set(a,b)] is [a := b]. *) @@ -267,6 +270,11 @@ sig (** Initializers to be run before using the model. Typically sets {!Context} values. *) + val configure_ia: automaton -> vertex binder + (** Given an automaton, return a vertex's binder. + Currently used by the automata compiler to bind current vertex. + See {!StmtSemantics}. *) + val datatype : string (** For projectification. Must be unique among models. *) diff --git a/src/plugins/wp/Splitter.ml b/src/plugins/wp/Splitter.ml index a2d1c4e4f5c99afb82679be828377f18e9146bb8..9ac78de77206ef6f1c7f1dc2d95e54cb5865706c 100644 --- a/src/plugins/wp/Splitter.ml +++ b/src/plugins/wp/Splitter.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Splitter.mli b/src/plugins/wp/Splitter.mli index 13210d09cdb36ad5c4f6b54c1430600cde3dcd90..d59800cb138ff4eaa6fb9aca294612e7bc73ea2f 100644 --- a/src/plugins/wp/Splitter.mli +++ b/src/plugins/wp/Splitter.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/StmtSemantics.ml b/src/plugins/wp/StmtSemantics.ml index b4fb518b70ec30ec154bd222b573e2de5a149780..968c460cb2b5941bbe21304fc8ea819281bf9330 100644 --- a/src/plugins/wp/StmtSemantics.ml +++ b/src/plugins/wp/StmtSemantics.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -66,6 +66,7 @@ struct (* --- Env Utilities --- *) (* -------------------------------------------------------------------------- *) + let result env = env.result let bind l n env = @@ -575,6 +576,8 @@ struct let automaton : env -> Interpreted_automata.automaton -> paths = fun env a -> let open Interpreted_automata in + let binder = M.configure_ia a in + let bind = binder.bind in let wto = WTO.partition ~pref ~init:a.entry_point ~succs:(G.succ a.graph) in let index = Compute.build_wto_index_table wto in @@ -620,26 +623,30 @@ struct do_list ~fresh_nodes paths nodes n2 l in let rec component nodes paths = function - | Wto.Node v -> do_node nodes v paths - | Wto.Component (v,l) -> - assert (not (Automata.Map.mem v nodes.local)); - let invariants,l = get_invariants g v l in - let n = get_node {nodes with local = Automata.Map.empty} v in - (* initialization *) - let n,paths = do_list ~fresh_nodes:true paths nodes n invariants in - (* preservation *) - let n_loop = Cfg.node () in - let _,paths = do_list ~fresh_nodes:true paths nodes n_loop invariants in - (* arbitrary number of loop *) - let n_havoc = Cfg.node () in - let havoc = Cfg.havoc n ~effects:{pre=n_havoc;post=n_loop} n_havoc in - let paths = (havoc |> paths_of_cfg) @^ paths in - (* body *) - let invariants_as_assumes = as_assumes invariants in - let _,paths = - do_list ~fresh_nodes:false paths (add_local nodes v n_havoc) - n_havoc invariants_as_assumes in - partition (add_local nodes v n_loop) paths l + | Wto.Node ((n, _) as v) -> bind n (do_node nodes v) paths + | Wto.Component ((n, _) as v, l) -> + let do_component (v, l) = + assert (not (Automata.Map.mem v nodes.local)); + let invariants,l = get_invariants g v l in + let n = get_node {nodes with local = Automata.Map.empty} v in + (* initialization *) + let n,paths = do_list ~fresh_nodes:true paths nodes n invariants in + (* preservation *) + let n_loop = Cfg.node () in + let _,paths = do_list ~fresh_nodes:true paths nodes n_loop invariants in + (* arbitrary number of loop *) + let n_havoc = Cfg.node () in + let havoc = Cfg.havoc n ~effects:{pre=n_havoc;post=n_loop} n_havoc in + let paths = (havoc |> paths_of_cfg) @^ paths in + (* body *) + let invariants_as_assumes = as_assumes invariants in + let _,paths = + do_list ~fresh_nodes:false paths (add_local nodes v n_havoc) + n_havoc invariants_as_assumes in + partition (add_local nodes v n_loop) paths l + in + bind n do_component (v, l) + and partition nodes paths l = List.fold_left (component nodes) paths l in @@ -744,21 +751,34 @@ struct let compute_kf kf = - let autom = Interpreted_automata.Compute.get_automaton ~annotations:true kf in + let open Interpreted_automata in + let autom = Compute.get_automaton ~annotations:true kf in (* let cout = open_out (Format.sprintf "/tmp/cfg_automata_%s.dot" (Kernel_function.get_name kf)) in * Interpreted_automata.Compute.output_to_dot cout autom; * close_out cout; *) - let nprepre = Cfg.node () in - let npre = Cfg.node () in - let npost = Cfg.node () in - let npostpost = Cfg.node () in - let env = empty_env kf in - let env = env @* [Clabels.pre,npre;Clabels.post,npost] in + let binder = M.configure_ia autom in + let bind = binder.bind in + let spec = Annotations.funspec kf in + (* start and end nodes of pre(resp. post)-conditions. *) + let pres = { pre = Cfg.node (); post = Cfg.node () } in + let posts = { pre = Cfg.node (); post = Cfg.node () } in + let env = empty_env kf @* [Clabels.pre,pres.post;Clabels.post,posts.pre] in + (* initialization *) let init = init ~is_pre_main:(WpStrategy.is_main_init kf) - (env @* [Clabels.here,nprepre]) in - let kf_spec = Annotations.funspec kf in - let pre = pre_spec (env @* [Clabels.here,nprepre;Clabels.next,npre]) kf_spec in - let paths = automaton (env @* [Clabels.here,npre;Clabels.next,npost]) autom in - let post = post_normal_spec (env @* [Clabels.here,npost;Clabels.next,npostpost]) kf_spec in - init @^ pre @^ paths @^ post, env @: Clabels.init + (env @* [Clabels.here,pres.pre]) in + (* pre-condition *) + let pre = + bind autom.entry_point @@ + pre_spec (env @* [Clabels.here,pres.pre;Clabels.next,pres.post]) + in + (* code *) + let paths = + automaton (env @* [Clabels.here,pres.post;Clabels.next,posts.pre]) autom + in + (* post-condition *) + let post = + bind autom.return_point @@ + post_normal_spec (env @* [Clabels.here,posts.pre;Clabels.next,posts.post]) + in + init @^ pre spec @^ paths @^ post spec, env @: Clabels.init end diff --git a/src/plugins/wp/StmtSemantics.mli b/src/plugins/wp/StmtSemantics.mli index f3491ffbc32a9a3eb64ed589cdb218348ee72343..13229d3eca7cc5f8316725f0158305a3d3c45c2f 100644 --- a/src/plugins/wp/StmtSemantics.mli +++ b/src/plugins/wp/StmtSemantics.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Strategy.ml b/src/plugins/wp/Strategy.ml index 735d4d57f6bb1dab8025e86670aafe6a4d100f82..b6073824dd1f12a63fc3e91e3d40f4575334e0c1 100644 --- a/src/plugins/wp/Strategy.ml +++ b/src/plugins/wp/Strategy.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Strategy.mli b/src/plugins/wp/Strategy.mli index 3c0269e9599d9c50ed1d0ecf2bb7d2e8ab988a3c..2a300ed788ecf9051c6323e53e759262116aa6bd 100644 --- a/src/plugins/wp/Strategy.mli +++ b/src/plugins/wp/Strategy.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/TacArray.ml b/src/plugins/wp/TacArray.ml index b83e81117819b1f8d593d87940dea3499fddc5b0..75afbd5a1fd4ac38f87955c3e0e0682bb7115286 100644 --- a/src/plugins/wp/TacArray.ml +++ b/src/plugins/wp/TacArray.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/TacArray.mli b/src/plugins/wp/TacArray.mli index a850b51846ad23c6f5964ff787860a0491ee96e6..c52954283c763abd95e81d7ed88aecdbe6c3116c 100644 --- a/src/plugins/wp/TacArray.mli +++ b/src/plugins/wp/TacArray.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/TacBitrange.ml b/src/plugins/wp/TacBitrange.ml index 00e380b61c663a8aef459a88e0e9290b26863b90..5457327db1e555ac1cbdf6e57504dae280ca5e3f 100644 --- a/src/plugins/wp/TacBitrange.ml +++ b/src/plugins/wp/TacBitrange.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/TacBitrange.mli b/src/plugins/wp/TacBitrange.mli index 79b9f82284e2e6c614c921fec87e7765ac8877ad..a4fa439a552f24e965b62239ecce4962709f578c 100644 --- a/src/plugins/wp/TacBitrange.mli +++ b/src/plugins/wp/TacBitrange.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/TacBitwised.ml b/src/plugins/wp/TacBitwised.ml index d1bc1e447e431b55d53a021b29511e538d4c05c9..bf9604878cc9858d958d7d8fde96ac300cfd9983 100644 --- a/src/plugins/wp/TacBitwised.ml +++ b/src/plugins/wp/TacBitwised.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/TacBitwised.mli b/src/plugins/wp/TacBitwised.mli index 4ebd459e6137d2c2f3b412f650a666f3b9b9b046..d29a1f41eb6a645a0d2fe13e7b78383034e966ae 100644 --- a/src/plugins/wp/TacBitwised.mli +++ b/src/plugins/wp/TacBitwised.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/TacChoice.ml b/src/plugins/wp/TacChoice.ml index 4caf660d5d40ffca455d9e6e3231849d507dab58..3830bf76446d3bb1ef4dfe1ad3c208d963d634ae 100644 --- a/src/plugins/wp/TacChoice.ml +++ b/src/plugins/wp/TacChoice.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/TacChoice.mli b/src/plugins/wp/TacChoice.mli index c9e12fb84af58b9914bfae15a8966d8f8db4ceba..8fc397543632c83a5bc4f0f1e1df2d2ed366d329 100644 --- a/src/plugins/wp/TacChoice.mli +++ b/src/plugins/wp/TacChoice.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/TacCompound.ml b/src/plugins/wp/TacCompound.ml index c05be6ffc4fd0de28de90d4e30bcadd4ab33d259..b1d5ec14505728c285c8de0e4b529d72fdfd7380 100644 --- a/src/plugins/wp/TacCompound.ml +++ b/src/plugins/wp/TacCompound.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -116,8 +116,7 @@ let field a b f = Pretty_utils.sfprintf "Field %a" Lang.Field.pretty f , F.p_equal (F.e_getfield a f) (F.e_getfield b f) -let index vars tau = - let pool = Lang.new_pool ~vars () in +let index ~pool tau = let x = F.fresh pool tau in [x] , F.e_var x @@ -126,14 +125,14 @@ let neq i j p = F.p_imply (F.p_neq i j) p let get1 a k v = F.p_equal (F.e_get a k) v let get2 a b k = F.p_equal (F.e_get a k) (F.e_get b k) -let clause ~(vars : F.Vars.t) = function +let clause ~pool = function | Record(a,b,fs) -> List.map (field a b) fs | Array1((a,i,u),b,t) -> - let ks,k = index vars t in + let ks,k = index ~pool t in [ "Updated" , get1 b i u ; "Others" , F.p_forall ks (neq i k (get2 a b k)) ] | Array2((a,i,u),(b,j,v),t) -> - let ks,k = index vars t in + let ks,k = index ~pool t in [ "Updated (both)" , eq i j (F.p_equal u v) ; "Updated (left)" , neq i j (get1 a j v) ; "Updated (right)" , neq i j (get1 b i u) ; @@ -153,47 +152,47 @@ let kind = function Record _ -> "compound" | Array1 _ | Array2 _ -> "array" let equality eq = if eq then "equality" else "dis-equality" let process_expand (feedback : Tactical.feedback) ?at e = - let vars = F.vars e in + let pool = feedback#pool in let eq,cmp = get_compound_equality e in feedback#set_title "Compound (%s)" (name eq) ; feedback#set_descr "Expand %s %s" (kind cmp) (equality eq) ; - let e' = (if eq then conj else disj) (clause ~vars cmp) in + let e' = (if eq then conj else disj) (clause ~pool cmp) in let cases = [feedback#get_title,F.p_true,e,F.e_prop e'] in Tactical.rewrite ?at cases let process_have (feedback : Tactical.feedback) s = + let pool = feedback#pool in let e = F.e_prop (Conditions.have s) in - let vars = F.vars e in let eq,cmp = get_compound_equality e in if eq then begin feedback#set_title "Compound (eq)" ; feedback#set_descr "Expand %s equality" (kind cmp) ; - let cases = ["Compound (eq)",When (conj (clause ~vars cmp))] in + let cases = ["Compound (eq)",When (conj (clause ~pool cmp))] in Tactical.replace ~at:s.id cases end else begin feedback#set_title "Compound (split)" ; feedback#set_descr "Split %s dis-equality" (kind cmp) ; - let cases = List.map negative (clause ~vars cmp) in + let cases = List.map negative (clause ~pool cmp) in Tactical.replace ~at:s.id cases end let process_goal (feedback : Tactical.feedback) p = + let pool = feedback#pool in let eq,cmp = get_compound_equality (F.e_prop p) in - let vars = F.varsp p in if eq then begin feedback#set_title "Compound (split)" ; feedback#set_descr "Split %s equality" (kind cmp) ; - Tactical.split (clause ~vars cmp) ; + Tactical.split (clause ~pool cmp) ; end else begin feedback#set_title "Compound (neq)" ; feedback#set_descr "Expand compound dis-equality" ; - let cases = ["Compound (neq)",disj (clause ~vars cmp)] in + let cases = ["Compound (neq)",disj (clause ~pool cmp)] in Tactical.split cases end diff --git a/src/plugins/wp/TacCompound.mli b/src/plugins/wp/TacCompound.mli index 696dd3e6e484282d186e2cbe343913351f25b8f8..3fe87bcac185a0f305007b34c43899843cd362fe 100644 --- a/src/plugins/wp/TacCompound.mli +++ b/src/plugins/wp/TacCompound.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/TacCongruence.ml b/src/plugins/wp/TacCongruence.ml index fbe1ba9475dfcff66ad0d0d2069413bbf6272bc4..b59a7a2812042e786ec62ab27703787c46789d1b 100644 --- a/src/plugins/wp/TacCongruence.ml +++ b/src/plugins/wp/TacCongruence.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/TacCongruence.mli b/src/plugins/wp/TacCongruence.mli index 5ac37e0ae6f273878b93fe3fd9d90fd0420381e9..f1c7d0590ce7fa3046efe3ddd3bfc8eda9068fbb 100644 --- a/src/plugins/wp/TacCongruence.mli +++ b/src/plugins/wp/TacCongruence.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/TacCut.ml b/src/plugins/wp/TacCut.ml index 774f04d8a143e71e1db05747bf9084cf6b12556a..6981c8c72d41faf7184e41bf3483a49938d321cf 100644 --- a/src/plugins/wp/TacCut.ml +++ b/src/plugins/wp/TacCut.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/TacCut.mli b/src/plugins/wp/TacCut.mli index 093381d6b62dd55bc75de3c0ba793247816f57bd..84cb92ec1560107af8f61f91348f08413bf3cb2d 100644 --- a/src/plugins/wp/TacCut.mli +++ b/src/plugins/wp/TacCut.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/TacFilter.ml b/src/plugins/wp/TacFilter.ml index f2391b7f0a56a6f38667ecab39c5cbae49acd0a7..cf3ecd9b02ee747e73d53df18b22191fb940b64e 100644 --- a/src/plugins/wp/TacFilter.ml +++ b/src/plugins/wp/TacFilter.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/TacFilter.mli b/src/plugins/wp/TacFilter.mli index 1b3733a4e79a744ed9bb1fa89ff56c7be99b1347..57bda703c1e6b1a50da822431a2f7ebf6ff18b93 100644 --- a/src/plugins/wp/TacFilter.mli +++ b/src/plugins/wp/TacFilter.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/TacHavoc.ml b/src/plugins/wp/TacHavoc.ml index af07cc83ba3b30ad9640692ab661fbb06c1d2d48..9b7034cc30839c0ed07020faf82927db93ef5e96 100644 --- a/src/plugins/wp/TacHavoc.ml +++ b/src/plugins/wp/TacHavoc.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -30,62 +30,38 @@ module L = Qed.Logic (* --- Havoc --- *) (* -------------------------------------------------------------------------- *) -let field,parameter = - Tactical.composer - ~id:"address" - ~title:"Address" - ~descr:"Access Outside the Assigned Range" - () - -let has_type t e = - try F.Tau.equal t (F.typeof e) - with Not_found -> false - -let match_havoc = - let havoc m1 = function - | L.Fun( f , [m_undef;m0;a;n] ) when f == MemTyped.f_havoc -> m1,(m_undef,m0,a,n) - | _ -> raise Not_found - in function - | L.Eq (m,m') -> (try havoc m' (F.repr m) with | Not_found -> havoc m (F.repr m')) - | _ -> raise Not_found +let lookup_havoc e = + match F.repr e with + | L.Aget( m , p ) -> + begin + match F.repr m with + | L.Fun( f , [mr;m0;a;n] ) when f == MemTyped.f_havoc -> + Some( mr , m0 , a , n , p ) + | _ -> None + end + | _ -> None class havoc = - object(self) + object inherit Tactical.make ~id:"Wp.havoc" ~title:"Havoc" ~descr:"Go Through Assigns" - ~params:[parameter] + ~params:[] - method select feedback sel = - match sel with - | Clause(Step s) -> - begin - match s.condition with - | Have p | When p -> - let m1,(m_undef,m0,a,n) = match_havoc (F.e_expr p) in - let tp = F.typeof a in - feedback#update_field ~filter:(has_type tp) field ; - let sel = self#get_field field in - if not (Tactical.is_empty sel) then - let ptr = Tactical.selected sel in - if has_type tp ptr then - let separated = - F.p_call MemTyped.p_separated - [ ptr ; F.e_int 1 ; a ; n ] in - let equal_unassigned = - F.p_equal (F.e_get m1 ptr) (F.e_get m0 ptr) in - let equal_assigned = - F.p_equal (F.e_get m1 ptr) (F.e_get m_undef ptr) in - let process = Tactical.insert ~at:s.id - [ "Havoc",F.p_if separated equal_unassigned equal_assigned ] in - Applicable process - else - ( feedback#set_error "Not a pointer type" ; - Not_configured ) - else Not_configured - | _ -> Not_applicable - end - | _ -> Not_applicable + method select _feedback sel = + let at = Tactical.at sel in + let e = Tactical.selected sel in + match lookup_havoc e with + | None -> Not_applicable + | Some(mr,m0,a,n,p) -> + let separated = + F.p_call MemTyped.p_separated + [ p ; F.e_int 1 ; a ; n ] in + let process = Tactical.rewrite ?at [ + "Unassigned" , separated , e , F.e_get m0 p ; + "Assigned" , F.p_not separated , e , F.e_get mr p ; + ] in + Applicable process end (* -------------------------------------------------------------------------- *) @@ -219,14 +195,13 @@ class validity = module Havoc = struct - let field = field let tactical = Tactical.export (new havoc) - let strategy ?(priority=1.0) ~havoc ~addr = + let strategy ?(priority=1.0) ~havoc = Strategy.{ priority ; tactical ; selection = havoc ; - arguments = [ arg field addr ] ; + arguments = [] ; } end diff --git a/src/plugins/wp/TacHavoc.mli b/src/plugins/wp/TacHavoc.mli index ff68b31046e7139c524926b53e8a717813c20e46..4d25edb8d32541f47afe6bd960e9538d640e7cc5 100644 --- a/src/plugins/wp/TacHavoc.mli +++ b/src/plugins/wp/TacHavoc.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -27,10 +27,9 @@ open Strategy module Havoc : sig - val field : selection field val tactical : tactical val strategy : - ?priority:float -> havoc:selection -> addr:selection -> strategy + ?priority:float -> havoc:selection -> strategy end module Separated : diff --git a/src/plugins/wp/TacInstance.ml b/src/plugins/wp/TacInstance.ml index 2d67a9fe3eb56cc270d938fc86c8045ae5e79128..42eb158d5697eca2e09a93203747c05981c8d863 100644 --- a/src/plugins/wp/TacInstance.ml +++ b/src/plugins/wp/TacInstance.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -53,7 +53,6 @@ type bindings = (F.var * selection) list type env = { binder : L.binder ; feedback : Tactical.feedback ; - pool : Lang.F.pool ; mutable index : int ; } @@ -134,8 +133,10 @@ let filter x e = try F.Tau.equal (F.tau_of_var x) (F.typeof e) with Not_found -> true (* allowed to not restrict usage *) -let fieldname k x = - Pretty_utils.sfprintf "%s (%a)" (descr k) F.Tau.pretty (F.tau_of_var x) +let fieldname ~range k x = + Pretty_utils.sfprintf "%s (%a)%t" + (descr k) F.Tau.pretty (F.tau_of_var x) + (fun fmt -> if range then Format.pp_print_string fmt "(accept range)") class instance = object(self) @@ -151,14 +152,13 @@ class instance = let bindings,property = self#wrap env p fields in bindings, F.e_imply hs property | L.Bind(q,tau,phi) , fd :: fields when q = env.binder -> - let x = F.fresh env.pool tau in - let v = self#get_field fd in env.index <- succ env.index ; + let x = F.fresh env.feedback#pool tau in + let v = self#get_field fd in + let range = match tau with L.Int -> true | _ -> false in + let tooltip = fieldname ~range env.index x in env.feedback#update_field - ~tooltip:(fieldname env.index x) - ~enabled:true - ~range:(match tau with L.Int -> true | _ -> false) - ~filter:(filter x) fd ; + ~tooltip ~range ~enabled:true ~filter:(filter x) fd ; let lemma = F.QED.lc_open x phi in let bindings,property = self#wrap env lemma fields in (x,v) :: bindings , property @@ -170,9 +170,7 @@ class instance = let binder = match side with None -> L.Exists | Some _ -> L.Forall in let lemma = F.e_prop p in if has_binder binder lemma then - let vars = F.vars lemma in - let pool = Lang.new_pool ~vars () in - let env = { index = 0 ; feedback ; binder ; pool } in + let env = { index = 0 ; feedback ; binder } in let bindings,phi = self#wrap env lemma fields in if List.exists (fun (_,v) -> not (Tactical.is_empty v)) bindings then diff --git a/src/plugins/wp/TacInstance.mli b/src/plugins/wp/TacInstance.mli index 6aff0c31237849e8a5c5b98e663ff1f22de328ff..46e523c1676e82d938b9e0bea9b1c5ba6871127b 100644 --- a/src/plugins/wp/TacInstance.mli +++ b/src/plugins/wp/TacInstance.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/TacLemma.ml b/src/plugins/wp/TacLemma.ml index be006412677d7e6a0ef4cfdb2cc10820813ec43f..25c018cb37beb7307df465f618bae90e8ec4de3f 100644 --- a/src/plugins/wp/TacLemma.ml +++ b/src/plugins/wp/TacLemma.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/TacLemma.mli b/src/plugins/wp/TacLemma.mli index ad94c79f3c9b2fc0c957d20e7f718d15114a28f1..b49efe7d0b9ad9a62df159b6dd4e6ce0c5c8dcbb 100644 --- a/src/plugins/wp/TacLemma.mli +++ b/src/plugins/wp/TacLemma.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/TacNormalForm.ml b/src/plugins/wp/TacNormalForm.ml index 8c60273928e830e80a9da4f161d4e74f2d7d189b..dcf50b0c272ba4e9e084b19fc5b2740a01b53b4b 100644 --- a/src/plugins/wp/TacNormalForm.ml +++ b/src/plugins/wp/TacNormalForm.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/TacNormalForm.mli b/src/plugins/wp/TacNormalForm.mli index 1974e0a08183d836e5cf61d7bfa350e313af95c2..a39885aba9ef120deba3fa0e960a6fa5f0b0b960 100644 --- a/src/plugins/wp/TacNormalForm.mli +++ b/src/plugins/wp/TacNormalForm.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/TacOverflow.ml b/src/plugins/wp/TacOverflow.ml index 2211c01d0a997662094a5350bd5049b824ecd64c..381d65d4b6c19362fd87c6d9543e78724cacde37 100644 --- a/src/plugins/wp/TacOverflow.ml +++ b/src/plugins/wp/TacOverflow.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/TacOverflow.mli b/src/plugins/wp/TacOverflow.mli index e0715ce030e50498b6e85206a655ce0e7b84be05..5de988d118ab85db58a65364d81c7fa1966894bc 100644 --- a/src/plugins/wp/TacOverflow.mli +++ b/src/plugins/wp/TacOverflow.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/TacRange.ml b/src/plugins/wp/TacRange.ml index 7d3bf33b2f9ff2cd945b92f06dcf91080fe84484..2a81ad9e22dbf580626632864f638669ab40f358 100644 --- a/src/plugins/wp/TacRange.ml +++ b/src/plugins/wp/TacRange.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/TacRange.mli b/src/plugins/wp/TacRange.mli index b7fb2ab4d382007b9167b15da83d736cfeb09103..f80ff64b08f13910b8c60a8884047ff34ce010d3 100644 --- a/src/plugins/wp/TacRange.mli +++ b/src/plugins/wp/TacRange.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/TacRewrite.ml b/src/plugins/wp/TacRewrite.ml index fcc85c76041223e01df08bd0bd047413d44c087b..d4c6f6f5b506d9ccdc4d82739d23661c249a0b68 100644 --- a/src/plugins/wp/TacRewrite.ml +++ b/src/plugins/wp/TacRewrite.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/TacRewrite.mli b/src/plugins/wp/TacRewrite.mli index d2c8573f1cfcbc81b89bf20767fc8f3ef9107711..20ec07370356d8384ff57d82d05d12e5ad3e1a84 100644 --- a/src/plugins/wp/TacRewrite.mli +++ b/src/plugins/wp/TacRewrite.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/TacShift.ml b/src/plugins/wp/TacShift.ml index b0f1e703bd3078538df372fe3951d9a9b5f81628..fff37a69094cfad98a268ab90100b7834634d576 100644 --- a/src/plugins/wp/TacShift.ml +++ b/src/plugins/wp/TacShift.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -22,15 +22,13 @@ open Lang - let select_op f = - let rewrite descr u v = Tactical.rewrite [ descr , F.p_true , u , v ] - in + let rewrite descr u v = Tactical.rewrite [ descr , F.p_true , u , v ] in let rewrite_lsl e a n = (* from selection e='a<<n', rewrites the sequent 'Hs |- G' into: - Hs[e := a*2^n] |- G[e := a*2^n)] *) let b = F.e_mul a (F.e_int (1 lsl n)) in - rewrite "left shift into mult" e b + rewrite "shift" e b in let rewrite_lsr e a n = (* from selection e='a>>n', rewrites the sequent 'Hs |- G' into: @@ -38,7 +36,7 @@ let select_op f = - Hs[e := a*2^n] |- G[e := a*2^n] *) let b = F.e_div a (F.e_int (1 lsl n)) in (fun seq -> ("positive" , (fst seq , F.p_leq F.e_zero a)) :: - rewrite "right shift into div" e b seq) + rewrite "shift" e b seq) in if f == Cint.f_lsl then rewrite_lsl else if f == Cint.f_lsr then rewrite_lsr else @@ -47,7 +45,7 @@ let select_op f = let select_int n = match F.repr n with | Qed.Logic.Kint n -> - (try Integer.to_int n with Integer.Too_big -> raise Not_found) + (try Integer.to_int n with Z.Overflow -> raise Not_found) | _ -> raise Not_found class shift = diff --git a/src/plugins/wp/TacShift.mli b/src/plugins/wp/TacShift.mli index ad2ae98d235695b190ce7ed6487f7b378d4b90e2..79777a96c95bfc76ca437f679345797019d940d9 100644 --- a/src/plugins/wp/TacShift.mli +++ b/src/plugins/wp/TacShift.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/TacSplit.ml b/src/plugins/wp/TacSplit.ml index afb0697cc5fee18c304eb17e0b01d8fd6b03321a..ac7a8919053453092eab3ece478e1c4a66edc8e4 100644 --- a/src/plugins/wp/TacSplit.ml +++ b/src/plugins/wp/TacSplit.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -24,7 +24,7 @@ open Lang module PartitionsQQ : sig val destructs_qq : - Lang.F.pred -> + Lang.F.pool -> Qed.Logic.binder -> tau:Lang.F.QED.tau -> phi:Lang.F.QED.bind -> Lang.F.Vars.t * Lang.F.QED.term @@ -35,12 +35,7 @@ end let dkey = Wp_parameters.register_category "tac_split_quantifiers" (* debugging key *) let debug fmt = Wp_parameters.debug ~dkey fmt - let destructs_qq p qq ~tau ~phi = - let pool = - let quant = F.e_prop p in - let vars = Lang.F.vars quant in - Lang.new_pool ~vars () - in + let destructs_qq pool qq ~tau ~phi = let rec destructs_qq vars ~tau ~phi = let open Qed.Logic in let x = F.fresh pool tau in @@ -217,7 +212,7 @@ class split = let open Qed.Logic in match Lang.F.e_expr p with | Bind (Exists,tau,phi) -> begin - let vars,q = PartitionsQQ.destructs_qq p Exists ~tau ~phi in + let vars,q = PartitionsQQ.destructs_qq feedback#pool Exists ~tau ~phi in match Lang.F.repr q with | If (c,p,q) -> if F.Vars.is_empty (F.Vars.inter (F.vars c) vars) then @@ -326,7 +321,7 @@ class split = let open Qed.Logic in match F.e_expr p with | Bind (Forall,tau,phi) -> begin - let vars,q = PartitionsQQ.destructs_qq p Forall ~tau ~phi in + let vars,q = PartitionsQQ.destructs_qq feedback#pool Forall ~tau ~phi in match Lang.F.repr q with | If (c,p,q) -> if F.Vars.is_empty (F.Vars.inter (F.vars c) vars) then diff --git a/src/plugins/wp/TacSplit.mli b/src/plugins/wp/TacSplit.mli index cc70aa16e992e42e93b42422207c017f746fb465..642b454f55dea80217d2bb00d13c4975b420a330 100644 --- a/src/plugins/wp/TacSplit.mli +++ b/src/plugins/wp/TacSplit.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/TacUnfold.ml b/src/plugins/wp/TacUnfold.ml index 8ba5d658865f37736c72867d6ca86c0b9e4f3647..bff1208655630614a4bee6cb0adebf08c1c5f037 100644 --- a/src/plugins/wp/TacUnfold.ml +++ b/src/plugins/wp/TacUnfold.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/TacUnfold.mli b/src/plugins/wp/TacUnfold.mli index d2bbcfd2475a1ef7db4a15998df2428525e69a42..f00c8c327de1f3a16b2c97b1f9aa52e1be2cf602 100644 --- a/src/plugins/wp/TacUnfold.mli +++ b/src/plugins/wp/TacUnfold.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Tactical.ml b/src/plugins/wp/Tactical.ml index 348a365b49a99987dea26e8a9aa28446459fb52d..8bfb88d4f40c115f861e642236f18c71dec6a6c4 100644 --- a/src/plugins/wp/Tactical.ml +++ b/src/plugins/wp/Tactical.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -106,6 +106,17 @@ let selected = function | Clause c -> e_prop (head c) | Compose code -> composed code +let get_int_z z = + try Some (Integer.to_int z) with Z.Overflow -> None + +let get_int = function + | Empty -> None + | Compose(Cint a) -> get_int_z a + | s -> + match Lang.F.repr (selected s) with + | Qed.Logic.Kint z -> get_int_z z + | _ -> None + let subclause clause p = match clause with | Step s -> @@ -305,6 +316,7 @@ type 'a formatter = ('a,Format.formatter,unit) format -> 'a class type feedback = object + method pool : pool method interactive : bool method get_title : string method has_error : bool diff --git a/src/plugins/wp/Tactical.mli b/src/plugins/wp/Tactical.mli index 8fccb158ad263c3fd7a0cd580b64d5ff986b0f13..c135567fe9fe67191b949604a845248dc0b9f962 100644 --- a/src/plugins/wp/Tactical.mli +++ b/src/plugins/wp/Tactical.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -51,6 +51,7 @@ val int : int -> selection val cint : Integer.t -> selection val range : int -> int -> selection val compose : string -> selection list -> selection +val get_int : selection -> int option val destruct : selection -> selection list val head : clause -> pred @@ -141,6 +142,9 @@ type 'a formatter = ('a,Format.formatter,unit) format -> 'a class type feedback = object + (** Global fresh variable pool *) + method pool : pool + (** Interactive mode. If [false] the GUI is not activated. Hence, detailed feedback is not reported to the user. *) diff --git a/src/plugins/wp/VC.ml b/src/plugins/wp/VC.ml index 30b2466e0ce2316dbab1dc840b29b3f375760f10..eb42ed0d9e5fdadf978ca356b6884831224686ee 100644 --- a/src/plugins/wp/VC.ml +++ b/src/plugins/wp/VC.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -93,6 +93,7 @@ let generate_call ?model stmt = let prove = Prover.prove let spawn = Prover.spawn ~delayed:true + let server = ProverTask.server let command vcs = Register.do_wp_proofs_iter (fun f -> Bag.iter f vcs) diff --git a/src/plugins/wp/VC.mli b/src/plugins/wp/VC.mli index 68ee287b46d1441d11e6c4f5a622e783d83252ed..dc66384d1e015e323db4342fd4da7eb3c3642a99 100644 --- a/src/plugins/wp/VC.mli +++ b/src/plugins/wp/VC.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/VCS.ml b/src/plugins/wp/VCS.ml index da9e92384a7d1976425b0d19a79fbea6abe64a48..b343e24d20cc2adf85d9ac0559431dece966b38b 100644 --- a/src/plugins/wp/VCS.ml +++ b/src/plugins/wp/VCS.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/VCS.mli b/src/plugins/wp/VCS.mli index ec57f1c28e7e7729116643e924d77d7396790151..31bf3423feb10d9348c935eec2ebb1da760a911a 100644 --- a/src/plugins/wp/VCS.mli +++ b/src/plugins/wp/VCS.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Vlist.ml b/src/plugins/wp/Vlist.ml index be22ca3c670d9c900f280bffd3a599e8af39bf54..40bdc019497d18bcfeca31652a95564ac9b475be 100644 --- a/src/plugins/wp/Vlist.ml +++ b/src/plugins/wp/Vlist.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -160,7 +160,7 @@ and get_nth_list k = function let rewrite_nth s k = match F.repr k with | L.Kint z -> - let k = try Integer.to_int z with _ -> raise Not_found in + let k = try Integer.to_int z with Z.Overflow -> raise Not_found in if 0 <= k then get_nth k s else raise Not_found | _ -> raise Not_found diff --git a/src/plugins/wp/Vlist.mli b/src/plugins/wp/Vlist.mli index ad916e58c5fb7e1582cd35015e05096fffcfdecb..9034e2f51b679eedd41afa67da67a65b37d91a30 100644 --- a/src/plugins/wp/Vlist.mli +++ b/src/plugins/wp/Vlist.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Vset.ml b/src/plugins/wp/Vset.ml index 7e548639d0c22910ba4c9c37959fcbad17e32364..332d21564053f8d74466439c5f87463ba5bf6ccc 100644 --- a/src/plugins/wp/Vset.ml +++ b/src/plugins/wp/Vset.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Vset.mli b/src/plugins/wp/Vset.mli index 754ad413e111f4e7e1bc88172724c81e354abac6..24adee5e358e313e16234b89849af7dc3395ba9b 100644 --- a/src/plugins/wp/Vset.mli +++ b/src/plugins/wp/Vset.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Warning.ml b/src/plugins/wp/Warning.ml index 3463365aef5d3bcb470a1944c4024d98aabce5c6..56ea8e88b484eef4da87686ebfc3bd2894cf8b5d 100644 --- a/src/plugins/wp/Warning.ml +++ b/src/plugins/wp/Warning.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Warning.mli b/src/plugins/wp/Warning.mli index b94a35fedfaab90265758650910ea2182e7b0c12..aab4aaf2381a10625db3d2e7679cf1cb5edbc2bf 100644 --- a/src/plugins/wp/Warning.mli +++ b/src/plugins/wp/Warning.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/WpTac.ml b/src/plugins/wp/WpTac.ml index e67b277f40d974414aaa76b6861b3f7abc01f7fe..b72f973b95c97bd72e4a14297262435664bd6321 100644 --- a/src/plugins/wp/WpTac.ml +++ b/src/plugins/wp/WpTac.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/WpTac.mli b/src/plugins/wp/WpTac.mli index 936a8b2b760627a12691725e26fb0ebc367273a3..8682944ddd37df4ebfbbc34a4d4e8727a123215c 100644 --- a/src/plugins/wp/WpTac.mli +++ b/src/plugins/wp/WpTac.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/calculus.ml b/src/plugins/wp/calculus.ml index 39dce31afc86afa3d3804a8d4eb07d2770d35bda..230dace2e5727c80212687e0b926520736b3ab67 100644 --- a/src/plugins/wp/calculus.ml +++ b/src/plugins/wp/calculus.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/calculus.mli b/src/plugins/wp/calculus.mli index deb69fb15b89b81fb6a7a817dd1bc46bdd64a1c0..77c10a0f39dd8bbb5c5595be87d6eed949e498aa 100644 --- a/src/plugins/wp/calculus.mli +++ b/src/plugins/wp/calculus.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/cfgDump.ml b/src/plugins/wp/cfgDump.ml index 897bce00902c16bfccc297786554e18b42945c23..371cb90b21a129cca4479c366fd8e26d0eee0a5b 100644 --- a/src/plugins/wp/cfgDump.ml +++ b/src/plugins/wp/cfgDump.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/cfgDump.mli b/src/plugins/wp/cfgDump.mli index af6037cdbfc3788f6156a5b56ed12729938b26c8..04f9097647d755639d46cc3edbf1635fe9fd0768 100644 --- a/src/plugins/wp/cfgDump.mli +++ b/src/plugins/wp/cfgDump.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/cfgWP.ml b/src/plugins/wp/cfgWP.ml index 83d95408e127e211c2446b2bccb844ec58468ac5..604c97700aac03d1b923e498ff741cd4dd0383fb 100644 --- a/src/plugins/wp/cfgWP.ml +++ b/src/plugins/wp/cfgWP.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -559,9 +559,10 @@ struct Gmap.add target group vcs ) effects vcs - let do_assigns ?descr ?stmt ~source ?hpid ?warn sequence region effects vcs = - let vcs = check_assigns stmt source ?warn region effects vcs in - let eqmem = A.apply_assigns sequence region in + let do_assigns ?descr ?stmt ~source ?hpid ?warn sequence + ~assigned ?(unfolded=assigned) effects vcs = + let vcs = check_assigns stmt source ?warn unfolded effects vcs in + let eqmem = A.apply_assigns sequence assigned in gmap (assume_vc ?descr ?hpid ?stmt ?warn eqmem) vcs let do_assigns_everything ?stmt ?warn effects vcs = @@ -574,9 +575,13 @@ struct add_vc target ?warn F.p_false vcs) effects vcs + let cc_region ~unfold cc data = + let assigned = cc ~unfold:false data in + assigned , if unfold then cc ~unfold:true data else assigned + let cc_assigned env ~unfold kind froms = let dummy = Sigma.create () in - let r0 = L.assigned_of_froms ~unfold (L.move_at env dummy) froms in + let r0 = L.assigned_of_froms ~unfold:false (L.move_at env dummy) froms in let d0 = A.domain r0 in let s1 = L.current env in let s0 = Sigma.havoc s1 d0 in @@ -584,9 +589,10 @@ struct | StmtAssigns -> s0 | LoopAssigns -> s1 in - let assigned = L.assigned_of_froms ~unfold (L.move_at env sref) froms in + let cc_assigned = L.assigned_of_froms (L.move_at env sref) in + let assigned,unfolded = cc_region ~unfold cc_assigned froms in let sequence = { pre=s0 ; post=s1 } in - sequence , assigned + sequence , assigned , unfolded let use_assigns wenv stmt hpid ainfo wp = in_wenv wenv wp begin fun env wp -> @@ -605,10 +611,12 @@ struct (cc_assigned env ~unfold kind) froms in match outcome with - | Warning.Result(warn,(sequence,assigned)) -> + | Warning.Result(warn,(sequence,assigned,unfolded)) -> let vcs = do_assigns ~source:FromCode - ?hpid ?stmt ~warn sequence assigned wp.effects wp.vcs in + ?hpid ?stmt ~warn sequence + ~assigned ~unfolded + wp.effects wp.vcs in { sigma = Some sequence.pre ; vcs=vcs ; effects = wp.effects } | Warning.Failed warn -> let sigma = Sigma.havoc_any ~call:false (L.current env) in @@ -698,7 +706,7 @@ struct (* R-Value is unknown or L-Value is volatile *) let warn = Warning.Set.union l_warn r_warn in let vcs = do_assigns ~source:FromCode - ~stmt ~warn seq region wp.effects wp.vcs in + ~stmt ~warn seq ~assigned:region wp.effects wp.vcs in { sigma = Some seq.pre ; vcs=vcs ; effects = wp.effects } | Warning.Result(r_warn,Some stored) -> (* R-Value and effects has been translated *) @@ -1055,19 +1063,21 @@ struct | Writes froms -> let env = L.move_at env0 cenv.sigma_pre in let unfold = Wp_parameters.UnfoldAssigns.get () in - let call_region = L.in_frame cenv.frame_pre - (L.assigned_of_froms env ~unfold) froms in + let assigned,unfolded = L.in_frame cenv.frame_pre + (cc_region ~unfold (L.assigned_of_froms env)) + froms in let vcs_post = do_assigns ~descr:"Call Effects" ~source:FromCall - ~stmt cenv.seq_post call_region wpost.effects wpost.vcs in + ~stmt cenv.seq_post ~assigned ~unfolded wpost.effects wpost.vcs in let vcs_exit = do_assigns ~descr:"Exit Effects" ~source:FromCall - ~stmt cenv.seq_exit call_region wexit.effects wexit.vcs in + ~stmt cenv.seq_exit ~assigned ~unfolded wexit.effects wexit.vcs in let vcs_result = match cenv.loc_result with | None -> vcs_post (* no result *) | Some(_,obj,loc) -> - let res_region = [obj,Sloc loc] in - do_assigns ~descr:"Return Effects" ~source:FromReturn - ~stmt cenv.seq_result res_region wpost.effects vcs_post + let assigned = [obj,Sloc loc] in + do_assigns ~descr:"Return Effects" + ~source:FromReturn ~stmt cenv.seq_result + ~assigned wpost.effects vcs_post in { vcs_post = vcs_result ; vcs_exit = vcs_exit } @@ -1274,6 +1284,7 @@ struct po_pid = pid ; po_sid = "" ; po_gid = "" ; + po_leg = "" ; po_name = "" ; po_idx = index ; po_formula = GoalAnnot vcq ; @@ -1332,10 +1343,12 @@ struct WpAnnot.split begin fun po_pid wpo -> let po_sid = WpPropId.get_propid po_pid in + let po_leg = WpPropId.get_legacy po_pid in let po_gid = Printf.sprintf "%s_%s" mid po_sid in + let po_leg = Printf.sprintf "%s_%s" mid po_leg in let po_name = Pretty_utils.to_string WpPropId.pretty_local pid in let wpo = - { wpo with po_pid ; po_sid ; po_gid ; po_name } + { wpo with po_pid ; po_sid ; po_gid ; po_leg ; po_name } in Wpo.add wpo ; collection := Bag.append !collection wpo ; @@ -1366,9 +1379,11 @@ struct | LogicUsage.Axiomatic a -> Wpo.Axiomatic (Some a.ax_name) in let mid = Model.get_id model in let sid = WpPropId.get_propid id in + let leg = WpPropId.get_legacy id in let wpo = { Wpo.po_model = model ; Wpo.po_gid = Printf.sprintf "%s_%s" mid sid ; + Wpo.po_leg = Printf.sprintf "%s_%s" mid leg ; Wpo.po_sid = sid ; Wpo.po_name = Printf.sprintf "Lemma '%s'" l.lem_name ; Wpo.po_idx = index ; @@ -1395,6 +1410,7 @@ let add_qed_check collection model ~qed ~raw ~goal = let vck = let open VC_Check in { raw ; qed ; goal } in let w = let open Wpo in { po_gid = id ; + po_leg = "" ; (* no use for legacy checks *) po_sid = id ; po_name = id ; po_idx = Axiomatic None ; diff --git a/src/plugins/wp/cfgWP.mli b/src/plugins/wp/cfgWP.mli index 5f3ed7721dff82edb34aac4648435fb824d9d19a..c603d0a40b1b3f937a0a60fc5d1106da30824daa 100644 --- a/src/plugins/wp/cfgWP.mli +++ b/src/plugins/wp/cfgWP.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/cil2cfg.ml b/src/plugins/wp/cil2cfg.ml index 19876997077b748688806a8a1b19218097353187..3129f58100673b091f21bd77f6bcfd127b4f18e3 100644 --- a/src/plugins/wp/cil2cfg.ml +++ b/src/plugins/wp/cil2cfg.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/cil2cfg.mli b/src/plugins/wp/cil2cfg.mli index 63bf154358b85de2a30183b2b05b388bb9487ec0..b4745c1b54092f55f775d6e9bc6683fe996e07e8 100644 --- a/src/plugins/wp/cil2cfg.mli +++ b/src/plugins/wp/cil2cfg.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/clabels.ml b/src/plugins/wp/clabels.ml index 67535e8a548acbcbd839cda72ca782823fd0fe11..6f206491c3910172c486f10b3c0ea58a3618b13f 100644 --- a/src/plugins/wp/clabels.ml +++ b/src/plugins/wp/clabels.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/clabels.mli b/src/plugins/wp/clabels.mli index 0e2f8aaa9fb802a69c31da12fd6b187857541d49..0a8ada54b2b7fecf420d36976a4a71d84d48a040 100644 --- a/src/plugins/wp/clabels.mli +++ b/src/plugins/wp/clabels.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/configure.ac b/src/plugins/wp/configure.ac index 6d2ab918c450efc9aadbec402442e493a3167fde..34e1e4f5c31bd0867370339e34434154a520a7ae 100644 --- a/src/plugins/wp/configure.ac +++ b/src/plugins/wp/configure.ac @@ -2,7 +2,7 @@ # # # This file is part of WP plug-in of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat a l'energie atomique et aux energies # # alternatives) # # # diff --git a/src/plugins/wp/ctypes.ml b/src/plugins/wp/ctypes.ml index e69adacd6d6ca11a6ef1981ea1356744a44ea62f..34c76d1ff2e5b49184aab55d7def49df1df0ab4d 100644 --- a/src/plugins/wp/ctypes.ml +++ b/src/plugins/wp/ctypes.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/ctypes.mli b/src/plugins/wp/ctypes.mli index 74ef9d6c733501004663be7f226c5f941f9b39c9..234bd3119eb79ed5bc5344a58d82893f6c5927a5 100644 --- a/src/plugins/wp/ctypes.mli +++ b/src/plugins/wp/ctypes.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/doc/manual/wp_intro.tex b/src/plugins/wp/doc/manual/wp_intro.tex index da74357a7b980d3af92104006171c1c51d367aa9..1e3c5e076a67cc3e3d8a823eceda35a8c64bcd7d 100644 --- a/src/plugins/wp/doc/manual/wp_intro.tex +++ b/src/plugins/wp/doc/manual/wp_intro.tex @@ -340,12 +340,15 @@ For tackling this complexity, the \textsf{WP} plug-in relies on several or \texttt{-wp-rte} will generate a warning if some annotation might be not generated. -\item[Float Model:] floating-point operations are \emph{defined} to be - the mathematical ones \emph{with} a rounding operation. This is fully - consistent with the \textsf{IEEE} semantics. Most automated provers - are not able to discharge the generated proof obligations. Special - support for the \textsf{Gappa} theorem prover is available through - \textsf{Why3}. +\item[Float Model:] floating-point values are represent in a special + theory with dedicated operations over \texttt{float} and \texttt{double} + values and conversion from and to their \texttt{real} representation \emph{via} + rounding, as defined by the \textsc{C/ACSL} semantics. + + Although correct with respect to the \textsc{IEEE} specifications, this + model still provides very little support for proving properties with automated + provers. You may add additional properties using \emph{drivers} + as explained later. \item[Real Model:] floating-point operations are \emph{transformed} on reals, with \emph{no} rounding. This is completely unsound with diff --git a/src/plugins/wp/driver.mli b/src/plugins/wp/driver.mli index bc8b58117c3287489c233f81f696570d1f30e11a..b705e56ba7484b88e32c26414ef12d2760748edd 100644 --- a/src/plugins/wp/driver.mli +++ b/src/plugins/wp/driver.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/driver.mll b/src/plugins/wp/driver.mll index 5d9945e79d03917902c6ab8df305b359c4323b31..e606dddb652c89d0862d82e3129d8df454ab9b61 100644 --- a/src/plugins/wp/driver.mll +++ b/src/plugins/wp/driver.mll @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/dyncall.ml b/src/plugins/wp/dyncall.ml index f57519b8a90a040bf015dd752be2a55db8fe54cd..9abd9d6a833d8f352692f06832fe3eae47ee0ef5 100644 --- a/src/plugins/wp/dyncall.ml +++ b/src/plugins/wp/dyncall.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/dyncall.mli b/src/plugins/wp/dyncall.mli index 823c5c331becabe26776c2f75cf3ed3127ae7890..497ee779a18d1d20888416b69fd33fae4161988e 100644 --- a/src/plugins/wp/dyncall.mli +++ b/src/plugins/wp/dyncall.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/intro_wp.txt b/src/plugins/wp/intro_wp.txt index 8377d437fcc8157571186bb98a01de36af1da2b6..4c26d7bdb6bc9ab4d67e39d2d6303a13ddf6ec7c 100644 --- a/src/plugins/wp/intro_wp.txt +++ b/src/plugins/wp/intro_wp.txt @@ -2,7 +2,7 @@ #* # #* This file is part of WP plug-in of Frama-C. # #* # -#* Copyright (C) 2007-2018 # +#* Copyright (C) 2007-2019 # #* CEA (Commissariat a l'energie atomique et aux energies # #* alternatives) # #* # diff --git a/src/plugins/wp/mcfg.ml b/src/plugins/wp/mcfg.ml index 9886e5dbacd97e2304ab5fa079b8fd4484ea019c..164dbe527ed68523d513576da8f808b9e06e4aab 100644 --- a/src/plugins/wp/mcfg.ml +++ b/src/plugins/wp/mcfg.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/normAtLabels.ml b/src/plugins/wp/normAtLabels.ml index 7ac3524fb985f798a72e3e52c7ecabe304b428b4..1cdc9f56cb6bab7402b7a4c9827a77fa0ed8766e 100644 --- a/src/plugins/wp/normAtLabels.ml +++ b/src/plugins/wp/normAtLabels.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/normAtLabels.mli b/src/plugins/wp/normAtLabels.mli index 17f1fc5c6e7d0e3334e6aafb0b45dd48bc133edf..aa179c41644f6f36800e17a706218496fa4c482f 100644 --- a/src/plugins/wp/normAtLabels.mli +++ b/src/plugins/wp/normAtLabels.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/proof.ml b/src/plugins/wp/proof.ml index b3adf5eb650cae1da7e258c99650f45e550f7b6b..129c0aad1eef0dae724859a24e95067287cecfc3 100644 --- a/src/plugins/wp/proof.ml +++ b/src/plugins/wp/proof.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -31,14 +31,6 @@ let needback = ref false (* file script need backup before modification *) let needsave = ref false (* file script need to be saved *) let needwarn = ref false (* user should be prompted for chosen scriptfile *) -let clear () = - begin - Hashtbl.clear scriptbase ; - scriptfile := None ; - needback := false ; - needsave := false ; - end - let sanitize hint = try let n = String.length hint in @@ -54,8 +46,8 @@ let register_script goal hints proof closing = let hints = List.sort String.compare (List.filter sanitize hints) in Hashtbl.replace scriptbase goal (hints,proof,closing) -let delete_script goal = - Hashtbl.remove scriptbase goal +let delete_script_for ~gid = + Hashtbl.remove scriptbase gid (* -------------------------------------------------------------------------- *) (* --- Proof Scripts Parsers --- *) @@ -63,7 +55,7 @@ let delete_script goal = open Script -let is_empty script = +let is_empty_script script = try for i=0 to String.length script - 1 do match script.[i] with '\n' | ' ' | '\t' -> () | _ -> raise Exit @@ -213,12 +205,21 @@ let loadscripts () = end end -let find_script_for_goal goal = +let find_script_for_goal ~gid ~legacy = loadscripts () ; try - let _,proof,qed = Hashtbl.find scriptbase goal in + let _,proof,qed = Hashtbl.find scriptbase gid in + Some(proof,qed) + with Not_found -> + try + let (_,proof,qed) as entry = Hashtbl.find scriptbase legacy in + Wp_parameters.feedback "Upgrading Coq script for '%s'" gid ; + Hashtbl.add scriptbase gid entry ; + Hashtbl.remove scriptbase legacy ; + needsave := true ; Some(proof,qed) - with Not_found -> None + with Not_found -> + None let update_hints_for_goal goal hints = try @@ -268,21 +269,20 @@ let find_script_with_hints required hints = scriptbase [] end -let add_script goal hints proof = - needsave := true ; register_script goal hints proof +let add_script_for ~gid hints proof = + needsave := true ; register_script gid hints proof (* -------------------------------------------------------------------------- *) (* --- Prover API --- *) (* -------------------------------------------------------------------------- *) -let script_for ~pid ~gid = - match find_script_for_goal gid with - | None -> None - | (Some _) as script -> +let script_for ~pid ~gid ~legacy = + let found = find_script_for_goal ~gid ~legacy in + ( if found <> None then let required,hints = WpPropId.prop_id_keys pid in let all = List.merge String.compare required hints in - update_hints_for_goal gid all ; - script + update_hints_for_goal gid all ) ; + found let rec head n = function [] -> [] | x::xs -> if n > 0 then x :: head (pred n) xs else [] @@ -301,8 +301,8 @@ let hints_for ~pid = else default else default -let script_for_ide ~pid ~gid = - match find_script_for_goal gid with +let script_for_ide ~pid ~gid ~legacy = + match find_script_for_goal ~gid ~legacy with | Some script -> script | None -> let required,hints = WpPropId.prop_id_keys pid in diff --git a/src/plugins/wp/proof.mli b/src/plugins/wp/proof.mli index fb49ad4dbcb0f39c1256c97c6afc4dcae0d435d7..14a0f7e97e1ea091a97106c3e712184d0fbe1285 100644 --- a/src/plugins/wp/proof.mli +++ b/src/plugins/wp/proof.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -21,58 +21,28 @@ (**************************************************************************) (* -------------------------------------------------------------------------- *) -(** Proof Script Database *) +(** Coq Proof Scripts *) (* -------------------------------------------------------------------------- *) -(** {2 Database} *) - -val delete_script : string -> unit -val add_script : string -> string list -> string -> string -> unit -(** [new_script goal keys proof qed] registers the script [proof] terminated by [qed] - for goal [goal] and keywords [keys] *) - -val find_script_for_goal : string -> (string * string) option -(** Retrieve script file for one specific goal. - The file specified by [-wp-script f] is loaded if necessary. *) +open WpPropId -val update_hints_for_goal : string -> string list -> unit -(** Update the hints for one specific goal. The script file will be saved if hints - are different. *) +val is_empty_script : string -> bool +(** Check a proof script text for emptyness *) -val find_script_with_hints : string list -> string list -> (int * string * string * string) list -(** Retrieve matchable script files for w.r.t provided required and hints keywords. - Most suitable scripts comes first, with format [(n,g,p,q)] where [p,q] is a script - matching [n] hints from possibly deprecated goal [g]. *) +val delete_script_for : gid:string -> unit +(** [delete_script ~gid] remove known script for goal. *) -val clear : unit -> unit +val add_script_for : gid:string -> string list -> string -> string -> unit +(** [new_script goal keys proof qed] registers the script [proof] + terminated by [qed] for goal [gid] and keywords [keys] *) -val loadscripts : unit -> unit -(** Load scripts from [-wp-script f]. Automatically invoked by [find_xxx] unless - [loadscripts] flags is unset. *) +val parse_coqproof : string -> (string * string) option +(** [parse_coqproof f] parses a coq-file [f] and fetch the first proof. *) val savescripts : unit -> unit (** If necessary, dump the scripts database into the file specified by [-wp-script f]. *) -(** {2 Low-level Parsers and Printers} *) - -val is_empty : string -> bool - -val parse_coqproof : string -> (string * string) option -(** [parse_coqproof f] parses a coq-file [f] and fetch the first proof. *) - -val parse_scripts : string -> unit -(** [parse_scripts f] parses all scripts from file [f] and put them in the database. *) - -val dump_scripts : string -> unit -(** [dump_scripts f] saves all scripts from the database into file [f]. *) - -(* -------------------------------------------------------------------------- *) -(** Proof Script Interaction *) -(* -------------------------------------------------------------------------- *) - -open WpPropId - -val script_for : pid:prop_id -> gid:string -> (string * string) option -val script_for_ide : pid:prop_id -> gid:string -> string * string +val script_for : pid:prop_id -> gid:string -> legacy:string -> (string * string) option +val script_for_ide : pid:prop_id -> gid:string -> legacy:string -> string * string val hints_for : pid:prop_id -> (string * string * string) list diff --git a/src/plugins/wp/prover.ml b/src/plugins/wp/prover.ml index 09b4b33fa8a10f1d205e47fd8de40a152fb20ffe..4de85cbcd9ab13a9ffdbc5ed2c8f883adcdd26d3 100644 --- a/src/plugins/wp/prover.ml +++ b/src/plugins/wp/prover.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/prover.mli b/src/plugins/wp/prover.mli index 9408e8c098567cd72c5bfc1b1e9e068946954b42..1caf0d7975fd98d1e175ba185e00e0650ee751d9 100644 --- a/src/plugins/wp/prover.mli +++ b/src/plugins/wp/prover.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/register.ml b/src/plugins/wp/register.ml index ec3d2dba16251de491624feb6e7d9ab67bc7e73e..ae5dcd02429cb933efa456d8861aebe6664703c3 100644 --- a/src/plugins/wp/register.ml +++ b/src/plugins/wp/register.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/rformat.mli b/src/plugins/wp/rformat.mli index 4e118c046e7e5242f81175c23ae1b7a4dc90e3f8..331f337aa566077a45835579da01ad884d66439e 100644 --- a/src/plugins/wp/rformat.mli +++ b/src/plugins/wp/rformat.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/rformat.mll b/src/plugins/wp/rformat.mll index 0bd4bd6119effb10c9a63568d95326a9091e0a25..93f6b07b87a0c534fcdc7830a703bcdd454a031c 100644 --- a/src/plugins/wp/rformat.mll +++ b/src/plugins/wp/rformat.mll @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/script.mli b/src/plugins/wp/script.mli index a3a612b0589d9a0534a425594a01f736b8f188bb..aad82526be04e2d64ae2817e2121fb0eb0032a3a 100644 --- a/src/plugins/wp/script.mli +++ b/src/plugins/wp/script.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/script.mll b/src/plugins/wp/script.mll index f46ed4a4bee38cdce4a7dd10c0c9502c31286082..eb43bce3b04c7bacb77452896f62df0872e919c4 100644 --- a/src/plugins/wp/script.mll +++ b/src/plugins/wp/script.mll @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/Makefile b/src/plugins/wp/share/Makefile index e3f3adc47302bcb6349524fcb28cb6e44a0016d5..c4adc837f46a4ccf1f637fef636155f891c86489 100644 --- a/src/plugins/wp/share/Makefile +++ b/src/plugins/wp/share/Makefile @@ -2,7 +2,7 @@ # # # This file is part of WP plug-in of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat a l'energie atomique et aux energies # # alternatives) # # # @@ -32,6 +32,7 @@ WPLSHARE=$(Wp_DIR)/share wp-coq-clean: find $(Wp_DIR) \( -name "*.vo" -or -name "*.glob" \) -print -delete rm -f $(WPLSHARE)/coqwp/.depend $(WPLSHARE)/why3/.depend +clean:: wp-coq-clean clean:: wp-coq-clean @@ -81,7 +82,7 @@ COQWPINCLUDES= -R $(WPLSHARE)/coqwp '' $(WPLSHARE)/coqwp/%.vo: $(WPLSHARE)/coqwp/%.v echo "Coqc $<" - @coqc -w none $(COQWPINCLUDES) $< + coqc -w none $(COQWPINCLUDES) $< $(WPLSHARE)/coqwp/.depend: $(addprefix $(WPLSHARE)/, $(WP_COQ_SOURCES)) echo "Coqdep for $(WPLSHARE)/coqwp" diff --git a/src/plugins/wp/share/Makefile.headers b/src/plugins/wp/share/Makefile.headers index 15b5a15fbdda51d097df9914d81d9baac49278a1..e48d5f78831683203dcfc6075d1f7536394c2f0a 100644 --- a/src/plugins/wp/share/Makefile.headers +++ b/src/plugins/wp/share/Makefile.headers @@ -2,7 +2,7 @@ # # # This file is part of WP plug-in of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat a l'energie atomique et aux energies # # alternatives) # # # diff --git a/src/plugins/wp/share/Makefile.resources b/src/plugins/wp/share/Makefile.resources index 01873c5711b1b2a1519b1f38665d54f9d72872cf..ea63e1e894360f056b5fc4133a0d97cf40ab1b01 100644 --- a/src/plugins/wp/share/Makefile.resources +++ b/src/plugins/wp/share/Makefile.resources @@ -2,7 +2,7 @@ # # # This file is part of WP plug-in of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat a l'energie atomique et aux energies # # alternatives) # # # diff --git a/src/plugins/wp/share/coqwp/ArcTrigo.v b/src/plugins/wp/share/coqwp/ArcTrigo.v index 06792c17090829913a7658625e115732bfbb9ea2..b5236fbe98fafbb335f2966090b9959e8f925d2c 100644 --- a/src/plugins/wp/share/coqwp/ArcTrigo.v +++ b/src/plugins/wp/share/coqwp/ArcTrigo.v @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/coqwp/Bits.v b/src/plugins/wp/share/coqwp/Bits.v index 8bb865ae80dc06f2768968656b18f3dc8414aa79..0381e15181d8c41bcc35734f624d9fe24be8dfa4 100644 --- a/src/plugins/wp/share/coqwp/Bits.v +++ b/src/plugins/wp/share/coqwp/Bits.v @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/coqwp/Cbits.v b/src/plugins/wp/share/coqwp/Cbits.v index a1378bbcb7c6f9d6278f627febb551a94f818820..aff75e9b1e9667a2d0cf74393c4fae83a97721f2 100644 --- a/src/plugins/wp/share/coqwp/Cbits.v +++ b/src/plugins/wp/share/coqwp/Cbits.v @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/coqwp/Cfloat.v b/src/plugins/wp/share/coqwp/Cfloat.v index 37a860af28d5ebcdee98999523195d22df579eef..f25c72b7027de53cfb3377ab0f3d139ac51f6538 100644 --- a/src/plugins/wp/share/coqwp/Cfloat.v +++ b/src/plugins/wp/share/coqwp/Cfloat.v @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -27,9 +27,11 @@ Require Reals.Rbasic_fun. Require Reals.R_sqrt. Require BuiltIn. Require bool.Bool. +Require int.Int. Require real.Real. Require real.RealInfix. Require real.Abs. +Require real.FromInt. Require real.Square. (* Why3 goal *) @@ -56,6 +58,22 @@ Admitted. Definition of_f64: f64 -> R. Admitted. +(* Why3 goal *) +Lemma to_f32_zero : ((of_f32 (to_f32 0%R)) = 0%R). +Admitted. + +(* Why3 goal *) +Lemma to_f32_one : ((of_f32 (to_f32 1%R)) = 1%R). +Admitted. + +(* Why3 goal *) +Lemma to_f64_zero : ((of_f64 (to_f64 0%R)) = 0%R). +Admitted. + +(* Why3 goal *) +Lemma to_f64_one : ((of_f64 (to_f64 1%R)) = 1%R). +Admitted. + (* Why3 assumption *) Inductive rounding_mode := | Up : rounding_mode @@ -118,7 +136,7 @@ Definition is_infinite_f32 (f:f32): Prop := ((classify_f32 f) = Inf_pos) \/ ((classify_f32 f) = Inf_neg). (* Why3 assumption *) -Definition is_infinite_f36 (d:f64): Prop := ((classify_f64 d) = Inf_pos) \/ +Definition is_infinite_f64 (d:f64): Prop := ((classify_f64 d) = Inf_pos) \/ ((classify_f64 d) = Inf_neg). (* Why3 assumption *) diff --git a/src/plugins/wp/share/coqwp/Cint.v b/src/plugins/wp/share/coqwp/Cint.v index 2bad1d8070ac6b9d7ffb984138dc11f336dc0bcc..3a7c0ab7042f7c00f5b022ea1231af44ac2904d5 100644 --- a/src/plugins/wp/share/coqwp/Cint.v +++ b/src/plugins/wp/share/coqwp/Cint.v @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/coqwp/Cmath.v b/src/plugins/wp/share/coqwp/Cmath.v index 4efcb87b1b9264d9f52d9c12758b4850cb13770b..8b144c5879ec906937e70a01f4ef4ab3c5baa734 100644 --- a/src/plugins/wp/share/coqwp/Cmath.v +++ b/src/plugins/wp/share/coqwp/Cmath.v @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/coqwp/ExpLog.v b/src/plugins/wp/share/coqwp/ExpLog.v index 779b1a653739a5820ebf1b0b811408c0967378bb..e7d71a0cc1a2573cd578615a2f318899335e550a 100644 --- a/src/plugins/wp/share/coqwp/ExpLog.v +++ b/src/plugins/wp/share/coqwp/ExpLog.v @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/coqwp/Memory.v b/src/plugins/wp/share/coqwp/Memory.v index 8eb50c59d0fff97f19e099585dec3714fb7ddbc3..a8aa1ff53a88bac2c385d7bc61603d29ac53173f 100644 --- a/src/plugins/wp/share/coqwp/Memory.v +++ b/src/plugins/wp/share/coqwp/Memory.v @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/coqwp/Qed.v b/src/plugins/wp/share/coqwp/Qed.v index d23df6821818a97c97a01b9753ae60a27b0887a9..c991afd7c10498054025aa3472c3c03e275a84ca 100644 --- a/src/plugins/wp/share/coqwp/Qed.v +++ b/src/plugins/wp/share/coqwp/Qed.v @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/coqwp/Qedlib.v b/src/plugins/wp/share/coqwp/Qedlib.v index f28d445be2423f565ef34acc49ee52da5b6776f8..4156a9e32907453de88b7494189f01dd8ce715ea 100644 --- a/src/plugins/wp/share/coqwp/Qedlib.v +++ b/src/plugins/wp/share/coqwp/Qedlib.v @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/coqwp/Square.v b/src/plugins/wp/share/coqwp/Square.v index d439d0b4129a61868f7f013ade3be3f87fda89fd..865ce9f87edbb37ef7f20f339d605b153365a0d1 100644 --- a/src/plugins/wp/share/coqwp/Square.v +++ b/src/plugins/wp/share/coqwp/Square.v @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/coqwp/Vlist.v b/src/plugins/wp/share/coqwp/Vlist.v index c3ed9289289ef8a8069331e5ad09208520db36ab..182898718639ae466b39a16277bcd32445f8be76 100644 --- a/src/plugins/wp/share/coqwp/Vlist.v +++ b/src/plugins/wp/share/coqwp/Vlist.v @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/coqwp/Vset.v b/src/plugins/wp/share/coqwp/Vset.v index 42b12b4f2dfe43bdfac7da32c0fbc77e0be7553a..1262034a104de88566275e9a6b86b606ea000ba1 100644 --- a/src/plugins/wp/share/coqwp/Vset.v +++ b/src/plugins/wp/share/coqwp/Vset.v @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/coqwp/Zbits.v b/src/plugins/wp/share/coqwp/Zbits.v index 5f1a2e292334b50f71b5673c079d828e8f3e689f..e168e835e820688d375580f4521ecd7911399972 100644 --- a/src/plugins/wp/share/coqwp/Zbits.v +++ b/src/plugins/wp/share/coqwp/Zbits.v @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -2025,6 +2025,12 @@ Proof. intuition. Qed. +Lemma lxor_discrimination_inv: forall x y z:Z, + x = lxor y z -> lxor x y = z. +Proof. + linear3. +Qed. + Lemma land_system: forall x1 x2 y1 y2 z:Z, (x1 = land z y1 /\ x2 = land z y2) <-> lor x1 x2 = land z (lor (land (lnot x1) (land (lnot x2) (lor y1 y2))) (lor (land x1 (land y1 (lnot (lxor x2 y2)))) diff --git a/src/plugins/wp/share/ergo/ArcTrigo.mlw b/src/plugins/wp/share/ergo/ArcTrigo.mlw index b91ffe291245f68b72f32368d56ecf855a8ef9c1..80853dc37d2fb86a38ac87a358a8e42e2031e57b 100644 --- a/src/plugins/wp/share/ergo/ArcTrigo.mlw +++ b/src/plugins/wp/share/ergo/ArcTrigo.mlw @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/ergo/Cbits.mlw b/src/plugins/wp/share/ergo/Cbits.mlw index 848421a65448a5eae280391b807f27549866f2f3..4ef1f5423f5ec258c1f30c8bb781a34769815a24 100644 --- a/src/plugins/wp/share/ergo/Cbits.mlw +++ b/src/plugins/wp/share/ergo/Cbits.mlw @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/ergo/Cfloat.mlw b/src/plugins/wp/share/ergo/Cfloat.mlw index a43eb15f06c154f89bdca2203e116f90b2940a05..3c0e03b4c0baa4c6eae2075a10ba292df73c66c2 100644 --- a/src/plugins/wp/share/ergo/Cfloat.mlw +++ b/src/plugins/wp/share/ergo/Cfloat.mlw @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -24,9 +24,11 @@ (** The theory BuiltIn_ must be appended to this file*) (** The theory Bool_ must be appended to this file*) (** The theory bool_Bool_ must be appended to this file*) +(** The theory int_Int_ must be appended to this file*) (** The theory real_Real_ must be appended to this file*) (** The theory real_RealInfix_ must be appended to this file*) (** The theory real_Abs_ must be appended to this file*) +(** The theory real_FromInt_ must be appended to this file*) (** The theory real_Square_ must be appended to this file*) type f32 @@ -40,6 +42,14 @@ logic to_f64 : real -> f64 logic of_f64 : f64 -> real +axiom to_f32_zero : (of_f32(to_f32(0.0)) = 0.0) + +axiom to_f32_one : (of_f32(to_f32(1.0)) = 1.0) + +axiom to_f64_zero : (of_f64(to_f64(0.0)) = 0.0) + +axiom to_f64_one : (of_f64(to_f64(1.0)) = 1.0) + type rounding_mode = Up | Down | ToZero | NearestTiesToAway | NearestTiesToEven @@ -112,7 +122,7 @@ predicate is_NaN_f64(d: f64) = (classify_f64(d) = NaN) predicate is_infinite_f32(f: f32) = ((classify_f32(f) = Inf_pos) or (classify_f32(f) = Inf_neg)) -predicate is_infinite_f36(d: f64) = ((classify_f64(d) = Inf_pos) or +predicate is_infinite_f64(d: f64) = ((classify_f64(d) = Inf_pos) or (classify_f64(d) = Inf_neg)) predicate is_positive_infinite_f32(f: f32) = (classify_f32(f) = Inf_pos) diff --git a/src/plugins/wp/share/ergo/Cint.mlw b/src/plugins/wp/share/ergo/Cint.mlw index a2857141c03c8a3ea5643675e45594408556bd1c..efa4917c8ef46502f3f4e6b9ee732f1f0fa1e5c5 100644 --- a/src/plugins/wp/share/ergo/Cint.mlw +++ b/src/plugins/wp/share/ergo/Cint.mlw @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/ergo/Cmath.mlw b/src/plugins/wp/share/ergo/Cmath.mlw index 1d7a6143fc3e5d69dc002e612371663900442610..bba0d57f650f7826d5cc443ecad51986f5e9864b 100644 --- a/src/plugins/wp/share/ergo/Cmath.mlw +++ b/src/plugins/wp/share/ergo/Cmath.mlw @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/ergo/ExpLog.mlw b/src/plugins/wp/share/ergo/ExpLog.mlw index 0434bfff44efdcc182e423b3b47a21c91f1a8107..04a6648d140ee2cff01b4d8e2bc1fdb1fa71ec9c 100644 --- a/src/plugins/wp/share/ergo/ExpLog.mlw +++ b/src/plugins/wp/share/ergo/ExpLog.mlw @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/ergo/Memory.mlw b/src/plugins/wp/share/ergo/Memory.mlw index 611a2e92f4ef5938feee083b42817a6cb33941b6..e313cd7106dc184b461e8945601f2fbc2a8d98ea 100644 --- a/src/plugins/wp/share/ergo/Memory.mlw +++ b/src/plugins/wp/share/ergo/Memory.mlw @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/ergo/Qed.mlw b/src/plugins/wp/share/ergo/Qed.mlw index 5ef47e95b2c8cb65573065135f3f8fbced30bc9a..ab140625bf0126b176c14a756ba919cb89e65801 100644 --- a/src/plugins/wp/share/ergo/Qed.mlw +++ b/src/plugins/wp/share/ergo/Qed.mlw @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/ergo/Square.mlw b/src/plugins/wp/share/ergo/Square.mlw index 5f1376c503851f812985f7f4f5ccc900f6111cdc..8bef3ca2cb02068098b700bd4e34b470e5498c99 100644 --- a/src/plugins/wp/share/ergo/Square.mlw +++ b/src/plugins/wp/share/ergo/Square.mlw @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/ergo/Vlist.mlw b/src/plugins/wp/share/ergo/Vlist.mlw index bb9c7a04ea0d9e09765a59d3d17e01be85df0b40..7d688623e03861f1b16e872b4907dcd261b3a935 100644 --- a/src/plugins/wp/share/ergo/Vlist.mlw +++ b/src/plugins/wp/share/ergo/Vlist.mlw @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/ergo/Vset.mlw b/src/plugins/wp/share/ergo/Vset.mlw index 8d634361d993b72572b2a300e0fd412017e2ebff..9e8c6d9c5af93fc77411753f397ae031b0e2bc86 100644 --- a/src/plugins/wp/share/ergo/Vset.mlw +++ b/src/plugins/wp/share/ergo/Vset.mlw @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/install.ml b/src/plugins/wp/share/install.ml index 7f444247af254731d8874dca8a1a5ae6781a429a..334e78760b39c685fd9e32b3ce9abe9e40e9de56 100644 --- a/src/plugins/wp/share/install.ml +++ b/src/plugins/wp/share/install.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/src/Bits.v b/src/plugins/wp/share/src/Bits.v index 8bb865ae80dc06f2768968656b18f3dc8414aa79..0381e15181d8c41bcc35734f624d9fe24be8dfa4 100644 --- a/src/plugins/wp/share/src/Bits.v +++ b/src/plugins/wp/share/src/Bits.v @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/src/BuiltIn/bool.mlw b/src/plugins/wp/share/src/BuiltIn/bool.mlw index b1541594019b1112adb20f33d8c7de5d1db6e552..bc353e7c972a7510ab01195264c01812eb51017d 100644 --- a/src/plugins/wp/share/src/BuiltIn/bool.mlw +++ b/src/plugins/wp/share/src/BuiltIn/bool.mlw @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/src/Cfloat.v b/src/plugins/wp/share/src/Cfloat.v index f6ec365e55954b2ea213cdcde24579f61a166396..722da22037a3075a09cbcae763e225ebb9d371a1 100644 --- a/src/plugins/wp/share/src/Cfloat.v +++ b/src/plugins/wp/share/src/Cfloat.v @@ -5,9 +5,11 @@ Require Reals.Rbasic_fun. Require Reals.R_sqrt. Require BuiltIn. Require bool.Bool. +Require int.Int. Require real.Real. Require real.RealInfix. Require real.Abs. +Require real.FromInt. Require real.Square. (* Why3 goal *) @@ -34,6 +36,22 @@ Admitted. Definition of_f64: f64 -> R. Admitted. +(* Why3 goal *) +Lemma to_f32_zero : ((of_f32 (to_f32 0%R)) = 0%R). +Admitted. + +(* Why3 goal *) +Lemma to_f32_one : ((of_f32 (to_f32 1%R)) = 1%R). +Admitted. + +(* Why3 goal *) +Lemma to_f64_zero : ((of_f64 (to_f64 0%R)) = 0%R). +Admitted. + +(* Why3 goal *) +Lemma to_f64_one : ((of_f64 (to_f64 1%R)) = 1%R). +Admitted. + (* Why3 assumption *) Inductive rounding_mode := | Up : rounding_mode @@ -96,7 +114,7 @@ Definition is_infinite_f32 (f:f32): Prop := ((classify_f32 f) = Inf_pos) \/ ((classify_f32 f) = Inf_neg). (* Why3 assumption *) -Definition is_infinite_f36 (d:f64): Prop := ((classify_f64 d) = Inf_pos) \/ +Definition is_infinite_f64 (d:f64): Prop := ((classify_f64 d) = Inf_pos) \/ ((classify_f64 d) = Inf_neg). (* Why3 assumption *) diff --git a/src/plugins/wp/share/src/Makefile b/src/plugins/wp/share/src/Makefile index f441f4e9401964a0ceb71eb284bf1d3d2c6a5d57..fb38c4d2cbcd2a79a9847d42c55082c34865fba2 100644 --- a/src/plugins/wp/share/src/Makefile +++ b/src/plugins/wp/share/src/Makefile @@ -2,7 +2,7 @@ # # # This file is part of WP plug-in of Frama-C. # # # -# Copyright (C) 2007-2018 # +# Copyright (C) 2007-2019 # # CEA (Commissariat a l'energie atomique et aux energies # # alternatives) # # # diff --git a/src/plugins/wp/share/src/Qedlib.v b/src/plugins/wp/share/src/Qedlib.v index f28d445be2423f565ef34acc49ee52da5b6776f8..4156a9e32907453de88b7494189f01dd8ce715ea 100644 --- a/src/plugins/wp/share/src/Qedlib.v +++ b/src/plugins/wp/share/src/Qedlib.v @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/src/Zbits.v b/src/plugins/wp/share/src/Zbits.v index 5f1a2e292334b50f71b5673c079d828e8f3e689f..e168e835e820688d375580f4521ecd7911399972 100644 --- a/src/plugins/wp/share/src/Zbits.v +++ b/src/plugins/wp/share/src/Zbits.v @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -2025,6 +2025,12 @@ Proof. intuition. Qed. +Lemma lxor_discrimination_inv: forall x y z:Z, + x = lxor y z -> lxor x y = z. +Proof. + linear3. +Qed. + Lemma land_system: forall x1 x2 y1 y2 z:Z, (x1 = land z y1 /\ x2 = land z y2) <-> lor x1 x2 = land z (lor (land (lnot x1) (land (lnot x2) (lor y1 y2))) (lor (land x1 (land y1 (lnot (lxor x2 y2)))) diff --git a/src/plugins/wp/share/src/alt_ergo_why3_stdlib.drv b/src/plugins/wp/share/src/alt_ergo_why3_stdlib.drv index d4c62ae3b0fac9a30e97362e0853c8f02d733caa..c913ef7afd438b8c45c5d8c3fdb321452a272de9 100644 --- a/src/plugins/wp/share/src/alt_ergo_why3_stdlib.drv +++ b/src/plugins/wp/share/src/alt_ergo_why3_stdlib.drv @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -21,7 +21,7 @@ (**************************************************************************) theory int.Int - remove prop CompatOrderMult + remove prop CompatOrderMult end theory int.Abs @@ -44,7 +44,7 @@ theory int.ComputerDivision end theory real.Real - remove prop CompatOrderMult + remove prop CompatOrderMult end theory real.Abs diff --git a/src/plugins/wp/share/src/cbits.why b/src/plugins/wp/share/src/cbits.why index 79a40e3783e1178b6e4d40e6634bbbe27057a5e9..390b7b202663e7637674bdbd335da9dbb16966fc 100644 --- a/src/plugins/wp/share/src/cbits.why +++ b/src/plugins/wp/share/src/cbits.why @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/src/cfloat.why b/src/plugins/wp/share/src/cfloat.why index b496c5bd31f997c2c398b18e23a271d09b5e3e69..f8bc5732032cd50db77121543f388a9ec3c721f0 100644 --- a/src/plugins/wp/share/src/cfloat.why +++ b/src/plugins/wp/share/src/cfloat.why @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -30,6 +30,7 @@ theory Cfloat use import real.RealInfix use import real.Abs use import real.Square + use import real.FromInt (* -------------------------------------------------------------------------- *) (* --- C-Integer Arithmetics for Alt-Ergo --- *) @@ -46,6 +47,11 @@ theory Cfloat function to_f64 real : f64 function of_f64 f64 : real + axiom to_f32_zero: of_f32 (to_f32 0.0) = 0.0 + axiom to_f32_one: of_f32 (to_f32 1.0) = 1.0 + axiom to_f64_zero: of_f64 (to_f64 0.0) = 0.0 + axiom to_f64_one: of_f64 (to_f64 1.0) = 1.0 + (* C-Float Rounding Modes *) type rounding_mode = Up | Down | ToZero | NearestTiesToAway | NearestTiesToEven @@ -113,7 +119,6 @@ theory Cfloat function eq_f64b (x:f64) (y:f64) : bool predicate eq_f32 (x:f32) (y:f32) = (eq_f32b x y = true) predicate eq_f64 (x:f64) (y:f64) = (eq_f64b x y = true) - axiom eq_finite_f32 : forall x,y:f32 [eq_f32 x y]. is_finite_f32 x -> is_finite_f32 y -> eq_f32 x y <-> of_f32 x = of_f32 y diff --git a/src/plugins/wp/share/src/cint.why b/src/plugins/wp/share/src/cint.why index 5d02b12672fc518596e3289dd19a9888c3daafed..b725bf2d3ec32838b1117a7852cb098e39b43835 100644 --- a/src/plugins/wp/share/src/cint.why +++ b/src/plugins/wp/share/src/cint.why @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/src/cmath.why b/src/plugins/wp/share/src/cmath.why index a548531c86b5601578863bf27935796b3c210ccb..f5650834c9039ea7ab0207ef5f7b9c75f4f5e764 100644 --- a/src/plugins/wp/share/src/cmath.why +++ b/src/plugins/wp/share/src/cmath.why @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/src/coq-own-realization.drv b/src/plugins/wp/share/src/coq-own-realization.drv index c40d3c896df48e9d9316b90906be9c7d10e42ef1..bba87c6fafc12b9fea860971125354ea88582a7f 100644 --- a/src/plugins/wp/share/src/coq-own-realization.drv +++ b/src/plugins/wp/share/src/coq-own-realization.drv @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/src/filter_axioms.ml b/src/plugins/wp/share/src/filter_axioms.ml index 3b4adeb2a213ecf5a8a54977827769dd9c9d8eec..6a339539ec76744e96480d45007eda3f832085c9 100644 --- a/src/plugins/wp/share/src/filter_axioms.ml +++ b/src/plugins/wp/share/src/filter_axioms.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/src/memory.why b/src/plugins/wp/share/src/memory.why index 8a95d910ec87608a506e4cc17ecd843e39c73754..54b1238496a130e08f9fca622bb5aabcbefba213 100644 --- a/src/plugins/wp/share/src/memory.why +++ b/src/plugins/wp/share/src/memory.why @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/src/qed.why b/src/plugins/wp/share/src/qed.why index 2f74ae6d94da0a4f1c6a7a757974ebf702fcfbda..bd87796feaa702e6c04d807925cefbc421c451de 100644 --- a/src/plugins/wp/share/src/qed.why +++ b/src/plugins/wp/share/src/qed.why @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/src/vlist.why b/src/plugins/wp/share/src/vlist.why index 012a7bde4e3a847cc9398aeab656ecbc9a9fa8c8..885127e7f8da91f5f7a69478644c3b70ecefc736 100644 --- a/src/plugins/wp/share/src/vlist.why +++ b/src/plugins/wp/share/src/vlist.why @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/src/vset.why b/src/plugins/wp/share/src/vset.why index 24c322bbb317291263df8094b1a168e0150bb5d3..35da72053b115a8c785dce77897205f98bf2150d 100644 --- a/src/plugins/wp/share/src/vset.why +++ b/src/plugins/wp/share/src/vset.why @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/why3/ArcTrigo.v b/src/plugins/wp/share/why3/ArcTrigo.v index 06792c17090829913a7658625e115732bfbb9ea2..b5236fbe98fafbb335f2966090b9959e8f925d2c 100644 --- a/src/plugins/wp/share/why3/ArcTrigo.v +++ b/src/plugins/wp/share/why3/ArcTrigo.v @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/why3/ArcTrigo.why b/src/plugins/wp/share/why3/ArcTrigo.why index acbc8c3a4581c5f5045b0a732ec4af6b05b7f6c7..bf76b70b1fd9bbae8ffdcb49f748faf8030f2583 100644 --- a/src/plugins/wp/share/why3/ArcTrigo.why +++ b/src/plugins/wp/share/why3/ArcTrigo.why @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/why3/Bits.v b/src/plugins/wp/share/why3/Bits.v index 8bb865ae80dc06f2768968656b18f3dc8414aa79..0381e15181d8c41bcc35734f624d9fe24be8dfa4 100644 --- a/src/plugins/wp/share/why3/Bits.v +++ b/src/plugins/wp/share/why3/Bits.v @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/why3/Cbits.v b/src/plugins/wp/share/why3/Cbits.v index a1378bbcb7c6f9d6278f627febb551a94f818820..aff75e9b1e9667a2d0cf74393c4fae83a97721f2 100644 --- a/src/plugins/wp/share/why3/Cbits.v +++ b/src/plugins/wp/share/why3/Cbits.v @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/why3/Cbits.why b/src/plugins/wp/share/why3/Cbits.why index 06cae224a81d588d62d0304803e6b8cb73634a51..d5867717def38b38001d60f5893e73fdec699609 100644 --- a/src/plugins/wp/share/why3/Cbits.why +++ b/src/plugins/wp/share/why3/Cbits.why @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/why3/Cfloat.v b/src/plugins/wp/share/why3/Cfloat.v index 37a860af28d5ebcdee98999523195d22df579eef..f25c72b7027de53cfb3377ab0f3d139ac51f6538 100644 --- a/src/plugins/wp/share/why3/Cfloat.v +++ b/src/plugins/wp/share/why3/Cfloat.v @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -27,9 +27,11 @@ Require Reals.Rbasic_fun. Require Reals.R_sqrt. Require BuiltIn. Require bool.Bool. +Require int.Int. Require real.Real. Require real.RealInfix. Require real.Abs. +Require real.FromInt. Require real.Square. (* Why3 goal *) @@ -56,6 +58,22 @@ Admitted. Definition of_f64: f64 -> R. Admitted. +(* Why3 goal *) +Lemma to_f32_zero : ((of_f32 (to_f32 0%R)) = 0%R). +Admitted. + +(* Why3 goal *) +Lemma to_f32_one : ((of_f32 (to_f32 1%R)) = 1%R). +Admitted. + +(* Why3 goal *) +Lemma to_f64_zero : ((of_f64 (to_f64 0%R)) = 0%R). +Admitted. + +(* Why3 goal *) +Lemma to_f64_one : ((of_f64 (to_f64 1%R)) = 1%R). +Admitted. + (* Why3 assumption *) Inductive rounding_mode := | Up : rounding_mode @@ -118,7 +136,7 @@ Definition is_infinite_f32 (f:f32): Prop := ((classify_f32 f) = Inf_pos) \/ ((classify_f32 f) = Inf_neg). (* Why3 assumption *) -Definition is_infinite_f36 (d:f64): Prop := ((classify_f64 d) = Inf_pos) \/ +Definition is_infinite_f64 (d:f64): Prop := ((classify_f64 d) = Inf_pos) \/ ((classify_f64 d) = Inf_neg). (* Why3 assumption *) diff --git a/src/plugins/wp/share/why3/Cfloat.why b/src/plugins/wp/share/why3/Cfloat.why index 06de02e613bb6c11bcc7ba55e3a9369004d9e34a..f6493d5b5818307c2d411d8b064a0469d17e4a2f 100644 --- a/src/plugins/wp/share/why3/Cfloat.why +++ b/src/plugins/wp/share/why3/Cfloat.why @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -22,8 +22,10 @@ theory Cfloat use bool.Bool as Bool +use int.Int as Int use real.Real as Real use real.Abs as Abs +use real.FromInt as FromInt use real.Square as Square type f32 @@ -38,6 +40,14 @@ function to_f64 real : f64 function of_f64 f64 : real +axiom to_f32_zero : ((of_f32 (to_f32 0.0)) = (0.0)) + +axiom to_f32_one : ((of_f32 (to_f32 1.0)) = (1.0)) + +axiom to_f64_zero : ((of_f64 (to_f64 0.0)) = (0.0)) + +axiom to_f64_one : ((of_f64 (to_f64 1.0)) = (1.0)) + type rounding_mode = | Up | Down @@ -76,7 +86,7 @@ predicate is_NaN_f64 (d:f64) = ((classify_f64 d) = (NaN)) predicate is_infinite_f32 (f:f32) = ("asym_split" ((classify_f32 f) = (Inf_pos))) || ((classify_f32 f) = (Inf_neg)) -predicate is_infinite_f36 (d:f64) = ("asym_split" ((classify_f64 +predicate is_infinite_f64 (d:f64) = ("asym_split" ((classify_f64 d) = (Inf_pos))) || ((classify_f64 d) = (Inf_neg)) predicate is_positive_infinite_f32 (f:f32) = ((classify_f32 f) = (Inf_pos)) diff --git a/src/plugins/wp/share/why3/Cint.v b/src/plugins/wp/share/why3/Cint.v index 2bad1d8070ac6b9d7ffb984138dc11f336dc0bcc..3a7c0ab7042f7c00f5b022ea1231af44ac2904d5 100644 --- a/src/plugins/wp/share/why3/Cint.v +++ b/src/plugins/wp/share/why3/Cint.v @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/why3/Cint.why b/src/plugins/wp/share/why3/Cint.why index 69eb7f2a0940c29b9b83c8f8cf7d2d4306b1602c..d6e03e7ef025d2738190ea8fef06e64baed2b19b 100644 --- a/src/plugins/wp/share/why3/Cint.why +++ b/src/plugins/wp/share/why3/Cint.why @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/why3/Cmath.v b/src/plugins/wp/share/why3/Cmath.v index 4efcb87b1b9264d9f52d9c12758b4850cb13770b..8b144c5879ec906937e70a01f4ef4ab3c5baa734 100644 --- a/src/plugins/wp/share/why3/Cmath.v +++ b/src/plugins/wp/share/why3/Cmath.v @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/why3/Cmath.why b/src/plugins/wp/share/why3/Cmath.why index 30e75129a29e0fed831c29d53f01803f90ba65f6..6f2c1bd8be2c33ed9cfc6bced08af88528a2ab26 100644 --- a/src/plugins/wp/share/why3/Cmath.why +++ b/src/plugins/wp/share/why3/Cmath.why @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/why3/ExpLog.v b/src/plugins/wp/share/why3/ExpLog.v index 779b1a653739a5820ebf1b0b811408c0967378bb..e7d71a0cc1a2573cd578615a2f318899335e550a 100644 --- a/src/plugins/wp/share/why3/ExpLog.v +++ b/src/plugins/wp/share/why3/ExpLog.v @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/why3/ExpLog.why b/src/plugins/wp/share/why3/ExpLog.why index ca7eccc70ea215ba56c701a71c4b43d250857154..f88c5a35ee20ad82604c90f3830dd9da46e7df09 100644 --- a/src/plugins/wp/share/why3/ExpLog.why +++ b/src/plugins/wp/share/why3/ExpLog.why @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/why3/Memory.v b/src/plugins/wp/share/why3/Memory.v index 8eb50c59d0fff97f19e099585dec3714fb7ddbc3..a8aa1ff53a88bac2c385d7bc61603d29ac53173f 100644 --- a/src/plugins/wp/share/why3/Memory.v +++ b/src/plugins/wp/share/why3/Memory.v @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/why3/Memory.why b/src/plugins/wp/share/why3/Memory.why index bad2772da57773e9512d4e0f9c6bd8ff5e1a694e..ada62e589807c78d2d0230a07b199c7ff77bd83f 100644 --- a/src/plugins/wp/share/why3/Memory.why +++ b/src/plugins/wp/share/why3/Memory.why @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/why3/Qed.v b/src/plugins/wp/share/why3/Qed.v index d23df6821818a97c97a01b9753ae60a27b0887a9..c991afd7c10498054025aa3472c3c03e275a84ca 100644 --- a/src/plugins/wp/share/why3/Qed.v +++ b/src/plugins/wp/share/why3/Qed.v @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/why3/Qed.why b/src/plugins/wp/share/why3/Qed.why index d90c48867b525bb1860d33345b576e1a97c20917..68ede436243dbb4cf6e02964b6e5e86f6abd5242 100644 --- a/src/plugins/wp/share/why3/Qed.why +++ b/src/plugins/wp/share/why3/Qed.why @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/why3/Qedlib.v b/src/plugins/wp/share/why3/Qedlib.v index f28d445be2423f565ef34acc49ee52da5b6776f8..4156a9e32907453de88b7494189f01dd8ce715ea 100644 --- a/src/plugins/wp/share/why3/Qedlib.v +++ b/src/plugins/wp/share/why3/Qedlib.v @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/why3/Square.v b/src/plugins/wp/share/why3/Square.v index d439d0b4129a61868f7f013ade3be3f87fda89fd..865ce9f87edbb37ef7f20f339d605b153365a0d1 100644 --- a/src/plugins/wp/share/why3/Square.v +++ b/src/plugins/wp/share/why3/Square.v @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/why3/Square.why b/src/plugins/wp/share/why3/Square.why index 93594492535a8c2ecb93853d85d3b5863a2e25bb..9e26a7d9db570c4bf01a75914088f03ee49179ea 100644 --- a/src/plugins/wp/share/why3/Square.why +++ b/src/plugins/wp/share/why3/Square.why @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/why3/Vlist.v b/src/plugins/wp/share/why3/Vlist.v index c3ed9289289ef8a8069331e5ad09208520db36ab..182898718639ae466b39a16277bcd32445f8be76 100644 --- a/src/plugins/wp/share/why3/Vlist.v +++ b/src/plugins/wp/share/why3/Vlist.v @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/why3/Vlist.why b/src/plugins/wp/share/why3/Vlist.why index 4961486c00e0298aa78cd12c58d3ed29101f0660..6f4c199bbae48041e7125bbed0bb5bce2654dfd5 100644 --- a/src/plugins/wp/share/why3/Vlist.why +++ b/src/plugins/wp/share/why3/Vlist.why @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/why3/Vset.v b/src/plugins/wp/share/why3/Vset.v index 42b12b4f2dfe43bdfac7da32c0fbc77e0be7553a..1262034a104de88566275e9a6b86b606ea000ba1 100644 --- a/src/plugins/wp/share/why3/Vset.v +++ b/src/plugins/wp/share/why3/Vset.v @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/why3/Vset.why b/src/plugins/wp/share/why3/Vset.why index 32c3966a828ca56292266c97b602d5d698587038..d0664f99585e45b7cbd6640c465bf25b120aabf4 100644 --- a/src/plugins/wp/share/why3/Vset.why +++ b/src/plugins/wp/share/why3/Vset.why @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/why3/Zbits.v b/src/plugins/wp/share/why3/Zbits.v index 5f1a2e292334b50f71b5673c079d828e8f3e689f..e168e835e820688d375580f4521ecd7911399972 100644 --- a/src/plugins/wp/share/why3/Zbits.v +++ b/src/plugins/wp/share/why3/Zbits.v @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -2025,6 +2025,12 @@ Proof. intuition. Qed. +Lemma lxor_discrimination_inv: forall x y z:Z, + x = lxor y z -> lxor x y = z. +Proof. + linear3. +Qed. + Lemma land_system: forall x1 x2 y1 y2 z:Z, (x1 = land z y1 /\ x2 = land z y2) <-> lor x1 x2 = land z (lor (land (lnot x1) (land (lnot x2) (lor y1 y2))) (lor (land x1 (land y1 (lnot (lxor x2 y2)))) diff --git a/src/plugins/wp/share/why3/coq.drv b/src/plugins/wp/share/why3/coq.drv index 6622f35030d9906a9e79d47561fae9d149261b3f..68d8626d5864e11e06e2d81f2ceb516169a366f8 100644 --- a/src/plugins/wp/share/why3/coq.drv +++ b/src/plugins/wp/share/why3/coq.drv @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/wp.driver b/src/plugins/wp/share/wp.driver index 723ff04629ae0c8a23b3455623d73e3e41cef12a..7dd358acc6900842611fed12bc90a0c096eaa60c 100644 --- a/src/plugins/wp/share/wp.driver +++ b/src/plugins/wp/share/wp.driver @@ -2,7 +2,7 @@ /* */ /* This file is part of WP plug-in of Frama-C. */ /* */ -/* Copyright (C) 2007-2018 */ +/* Copyright (C) 2007-2019 */ /* CEA (Commissariat a l'energie atomique et aux energies */ /* alternatives) */ /* */ diff --git a/src/plugins/wp/tests/wp/oracle/sharing.res.oracle b/src/plugins/wp/tests/wp/oracle/sharing.res.oracle index a0d983a2b87ba821477e9d9c565efca9970df679..33ccf33c4b4de07a852143364aa4b4bf0277534d 100644 --- a/src/plugins/wp/tests/wp/oracle/sharing.res.oracle +++ b/src/plugins/wp/tests/wp/oracle/sharing.res.oracle @@ -5,12 +5,12 @@ [wp] Warning: Missing RTE guards [wp] 1 goal scheduled [wp:print-generated] - "WPOUT/typed/f_post.ergo" + "WPOUT/typed/f_ensures.ergo" (* ---------------------------------------------------------- *) (* --- Post-condition (file tests/wp/sharing.c, line 8) in 'f' --- *) (* ---------------------------------------------------------- *) - goal f_post: + goal f_ensures: forall i_1,i : int. forall t : int farray. forall t_1 : (addr,int) farray. diff --git a/src/plugins/wp/tests/wp/oracle/wp_eqb.res.oracle b/src/plugins/wp/tests/wp/oracle/wp_eqb.res.oracle index 191de1ee13455a16f3cf455b3277454fb8a28ebb..f9360746b680f16c9895df394646273b82570572 100644 --- a/src/plugins/wp/tests/wp/oracle/wp_eqb.res.oracle +++ b/src/plugins/wp/tests/wp/oracle/wp_eqb.res.oracle @@ -5,12 +5,12 @@ [wp] Warning: Missing RTE guards [wp] 1 goal scheduled [wp:print-generated] - "WPOUT/typed/f_post.ergo" + "WPOUT/typed/f_ensures.ergo" (* ---------------------------------------------------------- *) (* --- Post-condition (file tests/wp/wp_eqb.i, line 8) in 'f' --- *) (* ---------------------------------------------------------- *) - goal f_post: + goal f_ensures: forall i_3,i_2,i_1,i : int. ((match_bool((eqb(i_3, i_2)), 1, 0)) = (match_bool((eqb(i_1, i)), 1, 0))) -> is_sint32(i) -> diff --git a/src/plugins/wp/tests/wp/oracle_qualif/sharing.res.oracle b/src/plugins/wp/tests/wp/oracle_qualif/sharing.res.oracle index 7988ff2ccb6da01de8db30aeb0fb8a1186753fa5..981c1640a089eb28da93becc26b57a8c94ce8f96 100644 --- a/src/plugins/wp/tests/wp/oracle_qualif/sharing.res.oracle +++ b/src/plugins/wp/tests/wp/oracle_qualif/sharing.res.oracle @@ -4,12 +4,12 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled -[wp] [Alt-Ergo] Goal typed_f_post : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures : Valid [wp] Proved goals: 1 / 1 Qed: 0 Alt-Ergo: 1 [wp] Report 'tests/wp/sharing.c.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -f - 1 (44..56) 1 100% +f - 1 (48..60) 1 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp/oracle_qualif/stmtcompiler_test.res.oracle b/src/plugins/wp/tests/wp/oracle_qualif/stmtcompiler_test.res.oracle index 8f1cd7083055e2712a599239a2bb5cbba4665706..d2ce6cd6a429ef0dfa80b108ed4773ad1fc56dff 100644 --- a/src/plugins/wp/tests/wp/oracle_qualif/stmtcompiler_test.res.oracle +++ b/src/plugins/wp/tests/wp/oracle_qualif/stmtcompiler_test.res.oracle @@ -30,9 +30,9 @@ [wp] [Qed] Goal typed_one_if_assert : Valid [wp] [Qed] Goal typed_some_seq_assert : Valid [wp] [Qed] Goal typed_some_seq_assert_2 : Valid -[wp] [Qed] Goal typed_zloop_post : Valid -[wp] [Alt-Ergo] Goal typed_zloop_loop_inv_preserved : Unknown -[wp] [Qed] Goal typed_zloop_loop_inv_established : Valid +[wp] [Qed] Goal typed_zloop_ensures : Valid +[wp] [Alt-Ergo] Goal typed_zloop_loop_invariant_preserved : Unknown +[wp] [Qed] Goal typed_zloop_loop_invariant_established : Valid [wp] [Qed] Goal typed_zloop_assert : Valid [wp] [Qed] Goal typed_zloop_assert_2 : Valid [wp] [Alt-Ergo] Goal typed_zloop_assert_3 : Unknown @@ -56,6 +56,6 @@ behavior2 1 - 1 100% behavior3 1 - 1 100% behavior4 1 - 1 100% behavior5 - - 1 0.0% -if_assert 1 1 (1..12) 4 50.0% +if_assert 1 1 (4..16) 4 50.0% compare 1 - 1 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp/oracle_qualif/wp_behav.0.res.oracle b/src/plugins/wp/tests/wp/oracle_qualif/wp_behav.0.res.oracle index 624ee703375823c18012b2a40e57dd5e369e5ff1..1b6f43fb505c53f5a984707b26ff1a6153372581 100644 --- a/src/plugins/wp/tests/wp/oracle_qualif/wp_behav.0.res.oracle +++ b/src/plugins/wp/tests/wp/oracle_qualif/wp_behav.0.res.oracle @@ -17,41 +17,41 @@ [wp] [Alt-Ergo] Goal typed_assert_needed_assert_ko : Unknown [wp] [Qed] Goal typed_assert_needed_assert_qed_ok_ok_with_hyp : Valid [wp] [Alt-Ergo] Goal typed_bhv_complete_pos_neg : Valid -[wp] [Qed] Goal typed_bhv_neg_post_qed_ok : Valid -[wp] [Qed] Goal typed_bhv_pos_post_qed_ok : Valid -[wp] [Alt-Ergo] Goal typed_bts0513_post_ko1 : Unknown -[wp] [Alt-Ergo] Goal typed_bts0513_post_ko2 : Unknown -[wp] [Qed] Goal typed_f_post_qed_ok : Valid -[wp] [Qed] Goal typed_f_x1_post_qed_ok : Valid -[wp] [Qed] Goal typed_f_assert_qed_ok_for_x1 : Valid -[wp] [Qed] Goal typed_f_x2_post_qed_ok : Valid -[wp] [Qed] Goal typed_f_assert_qed_ok_for_x2 : Valid -[wp] [Qed] Goal typed_local_named_behavior_stmt_xpos_post_qed_ok : Valid -[wp] [Qed] Goal typed_local_named_behavior_stmt_xpos_post_qed_ok_2 : Valid +[wp] [Qed] Goal typed_bhv_neg_ensures_qed_ok : Valid +[wp] [Qed] Goal typed_bhv_pos_ensures_qed_ok : Valid +[wp] [Alt-Ergo] Goal typed_bts0513_ensures_ko1 : Unknown +[wp] [Alt-Ergo] Goal typed_bts0513_ensures_ko2 : Unknown +[wp] [Qed] Goal typed_f_ensures_qed_ok : Valid +[wp] [Qed] Goal typed_f_x1_ensures_qed_ok : Valid +[wp] [Qed] Goal typed_f_assert_qed_ok : Valid +[wp] [Qed] Goal typed_f_x2_ensures_qed_ok : Valid +[wp] [Qed] Goal typed_f_assert_qed_ok_2 : Valid +[wp] [Qed] Goal typed_local_named_behavior_xpos_ensures_qed_ok : Valid +[wp] [Qed] Goal typed_local_named_behavior_xpos_ensures_qed_ok_2 : Valid [wp] [Qed] Goal typed_min_complete_bx_by : Valid [wp] [Qed] Goal typed_min_disjoint_bx_by : Valid -[wp] [Qed] Goal typed_min_bx_post_qed_ok : Valid -[wp] [Qed] Goal typed_min_by_post_qed_ok : Valid -[wp] [Qed] Goal typed_more_stmt_assigns_post_qed_ok_ok_with_hoare : Valid -[wp] [Qed] Goal typed_more_stmt_assigns_stmt_blk_assign_part1 : Valid -[wp] [Qed] Goal typed_more_stmt_assigns_stmt_blk_assign_part2 : Valid -[wp] [Qed] Goal typed_part_stmt_bhv_b1_post_qed_ok : Valid -[wp] [Alt-Ergo] Goal typed_part_stmt_bhv_stmt_bs_post : Unknown -[wp] [Alt-Ergo] Goal typed_razT_loop_inv_qed_ok_preserved : Valid -[wp] [Qed] Goal typed_razT_loop_inv_qed_ok_established : Valid -[wp] [Alt-Ergo] Goal typed_razT_b1_post_e1 : Unknown -[wp] [Qed] Goal typed_stmt_assigns_post : Valid -[wp] [Alt-Ergo] Goal typed_stmt_assigns_stmt_assign : Unknown -[wp] [Qed] Goal typed_stmt_contract_stmt_pre_qed_ok : Valid -[wp] [Qed] Goal typed_stmt_contract_stmt_post_qed_ok : Valid -[wp] [Qed] Goal typed_stmt_contract_ok_post_qed_ok : Valid -[wp] [Qed] Goal typed_stmt_contract_assigns_stmt_pre_qed_ok : Valid -[wp] [Qed] Goal typed_stmt_contract_assigns_stmt_post_qed_ok : Valid -[wp] [Qed] Goal typed_stmt_contract_assigns_stmt_assign : Valid -[wp] [Qed] Goal typed_stmt_contract_assigns_ok_post_qed_ok : Valid -[wp] [Qed] Goal typed_stmt_contract_assigns_ok_asgn_post_qed_ok : Valid -[wp] [Qed] Goal typed_stmt_contract_label_post_qed_ok : Valid -[wp] [Qed] Goal typed_stmt_contract_label_stmt_post_qed_ok : Valid +[wp] [Qed] Goal typed_min_bx_ensures_qed_ok : Valid +[wp] [Qed] Goal typed_min_by_ensures_qed_ok : Valid +[wp] [Qed] Goal typed_more_stmt_assigns_ensures_qed_ok_ok_with_hoare : Valid +[wp] [Qed] Goal typed_more_stmt_assigns_blk_assigns_part1 : Valid +[wp] [Qed] Goal typed_more_stmt_assigns_blk_assigns_part2 : Valid +[wp] [Qed] Goal typed_part_stmt_bhv_b1_ensures_qed_ok : Valid +[wp] [Alt-Ergo] Goal typed_part_stmt_bhv_bs_ensures : Unknown +[wp] [Alt-Ergo] Goal typed_razT_loop_invariant_qed_ok_preserved : Valid +[wp] [Qed] Goal typed_razT_loop_invariant_qed_ok_established : Valid +[wp] [Alt-Ergo] Goal typed_razT_b1_ensures_e1 : Unknown +[wp] [Qed] Goal typed_stmt_assigns_ensures : Valid +[wp] [Alt-Ergo] Goal typed_stmt_assigns_assigns : Unknown +[wp] [Qed] Goal typed_stmt_contract_requires_qed_ok : Valid +[wp] [Qed] Goal typed_stmt_contract_ensures_qed_ok : Valid +[wp] [Qed] Goal typed_stmt_contract_ok_ensures_qed_ok : Valid +[wp] [Qed] Goal typed_stmt_contract_assigns_requires_qed_ok : Valid +[wp] [Qed] Goal typed_stmt_contract_assigns_ensures_qed_ok : Valid +[wp] [Qed] Goal typed_stmt_contract_assigns_assigns : Valid +[wp] [Qed] Goal typed_stmt_contract_assigns_ok_ensures_qed_ok : Valid +[wp] [Qed] Goal typed_stmt_contract_assigns_ok_asgn_ensures_qed_ok : Valid +[wp] [Qed] Goal typed_stmt_contract_label_ensures_qed_ok_2 : Valid +[wp] [Qed] Goal typed_stmt_contract_label_ensures_qed_ok : Valid [wp] Proved goals: 32 / 38 Qed: 30 Alt-Ergo: 2 (unknown: 6) @@ -60,7 +60,7 @@ Functions WP Alt-Ergo Total Success f 5 - 5 100% min 4 - 4 100% -bhv 2 1 (1..12) 3 100% +bhv 2 1 (8..20) 3 100% stmt_contract 3 - 3 100% stmt_contract_label 2 - 2 100% stmt_contract_assigns 5 - 5 100% @@ -68,7 +68,7 @@ local_named_behavior 2 - 2 100% assert_needed 1 - 2 50.0% bts0513 - - 2 0.0% stmt_assigns 1 - 2 50.0% -razT 1 1 (8..20) 3 66.7% +razT 1 1 (12..24) 3 66.7% more_stmt_assigns 3 - 3 100% part_stmt_bhv 1 - 2 50.0% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp/oracle_qualif/wp_behav.1.res.oracle b/src/plugins/wp/tests/wp/oracle_qualif/wp_behav.1.res.oracle index 83792030946b5942b66307d7f9c27588b8cd62b2..745a17600fa3965aa0a10b658d65edde47f6910e 100644 --- a/src/plugins/wp/tests/wp/oracle_qualif/wp_behav.1.res.oracle +++ b/src/plugins/wp/tests/wp/oracle_qualif/wp_behav.1.res.oracle @@ -8,14 +8,14 @@ [wp] tests/wp/wp_behav.c:69: Warning: Missing assigns clause (assigns 'everything' instead) [wp] 8 goals scheduled -[wp] [Alt-Ergo] Goal typed_f_post_qed_ko : Unknown -[wp] [Alt-Ergo] Goal typed_f_x1_post_qed_ko : Unknown -[wp] [Alt-Ergo] Goal typed_f_x2_post_qed_ko : Unknown -[wp] [Alt-Ergo] Goal typed_min_bx_post_qed_ko : Unknown -[wp] [Alt-Ergo] Goal typed_min_by_post_qed_ko : Unknown -[wp] [Alt-Ergo] Goal typed_stmt_contract_ko_post_qed_ko : Unknown -[wp] [Alt-Ergo] Goal typed_stmt_contract_ko_without_asgn_post_qed_ko : Unknown -[wp] [Alt-Ergo] Goal typed_stmt_contract_assigns_ko_post_qed_ko : Unknown +[wp] [Alt-Ergo] Goal typed_f_ensures_qed_ko : Unknown +[wp] [Alt-Ergo] Goal typed_f_x1_ensures_qed_ko : Unknown +[wp] [Alt-Ergo] Goal typed_f_x2_ensures_qed_ko : Unknown +[wp] [Alt-Ergo] Goal typed_min_bx_ensures_qed_ko : Unknown +[wp] [Alt-Ergo] Goal typed_min_by_ensures_qed_ko : Unknown +[wp] [Alt-Ergo] Goal typed_stmt_contract_ko_ensures_qed_ko : Unknown +[wp] [Alt-Ergo] Goal typed_stmt_contract_ko_without_asgn_ensures_qed_ko : Unknown +[wp] [Alt-Ergo] Goal typed_stmt_contract_assigns_ko_ensures_qed_ko : Unknown [wp] Proved goals: 0 / 8 Alt-Ergo: 0 (unknown: 8) [wp] Report 'tests/wp/wp_behav.c.1.report.json' diff --git a/src/plugins/wp/tests/wp/oracle_qualif/wp_call_pre.res.oracle b/src/plugins/wp/tests/wp/oracle_qualif/wp_call_pre.res.oracle index bec840af1d64d50e33124d68757fedde515e086e..a61b5e65e10962836fd6e80269d7b38b84b0126a 100644 --- a/src/plugins/wp/tests/wp/oracle_qualif/wp_call_pre.res.oracle +++ b/src/plugins/wp/tests/wp/oracle_qualif/wp_call_pre.res.oracle @@ -8,16 +8,16 @@ No code nor implicit assigns clause for function f, generating default assigns from the prototype [wp] Warning: Missing RTE guards [wp] 10 goals scheduled -[wp] [Qed] Goal typed_call_g_call_g_pre_qed_ok_Rga : Valid -[wp] [Qed] Goal typed_call_g_call_g_pre_Rgb : Valid -[wp] [Qed] Goal typed_call_main_post_qed_ok : Valid -[wp] [Qed] Goal typed_call_main_call_main_pre_qed_ok_Rmain : Valid -[wp] [Qed] Goal typed_double_call_call_f_pre_qed_ok_Rf : Valid -[wp] [Alt-Ergo] Goal typed_double_call_call_f_pre_qed_ok_Rf_2 : Valid -[wp] [Qed] Goal typed_main_pre_qed_ok_Rmain : Valid -[wp] [Qed] Goal typed_main_post_qed_ok_Emain : Valid -[wp] [Qed] Goal typed_main_call_f_pre_qed_ok_Rf : Valid -[wp] [Qed] Goal typed_stmt_pre_stmt_pre_qed_ok_Rstmt : Valid +[wp] [Qed] Goal typed_call_g_call_g_requires_qed_ok_Rga : Valid +[wp] [Qed] Goal typed_call_g_call_g_requires_Rgb : Valid +[wp] [Qed] Goal typed_call_main_ensures_qed_ok : Valid +[wp] [Qed] Goal typed_call_main_call_main_requires_qed_ok_Rmain : Valid +[wp] [Qed] Goal typed_double_call_call_f_requires_qed_ok_Rf : Valid +[wp] [Alt-Ergo] Goal typed_double_call_call_f_requires_qed_ok_Rf : Valid +[wp] [Qed] Goal typed_main_requires_qed_ok_Rmain : Valid +[wp] [Qed] Goal typed_main_ensures_qed_ok_Emain : Valid +[wp] [Qed] Goal typed_main_call_f_requires_qed_ok_Rf : Valid +[wp] [Qed] Goal typed_stmt_pre_requires_qed_ok_Rstmt : Valid [wp] Proved goals: 10 / 10 Qed: 9 Alt-Ergo: 1 diff --git a/src/plugins/wp/tests/wp/oracle_qualif/wp_eqb.res.oracle b/src/plugins/wp/tests/wp/oracle_qualif/wp_eqb.res.oracle index a08574adb8811eed37ff05686640fcc24d3205f1..e838815abc14a013119915deda971041887722ba 100644 --- a/src/plugins/wp/tests/wp/oracle_qualif/wp_eqb.res.oracle +++ b/src/plugins/wp/tests/wp/oracle_qualif/wp_eqb.res.oracle @@ -4,7 +4,7 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled -[wp] [Alt-Ergo] Goal typed_f_post : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures : Valid [wp] Proved goals: 1 / 1 Qed: 0 Alt-Ergo: 1 diff --git a/src/plugins/wp/tests/wp/oracle_qualif/wp_strategy.res.oracle b/src/plugins/wp/tests/wp/oracle_qualif/wp_strategy.res.oracle index 2e5b53af9fcf2c34f57e8dd073f418cd261527b2..8dfdb335c2b8ed73c162e80ac9d560a08bbabc39 100644 --- a/src/plugins/wp/tests/wp/oracle_qualif/wp_strategy.res.oracle +++ b/src/plugins/wp/tests/wp/oracle_qualif/wp_strategy.res.oracle @@ -11,31 +11,31 @@ [wp] Running WP plugin... [wp] Loading driver 'share/wp.driver' [wp] 25 goals scheduled -[wp] [Alt-Ergo] Goal hoare_bts0513_post_qed_ko_ko1 : Unknown -[wp] [Alt-Ergo] Goal hoare_bts0513_post_qed_ko_ko2 : Unknown +[wp] [Alt-Ergo] Goal hoare_bts0513_ensures_qed_ko_ko1 : Unknown +[wp] [Alt-Ergo] Goal hoare_bts0513_ensures_qed_ko_ko2 : Unknown [wp] [Alt-Ergo] Goal hoare_bts0513_bis_assert_qed_ko_ko1 : Unknown [wp] [Qed] Goal hoare_bts0513_bis_assert_qed_ok_ok : Valid -[wp] [Qed] Goal hoare_default_behaviors_post_qed_ok : Valid +[wp] [Qed] Goal hoare_default_behaviors_ensures_qed_ok : Valid [wp] [Qed] Goal hoare_default_behaviors_assert_qed_ok_2 : Valid -[wp] [Qed] Goal hoare_default_behaviors_stmt_post_qed_ok_stmt_p : Valid +[wp] [Qed] Goal hoare_default_behaviors_ensures_qed_ok_stmt_p : Valid [wp] [Qed] Goal hoare_default_behaviors_assert_qed_ok : Valid [wp] [Alt-Ergo] Goal hoare_default_behaviors_assert_rte_signed_overflow : Unknown -[wp] [Qed] Goal hoare_default_behaviors_stmt_assign : Valid +[wp] [Qed] Goal hoare_default_behaviors_assigns : Valid [wp] [Qed] Goal hoare_dpd1_assert_qed_ok_A : Valid -[wp] [Alt-Ergo] Goal hoare_dpd1_stmt_post_qed_ko_Eko : Unknown -[wp] [Qed] Goal hoare_dpd1_stmt_assign : Valid -[wp] [Qed] Goal hoare_dpd2_assert_qed_ok_A_for_P : Valid -[wp] [Alt-Ergo] Goal hoare_dpd2_stmt_post_qed_ko_Eko : Unknown -[wp] [Qed] Goal hoare_dpd2_stmt_assign : Valid -[wp] [Qed] Goal hoare_spec_if_post_qed_ok : Valid -[wp] [Qed] Goal hoare_spec_if_stmt_post_qed_ok : Valid -[wp] [Qed] Goal hoare_spec_if_stmt_assign : Valid +[wp] [Alt-Ergo] Goal hoare_dpd1_ensures_qed_ko_Eko : Unknown +[wp] [Qed] Goal hoare_dpd1_assigns : Valid +[wp] [Qed] Goal hoare_dpd2_assert_qed_ok_A : Valid +[wp] [Alt-Ergo] Goal hoare_dpd2_ensures_qed_ko_Eko : Unknown +[wp] [Qed] Goal hoare_dpd2_assigns : Valid +[wp] [Qed] Goal hoare_spec_if_ensures_qed_ok_2 : Valid +[wp] [Qed] Goal hoare_spec_if_ensures_qed_ok : Valid +[wp] [Qed] Goal hoare_spec_if_assigns : Valid [wp] [Alt-Ergo] Goal hoare_spec_if_assert_rte_signed_overflow : Unknown -[wp] [Qed] Goal hoare_spec_if_stmt_assign_2 : Valid +[wp] [Qed] Goal hoare_spec_if_assigns_2 : Valid [wp] [Alt-Ergo] Goal hoare_spec_if_assert_rte_signed_overflow_2 : Unknown -[wp] [Qed] Goal hoare_spec_if_stmt_assign_3 : Valid -[wp] [Qed] Goal hoare_spec_if_cond_stmt_post_qed_ok : Valid -[wp] [Qed] Goal hoare_spec_if_not_cond_stmt_post_qed_ok : Valid +[wp] [Qed] Goal hoare_spec_if_assigns_3 : Valid +[wp] [Qed] Goal hoare_spec_if_cond_ensures_qed_ok : Valid +[wp] [Qed] Goal hoare_spec_if_not_cond_ensures_qed_ok : Valid [wp] Proved goals: 17 / 25 Qed: 17 Alt-Ergo: 0 (unknown: 8) diff --git a/src/plugins/wp/tests/wp/sharing.c.0.report.json b/src/plugins/wp/tests/wp/sharing.c.0.report.json index 4a51520be5395c49e07f447760b60b7c76508885..17a701f571cf6dbe5cfed605ec9b9613c7b168d2 100644 --- a/src/plugins/wp/tests/wp/sharing.c.0.report.json +++ b/src/plugins/wp/tests/wp/sharing.c.0.report.json @@ -1,12 +1,14 @@ -{ "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 12 }, - "wp:main": { "total": 1, "valid": 1, "rank": 12 } }, - "wp:functions": { "f": { "f_post": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 12 }, - "wp:main": { "total": 1, "valid": 1, - "rank": 12 } }, +{ "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 13 }, + "wp:main": { "total": 1, "valid": 1, "rank": 13 } }, + "wp:functions": { "f": { "f_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 13 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 13 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 12 }, + "rank": 13 }, "wp:main": { "total": 1, "valid": 1, - "rank": 12 } } } } } + "rank": 13 } } } } } diff --git a/src/plugins/wp/tests/wp/stmtcompiler_test.i.0.report.json b/src/plugins/wp/tests/wp/stmtcompiler_test.i.0.report.json index 542d6fa1e57e7a7467757a22b7c5932a113c3365..23c6014c8c98bb6ceee65521782a49f50bd479a8 100644 --- a/src/plugins/wp/tests/wp/stmtcompiler_test.i.0.report.json +++ b/src/plugins/wp/tests/wp/stmtcompiler_test.i.0.report.json @@ -1,8 +1,8 @@ { "wp:global": { "alt-ergo": { "total": 9, "valid": 1, "unknown": 8, - "rank": 1 }, + "rank": 2 }, "qed": { "total": 18, "valid": 18 }, "wp:main": { "total": 27, "valid": 19, "unknown": 8, - "rank": 1 } }, + "rank": 2 } }, "wp:functions": { "empty": { "empty_assert": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, @@ -108,17 +108,18 @@ "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "zloop_loop_inv": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 1, - "unknown": 1 } }, - "zloop_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "zloop_loop_invariant": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 1, + "unknown": 1 } }, + "zloop_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 3, "unknown": 3 }, "qed": { "total": 4, @@ -179,20 +180,20 @@ "if_assert_assert": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 1 }, + "rank": 2 }, "wp:main": { "total": 1, "valid": 1, - "rank": 1 } }, + "rank": 2 } }, "wp:section": { "alt-ergo": { "total": 3, "valid": 1, "unknown": 2, - "rank": 1 }, + "rank": 2 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 4, "valid": 2, "unknown": 2, - "rank": 1 } } }, + "rank": 2 } } }, "compare": { "compare_assert": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, diff --git a/src/plugins/wp/tests/wp/stmtcompiler_test.ml b/src/plugins/wp/tests/wp/stmtcompiler_test.ml index d5752c3f078f98802065bc3ec40bd501d4cf1415..320ad154cdac77a26b1768685510442f460ebc05 100644 --- a/src/plugins/wp/tests/wp/stmtcompiler_test.ml +++ b/src/plugins/wp/tests/wp/stmtcompiler_test.ml @@ -53,7 +53,7 @@ let run () = effect = None; } in let po = Wpo.{ - po_gid = ""; po_sid = ""; po_name = ""; + po_gid = ""; po_sid = ""; po_name = ""; po_leg = ""; po_idx = Function(kf, None); po_model = model; po_pid = prop_id; po_formula = Wpo.GoalAnnot vc_annot; @@ -111,7 +111,8 @@ let run () = Model.on_scope (Some kf) (fun () -> let paths,start = Compiler.compute_kf kf in let cfg, goals = paths.Compiler.paths_cfg, paths.Compiler.paths_goals in - let cout = open_out (Format.sprintf "/tmp/cfg_pre_%s.dot" (Kernel_function.get_name kf)) in + let fname = Filename.temp_file "cfg_pre_" (Kernel_function.get_name kf) in + let cout = open_out fname in Compiler.Cfg.output_dot cout ~checks:(Bag.map (fun g -> g.Compiler.goal_pred) goals) cfg; close_out cout; Format.printf "new way@."; diff --git a/src/plugins/wp/tests/wp/wp_behav.c.0.report.json b/src/plugins/wp/tests/wp/wp_behav.c.0.report.json index 2ad0a05fcc3dc7c7eaba88253214719169bc3013..ca3a13935420937acbc8b0085343a38838deb755 100644 --- a/src/plugins/wp/tests/wp/wp_behav.c.0.report.json +++ b/src/plugins/wp/tests/wp/wp_behav.c.0.report.json @@ -1,28 +1,28 @@ { "wp:global": { "alt-ergo": { "total": 8, "valid": 2, "unknown": 6, - "rank": 3 }, + "rank": 4 }, "qed": { "total": 30, "valid": 30 }, "wp:main": { "total": 38, "valid": 32, "unknown": 6, - "rank": 3 } }, - "wp:functions": { "f": { "f_assert_qed_ok_for_x2": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_assert_qed_ok_for_x1": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_x2_post_qed_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_x1_post_qed_ok": { "qed": { "total": 1, + "rank": 4 } }, + "wp:functions": { "f": { "f_assert_qed_ok_2": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_assert_qed_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_x2_ensures_qed_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_x1_ensures_qed_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_qed_ok": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "f_post_qed_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, "wp:section": { "qed": { "total": 5, "valid": 5 }, "wp:main": { "total": 5, "valid": 5 } } }, @@ -34,49 +34,49 @@ "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "min_by_post_qed_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "min_bx_post_qed_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "min_by_ensures_qed_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "min_bx_ensures_qed_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 4, "valid": 4 }, "wp:main": { "total": 4, "valid": 4 } } }, "bhv": { "bhv_complete_pos_neg": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 1 }, + "rank": 3 }, "wp:main": { "total": 1, "valid": 1, - "rank": 1 } }, - "bhv_neg_post_qed_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "bhv_pos_post_qed_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "rank": 3 } }, + "bhv_neg_ensures_qed_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "bhv_pos_ensures_qed_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 1 }, + "rank": 3 }, "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 3, "valid": 3, - "rank": 1 } } }, - "stmt_contract": { "stmt_contract_stmt_post_qed_ok": + "rank": 3 } } }, + "stmt_contract": { "stmt_contract_ensures_qed_ok": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "stmt_contract_stmt_pre_qed_ok": + "stmt_contract_requires_qed_ok": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "stmt_contract_ok_post_qed_ok": + "stmt_contract_ok_ensures_qed_ok": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, @@ -84,12 +84,12 @@ "valid": 3 }, "wp:main": { "total": 3, "valid": 3 } } }, - "stmt_contract_label": { "stmt_contract_label_stmt_post_qed_ok": + "stmt_contract_label": { "stmt_contract_label_ensures_qed_ok_2": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "stmt_contract_label_post_qed_ok": + "stmt_contract_label_ensures_qed_ok": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, @@ -99,27 +99,27 @@ "wp:main": { "total": 2, "valid": 2 } } }, - "stmt_contract_assigns": { "stmt_contract_assigns_stmt_assign": + "stmt_contract_assigns": { "stmt_contract_assigns_assigns": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "stmt_contract_assigns_stmt_post_qed_ok": + "stmt_contract_assigns_ensures_qed_ok": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "stmt_contract_assigns_stmt_pre_qed_ok": + "stmt_contract_assigns_requires_qed_ok": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "stmt_contract_assigns_ok_asgn_post_qed_ok": + "stmt_contract_assigns_ok_asgn_ensures_qed_ok": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "stmt_contract_assigns_ok_post_qed_ok": + "stmt_contract_assigns_ok_ensures_qed_ok": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, @@ -130,12 +130,12 @@ "wp:main": { "total": 5, "valid": 5 } } }, - "local_named_behavior": { "local_named_behavior_stmt_xpos_post_qed_ok_2": + "local_named_behavior": { "local_named_behavior_xpos_ensures_qed_ok_2": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "local_named_behavior_stmt_xpos_post_qed_ok": + "local_named_behavior_xpos_ensures_qed_ok": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, @@ -163,29 +163,34 @@ "wp:main": { "total": 2, "valid": 1, "unknown": 1 } } }, - "bts0513": { "bts0513_post_ko2": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "bts0513_post_ko1": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, + "bts0513": { "bts0513_ensures_ko2": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, + "bts0513_ensures_ko1": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 2, "unknown": 2 }, "wp:main": { "total": 2, "unknown": 2 } } }, - "stmt_assigns": { "stmt_assigns_stmt_assign": { "alt-ergo": - { "total": 1, + "stmt_assigns": { "stmt_assigns_assigns": { "alt-ergo": + { "total": 1, "unknown": 1 }, - "wp:main": - { "total": 1, + "wp:main": + { "total": 1, "unknown": 1 } }, - "stmt_assigns_post": { "qed": { "total": 1, + "stmt_assigns_ensures": { "qed": + { "total": 1, "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "qed": { "total": 1, @@ -193,34 +198,37 @@ "wp:main": { "total": 2, "valid": 1, "unknown": 1 } } }, - "razT": { "razT_loop_inv_qed_ok": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 3 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 3 } }, - "razT_b1_post_e1": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, + "razT": { "razT_loop_invariant_qed_ok": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 4 }, + "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 2, + "valid": 2, + "rank": 4 } }, + "razT_b1_ensures_e1": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 2, "valid": 1, "unknown": 1, - "rank": 3 }, + "rank": 4 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 3, "valid": 2, "unknown": 1, - "rank": 3 } } }, - "more_stmt_assigns": { "more_stmt_assigns_stmt_blk_assign": + "rank": 4 } } }, + "more_stmt_assigns": { "more_stmt_assigns_blk_assigns": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } }, - "more_stmt_assigns_post_qed_ok_ok_with_hoare": + "more_stmt_assigns_ensures_qed_ok_ok_with_hoare": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, @@ -230,12 +238,13 @@ "wp:main": { "total": 3, "valid": 3 } } }, - "part_stmt_bhv": { "part_stmt_bhv_stmt_bs_post": - { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "part_stmt_bhv_b1_post_qed_ok": + "part_stmt_bhv": { "part_stmt_bhv_bs_ensures": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, + "part_stmt_bhv_b1_ensures_qed_ok": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, diff --git a/src/plugins/wp/tests/wp/wp_behav.c.1.report.json b/src/plugins/wp/tests/wp/wp_behav.c.1.report.json index 5179dc51e1f5a05ee8b4d95ff5496e2888964a4b..ca159cdef949ee9378ea7b68912908a313217b80 100644 --- a/src/plugins/wp/tests/wp/wp_behav.c.1.report.json +++ b/src/plugins/wp/tests/wp/wp_behav.c.1.report.json @@ -1,39 +1,39 @@ { "wp:global": { "alt-ergo": { "total": 8, "unknown": 8 }, "wp:main": { "total": 8, "unknown": 8 } }, - "wp:functions": { "f": { "f_x2_post_qed_ko": { "alt-ergo": { "total": 1, + "wp:functions": { "f": { "f_x2_ensures_qed_ko": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, + "f_x1_ensures_qed_ko": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, + "f_ensures_qed_ko": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "f_x1_post_qed_ko": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "f_post_qed_ko": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 3, "unknown": 3 }, "wp:main": { "total": 3, "unknown": 3 } } }, - "min": { "min_by_post_qed_ko": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "min_bx_post_qed_ko": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, + "min": { "min_by_ensures_qed_ko": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, + "min_bx_ensures_qed_ko": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 2, "unknown": 2 }, "wp:main": { "total": 2, "unknown": 2 } } }, - "stmt_contract": { "stmt_contract_ko_without_asgn_post_qed_ko": + "stmt_contract": { "stmt_contract_ko_without_asgn_ensures_qed_ko": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "stmt_contract_ko_post_qed_ko": + "stmt_contract_ko_ensures_qed_ko": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, @@ -42,7 +42,7 @@ "unknown": 2 }, "wp:main": { "total": 2, "unknown": 2 } } }, - "stmt_contract_assigns": { "stmt_contract_assigns_ko_post_qed_ko": + "stmt_contract_assigns": { "stmt_contract_assigns_ko_ensures_qed_ko": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, diff --git a/src/plugins/wp/tests/wp/wp_call_pre.c.0.report.json b/src/plugins/wp/tests/wp/wp_call_pre.c.0.report.json index e906db69b8c2655f456b55e33646bb6049ea674f..46ef943fa3849d7d744ad29bea8228c6e290fc7a 100644 --- a/src/plugins/wp/tests/wp/wp_call_pre.c.0.report.json +++ b/src/plugins/wp/tests/wp/wp_call_pre.c.0.report.json @@ -1,16 +1,20 @@ { "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 2 }, "qed": { "total": 9, "valid": 9 }, "wp:main": { "total": 10, "valid": 10, "rank": 2 } }, - "wp:functions": { "double_call": { "specialization_f_pre_qed_ok_Rf_at_double_call_stmt_2": - { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, "valid": 1, - "rank": 2 } }, - "specialization_f_pre_qed_ok_Rf_at_double_call_stmt_1": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "double_call": { "f_requires_qed_ok_Rf_2": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 2 } }, + "f_requires_qed_ok_Rf": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, "rank": 2 }, @@ -19,36 +23,43 @@ "wp:main": { "total": 2, "valid": 2, "rank": 2 } } }, - "main": { "specialization_f_pre_qed_ok_Rf_at_main_stmt_6": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "main_post_qed_ok_Emain": { "qed": { "total": 1, + "main": { "f_requires_qed_ok_Rf_3": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "main_pre_qed_ok_Rmain": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "wp:section": { "qed": { "total": 3, - "valid": 3 }, - "wp:main": { "total": 3, - "valid": 3 } } }, - "call_main": { "specialization_main_pre_qed_ok_Rmain_at_call_main_stmt_11": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "call_main_post_qed_ok": { "qed": + "main_ensures_qed_ok_Emain": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "main_requires_qed_ok_Rmain": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, + "wp:section": { "qed": { "total": 3, + "valid": 3 }, + "wp:main": { "total": 3, + "valid": 3 } } }, + "call_main": { "main_requires_qed_ok_Rmain_2": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "call_main_ensures_qed_ok": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } } }, - "stmt_pre": { "stmt_pre_stmt_pre_qed_ok_Rstmt": { "qed": + "stmt_pre": { "stmt_pre_requires_qed_ok_Rstmt": { "qed": { "total": 1, "valid": 1 }, "wp:main": @@ -58,12 +69,15 @@ "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "call_g": { "specialization_g_pre_Rgb_at_call_g_stmt_22": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "specialization_g_pre_qed_ok_Rga_at_call_g_stmt_22": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, + "call_g": { "g_requires_Rgb": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "g_requires_qed_ok_Rga": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, diff --git a/src/plugins/wp/tests/wp/wp_eqb.i.0.report.json b/src/plugins/wp/tests/wp/wp_eqb.i.0.report.json index 31678b1201a677a977dd04902eddb54caa33f639..61ebcf4782f55aad4236e4abfd5a7be592f4c998 100644 --- a/src/plugins/wp/tests/wp/wp_eqb.i.0.report.json +++ b/src/plugins/wp/tests/wp/wp_eqb.i.0.report.json @@ -1,9 +1,11 @@ { "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 9 }, "wp:main": { "total": 1, "valid": 1, "rank": 9 } }, - "wp:functions": { "f": { "f_post": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 9 }, - "wp:main": { "total": 1, "valid": 1, - "rank": 9 } }, + "wp:functions": { "f": { "f_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 10 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 10 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, "rank": 9 }, diff --git a/src/plugins/wp/tests/wp/wp_strategy.c.0.report.json b/src/plugins/wp/tests/wp/wp_strategy.c.0.report.json index 40f46e25467a95082221a53bb85c3ce8a04dce22..e49918bd0f45b613e0f363eafb042208dae7952a 100644 --- a/src/plugins/wp/tests/wp/wp_strategy.c.0.report.json +++ b/src/plugins/wp/tests/wp/wp_strategy.c.0.report.json @@ -1,18 +1,18 @@ { "wp:global": { "alt-ergo": { "total": 8, "unknown": 8 }, "qed": { "total": 17, "valid": 17 }, "wp:main": { "total": 25, "valid": 17, "unknown": 8 } }, - "wp:functions": { "bts0513": { "bts0513_post_qed_ko_ko2": { "alt-ergo": - { "total": 1, - "unknown": 1 }, - "wp:main": - { "total": 1, - "unknown": 1 } }, - "bts0513_post_qed_ko_ko1": { "alt-ergo": - { "total": 1, - "unknown": 1 }, - "wp:main": - { "total": 1, - "unknown": 1 } }, + "wp:functions": { "bts0513": { "bts0513_ensures_qed_ko_ko2": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, + "bts0513_ensures_qed_ko_ko1": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 2, "unknown": 2 }, "wp:main": { "total": 2, @@ -37,16 +37,16 @@ "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "dpd1_stmt_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "dpd1_stmt_post_qed_ko_Eko": { "alt-ergo": - { "total": 1, - "unknown": 1 }, - "wp:main": - { "total": 1, - "unknown": 1 } }, + "dpd1_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "dpd1_ensures_qed_ko_Eko": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "qed": { "total": 2, @@ -54,22 +54,20 @@ "wp:main": { "total": 3, "valid": 2, "unknown": 1 } } }, - "dpd2": { "dpd2_assert_qed_ok_A_for_P": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "dpd2_stmt_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "dpd2_stmt_post_qed_ko_Eko": { "alt-ergo": - { "total": 1, - "unknown": 1 }, - "wp:main": - { "total": 1, - "unknown": 1 } }, + "dpd2": { "dpd2_assert_qed_ok_A": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "dpd2_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "dpd2_ensures_qed_ko_Eko": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "qed": { "total": 2, @@ -83,32 +81,29 @@ "spec_if_assert_rte_signed_overflow": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "spec_if_stmt_assign_3": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "spec_if_stmt_assign_2": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "spec_if_stmt_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "spec_if_stmt_post_qed_ok": { "qed": + "spec_if_assigns_3": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "spec_if_assigns_2": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "spec_if_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "spec_if_ensures_qed_ok_2": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "spec_if_post_qed_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "spec_if_ensures_qed_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 2, "unknown": 2 }, "qed": { "total": 5, @@ -116,7 +111,7 @@ "wp:main": { "total": 7, "valid": 5, "unknown": 2 } } }, - "spec_if_cond": { "spec_if_cond_stmt_post_qed_ok": + "spec_if_cond": { "spec_if_cond_ensures_qed_ok": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, @@ -124,7 +119,7 @@ "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "spec_if_not_cond": { "spec_if_not_cond_stmt_post_qed_ok": + "spec_if_not_cond": { "spec_if_not_cond_ensures_qed_ok": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, @@ -149,17 +144,17 @@ "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "default_behaviors_stmt_assign": + "default_behaviors_assigns": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "default_behaviors_stmt_post_qed_ok_stmt_p": + "default_behaviors_ensures_qed_ok_stmt_p": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "default_behaviors_post_qed_ok": + "default_behaviors_ensures_qed_ok": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, diff --git a/src/plugins/wp/tests/wp_acsl/arith.i.0.report.json b/src/plugins/wp/tests/wp_acsl/arith.i.0.report.json index 613f84813e258b26e25ef8f2db1f40d10206834a..13a54c0355915f6c11c608baf0017341de6d51ad 100644 --- a/src/plugins/wp/tests/wp_acsl/arith.i.0.report.json +++ b/src/plugins/wp/tests/wp_acsl/arith.i.0.report.json @@ -1,6 +1,6 @@ -{ "wp:global": { "alt-ergo": { "total": 3, "valid": 3, "rank": 3 }, +{ "wp:global": { "alt-ergo": { "total": 3, "valid": 3, "rank": 4 }, "qed": { "total": 21, "valid": 21 }, - "wp:main": { "total": 24, "valid": 24, "rank": 3 } }, + "wp:main": { "total": 24, "valid": 24, "rank": 4 } }, "wp:axiomatics": { "": { "lemma_ucN2_qed_ok": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, @@ -106,7 +106,7 @@ "wp:main": { "total": 21, "valid": 21, "rank": 0 } } } }, - "wp:functions": { "cast_sgn_usgn": { "cast_sgn_usgn_post_qed_ok_nat": + "wp:functions": { "cast_sgn_usgn": { "cast_sgn_usgn_ensures_qed_ok_nat": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, @@ -117,18 +117,18 @@ "uchar_range": { "uchar_range_assert_qed_ok_A2": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "wp:main": { "total": 1, "valid": 1, - "rank": 3 } }, + "rank": 4 } }, "uchar_range_assert_qed_ok_A1": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "wp:main": { "total": 1, "valid": 1, - "rank": 3 } }, + "rank": 4 } }, "wp:section": { "alt-ergo": { "total": 2, "valid": 2, - "rank": 3 }, + "rank": 4 }, "wp:main": { "total": 2, "valid": 2, - "rank": 3 } } } } } + "rank": 4 } } } } } diff --git a/src/plugins/wp/tests/wp_acsl/arith.i.1.report.json b/src/plugins/wp/tests/wp_acsl/arith.i.1.report.json index 5d5263c3f330fa7ee13c1252c37d23dec9c81519..d2cc0ea1c99088084f9c0d3f60a86defa91a9008 100644 --- a/src/plugins/wp/tests/wp_acsl/arith.i.1.report.json +++ b/src/plugins/wp/tests/wp_acsl/arith.i.1.report.json @@ -1,6 +1,6 @@ { "wp:global": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "wp:functions": { "cast_sgn_usgn": { "cast_sgn_usgn_post_qed_ko_KO": + "wp:functions": { "cast_sgn_usgn": { "cast_sgn_usgn_ensures_qed_ko_KO": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, diff --git a/src/plugins/wp/tests/wp_acsl/assign_array.i.0.report.json b/src/plugins/wp/tests/wp_acsl/assign_array.i.0.report.json index 0ed6cda82f4f07ee74997ae359be44570d4ec148..c9b4abc0b34fba30c01071e1f47fe4f2e8c8ce92 100644 --- a/src/plugins/wp/tests/wp_acsl/assign_array.i.0.report.json +++ b/src/plugins/wp/tests/wp_acsl/assign_array.i.0.report.json @@ -1,17 +1,17 @@ { "wp:global": { "qed": { "total": 4, "valid": 4 }, "wp:main": { "total": 4, "valid": 4 } }, - "wp:functions": { "jobA": { "jobA_assign": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, + "wp:functions": { "jobA": { "jobA_assigns": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } } }, - "jobG": { "jobG_assign": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, + "jobG": { "jobG_assigns": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, diff --git a/src/plugins/wp/tests/wp_acsl/assigns_path.i.0.report.json b/src/plugins/wp/tests/wp_acsl/assigns_path.i.0.report.json index 2866dccc60d1584dfa4b3b0f120c0806543c8969..a3e18b8a1f10b2629a4c2dcfc0d7d34e0c338e01 100644 --- a/src/plugins/wp/tests/wp_acsl/assigns_path.i.0.report.json +++ b/src/plugins/wp/tests/wp_acsl/assigns_path.i.0.report.json @@ -1,45 +1,45 @@ -{ "wp:global": { "alt-ergo": { "total": 3, "valid": 3, "rank": 5 }, +{ "wp:global": { "alt-ergo": { "total": 3, "valid": 3, "rank": 6 }, "qed": { "total": 6, "valid": 6 }, - "wp:main": { "total": 9, "valid": 9, "rank": 5 } }, - "wp:functions": { "job": { "job_loop_inv_2": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 5 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 5 } }, - "job_loop_inv": { "alt-ergo": { "total": 1, + "wp:main": { "total": 9, "valid": 9, "rank": 6 } }, + "wp:functions": { "job": { "job_loop_invariant_2": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 6 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 6 } }, + "job_loop_invariant": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 4 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 4 } }, + "job_assigns": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, + "job_loop_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "job_ensures_A": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 5 }, + "wp:main": { "total": 1, "valid": 1, - "rank": 3 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 3 } }, - "job_assign": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, - "job_loop_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "job_post_A": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 4 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 4 } }, - "job_post_N": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "rank": 5 } }, + "job_ensures_N": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 3, "valid": 3, - "rank": 5 }, + "rank": 6 }, "qed": { "total": 6, "valid": 6 }, "wp:main": { "total": 9, "valid": 9, - "rank": 5 } } } } } + "rank": 6 } } } } } diff --git a/src/plugins/wp/tests/wp_acsl/assigns_range.i.0.report.json b/src/plugins/wp/tests/wp_acsl/assigns_range.i.0.report.json index 1fe78dc9d29e99b87af197f1f38cff8e938a55a7..bc9e60bf5444a59032712016285245540003092b 100644 --- a/src/plugins/wp/tests/wp_acsl/assigns_range.i.0.report.json +++ b/src/plugins/wp/tests/wp_acsl/assigns_range.i.0.report.json @@ -1,31 +1,31 @@ -{ "wp:global": { "alt-ergo": { "total": 5, "valid": 5, "rank": 2 }, +{ "wp:global": { "alt-ergo": { "total": 5, "valid": 5, "rank": 3 }, "qed": { "total": 12, "valid": 12 }, - "wp:main": { "total": 17, "valid": 17, "rank": 2 } }, - "wp:functions": { "call_assigns_all": { "specialization_assigns_t4_sup_bound_pre_at_call_assigns_all_stmt_4": + "wp:main": { "total": 17, "valid": 17, "rank": 3 } }, + "wp:functions": { "call_assigns_all": { "assigns_t4_sup_bound_requires": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 2 }, + "rank": 3 }, "wp:main": { "total": 1, "valid": 1, - "rank": 2 } }, - "specialization_assigns_t3_inf_bound_pre_at_call_assigns_all_stmt_3": + "rank": 3 } }, + "assigns_t3_inf_bound_requires": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "specialization_assigns_t2_bound_pre_at_call_assigns_all_stmt_2": + "assigns_t2_bound_requires": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "specialization_assigns_t1_an_element_pre_at_call_assigns_all_stmt_1": + "assigns_t1_an_element_requires": { "alt-ergo": { "total": 1, "valid": 1, "rank": 2 }, "wp:main": { "total": 1, "valid": 1, "rank": 2 } }, - "call_assigns_all_assign": + "call_assigns_all_assigns": { "qed": { "total": 10, "valid": 10 }, "wp:main": { "total": 10, @@ -33,42 +33,42 @@ "wp:section": { "alt-ergo": { "total": 2, "valid": 2, - "rank": 2 }, + "rank": 3 }, "qed": { "total": 12, "valid": 12 }, "wp:main": { "total": 14, "valid": 14, - "rank": 2 } } }, - "call_assigns_t1": { "specialization_assigns_t1_an_element_pre_at_call_assigns_t1_stmt_8": + "rank": 3 } } }, + "call_assigns_t1": { "assigns_t1_an_element_requires_2": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 1 }, + "rank": 2 }, "wp:main": { "total": 1, "valid": 1, - "rank": 1 } }, + "rank": 2 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 1 }, + "rank": 2 }, "wp:main": { "total": 1, "valid": 1, - "rank": 1 } } }, - "call_assigns_t2": { "specialization_assigns_t2_bound_pre_at_call_assigns_t2_stmt_11": + "rank": 2 } } }, + "call_assigns_t2": { "assigns_t2_bound_requires_2": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 1 }, + "rank": 2 }, "wp:main": { "total": 1, "valid": 1, - "rank": 1 } }, + "rank": 2 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 1 }, + "rank": 2 }, "wp:main": { "total": 1, "valid": 1, - "rank": 1 } } }, - "call_assigns_t4": { "specialization_assigns_t4_sup_bound_pre_at_call_assigns_t4_stmt_14": + "rank": 2 } } }, + "call_assigns_t4": { "assigns_t4_sup_bound_requires_2": { "alt-ergo": { "total": 1, "valid": 1, "rank": 2 }, diff --git a/src/plugins/wp/tests/wp_acsl/assigns_range.i.1.report.json b/src/plugins/wp/tests/wp_acsl/assigns_range.i.1.report.json index 95a3aef7e5be5982ddce042f7aeae17967b2fce4..e68efa739414de5aa88ca2c6c6b080ceb01e4d97 100644 --- a/src/plugins/wp/tests/wp_acsl/assigns_range.i.1.report.json +++ b/src/plugins/wp/tests/wp_acsl/assigns_range.i.1.report.json @@ -1,6 +1,6 @@ { "wp:global": { "alt-ergo": { "total": 6, "unknown": 6 }, "wp:main": { "total": 6, "unknown": 6 } }, - "wp:functions": { "call_assigns_t1": { "call_assigns_t1_assign": { "alt-ergo": + "wp:functions": { "call_assigns_t1": { "call_assigns_t1_assigns": { "alt-ergo": { "total": 2, "unknown": 2 }, "wp:main": @@ -11,7 +11,7 @@ "unknown": 2 }, "wp:main": { "total": 2, "unknown": 2 } } }, - "call_assigns_t2": { "call_assigns_t2_assign": { "alt-ergo": + "call_assigns_t2": { "call_assigns_t2_assigns": { "alt-ergo": { "total": 2, "unknown": 2 }, "wp:main": @@ -22,7 +22,7 @@ "unknown": 2 }, "wp:main": { "total": 2, "unknown": 2 } } }, - "call_assigns_t4": { "call_assigns_t4_assign": { "alt-ergo": + "call_assigns_t4": { "call_assigns_t4_assigns": { "alt-ergo": { "total": 2, "unknown": 2 }, "wp:main": diff --git a/src/plugins/wp/tests/wp_acsl/axioms.i.0.report.json b/src/plugins/wp/tests/wp_acsl/axioms.i.0.report.json index 04cbcf21bd93fe950ca4f1c2bf0e56d13bebae5b..eefcca4016015985dcbd4d79d14b610a9901b67e 100644 --- a/src/plugins/wp/tests/wp_acsl/axioms.i.0.report.json +++ b/src/plugins/wp/tests/wp_acsl/axioms.i.0.report.json @@ -3,41 +3,44 @@ "qed": { "total": 3, "valid": 3 }, "wp:main": { "total": 10, "valid": 8, "unknown": 2, "rank": 22 } }, - "wp:functions": { "f": { "f_loop_inv_Positive": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 8 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 8 } }, - "f_loop_inv_Index": { "alt-ergo": { "total": 2, - "valid": 2, - "rank": 5 }, - "wp:main": { "total": 2, + "wp:functions": { "f": { "f_loop_invariant_Positive": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 9 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 2, "valid": 2, - "rank": 5 } }, - "f_assign": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "f_loop_assign": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 22 }, - "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 3, - "valid": 3, - "rank": 22 } }, - "f_post_Q": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 12 }, - "wp:main": { "total": 1, "valid": 1, - "rank": 12 } }, - "f_post_P_todo": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, + "rank": 9 } }, + "f_loop_invariant_Index": { "alt-ergo": { "total": 2, + "valid": 2, + "rank": 5 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 5 } }, + "f_assigns": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, + "f_loop_assigns": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 22 }, + "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 3, + "valid": 3, + "rank": 22 } }, + "f_ensures_Q": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 12 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 12 } }, + "f_ensures_P_todo": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 7, "valid": 5, "unknown": 2, diff --git a/src/plugins/wp/tests/wp_acsl/base_offset.i.0.report.json b/src/plugins/wp/tests/wp_acsl/base_offset.i.0.report.json index b89a535bdd006c8874e52faed199900d732a2999..00e56d6163eb0a3226a058f7518a6b315a27e255 100644 --- a/src/plugins/wp/tests/wp_acsl/base_offset.i.0.report.json +++ b/src/plugins/wp/tests/wp_acsl/base_offset.i.0.report.json @@ -1,16 +1,18 @@ { "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 3 }, "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 3, "valid": 3, "rank": 3 } }, - "wp:functions": { "f": { "f_post_3": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 3 }, - "wp:main": { "total": 1, "valid": 1, - "rank": 3 } }, - "f_post_2": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, + "wp:functions": { "f": { "f_ensures_3": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 3 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 3 } }, + "f_ensures_2": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, "rank": 3 }, diff --git a/src/plugins/wp/tests/wp_acsl/bitwise.i b/src/plugins/wp/tests/wp_acsl/bitwise.i index e80c6966e9db254ec291ab722d4a76cfb2dce9be..79dab19ec7b88508eb91b7ed031059e5a90695e1 100644 --- a/src/plugins/wp/tests/wp_acsl/bitwise.i +++ b/src/plugins/wp/tests/wp_acsl/bitwise.i @@ -42,7 +42,7 @@ int bor(int a,int b, int c) { return a | b | c ; } /*@ ensures \result == (int) (a ^ b); @ behavior bit1: @ assumes a == -1 && 0xFF==(0xF0^b); - @ ensures \result != ~0xF; + @ ensures \result == ~0x0F; @ behavior bit2: @ assumes a == b; @ ensures \result == 0; diff --git a/src/plugins/wp/tests/wp_acsl/bitwise.i.0.report.json b/src/plugins/wp/tests/wp_acsl/bitwise.i.0.report.json index c59febe4d379e2ecc4dfabe44e015b836b47ec35..65c0f07e3beca29399fdfe4d87c64f9a48c965b0 100644 --- a/src/plugins/wp/tests/wp_acsl/bitwise.i.0.report.json +++ b/src/plugins/wp/tests/wp_acsl/bitwise.i.0.report.json @@ -3,139 +3,150 @@ "qed": { "total": 25, "valid": 25 }, "wp:main": { "total": 29, "valid": 26, "unknown": 3, "rank": 2 } }, - "wp:functions": { "band": { "band_bit4_post_band6": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "band_bit3_post_band5": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "band_bit2_post_band4": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "band_bit1_post_band3": { "qed": { "total": 1, + "wp:functions": { "band": { "band_bit4_ensures_band6": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "band_bit3_ensures_band5": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "band_bit2_ensures_band4": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "band_bit1_ensures_band3": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "band_bit0_ensures_band2": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "band_bit0_ensures_band1": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "band_ensures_band0": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "band_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "wp:section": { "qed": { "total": 8, + "valid": 8 }, + "wp:main": { "total": 8, + "valid": 8 } } }, + "bor": { "bor_bit3_ensures_bor3": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "band_bit0_post_band2": { "qed": { "total": 1, + "bor_bit2_ensures_bor2": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "band_bit0_post_band1": { "qed": { "total": 1, + "bor_bit1_ensures_bor1": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "band_post_band0": { "qed": { "total": 1, + "bor_ensures_bor0": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "band_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "wp:section": { "qed": { "total": 8, - "valid": 8 }, - "wp:main": { "total": 8, - "valid": 8 } } }, - "bor": { "bor_bit3_post_bor3": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "bor_bit2_post_bor2": { "qed": { "total": 1, + "bor_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "wp:section": { "qed": { "total": 5, + "valid": 5 }, + "wp:main": { "total": 5, + "valid": 5 } } }, + "bxor": { "bxor_bit2_ensures": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "bor_bit1_post_bor1": { "qed": { "total": 1, + "bxor_bit1_ensures": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "bor_post_bor0": { "qed": { "total": 1, + "bxor_ensures": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "bor_post": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "wp:section": { "qed": { "total": 5, - "valid": 5 }, - "wp:main": { "total": 5, - "valid": 5 } } }, - "bxor": { "bxor_bit2_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "bxor_bit1_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "bxor_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, "wp:section": { "qed": { "total": 3, "valid": 3 }, "wp:main": { "total": 3, "valid": 3 } } }, - "bnot": { "bnot_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "bnot": { "bnot_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "lshift": { "lshift_shift2_post_lsl3": { "qed": { "total": 1, + "lshift": { "lshift_shift2_ensures_lsl3": { "qed": + { "total": 1, "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "lshift_shift1_post_lsl2": { "qed": { "total": 1, + "wp:main": + { "total": 1, + "valid": 1 } }, + "lshift_shift1_ensures_lsl2": { "qed": + { "total": 1, "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "lshift_shift1_post_lsl1": { "qed": { "total": 1, + "wp:main": + { "total": 1, + "valid": 1 } }, + "lshift_shift1_ensures_lsl1": { "qed": + { "total": 1, "valid": 1 }, - "wp:main": - { "total": 1, + "wp:main": + { "total": 1, + "valid": 1 } }, + "lshift_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, - "lshift_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, "wp:section": { "qed": { "total": 4, "valid": 4 }, "wp:main": { "total": 4, "valid": 4 } } }, - "rshift": { "rshift_shift1_post_lsr1": { "qed": { "total": 1, + "rshift": { "rshift_shift1_ensures_lsr1": { "qed": + { "total": 1, "valid": 1 }, - "wp:main": - { "total": 1, + "wp:main": + { "total": 1, + "valid": 1 } }, + "rshift_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, - "rshift_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } } }, - "bor_bool": { "bor_bool_false_post": { "alt-ergo": - { "total": 1, - "unknown": 1 }, - "wp:main": - { "total": 1, - "unknown": 1 } }, - "bor_bool_true_post": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": - { "total": 1, - "valid": 1, - "rank": 2 } }, + "bor_bool": { "bor_bool_false_ensures": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, + "bor_bool_true_ensures": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 2 } }, "wp:section": { "alt-ergo": { "total": 2, "valid": 1, "unknown": 1, @@ -144,17 +155,18 @@ "valid": 1, "unknown": 1, "rank": 2 } } }, - "band_bool": { "band_bool_false_post": { "alt-ergo": - { "total": 1, - "unknown": 1 }, - "wp:main": - { "total": 1, - "unknown": 1 } }, - "band_bool_true_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "band_bool": { "band_bool_false_ensures": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, + "band_bool_true_ensures": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "qed": { "total": 1, @@ -162,17 +174,18 @@ "wp:main": { "total": 2, "valid": 1, "unknown": 1 } } }, - "bxor_bool": { "bxor_bool_false_post": { "alt-ergo": - { "total": 1, - "unknown": 1 }, - "wp:main": - { "total": 1, - "unknown": 1 } }, - "bxor_bool_true_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "bxor_bool": { "bxor_bool_false_ensures": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, + "bxor_bool_true_ensures": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "qed": { "total": 1, diff --git a/src/plugins/wp/tests/wp_acsl/bitwise2.i b/src/plugins/wp/tests/wp_acsl/bitwise2.i new file mode 100644 index 0000000000000000000000000000000000000000..55db7e757ca41c4394e36a5a416685c4733d42fb --- /dev/null +++ b/src/plugins/wp/tests/wp_acsl/bitwise2.i @@ -0,0 +1,25 @@ + +//@ ensures \result == ((unsigned)(A & (0x7FFFFE00 >> 9))) ; +unsigned job1(unsigned A) { + return A & 0x7FFFFE00 >> 9 ; +} + +//@ ensures \result == (A & 0x7FFFFE00 >> 9) ; +unsigned job1bis(unsigned A) { + return A & 0x7FFFFE00 >> 9 ; +} + +//@ ensures \result == (((unsigned)(A & 0x7FFFFE00)) >> 9) ; +unsigned job2(unsigned A) { + return (A & 0x7FFFFE00) >> 9 ; +} + +//@ ensures \result == ((unsigned)(A & (0x7FFFFE00 >> 9))) ; +unsigned job3(unsigned A) { + return A & (0x7FFFFE00 >> 9) ; +} + +//@ ensures \result == (A & (unsigned long)(0x7FFFFE00ul >> 9)) ; +unsigned job4(unsigned A) { + return A & (0x7FFFFE00 >> 9) ; +} diff --git a/src/plugins/wp/tests/wp_acsl/bitwise2.i.0.report.json b/src/plugins/wp/tests/wp_acsl/bitwise2.i.0.report.json new file mode 100644 index 0000000000000000000000000000000000000000..80f3747514082652f99e49c34a3b92ac8f7c16f2 --- /dev/null +++ b/src/plugins/wp/tests/wp_acsl/bitwise2.i.0.report.json @@ -0,0 +1,42 @@ +{ "wp:global": { "qed": { "total": 5, "valid": 5 }, + "wp:main": { "total": 5, "valid": 5 } }, + "wp:functions": { "job1": { "job1_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "wp:section": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } } }, + "job1bis": { "job1bis_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "wp:section": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } } }, + "job2": { "job2_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "wp:section": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } } }, + "job3": { "job3_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "wp:section": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } } }, + "job4": { "job4_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "wp:section": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } } } } } diff --git a/src/plugins/wp/tests/wp_acsl/block_length.i.0.report.json b/src/plugins/wp/tests/wp_acsl/block_length.i.0.report.json index fb673ed5ab9532f8584ec65e285bd2a3be38b28c..20266136120270c069fde403de99a3b22be7845e 100644 --- a/src/plugins/wp/tests/wp_acsl/block_length.i.0.report.json +++ b/src/plugins/wp/tests/wp_acsl/block_length.i.0.report.json @@ -1,40 +1,45 @@ { "wp:global": { "qed": { "total": 10, "valid": 10 }, "wp:main": { "total": 10, "valid": 10 } }, - "wp:functions": { "f": { "f_post_Pts1": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_Pmat12": { "qed": { "total": 1, + "wp:functions": { "f": { "f_ensures_Pts1": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_Pmat12": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_Pt1": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "f_post_Pt1": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_Pts": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_Ps": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_Pmat2": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_Psiz2": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_Pmat1": { "qed": { "total": 1, + "f_ensures_Pts": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_Ps": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "f_post_Psiz1": { "qed": { "total": 1, + "f_ensures_Pmat2": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_Psiz2": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_Pmat1": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_Psiz1": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_Pt": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "f_post_Pt": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, "wp:section": { "qed": { "total": 10, "valid": 10 }, "wp:main": { "total": 10, diff --git a/src/plugins/wp/tests/wp_acsl/cnf.i.0.report.json b/src/plugins/wp/tests/wp_acsl/cnf.i.0.report.json index 67e7a7e8eb88868ae70419c0b6878abdf09e6605..02bbe2c305041e6d908733978e4dc5c0bf4eb7cf 100644 --- a/src/plugins/wp/tests/wp_acsl/cnf.i.0.report.json +++ b/src/plugins/wp/tests/wp_acsl/cnf.i.0.report.json @@ -1,231 +1,242 @@ { "wp:global": { "alt-ergo": { "total": 32, "valid": 32, "rank": 42 }, "qed": { "total": 11, "valid": 11 }, "wp:main": { "total": 43, "valid": 43, "rank": 42 } }, - "wp:functions": { "f": { "f_post_e2": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 1 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 1 } }, - "f_post_e1": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 1 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 1 } }, - "f_post_e0": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 1 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 1 } }, - "f_post_d9": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 6 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 6 } }, - "f_post_d8": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 2 } }, - "f_post_d7": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 2 } }, - "f_post_d6": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 5 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 5 } }, - "f_post_d5": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 3 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 3 } }, - "f_post_d4": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 5 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 5 } }, - "f_post_d3": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 5 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 5 } }, - "f_post_d2": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 4 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 4 } }, - "f_post_d1": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 4 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 4 } }, - "f_post_d0": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 5 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 5 } }, - "f_post_c9": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "f_post_c8": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "f_post_c7": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 12 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 12 } }, - "f_post_c6": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 9 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 9 } }, - "f_post_c5": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 12 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 12 } }, - "f_post_c4": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 3 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 3 } }, - "f_post_c3": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 3 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 3 } }, - "f_post_c2": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 2 } }, - "f_post_c1": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_c0": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 3 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 3 } }, - "f_post_b9": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_b8": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_b7": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_b6": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_b5": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_b4": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "f_post_b3": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "f_post_b2": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "f_post_b1": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_b0": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_a9": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 42 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 42 } }, - "f_post_a8": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 22 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 22 } }, - "f_post_a7": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 13 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 13 } }, - "f_post_a6": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 4 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 4 } }, - "f_post_a5": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 7 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 7 } }, - "f_post_a4": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "f_post_a3": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "f_post_a2": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_a1": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_a0": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "f": { "f_ensures_e2": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 1 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 1 } }, + "f_ensures_e1": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 1 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 1 } }, + "f_ensures_e0": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 1 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 1 } }, + "f_ensures_d9": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 6 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 6 } }, + "f_ensures_d8": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 2 } }, + "f_ensures_d7": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 2 } }, + "f_ensures_d6": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 5 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 5 } }, + "f_ensures_d5": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 3 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 3 } }, + "f_ensures_d4": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 5 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 5 } }, + "f_ensures_d3": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 5 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 5 } }, + "f_ensures_d2": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 4 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 4 } }, + "f_ensures_d1": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 4 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 4 } }, + "f_ensures_d0": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 5 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 5 } }, + "f_ensures_c9": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 0 } }, + "f_ensures_c8": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 0 } }, + "f_ensures_c7": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 12 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 12 } }, + "f_ensures_c6": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 9 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 9 } }, + "f_ensures_c5": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 12 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 12 } }, + "f_ensures_c4": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 3 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 3 } }, + "f_ensures_c3": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 3 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 3 } }, + "f_ensures_c2": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 2 } }, + "f_ensures_c1": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_c0": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 3 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 3 } }, + "f_ensures_b9": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_b8": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_b7": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_b6": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_b5": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_b4": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 0 } }, + "f_ensures_b3": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 0 } }, + "f_ensures_b2": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 0 } }, + "f_ensures_b1": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_b0": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_a9": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 42 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 42 } }, + "f_ensures_a8": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 22 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 22 } }, + "f_ensures_a7": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 13 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 13 } }, + "f_ensures_a6": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 4 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 4 } }, + "f_ensures_a5": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 7 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 7 } }, + "f_ensures_a4": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 0 } }, + "f_ensures_a3": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 0 } }, + "f_ensures_a2": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_a1": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_a0": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 32, "valid": 32, "rank": 42 }, diff --git a/src/plugins/wp/tests/wp_acsl/div_mod.i.0.report.json b/src/plugins/wp/tests/wp_acsl/div_mod.i.0.report.json index a6918d2a8a054472d9f3d9a8b4649459216a1972..bd91b0af271e22d5b60297c2d1082bc1896541c7 100644 --- a/src/plugins/wp/tests/wp_acsl/div_mod.i.0.report.json +++ b/src/plugins/wp/tests/wp_acsl/div_mod.i.0.report.json @@ -1,140 +1,168 @@ -{ "wp:global": { "alt-ergo": { "total": 22, "valid": 22, "rank": 2 }, - "wp:main": { "total": 22, "valid": 22, "rank": 2 } }, - "wp:functions": { "f": { "f_post_sm3_mod_neg_neg": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 2 } }, - "f_post_sm2_mod_pos_neg": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 2 } }, - "f_post_sm1_mod_neg_pos": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 2 } }, - "f_post_sm0_mod_pos_pos": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 2 } }, - "f_post_m6_mod_0_x": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 2 } }, - "f_post_m5_mod_x_minus1": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 2 } }, - "f_post_m4_mod_x_1": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 1 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 1 } }, - "f_post_m3_mod_neg_neg": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 1 }, - "wp:main": { "total": 1, +{ "wp:global": { "alt-ergo": { "total": 22, "valid": 22, "rank": 3 }, + "wp:main": { "total": 22, "valid": 22, "rank": 3 } }, + "wp:functions": { "f": { "f_ensures_sm3_mod_neg_neg": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 2 } }, + "f_ensures_sm2_mod_pos_neg": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 2 } }, + "f_ensures_sm1_mod_neg_pos": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 2 } }, + "f_ensures_sm0_mod_pos_pos": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 2 } }, + "f_ensures_m6_mod_0_x": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 1 } }, - "f_post_m2_mod_pos_neg": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 1 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 1 } }, - "f_post_m1_mod_neg_pos": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 1 }, - "wp:main": { "total": 1, + "rank": 3 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 3 } }, + "f_ensures_m5_mod_x_minus1": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 3 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 3 } }, + "f_ensures_m4_mod_x_1": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 1 } }, - "f_post_m0_mod_pos_pos": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 1 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 1 } }, - "f_post_sd3_div_neg_neg": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 2 } }, - "f_post_sd2_div_pos_neg": { "alt-ergo": { "total": 1, + "rank": 1 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 1 } }, + "f_ensures_m3_mod_neg_neg": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 1 }, + "wp:main": { "total": 1, "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 2 } }, - "f_post_sd1_div_neg_pos": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 2 } }, - "f_post_sd0_div_pos_pos": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 2 } }, - "f_post_d6_div_0_x": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 2 } }, - "f_post_d5_div_x_minus1": { "alt-ergo": { "total": 1, + "rank": 1 } }, + "f_ensures_m2_mod_pos_neg": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 1 }, + "wp:main": { "total": 1, "valid": 1, - "rank": 1 }, - "wp:main": { "total": 1, + "rank": 1 } }, + "f_ensures_m1_mod_neg_pos": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 1 }, + "wp:main": { "total": 1, "valid": 1, "rank": 1 } }, - "f_post_d4_div_x_1": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 1 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 1 } }, - "f_post_d3_div_neg_neg": { "alt-ergo": { "total": 1, + "f_ensures_m0_mod_pos_pos": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 1 }, + "wp:main": { "total": 1, "valid": 1, - "rank": 1 }, - "wp:main": { "total": 1, + "rank": 1 } }, + "f_ensures_sd3_div_neg_neg": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 2 } }, + "f_ensures_sd2_div_pos_neg": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 2 } }, + "f_ensures_sd1_div_neg_pos": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 2 } }, + "f_ensures_sd0_div_pos_pos": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 2 } }, + "f_ensures_d6_div_0_x": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 1 } }, - "f_post_d2_div_pos_neg": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 1 }, - "wp:main": { "total": 1, + "rank": 3 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 3 } }, + "f_ensures_d5_div_x_minus1": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 2 } }, + "f_ensures_d4_div_x_1": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 1 } }, - "f_post_d1_div_neg_pos": { "alt-ergo": { "total": 1, + "rank": 2 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 2 } }, + "f_ensures_d3_div_neg_neg": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 1 }, + "wp:main": { "total": 1, "valid": 1, - "rank": 1 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 1 } }, - "f_post_d0_div_pos_pos": { "alt-ergo": { "total": 1, + "rank": 1 } }, + "f_ensures_d2_div_pos_neg": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 1 }, + "wp:main": { "total": 1, "valid": 1, - "rank": 1 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 1 } }, + "rank": 1 } }, + "f_ensures_d1_div_neg_pos": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 1 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 1 } }, + "f_ensures_d0_div_pos_pos": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 1 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 1 } }, "wp:section": { "alt-ergo": { "total": 22, "valid": 22, - "rank": 2 }, + "rank": 3 }, "wp:main": { "total": 22, "valid": 22, - "rank": 2 } } } } } + "rank": 3 } } } } } diff --git a/src/plugins/wp/tests/wp_acsl/div_mod.i.1.report.json b/src/plugins/wp/tests/wp_acsl/div_mod.i.1.report.json index 42f37807207f7895f6b56751c5c1cab33f6cc17e..ce944a4be8c1f241fab89018a588b755f5b8a56d 100644 --- a/src/plugins/wp/tests/wp_acsl/div_mod.i.1.report.json +++ b/src/plugins/wp/tests/wp_acsl/div_mod.i.1.report.json @@ -1,111 +1,125 @@ { "wp:global": { "why3:alt-ergo": { "total": 22, "valid": 22 }, "wp:main": { "total": 22, "valid": 22 } }, - "wp:functions": { "f": { "f_post_sm3_mod_neg_neg": { "why3:alt-ergo": - { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, + "wp:functions": { "f": { "f_ensures_sm3_mod_neg_neg": { "why3:alt-ergo": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "f_ensures_sm2_mod_pos_neg": { "why3:alt-ergo": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "f_ensures_sm1_mod_neg_pos": { "why3:alt-ergo": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "f_ensures_sm0_mod_pos_pos": { "why3:alt-ergo": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "f_ensures_m6_mod_0_x": { "why3:alt-ergo": + { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_m5_mod_x_minus1": { "why3:alt-ergo": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "f_ensures_m4_mod_x_1": { "why3:alt-ergo": + { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_m3_mod_neg_neg": { "why3:alt-ergo": + { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, - "f_post_sm2_mod_pos_neg": { "why3:alt-ergo": - { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, + "f_ensures_m2_mod_pos_neg": { "why3:alt-ergo": + { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, - "f_post_sm1_mod_neg_pos": { "why3:alt-ergo": - { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, + "f_ensures_m1_mod_neg_pos": { "why3:alt-ergo": + { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, - "f_post_sm0_mod_pos_pos": { "why3:alt-ergo": - { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, + "f_ensures_m0_mod_pos_pos": { "why3:alt-ergo": + { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, - "f_post_m6_mod_0_x": { "why3:alt-ergo": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_m5_mod_x_minus1": { "why3:alt-ergo": - { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, + "f_ensures_sd3_div_neg_neg": { "why3:alt-ergo": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "f_ensures_sd2_div_pos_neg": { "why3:alt-ergo": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "f_ensures_sd1_div_neg_pos": { "why3:alt-ergo": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "f_ensures_sd0_div_pos_pos": { "why3:alt-ergo": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "f_ensures_d6_div_0_x": { "why3:alt-ergo": + { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_d5_div_x_minus1": { "why3:alt-ergo": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "f_ensures_d4_div_x_1": { "why3:alt-ergo": + { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_d3_div_neg_neg": { "why3:alt-ergo": + { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, - "f_post_m4_mod_x_1": { "why3:alt-ergo": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_m3_mod_neg_neg": { "why3:alt-ergo": - { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_m2_mod_pos_neg": { "why3:alt-ergo": - { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_m1_mod_neg_pos": { "why3:alt-ergo": - { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_m0_mod_pos_pos": { "why3:alt-ergo": - { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_sd3_div_neg_neg": { "why3:alt-ergo": - { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, + "f_ensures_d2_div_pos_neg": { "why3:alt-ergo": + { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, - "f_post_sd2_div_pos_neg": { "why3:alt-ergo": - { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, + "f_ensures_d1_div_neg_pos": { "why3:alt-ergo": + { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, - "f_post_sd1_div_neg_pos": { "why3:alt-ergo": - { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, + "f_ensures_d0_div_pos_pos": { "why3:alt-ergo": + { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, - "f_post_sd0_div_pos_pos": { "why3:alt-ergo": - { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_d6_div_0_x": { "why3:alt-ergo": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_d5_div_x_minus1": { "why3:alt-ergo": - { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_d4_div_x_1": { "why3:alt-ergo": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_d3_div_neg_neg": { "why3:alt-ergo": - { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_d2_div_pos_neg": { "why3:alt-ergo": - { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_d1_div_neg_pos": { "why3:alt-ergo": - { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_d0_div_pos_pos": { "why3:alt-ergo": - { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, "wp:section": { "why3:alt-ergo": { "total": 22, "valid": 22 }, "wp:main": { "total": 22, diff --git a/src/plugins/wp/tests/wp_acsl/div_mod.i.2.report.json b/src/plugins/wp/tests/wp_acsl/div_mod.i.2.report.json index 2296ef2855715d7f43c75faf36c55c4f2ebe4cb8..0488ae3aa58aa498aaea1c450afe90a1dc670377 100644 --- a/src/plugins/wp/tests/wp_acsl/div_mod.i.2.report.json +++ b/src/plugins/wp/tests/wp_acsl/div_mod.i.2.report.json @@ -1,13 +1,13 @@ { "wp:global": { "alt-ergo": { "total": 2, "unknown": 2 }, "wp:main": { "total": 2, "unknown": 2 } }, - "wp:functions": { "f": { "f_post_m7_mod_0_x_ko": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "f_post_d7_div_0_x_ko": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, + "wp:functions": { "f": { "f_ensures_m7_mod_0_x_ko": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, + "f_ensures_d7_div_0_x_ko": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 2, "unknown": 2 }, "wp:main": { "total": 2, diff --git a/src/plugins/wp/tests/wp_acsl/e_imply.i.0.report.json b/src/plugins/wp/tests/wp_acsl/e_imply.i.0.report.json index 764dbf0656bc0529dec4b6b2dae21d9668c2a7d4..3fc1468e9cae9d96c9159c092a6025ccae28afbf 100644 --- a/src/plugins/wp/tests/wp_acsl/e_imply.i.0.report.json +++ b/src/plugins/wp/tests/wp_acsl/e_imply.i.0.report.json @@ -1,702 +1,633 @@ { "wp:global": { "alt-ergo": { "total": 111, "valid": 111, "rank": 3 }, "qed": { "total": 8, "valid": 8 }, "wp:main": { "total": 119, "valid": 119, "rank": 3 } }, - "wp:axiomatics": { "": { "global_Qed_0077": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0076": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 2 } }, - "global_Qed_0075": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 2 } }, - "global_Qed_0074": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0073": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0072": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0071": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0070": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0069": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0068": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0067": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0066": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0065": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0064": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0063": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0062": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0061": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0060": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0059": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0058": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0057": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0056": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 1 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 1 } }, - "global_Qed_0055": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 2 } }, - "global_Qed_0054": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 2 } }, - "global_Qed_0053": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 2 } }, - "global_Qed_0052": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 3 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 3 } }, - "global_Qed_0051": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0050": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 1 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 1 } }, - "global_Qed_0049": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0048": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 2 } }, - "global_Qed_0047": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0046": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0045": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0044": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0043": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0042": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0041": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 2 } }, - "global_Qed_0040": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0039": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 2 } }, - "global_Qed_0038": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0037": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 2 } }, - "global_Qed_0036": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0035": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0034": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0033": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 2 } }, - "global_Qed_0032": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 2 } }, - "global_Qed_0031": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0030": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0029": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 2 } }, - "global_Qed_0028": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0027": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0026": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0025": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0024": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0023": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0022": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0021": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0020": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0019": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0018": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0017": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0016": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0015": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 1 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 1 } }, - "global_Qed_0014": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0013": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 1 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 1 } }, - "global_Qed_0012": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 1 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 1 } }, - "global_Qed_0011": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0010": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0009": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0008": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 2 } }, - "global_Qed_0007": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0006": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 2 } }, - "global_Qed_0005": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0004": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0003": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0002": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "global_Qed_0001": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, + "wp:axiomatics": { "": { "Qed_0077": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0076": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 2 } }, + "Qed_0075": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 2 } }, + "Qed_0074": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0073": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0072": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0071": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0070": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0069": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0068": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0067": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0066": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0065": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0064": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0063": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0062": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0061": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0060": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0059": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0058": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0057": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0056": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 1 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 1 } }, + "Qed_0055": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 2 } }, + "Qed_0054": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 2 } }, + "Qed_0053": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 2 } }, + "Qed_0052": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 3 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 3 } }, + "Qed_0051": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0050": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 1 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 1 } }, + "Qed_0049": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0048": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 2 } }, + "Qed_0047": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0046": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0045": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0044": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0043": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0042": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0041": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 2 } }, + "Qed_0040": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0039": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 2 } }, + "Qed_0038": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0037": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 2 } }, + "Qed_0036": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0035": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0034": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0033": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 2 } }, + "Qed_0032": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 2 } }, + "Qed_0031": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0030": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0029": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 2 } }, + "Qed_0028": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0027": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0026": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0025": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0024": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0023": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0022": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0021": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0020": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0019": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0018": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0017": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0016": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0015": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 1 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 1 } }, + "Qed_0014": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0013": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 1 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 1 } }, + "Qed_0012": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 1 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 1 } }, + "Qed_0011": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0010": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0009": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0008": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 2 } }, + "Qed_0007": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0006": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 2 } }, + "Qed_0005": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0004": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0003": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0002": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, + "Qed_0001": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 0 } }, "wp:section": { "alt-ergo": { "total": 77, "valid": 77, "rank": 3 }, "wp:main": { "total": 77, "valid": 77, "rank": 3 } } } }, - "wp:functions": { "f": { "f_post_f1": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 1 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 1 } }, - "f_post_f0": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 1 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 1 } }, - "f_post_o9": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "f_post_o8": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "f_post_o7": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "f_post_o6": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "f_post_o5": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "f_post_o4": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_o3": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_o2": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "f_post_o1": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "f_post_o0": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "f_post_a9": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "f_post_a8": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "f_post_a7": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "f_post_a6": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "f_post_a5": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "f_post_a4": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "f_post_a3": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "f_post_a2": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "f_post_a1": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "f_post_a0": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "f_post_i9": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "f_post_i8": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "f_post_i7": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 2 } }, - "f_post_i6": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 2 } }, - "f_post_i5": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_i4": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_i3": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 1 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 1 } }, - "f_post_i2": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "f_post_i1": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 1 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 1 } }, - "f_post_i0": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_p9": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_p8": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 1 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 1 } }, - "f_post_p7": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "f_post_p6": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_p5": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 1 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 1 } }, - "f_post_p4": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_p3": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "f_post_p2": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, - "f_post_p1": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 1 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 1 } }, - "f_post_p0": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 0 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 0 } }, + "wp:functions": { "f": { "f_ensures_f1": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 2 } }, + "f_ensures_f0": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 2 } }, + "f_ensures_o9": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 0 } }, + "f_ensures_o8": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 0 } }, + "f_ensures_o7": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 0 } }, + "f_ensures_o6": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 0 } }, + "f_ensures_o5": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 0 } }, + "f_ensures_o4": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_o3": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_o2": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 0 } }, + "f_ensures_o1": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 0 } }, + "f_ensures_o0": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 0 } }, + "f_ensures_a9": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 0 } }, + "f_ensures_a8": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 0 } }, + "f_ensures_a7": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 0 } }, + "f_ensures_a6": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 0 } }, + "f_ensures_a5": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 0 } }, + "f_ensures_a4": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 0 } }, + "f_ensures_a3": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 0 } }, + "f_ensures_a2": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 0 } }, + "f_ensures_a1": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 1 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 1 } }, + "f_ensures_a0": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 0 } }, + "f_ensures_i9": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 0 } }, + "f_ensures_i8": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 0 } }, + "f_ensures_i7": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 2 } }, + "f_ensures_i6": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 2 } }, + "f_ensures_i5": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_i4": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_i3": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 2 } }, + "f_ensures_i2": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 0 } }, + "f_ensures_i1": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 2 } }, + "f_ensures_i0": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_p9": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_p8": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 2 } }, + "f_ensures_p7": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 0 } }, + "f_ensures_p6": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_p5": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 2 } }, + "f_ensures_p4": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_p3": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 0 } }, + "f_ensures_p2": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 0 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 0 } }, + "f_ensures_p1": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 2 } }, + "f_ensures_p0": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 1 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 1 } }, "wp:section": { "alt-ergo": { "total": 34, "valid": 34, "rank": 2 }, diff --git a/src/plugins/wp/tests/wp_acsl/equal.i.0.report.json b/src/plugins/wp/tests/wp_acsl/equal.i.0.report.json index df2fc6fa43a89a0724d706d43dda02153146db91..2afde0a0ad7a95fae27abec86f30384ead3f0c52 100644 --- a/src/plugins/wp/tests/wp_acsl/equal.i.0.report.json +++ b/src/plugins/wp/tests/wp_acsl/equal.i.0.report.json @@ -1,75 +1,75 @@ -{ "wp:global": { "alt-ergo": { "total": 5, "valid": 5, "rank": 7 }, +{ "wp:global": { "alt-ergo": { "total": 5, "valid": 5, "rank": 8 }, "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 6, "valid": 6, "rank": 7 } }, - "wp:functions": { "simple_struct": { "simple_struct_post": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "wp:main": { "total": 6, "valid": 6, "rank": 8 } }, + "wp:functions": { "simple_struct": { "simple_struct_ensures": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "simple_array": { "simple_array_post": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 4 }, - "wp:main": - { "total": 1, - "valid": 1, - "rank": 4 } }, + "simple_array": { "simple_array_ensures": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 4 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 4 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, "rank": 4 }, "wp:main": { "total": 1, "valid": 1, "rank": 4 } } }, - "with_array_struct": { "with_array_struct_post": + "with_array_struct": { "with_array_struct_ensures": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "wp:main": { "total": 1, "valid": 1, - "rank": 3 } }, + "rank": 4 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "wp:main": { "total": 1, "valid": 1, - "rank": 3 } } }, - "with_ptr_struct": { "with_ptr_struct_post": { "alt-ergo": + "rank": 4 } } }, + "with_ptr_struct": { "with_ptr_struct_ensures": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 1 }, - "wp:main": + "rank": 3 }, + "wp:main": { "total": 1, "valid": 1, - "rank": 1 } }, + "rank": 3 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 1 }, + "rank": 3 }, "wp:main": { "total": 1, "valid": 1, - "rank": 1 } } }, - "with_ptr_array": { "with_ptr_array_post": { "alt-ergo": - { "total": 1, + "rank": 3 } } }, + "with_ptr_array": { "with_ptr_array_ensures": { "alt-ergo": + { "total": 1, "valid": 1, - "rank": 3 }, - "wp:main": - { "total": 1, + "rank": 4 }, + "wp:main": + { "total": 1, "valid": 1, - "rank": 3 } }, + "rank": 4 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "wp:main": { "total": 1, "valid": 1, - "rank": 3 } } }, - "with_ptr_and_array_struct": { "with_ptr_and_array_struct_post": + "rank": 4 } } }, + "with_ptr_and_array_struct": { "with_ptr_and_array_struct_ensures": { "alt-ergo": { "total": 1, "valid": 1, "rank": 7 }, diff --git a/src/plugins/wp/tests/wp_acsl/funvar_inv.i.0.report.json b/src/plugins/wp/tests/wp_acsl/funvar_inv.i.0.report.json index 3983dfdf97939afea2aea6a13b13249858667c74..798d459f646ea58a686252d9745495b2787cbbe6 100644 --- a/src/plugins/wp/tests/wp_acsl/funvar_inv.i.0.report.json +++ b/src/plugins/wp/tests/wp_acsl/funvar_inv.i.0.report.json @@ -1,23 +1,23 @@ { "wp:global": { "qed": { "total": 3, "valid": 3 }, "wp:main": { "total": 3, "valid": 3 } }, - "wp:functions": { "f": { "f_loop_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "f": { "f_loop_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "f2": { "f2_loop_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "f2": { "f2_loop_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "g": { "g_loop_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "g": { "g_loop_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } } } } diff --git a/src/plugins/wp/tests/wp_acsl/implicit_enum_cast.i.0.report.json b/src/plugins/wp/tests/wp_acsl/implicit_enum_cast.i.0.report.json index f374dc090cf064d168175b01954a44a584a9dc3b..ed396bf7e2986b4e9eee657b6c51541ae3c34d3d 100644 --- a/src/plugins/wp/tests/wp_acsl/implicit_enum_cast.i.0.report.json +++ b/src/plugins/wp/tests/wp_acsl/implicit_enum_cast.i.0.report.json @@ -1,12 +1,13 @@ { "wp:global": { "qed": { "total": 9, "valid": 9 }, "wp:main": { "total": 9, "valid": 9 } }, - "wp:functions": { "bar": { "bar_assign": { "qed": { "total": 8, - "valid": 8 }, - "wp:main": { "total": 8, - "valid": 8 } }, - "bar_post": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "bar": { "bar_assigns": { "qed": { "total": 8, + "valid": 8 }, + "wp:main": { "total": 8, + "valid": 8 } }, + "bar_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 9, "valid": 9 }, "wp:main": { "total": 9, diff --git a/src/plugins/wp/tests/wp_acsl/init_label.i.0.report.json b/src/plugins/wp/tests/wp_acsl/init_label.i.0.report.json index 81a337fa1fbd2bfb2c9372356b869ed194937958..3d33c8c50aa7c8d908c3718f8ff99be5e4a3bac1 100644 --- a/src/plugins/wp/tests/wp_acsl/init_label.i.0.report.json +++ b/src/plugins/wp/tests/wp_acsl/init_label.i.0.report.json @@ -3,38 +3,38 @@ "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 4, "valid": 3, "unknown": 1, "rank": 5 } }, - "wp:functions": { "main": { "main_pre_OK": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "main": { "main_requires_OK": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "job": { "job_post_OK": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 5 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 5 } }, + "job": { "job_ensures_OK": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 5 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 5 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, "rank": 5 }, "wp:main": { "total": 1, "valid": 1, "rank": 5 } } }, - "foreign": { "foreign_post_OK": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "foreign": { "foreign_ensures_OK": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "extra": { "extra_post_KO": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, + "extra": { "extra_ensures_KO": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, diff --git a/src/plugins/wp/tests/wp_acsl/init_value.i b/src/plugins/wp/tests/wp_acsl/init_value.i index 382ae866678afdd2183fd0ef54a7f9a2e88625e0..b9d9caeabadd4510e4a64607a265906f70f4274c 100644 --- a/src/plugins/wp/tests/wp_acsl/init_value.i +++ b/src/plugins/wp/tests/wp_acsl/init_value.i @@ -1,9 +1,9 @@ /* run.config - OPT: - OPT: -main main_ko + OPT: -wp-init-const -wp-no-let + OPT: -main main_ko -wp-no-let */ /* run.config_qualif - OPT: -wp -wp-par 1 -wp-prop="-qed_ko" + OPT: -wp-init-const -wp -wp-par 1 -wp-prop="-qed_ko" OPT: -main main_ko -wp-par 1 -wp-prop qed_ko -wp-steps 50 */ @@ -11,25 +11,33 @@ /* --- GOAL: partial and complete initialization of value --- */ /* -------------------------------------------------------------------------- */ -struct S { int a; int b;}; +struct S { int a; int b;}; struct S s = {2}; int t[2] = {1}; +int t1[9+1] = {[5 ... 6]=2, [0 ... 3 ]=1 }; -struct St {int tab[10];}; +struct St {int tab[9+1];}; struct St st = {{1,2,3,4}}; -struct Sc {int a; int b[3]; int c;}; +struct Sc {int a; int b[2+1]; int c;}; struct Sc sc0 = {1,{2,3,4},5}; struct Sc sc1 = {1,2,3,4,5}; -struct Sc sc2 = {1,{2,3},4}; +struct Sc sc2 = {1,{2,3},4}; struct Sc sc3 = {1,2,3,4}; +struct Sc sq0 = {2,{2,2},2}; +struct Sc sq1 = {.b={2,2}}; + unsigned char tab[32]; -int u []; +union U { + short t[4]; + short a; + long long b; +} u = {.a=-1 }; /*@ requires qed_ok: Struct_Simple_a: s.a == 2 ; requires qed_ok: Struct_Simple_b: s.b == 0 ; @@ -44,8 +52,15 @@ int u []; requires qed_ok: Sc_c_3 : sc3.c == 0; requires qed_ok: Tab_no_init : tab[5] == 0 ; requires qed_ok: Tab_todo : \forall int i; 0 <= i <= 31 ==> tab[i] <= 255; + requires qed_ok: sq0.b[1]==2; + requires qed_ok: sq0.b[2]==0; + requires qed_ok: \forall integer i; 0 <= i <= 3 ==> t1[i] == 1; + requires qed_ok: todo: t1[4] == 0; + requires qed_ok: \forall integer i; 5 < i <= 6 ==> t1[i] == 2; + requires qed_ok: \forall integer i; 6 < i <= 9 ==> t1[i] == 0; + requires qed_ok: direct_init_union: u.a == -1; */ -void main (void){return;} +void main (int a){return;}; /*@ requires qed_ko: Sc_eq_ko : sc2 == sc3; requires qed_ko: Sc_t : sc3.b[2] == 3 ; @@ -53,6 +68,33 @@ void main (void){return;} requires qed_ko: Tab_no_init : tab[5] == 1 ; requires qed_ko: With_Array_Struct_3 : st.tab[3] == 3 ; requires qed_ko: Simple_Array_1 : t[1] == 1 ; + requires qed_ko: T1_6: t1[6] == 0; + requires qed_ko: indirect_init_union_b: u.b == 0; + requires qed_ko: indirect_init_union_t: u.t[0] == 0; */ void main_ko (void){return;} +const int ta1[5] = { [2]=1,[4]=1 }; +/*@ ensures qed_ok: ta1[0]==ta1[1] && ta1[1]==ta1[3]; + @ ensures qed_ko: ta1[4]==0; + @ ensures qed_ko: ta1[3]==1; */ +void fa1(void) {return ;} + +const int ta2[5] = { [2 ... 3]=1 }; +/*@ ensures qed_ok: ta2[0]==ta2[1] && ta2[1]==ta2[4]; + @ ensures qed_ko: ta2[4]==1; + @ ensures qed_ko: ta2[1]==1; */ +void fa2(void) {return ;} + +const int ta3[5] = { [1]=1, [3]=1}; +/*@ ensures qed_ok: ta3[0]==ta3[2] && ta1[2]==ta1[4]; + @ ensures qed_ko: ta3[0]==1; + @ ensures qed_ko: ta3[2]==1; + @ ensures qed_ko: ta2[4]==1; */ +void fa3(void) {return ;} + +const struct { int a, b, c; } ts1[4] = { [2].a=1, [2].b=1 }; +/*@ ensures qed_ok: ts1[0]==ts1[1] && ts1[1]==ts1[3] && ts1[2].a ==ts1[2].b; + @ ensures qed_ko: ts1[2].c==1; + @ ensures qed_ko: ts1[0].a==1;*/ +void fs1(void) {return ;} diff --git a/src/plugins/wp/tests/wp_acsl/init_value.i.0.report.json b/src/plugins/wp/tests/wp_acsl/init_value.i.0.report.json index 24349b32c01b0a4eff5f6e5927b4825c7cf3f059..577a3f779da8f885a59f3b5dc6353e0b41ac3db5 100644 --- a/src/plugins/wp/tests/wp_acsl/init_value.i.0.report.json +++ b/src/plugins/wp/tests/wp_acsl/init_value.i.0.report.json @@ -1,83 +1,153 @@ -{ "wp:global": { "alt-ergo": { "total": 3, "valid": 3, "rank": 8 }, - "qed": { "total": 10, "valid": 10 }, - "wp:main": { "total": 13, "valid": 13, "rank": 8 } }, - "wp:functions": { "main": { "main_pre_qed_ok_Tab_todo": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": - { "total": 1, - "valid": 1, - "rank": 2 } }, - "main_pre_qed_ok_Tab_no_init": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "main_pre_qed_ok_Sc_c_3": { "qed": { "total": 1, - "valid": 1 }, +{ "wp:global": { "alt-ergo": { "total": 7, "valid": 7, "rank": 29 }, + "qed": { "total": 17, "valid": 17 }, + "wp:main": { "total": 24, "valid": 24, "rank": 29 } }, + "wp:functions": { "main": { "main_requires_qed_ok_direct_init_union": + { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, + "main_requires_qed_ok_5": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 2 }, "wp:main": { "total": 1, - "valid": 1 } }, - "main_pre_qed_ok_Sc_c_2": { "qed": { "total": 1, - "valid": 1 }, + "valid": 1, + "rank": 2 } }, + "main_requires_qed_ok_4": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 2 }, "wp:main": { "total": 1, - "valid": 1 } }, - "main_pre_qed_ok_Sc_t_2": { "qed": { "total": 1, + "valid": 1, + "rank": 2 } }, + "main_requires_qed_ok_todo": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "main_requires_qed_ok_3": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 2 } }, + "main_requires_qed_ok_2": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "main_pre_qed_ok_Sc_t": { "qed": { "total": 1, + "main_requires_qed_ok": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "main_pre_qed_ok_Sc_eq": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 8 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 8 } }, - "main_pre_qed_ok_With_Array_Struct_3": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "main_pre_qed_ok_With_Array_Struct_5": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "main_pre_qed_ok_Simple_Array_1": { "alt-ergo": - { "total": 1, + "main_requires_qed_ok_Tab_todo": { "alt-ergo": + { "total": 1, "valid": 1, - "rank": 3 }, - "wp:main": - { "total": 1, + "rank": 2 }, + "wp:main": + { "total": 1, "valid": 1, - "rank": 3 } }, - "main_pre_qed_ok_Simple_Array_0": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "main_pre_qed_ok_Struct_Simple_b": { "qed": + "rank": 2 } }, + "main_requires_qed_ok_Tab_no_init": { "qed": { "total": 1, "valid": 1 }, - "wp:main": + "wp:main": { "total": 1, "valid": 1 } }, - "main_pre_qed_ok_Struct_Simple_a": { "qed": - { "total": 1, + "main_requires_qed_ok_Sc_c_3": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "main_requires_qed_ok_Sc_c_2": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "main_requires_qed_ok_Sc_t_2": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "main_requires_qed_ok_Sc_t": { "qed": { "total": 1, "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "wp:section": { "alt-ergo": { "total": 3, - "valid": 3, + "wp:main": + { "total": 1, + "valid": 1 } }, + "main_requires_qed_ok_Sc_eq": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 8 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 8 } }, + "main_requires_qed_ok_With_Array_Struct_3": + { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, + "main_requires_qed_ok_With_Array_Struct_5": + { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, + "main_requires_qed_ok_Simple_Array_1": + { "alt-ergo": { "total": 1, "valid": 1, + "rank": 3 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 3 } }, + "main_requires_qed_ok_Simple_Array_0": + { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, + "main_requires_qed_ok_Struct_Simple_b": + { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, + "main_requires_qed_ok_Struct_Simple_a": + { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, + "wp:section": { "alt-ergo": { "total": 6, + "valid": 6, "rank": 8 }, - "qed": { "total": 10, - "valid": 10 }, - "wp:main": { "total": 13, - "valid": 13, - "rank": 8 } } } } } + "qed": { "total": 14, + "valid": 14 }, + "wp:main": { "total": 20, + "valid": 20, + "rank": 8 } } }, + "fa1": { "fa1_ensures_qed_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "wp:section": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } } }, + "fa2": { "fa2_ensures_qed_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "wp:section": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } } }, + "fa3": { "fa3_ensures_qed_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "wp:section": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } } }, + "fs1": { "fs1_ensures_qed_ok": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 29 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 29 } }, + "wp:section": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 29 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 29 } } } } } diff --git a/src/plugins/wp/tests/wp_acsl/init_value.i.1.report.json b/src/plugins/wp/tests/wp_acsl/init_value.i.1.report.json index 7c26ecf79edec8169bee2869e3b2fa07bb08e876..890d8170ecfaf478cb43e8608883a3bb550a2ed6 100644 --- a/src/plugins/wp/tests/wp_acsl/init_value.i.1.report.json +++ b/src/plugins/wp/tests/wp_acsl/init_value.i.1.report.json @@ -1,36 +1,94 @@ -{ "wp:global": { "alt-ergo": { "total": 6, "unknown": 6 }, - "wp:main": { "total": 6, "unknown": 6 } }, - "wp:functions": { "main_ko": { "main_ko_pre_qed_ko_Simple_Array_1": +{ "wp:global": { "alt-ergo": { "total": 18, "unknown": 18 }, + "wp:main": { "total": 18, "unknown": 18 } }, + "wp:functions": { "main_ko": { "main_ko_requires_qed_ko_indirect_init_union_t": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "main_ko_pre_qed_ko_With_Array_Struct_3": + "main_ko_requires_qed_ko_indirect_init_union_b": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "main_ko_pre_qed_ko_Tab_no_init": { "alt-ergo": + "main_ko_requires_qed_ko_T1_6": { "alt-ergo": { "total": 1, "unknown": 1 }, - "wp:main": + "wp:main": { "total": 1, "unknown": 1 } }, - "main_ko_pre_qed_ko_Sc_c_2": { "alt-ergo": - { "total": 1, + "main_ko_requires_qed_ko_Simple_Array_1": + { "alt-ergo": { "total": 1, "unknown": 1 }, + "wp:main": { "total": 1, "unknown": 1 } }, + "main_ko_requires_qed_ko_With_Array_Struct_3": + { "alt-ergo": { "total": 1, "unknown": 1 }, + "wp:main": { "total": 1, "unknown": 1 } }, + "main_ko_requires_qed_ko_Tab_no_init": + { "alt-ergo": { "total": 1, "unknown": 1 }, + "wp:main": { "total": 1, "unknown": 1 } }, + "main_ko_requires_qed_ko_Sc_c_2": { "alt-ergo": + { "total": 1, "unknown": 1 }, - "wp:main": - { "total": 1, + "wp:main": + { "total": 1, "unknown": 1 } }, - "main_ko_pre_qed_ko_Sc_t": { "alt-ergo": - { "total": 1, - "unknown": 1 }, - "wp:main": - { "total": 1, - "unknown": 1 } }, - "main_ko_pre_qed_ko_Sc_eq_ko": { "alt-ergo": + "main_ko_requires_qed_ko_Sc_t": { "alt-ergo": { "total": 1, "unknown": 1 }, - "wp:main": + "wp:main": { "total": 1, "unknown": 1 } }, - "wp:section": { "alt-ergo": { "total": 6, - "unknown": 6 }, - "wp:main": { "total": 6, - "unknown": 6 } } } } } + "main_ko_requires_qed_ko_Sc_eq_ko": + { "alt-ergo": { "total": 1, "unknown": 1 }, + "wp:main": { "total": 1, "unknown": 1 } }, + "wp:section": { "alt-ergo": { "total": 9, + "unknown": 9 }, + "wp:main": { "total": 9, + "unknown": 9 } } }, + "fa1": { "fa1_ensures_qed_ko_2": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, + "fa1_ensures_qed_ko": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, + "wp:section": { "alt-ergo": { "total": 2, + "unknown": 2 }, + "wp:main": { "total": 2, + "unknown": 2 } } }, + "fa2": { "fa2_ensures_qed_ko_2": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, + "fa2_ensures_qed_ko": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, + "wp:section": { "alt-ergo": { "total": 2, + "unknown": 2 }, + "wp:main": { "total": 2, + "unknown": 2 } } }, + "fa3": { "fa3_ensures_qed_ko_3": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, + "fa3_ensures_qed_ko_2": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, + "fa3_ensures_qed_ko": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, + "wp:section": { "alt-ergo": { "total": 3, + "unknown": 3 }, + "wp:main": { "total": 3, + "unknown": 3 } } }, + "fs1": { "fs1_ensures_qed_ko_2": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, + "fs1_ensures_qed_ko": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, + "wp:section": { "alt-ergo": { "total": 2, + "unknown": 2 }, + "wp:main": { "total": 2, + "unknown": 2 } } } } } diff --git a/src/plugins/wp/tests/wp_acsl/init_value_mem.i.0.report.json b/src/plugins/wp/tests/wp_acsl/init_value_mem.i.0.report.json index fa64194949c99b5e31929add92629ff42a7cf8bf..f632d90bac4a00dab996baa5f396d338ffffa3cc 100644 --- a/src/plugins/wp/tests/wp_acsl/init_value_mem.i.0.report.json +++ b/src/plugins/wp/tests/wp_acsl/init_value_mem.i.0.report.json @@ -1,20 +1,20 @@ -{ "wp:global": { "alt-ergo": { "total": 2, "valid": 2, "rank": 9 }, - "wp:main": { "total": 2, "valid": 2, "rank": 9 } }, - "wp:functions": { "main": { "main_post_Q": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 9 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 9 } }, - "main_post_P": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 9 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 9 } }, +{ "wp:global": { "alt-ergo": { "total": 2, "valid": 2, "rank": 10 }, + "wp:main": { "total": 2, "valid": 2, "rank": 10 } }, + "wp:functions": { "main": { "main_ensures_Q": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 10 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 10 } }, + "main_ensures_P": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 10 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 10 } }, "wp:section": { "alt-ergo": { "total": 2, "valid": 2, - "rank": 9 }, + "rank": 10 }, "wp:main": { "total": 2, "valid": 2, - "rank": 9 } } } } } + "rank": 10 } } } } } diff --git a/src/plugins/wp/tests/wp_acsl/intbool.i.0.report.json b/src/plugins/wp/tests/wp_acsl/intbool.i.0.report.json index c599a4ddfcf992126d7af0205c32897aab8216d9..4ed4a7c4e6305b0311d13850278f63d06912e2c8 100644 --- a/src/plugins/wp/tests/wp_acsl/intbool.i.0.report.json +++ b/src/plugins/wp/tests/wp_acsl/intbool.i.0.report.json @@ -1,8 +1,9 @@ { "wp:global": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "wp:functions": { "bug": { "bug_post": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "bug": { "bug_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, diff --git a/src/plugins/wp/tests/wp_acsl/logic.i.0.report.json b/src/plugins/wp/tests/wp_acsl/logic.i.0.report.json index 0ca5753d2884ec797d09eebcde0005178ca5263a..badcee8deb06c806b1e1fba397198f03ad075183 100644 --- a/src/plugins/wp/tests/wp_acsl/logic.i.0.report.json +++ b/src/plugins/wp/tests/wp_acsl/logic.i.0.report.json @@ -1,104 +1,138 @@ { "wp:global": { "alt-ergo": { "total": 18, "valid": 2, "unknown": 16, - "rank": 15 }, + "rank": 16 }, "qed": { "total": 3, "valid": 3 }, "wp:main": { "total": 21, "valid": 5, "unknown": 16, - "rank": 15 } }, - "wp:functions": { "h": { "h_assign": { "qed": { "total": 2, "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, - "h_post": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, + "rank": 16 } }, + "wp:functions": { "h": { "h_assigns": { "qed": { "total": 2, "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, + "h_ensures": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 3, "valid": 2, "unknown": 1 } } }, - "main": { "main_pre_qed_ok_18": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "main_pre_qed_ok_17": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "main_pre_qed_ok_16": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "main_pre_qed_ok_15": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "main_pre_qed_ok_14": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "main_pre_qed_ok_13": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "main_pre_qed_ok_12": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "main_pre_qed_ok_11": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "main_pre_qed_ok_10": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "main_pre_qed_ok_9": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "main_pre_qed_ok_8": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "main_pre_qed_ok_7": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "main_pre_qed_ok_6": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "main_pre_qed_ok_5": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "main_pre_qed_ok_4": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "main_pre_qed_ok_3": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 15 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 15 } }, - "main_pre_qed_ok_2": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 15 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 15 } }, - "main_pre_qed_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "main": { "main_requires_qed_ok_18": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, + "main_requires_qed_ok_17": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, + "main_requires_qed_ok_16": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, + "main_requires_qed_ok_15": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, + "main_requires_qed_ok_14": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, + "main_requires_qed_ok_13": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, + "main_requires_qed_ok_12": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, + "main_requires_qed_ok_11": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, + "main_requires_qed_ok_10": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, + "main_requires_qed_ok_9": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, + "main_requires_qed_ok_8": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, + "main_requires_qed_ok_7": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, + "main_requires_qed_ok_6": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, + "main_requires_qed_ok_5": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, + "main_requires_qed_ok_4": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, + "main_requires_qed_ok_3": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 16 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 16 } }, + "main_requires_qed_ok_2": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 16 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 16 } }, + "main_requires_qed_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 17, "valid": 2, "unknown": 15, - "rank": 15 }, + "rank": 16 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 18, "valid": 3, "unknown": 15, - "rank": 15 } } } } } + "rank": 16 } } } } } diff --git a/src/plugins/wp/tests/wp_acsl/looplabels.i.0.report.json b/src/plugins/wp/tests/wp_acsl/looplabels.i.0.report.json index 8f3eb9da0a166c92a08a1298fa6d7848805ab18c..f0d59fc2862ebf81510504550ab40baa6a97d258 100644 --- a/src/plugins/wp/tests/wp_acsl/looplabels.i.0.report.json +++ b/src/plugins/wp/tests/wp_acsl/looplabels.i.0.report.json @@ -1,38 +1,39 @@ { "wp:global": { "alt-ergo": { "total": 5, "valid": 5, "rank": 37 }, "qed": { "total": 3, "valid": 3 }, "wp:main": { "total": 8, "valid": 8, "rank": 37 } }, - "wp:functions": { "copy": { "copy_loop_inv_2": { "alt-ergo": { "total": 2, - "valid": 2, - "rank": 37 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 37 } }, - "copy_loop_inv": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 5 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 5 } }, - "copy_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "copy_loop_assign": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 22 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 22 } }, - "copy_post": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 5 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 5 } }, + "wp:functions": { "copy": { "copy_loop_invariant_2": { "alt-ergo": + { "total": 2, + "valid": 2, + "rank": 37 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 37 } }, + "copy_loop_invariant": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 5 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 5 } }, + "copy_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "copy_loop_assigns": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 22 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 22 } }, + "copy_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 4 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 4 } }, "wp:section": { "alt-ergo": { "total": 5, "valid": 5, "rank": 37 }, diff --git a/src/plugins/wp/tests/wp_acsl/null.c.0.report.json b/src/plugins/wp/tests/wp_acsl/null.c.0.report.json index 0a50deb53ababb68938d44c46fc84e8d7365844a..79fbcb44621bbe66323dc1c13c9b7b044015f84a 100644 --- a/src/plugins/wp/tests/wp_acsl/null.c.0.report.json +++ b/src/plugins/wp/tests/wp_acsl/null.c.0.report.json @@ -21,11 +21,12 @@ "wp:main": { "total": 2, "valid": 2, "rank": 1 } } } }, - "wp:functions": { "null_is_zero": { "null_is_zero_post": { "qed": { "total": 1, + "wp:functions": { "null_is_zero": { "null_is_zero_ensures": { "qed": + { "total": 1, "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, diff --git a/src/plugins/wp/tests/wp_acsl/oracle/bitwise2.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/bitwise2.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..93a098b82182b131c38a3fba3754d8b758c02d10 --- /dev/null +++ b/src/plugins/wp/tests/wp_acsl/oracle/bitwise2.res.oracle @@ -0,0 +1,45 @@ +# frama-c -wp [...] +[kernel] Parsing tests/wp_acsl/bitwise2.i (no preprocessing) +[wp] Running WP plugin... +[wp] Loading driver 'share/wp.driver' +[wp] Warning: Missing RTE guards +------------------------------------------------------------ + Function job1 +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_acsl/bitwise2.i, line 2) in 'job1': +Prove: true. + +------------------------------------------------------------ +------------------------------------------------------------ + Function job1bis +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_acsl/bitwise2.i, line 7) in 'job1bis': +Prove: true. + +------------------------------------------------------------ +------------------------------------------------------------ + Function job2 +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_acsl/bitwise2.i, line 12) in 'job2': +Prove: true. + +------------------------------------------------------------ +------------------------------------------------------------ + Function job3 +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_acsl/bitwise2.i, line 17) in 'job3': +Prove: true. + +------------------------------------------------------------ +------------------------------------------------------------ + Function job4 +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_acsl/bitwise2.i, line 22) in 'job4': +Prove: true. + +------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_acsl/oracle/init_value.0.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/init_value.0.res.oracle index ad4d9f1ea971d2c837da496bee9cee9a1fa814ba..bcd9a305a139c01b26fa11ccc56af7dbdfd3c080 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/init_value.0.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/init_value.0.res.oracle @@ -1,47 +1,386 @@ -# frama-c -wp [...] +# frama-c -wp -wp-no-let [...] [kernel] Parsing tests/wp_acsl/init_value.i (no preprocessing) [wp] Running WP plugin... [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards +------------------------------------------------------------ + Function fa1 +------------------------------------------------------------ + +Goal Post-condition 'qed_ok' in 'fa1': +Let x = ta1_0[4]. +Let x_1 = ta1_0[0]. +Let x_2 = ta1_0[1]. +Let x_3 = ta1_0[3]. +Assume { + Type: is_sint32(x_1) /\ is_sint32(x_2) /\ is_sint32(x_3) /\ is_sint32(x). + (* Initializer *) + Init: forall i : Z. ((0 <= i) -> ((i <= 1) -> (ta1_0[i] = 0))). + (* Initializer *) + Init: ta1_0[2] = 1. + (* Initializer *) + Init: x = 1. + (* Initializer *) + Init: forall i : Z. ((3 <= i) -> ((i <= 3) -> (ta1_0[i] = 0))). +} +Prove: (x_2 = x_1) /\ (x_3 = x_2). + +------------------------------------------------------------ + +Goal Post-condition 'qed_ko' in 'fa1': +Let x = ta1_0[4]. +Assume { + Type: is_sint32(ta1_0[0]) /\ is_sint32(ta1_0[1]) /\ is_sint32(ta1_0[3]) /\ + is_sint32(x). + (* Initializer *) + Init: forall i : Z. ((0 <= i) -> ((i <= 1) -> (ta1_0[i] = 0))). + (* Initializer *) + Init: ta1_0[2] = 1. + (* Initializer *) + Init: x = 1. + (* Initializer *) + Init: forall i : Z. ((3 <= i) -> ((i <= 3) -> (ta1_0[i] = 0))). +} +Prove: x = 0. + +------------------------------------------------------------ + +Goal Post-condition 'qed_ko' in 'fa1': +Let x = ta1_0[4]. +Let x_1 = ta1_0[3]. +Assume { + Type: is_sint32(ta1_0[0]) /\ is_sint32(ta1_0[1]) /\ is_sint32(x_1) /\ + is_sint32(x). + (* Initializer *) + Init: forall i : Z. ((0 <= i) -> ((i <= 1) -> (ta1_0[i] = 0))). + (* Initializer *) + Init: ta1_0[2] = 1. + (* Initializer *) + Init: x = 1. + (* Initializer *) + Init: forall i : Z. ((3 <= i) -> ((i <= 3) -> (ta1_0[i] = 0))). +} +Prove: x_1 = 1. + +------------------------------------------------------------ +------------------------------------------------------------ + Function fa2 +------------------------------------------------------------ + +Goal Post-condition 'qed_ok' in 'fa2': +Let x = ta2_0[0]. +Let x_1 = ta2_0[1]. +Let x_2 = ta2_0[4]. +Assume { + Type: is_sint32(x) /\ is_sint32(x_1) /\ is_sint32(x_2). + (* Initializer *) + Init: forall i : Z. ((0 <= i) -> ((i <= 1) -> (ta2_0[i] = 0))). + (* Initializer *) + Init: forall i : Z. ((2 <= i) -> ((i <= 3) -> (ta2_0[i] = 1))). + (* Initializer *) + Init: forall i : Z. ((4 <= i) -> ((i <= 4) -> (ta2_0[i] = 0))). +} +Prove: (x_1 = x) /\ (x_2 = x_1). + +------------------------------------------------------------ + +Goal Post-condition 'qed_ko' in 'fa2': +Let x = ta2_0[4]. +Assume { + Type: is_sint32(ta2_0[0]) /\ is_sint32(ta2_0[1]) /\ is_sint32(x). + (* Initializer *) + Init: forall i : Z. ((0 <= i) -> ((i <= 1) -> (ta2_0[i] = 0))). + (* Initializer *) + Init: forall i : Z. ((2 <= i) -> ((i <= 3) -> (ta2_0[i] = 1))). + (* Initializer *) + Init: forall i : Z. ((4 <= i) -> ((i <= 4) -> (ta2_0[i] = 0))). +} +Prove: x = 1. + +------------------------------------------------------------ + +Goal Post-condition 'qed_ko' in 'fa2': +Let x = ta2_0[1]. +Assume { + Type: is_sint32(ta2_0[0]) /\ is_sint32(x) /\ is_sint32(ta2_0[4]). + (* Initializer *) + Init: forall i : Z. ((0 <= i) -> ((i <= 1) -> (ta2_0[i] = 0))). + (* Initializer *) + Init: forall i : Z. ((2 <= i) -> ((i <= 3) -> (ta2_0[i] = 1))). + (* Initializer *) + Init: forall i : Z. ((4 <= i) -> ((i <= 4) -> (ta2_0[i] = 0))). +} +Prove: x = 1. + +------------------------------------------------------------ +------------------------------------------------------------ + Function fa3 +------------------------------------------------------------ + +Goal Post-condition 'qed_ok' in 'fa3': +Let x = ta1_0[4]. +Let x_1 = ta1_0[2]. +Let x_2 = ta3_0[0]. +Let x_3 = ta3_0[2]. +Assume { + Type: is_sint32(x_1) /\ is_sint32(x) /\ is_sint32(x_2) /\ is_sint32(x_3). + (* Initializer *) + Init: forall i : Z. ((i <= 0) -> ((0 <= i) -> (ta3_0[i] = 0))). + (* Initializer *) + Init: ta3_0[1] = 1. + (* Initializer *) + Init: ta3_0[3] = 1. + (* Initializer *) + Init: forall i : Z. ((2 <= i) -> ((i <= 2) -> (ta3_0[i] = 0))). + (* Initializer *) + Init: forall i : Z. ((4 <= i) -> ((i <= 4) -> (ta3_0[i] = 0))). + (* Initializer *) + Init: forall i : Z. ((0 <= i) -> ((i <= 1) -> (ta1_0[i] = 0))). + (* Initializer *) + Init: x_1 = 1. + (* Initializer *) + Init: x = 1. + (* Initializer *) + Init: forall i : Z. ((3 <= i) -> ((i <= 3) -> (ta1_0[i] = 0))). +} +Prove: (x = x_1) /\ (x_3 = x_2). + +------------------------------------------------------------ + +Goal Post-condition 'qed_ko' in 'fa3': +Let x = ta3_0[0]. +Assume { + Type: is_sint32(x) /\ is_sint32(ta3_0[2]). + (* Initializer *) + Init: forall i : Z. ((i <= 0) -> ((0 <= i) -> (ta3_0[i] = 0))). + (* Initializer *) + Init: ta3_0[1] = 1. + (* Initializer *) + Init: ta3_0[3] = 1. + (* Initializer *) + Init: forall i : Z. ((2 <= i) -> ((i <= 2) -> (ta3_0[i] = 0))). + (* Initializer *) + Init: forall i : Z. ((4 <= i) -> ((i <= 4) -> (ta3_0[i] = 0))). +} +Prove: x = 1. + +------------------------------------------------------------ + +Goal Post-condition 'qed_ko' in 'fa3': +Let x = ta3_0[2]. +Assume { + Type: is_sint32(ta3_0[0]) /\ is_sint32(x). + (* Initializer *) + Init: forall i : Z. ((i <= 0) -> ((0 <= i) -> (ta3_0[i] = 0))). + (* Initializer *) + Init: ta3_0[1] = 1. + (* Initializer *) + Init: ta3_0[3] = 1. + (* Initializer *) + Init: forall i : Z. ((2 <= i) -> ((i <= 2) -> (ta3_0[i] = 0))). + (* Initializer *) + Init: forall i : Z. ((4 <= i) -> ((i <= 4) -> (ta3_0[i] = 0))). +} +Prove: x = 1. + +------------------------------------------------------------ + +Goal Post-condition 'qed_ko' in 'fa3': +Let x = ta2_0[4]. +Assume { + Type: is_sint32(x). + (* Initializer *) + Init: forall i : Z. ((0 <= i) -> ((i <= 1) -> (ta2_0[i] = 0))). + (* Initializer *) + Init: forall i : Z. ((2 <= i) -> ((i <= 3) -> (ta2_0[i] = 1))). + (* Initializer *) + Init: forall i : Z. ((4 <= i) -> ((i <= 4) -> (ta2_0[i] = 0))). +} +Prove: x = 1. + +------------------------------------------------------------ +------------------------------------------------------------ + Function fs1 +------------------------------------------------------------ + +Goal Post-condition 'qed_ok' in 'fs1': +Let a = ts1_0[2]. +Let x = a.F5_c. +Let x_1 = a.F5_b. +Let x_2 = a.F5_a. +Let a_1 = ts1_0[0]. +Let a_2 = ts1_0[1]. +Let a_3 = ts1_0[3]. +Assume { + Type: IsS5(a_1) /\ IsS5(a_2) /\ IsS5(a_3) /\ is_sint32(a_1.F5_a) /\ + is_sint32(x_2) /\ is_sint32(x_1) /\ is_sint32(x). + (* Initializer *) + Init: forall i : Z. let a_4 = ts1_0[i] in ((0 <= i) -> ((i <= 1) -> + (((a_4.F5_a) = 0) /\ ((a_4.F5_b) = 0) /\ ((a_4.F5_c) = 0)))). + (* Initializer *) + Init: x_2 = 1. + (* Initializer *) + Init: x_1 = 1. + (* Initializer *) + Init: x = 0. + (* Initializer *) + Init: forall i : Z. let a_4 = ts1_0[i] in ((3 <= i) -> ((i <= 3) -> + (((a_4.F5_a) = 0) /\ ((a_4.F5_b) = 0) /\ ((a_4.F5_c) = 0)))). +} +Prove: (x_1 = x_2) /\ EqS5(a_1, a_2) /\ EqS5(a_2, a_3). + +------------------------------------------------------------ + +Goal Post-condition 'qed_ko' in 'fs1': +Let a = ts1_0[2]. +Let x = a.F5_c. +Let x_1 = a.F5_b. +Let x_2 = a.F5_a. +Let a_1 = ts1_0[0]. +Assume { + Type: IsS5(a_1) /\ IsS5(ts1_0[1]) /\ IsS5(ts1_0[3]) /\ + is_sint32(a_1.F5_a) /\ is_sint32(x_2) /\ is_sint32(x_1) /\ + is_sint32(x). + (* Initializer *) + Init: forall i : Z. let a_2 = ts1_0[i] in ((0 <= i) -> ((i <= 1) -> + (((a_2.F5_a) = 0) /\ ((a_2.F5_b) = 0) /\ ((a_2.F5_c) = 0)))). + (* Initializer *) + Init: x_2 = 1. + (* Initializer *) + Init: x_1 = 1. + (* Initializer *) + Init: x = 0. + (* Initializer *) + Init: forall i : Z. let a_2 = ts1_0[i] in ((3 <= i) -> ((i <= 3) -> + (((a_2.F5_a) = 0) /\ ((a_2.F5_b) = 0) /\ ((a_2.F5_c) = 0)))). +} +Prove: x = 1. + +------------------------------------------------------------ + +Goal Post-condition 'qed_ko' in 'fs1': +Let a = ts1_0[2]. +Let x = a.F5_c. +Let x_1 = a.F5_b. +Let x_2 = a.F5_a. +Let a_1 = ts1_0[0]. +Let x_3 = a_1.F5_a. +Assume { + Type: IsS5(a_1) /\ IsS5(ts1_0[1]) /\ IsS5(ts1_0[3]) /\ is_sint32(x_3) /\ + is_sint32(x_2) /\ is_sint32(x_1) /\ is_sint32(x). + (* Initializer *) + Init: forall i : Z. let a_2 = ts1_0[i] in ((0 <= i) -> ((i <= 1) -> + (((a_2.F5_a) = 0) /\ ((a_2.F5_b) = 0) /\ ((a_2.F5_c) = 0)))). + (* Initializer *) + Init: x_2 = 1. + (* Initializer *) + Init: x_1 = 1. + (* Initializer *) + Init: x = 0. + (* Initializer *) + Init: forall i : Z. let a_2 = ts1_0[i] in ((3 <= i) -> ((i <= 3) -> + (((a_2.F5_a) = 0) /\ ((a_2.F5_b) = 0) /\ ((a_2.F5_c) = 0)))). +} +Prove: x_3 = 1. + +------------------------------------------------------------ ------------------------------------------------------------ Function main ------------------------------------------------------------ Goal Pre-condition 'qed_ok,Struct_Simple_a' in 'main': -Prove: true. +Let x = s.F1_S_b. +Let x_1 = s.F1_S_a. +Assume { + Type: is_sint32(x_1) /\ is_sint32(x). + (* Initializer *) + Init: x_1 = 2. + (* Initializer *) + Init: x = 0. +} +Prove: x_1 = 2. ------------------------------------------------------------ Goal Pre-condition 'qed_ok,Struct_Simple_b' in 'main': -Prove: true. +Let x = s.F1_S_b. +Let x_1 = s.F1_S_a. +Assume { + Type: is_sint32(x_1) /\ is_sint32(x). + (* Initializer *) + Init: x_1 = 2. + (* Initializer *) + Init: x = 0. +} +Prove: x = 0. ------------------------------------------------------------ Goal Pre-condition 'qed_ok,Simple_Array_0' in 'main': -Prove: true. +Let x = t[0]. +Assume { + Type: is_sint32(x) /\ is_sint32(t[1]). + (* Initializer *) + Init: x = 1. + (* Initializer *) + Init: forall i : Z. ((0 < i) -> ((i <= 1) -> (t[i] = 0))). +} +Prove: x = 1. ------------------------------------------------------------ Goal Pre-condition 'qed_ok,Simple_Array_1' in 'main': -Let x = t[1]. +Let x = t[0]. +Let x_1 = t[1]. Assume { - Type: is_sint32(x). + Type: is_sint32(x) /\ is_sint32(x_1). (* Initializer *) - Init: t[0] = 1. + Init: x = 1. (* Initializer *) Init: forall i : Z. ((0 < i) -> ((i <= 1) -> (t[i] = 0))). } -Prove: x = 0. +Prove: x_1 = 0. ------------------------------------------------------------ Goal Pre-condition 'qed_ok,With_Array_Struct_5' in 'main': -Prove: true. +Let a = st_0.F2_St_tab. +Let a_1 = a[3]. +Let a_2 = a[5]. +Assume { + Type: is_sint32(a_1) /\ is_sint32(a_2). + (* Initializer *) + Init: a[0] = 1. + (* Initializer *) + Init: a[1] = 2. + (* Initializer *) + Init: a[2] = 3. + (* Initializer *) + Init: a_1 = 4. + (* Initializer *) + Init: forall i : Z. ((4 <= i) -> ((i <= 9) -> (a[i] = 0))). +} +Prove: a_2 = 0. ------------------------------------------------------------ Goal Pre-condition 'qed_ok,With_Array_Struct_3' in 'main': -Prove: true. +Let a = st_0.F2_St_tab. +Let a_1 = a[3]. +Assume { + Type: is_sint32(a_1) /\ is_sint32(a[5]). + (* Initializer *) + Init: a[0] = 1. + (* Initializer *) + Init: a[1] = 2. + (* Initializer *) + Init: a[2] = 3. + (* Initializer *) + Init: a_1 = 4. + (* Initializer *) + Init: forall i : Z. ((4 <= i) -> ((i <= 9) -> (a[i] = 0))). +} +Prove: a_1 = 4. ------------------------------------------------------------ @@ -76,27 +415,96 @@ Prove: EqS3_Sc(sc1_0, sc0_0). ------------------------------------------------------------ Goal Pre-condition 'qed_ok,Sc_t' in 'main': -Prove: true. +Let x = sc2_0.F3_Sc_c. +Let a = sc2_0.F3_Sc_b. +Let a_1 = a[2]. +Assume { + Type: is_sint32(x) /\ is_sint32(a_1). + (* Initializer *) + Init: (sc2_0.F3_Sc_a) = 1. + (* Initializer *) + Init: a[0] = 2. + (* Initializer *) + Init: a[1] = 3. + (* Initializer *) + Init: forall i : Z. ((2 <= i) -> ((i <= 2) -> (a[i] = 0))). + (* Initializer *) + Init: x = 4. +} +Prove: a_1 = 0. ------------------------------------------------------------ Goal Pre-condition 'qed_ok,Sc_t' in 'main': -Prove: true. +Let x = sc3_0.F3_Sc_c. +Let a = sc3_0.F3_Sc_b. +Let a_1 = a[2]. +Assume { + Type: is_sint32(x) /\ is_sint32(a_1). + (* Initializer *) + Init: (sc3_0.F3_Sc_a) = 1. + (* Initializer *) + Init: a[0] = 2. + (* Initializer *) + Init: a[1] = 3. + (* Initializer *) + Init: a_1 = 4. + (* Initializer *) + Init: x = 0. +} +Prove: a_1 = 4. ------------------------------------------------------------ Goal Pre-condition 'qed_ok,Sc_c_2' in 'main': -Prove: true. +Let x = sc2_0.F3_Sc_c. +Let a = sc2_0.F3_Sc_b. +Assume { + Type: is_sint32(x) /\ is_sint32(a[2]). + (* Initializer *) + Init: (sc2_0.F3_Sc_a) = 1. + (* Initializer *) + Init: a[0] = 2. + (* Initializer *) + Init: a[1] = 3. + (* Initializer *) + Init: forall i : Z. ((2 <= i) -> ((i <= 2) -> (a[i] = 0))). + (* Initializer *) + Init: x = 4. +} +Prove: x = 4. ------------------------------------------------------------ Goal Pre-condition 'qed_ok,Sc_c_3' in 'main': -Prove: true. +Let x = sc3_0.F3_Sc_c. +Let a = sc3_0.F3_Sc_b. +Let a_1 = a[2]. +Assume { + Type: is_sint32(x) /\ is_sint32(a_1). + (* Initializer *) + Init: (sc3_0.F3_Sc_a) = 1. + (* Initializer *) + Init: a[0] = 2. + (* Initializer *) + Init: a[1] = 3. + (* Initializer *) + Init: a_1 = 4. + (* Initializer *) + Init: x = 0. +} +Prove: x = 0. ------------------------------------------------------------ Goal Pre-condition 'qed_ok,Tab_no_init' in 'main': -Prove: true. +Let x = tab_0[5]. +Assume { + Type: is_uint8(x). + (* Initializer *) + Init: forall i : Z. ((0 <= i) -> ((i <= 31) -> (tab_0[i] = 0))). +} +Prove: x = 0. ------------------------------------------------------------ @@ -111,3 +519,117 @@ Assume { Prove: tab_0[i] <= 255. ------------------------------------------------------------ + +Goal Pre-condition 'qed_ok' in 'main': +Let a = sq0_0.F3_Sc_b. +Let a_1 = a[1]. +Assume { + Type: is_sint32(a_1) /\ is_sint32(a[2]). + (* Initializer *) + Init: (sq0_0.F3_Sc_a) = 2. + (* Initializer *) + Init: forall i : Z. ((0 <= i) -> ((i <= 1) -> (a[i] = 2))). + (* Initializer *) + Init: forall i : Z. ((2 <= i) -> ((i <= 2) -> (a[i] = 0))). + (* Initializer *) + Init: (sq0_0.F3_Sc_c) = 2. +} +Prove: a_1 = 2. + +------------------------------------------------------------ + +Goal Pre-condition 'qed_ok' in 'main': +Let a = sq0_0.F3_Sc_b. +Let a_1 = a[2]. +Assume { + Type: is_sint32(a[1]) /\ is_sint32(a_1). + (* Initializer *) + Init: (sq0_0.F3_Sc_a) = 2. + (* Initializer *) + Init: forall i : Z. ((0 <= i) -> ((i <= 1) -> (a[i] = 2))). + (* Initializer *) + Init: forall i : Z. ((2 <= i) -> ((i <= 2) -> (a[i] = 0))). + (* Initializer *) + Init: (sq0_0.F3_Sc_c) = 2. +} +Prove: a_1 = 0. + +------------------------------------------------------------ + +Goal Pre-condition 'qed_ok' in 'main': +Assume { + Type: is_sint32(t1_0[4]). + (* Goal *) + When: (0 <= i) /\ (i <= 3). + (* Initializer *) + Init: forall i_1 : Z. ((0 <= i_1) -> ((i_1 <= 3) -> (t1_0[i_1] = 1))). + (* Initializer *) + Init: forall i_1 : Z. ((5 <= i_1) -> ((i_1 <= 6) -> (t1_0[i_1] = 2))). + (* Initializer *) + Init: forall i_1 : Z. ((4 <= i_1) -> ((i_1 <= 4) -> (t1_0[i_1] = 0))). + (* Initializer *) + Init: forall i_1 : Z. ((7 <= i_1) -> ((i_1 <= 9) -> (t1_0[i_1] = 0))). +} +Prove: t1_0[i] = 1. + +------------------------------------------------------------ + +Goal Pre-condition 'qed_ok,todo' in 'main': +Let x = t1_0[4]. +Assume { + Type: is_sint32(x). + (* Initializer *) + Init: forall i : Z. ((0 <= i) -> ((i <= 3) -> (t1_0[i] = 1))). + (* Initializer *) + Init: forall i : Z. ((5 <= i) -> ((i <= 6) -> (t1_0[i] = 2))). + (* Initializer *) + Init: forall i : Z. ((4 <= i) -> ((i <= 4) -> (t1_0[i] = 0))). + (* Initializer *) + Init: forall i : Z. ((7 <= i) -> ((i <= 9) -> (t1_0[i] = 0))). +} +Prove: x = 0. + +------------------------------------------------------------ + +Goal Pre-condition 'qed_ok' in 'main': +Assume { + Type: is_sint32(t1_0[4]). + (* Goal *) + When: (6 <= i) /\ (i <= 6). + (* Initializer *) + Init: forall i_1 : Z. ((0 <= i_1) -> ((i_1 <= 3) -> (t1_0[i_1] = 1))). + (* Initializer *) + Init: forall i_1 : Z. ((5 <= i_1) -> ((i_1 <= 6) -> (t1_0[i_1] = 2))). + (* Initializer *) + Init: forall i_1 : Z. ((4 <= i_1) -> ((i_1 <= 4) -> (t1_0[i_1] = 0))). + (* Initializer *) + Init: forall i_1 : Z. ((7 <= i_1) -> ((i_1 <= 9) -> (t1_0[i_1] = 0))). +} +Prove: t1_0[i] = 2. + +------------------------------------------------------------ + +Goal Pre-condition 'qed_ok' in 'main': +Assume { + Type: is_sint32(t1_0[4]). + (* Goal *) + When: (7 <= i) /\ (i <= 9). + (* Initializer *) + Init: forall i_1 : Z. ((0 <= i_1) -> ((i_1 <= 3) -> (t1_0[i_1] = 1))). + (* Initializer *) + Init: forall i_1 : Z. ((5 <= i_1) -> ((i_1 <= 6) -> (t1_0[i_1] = 2))). + (* Initializer *) + Init: forall i_1 : Z. ((4 <= i_1) -> ((i_1 <= 4) -> (t1_0[i_1] = 0))). + (* Initializer *) + Init: forall i_1 : Z. ((7 <= i_1) -> ((i_1 <= 9) -> (t1_0[i_1] = 0))). +} +Prove: t1_0[i] = 0. + +------------------------------------------------------------ + +Goal Pre-condition 'qed_ok,direct_init_union' in 'main': +Let x = u.F4_U_a. +Assume { Type: is_sint16(x). (* Initializer *) Init: x = (-1). } +Prove: x = (-1). + +------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_acsl/oracle/init_value.1.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/init_value.1.res.oracle index a95fc1f3809f0317d6310d97e8de7e9b290253c0..125cf6eebc17d9a97091d3c08a58f882d44e2219 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/init_value.1.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/init_value.1.res.oracle @@ -1,17 +1,155 @@ -# frama-c -wp [...] +# frama-c -wp -wp-no-let [...] [kernel] Parsing tests/wp_acsl/init_value.i (no preprocessing) [wp] Running WP plugin... [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards +------------------------------------------------------------ + Function fa1 +------------------------------------------------------------ + +Goal Post-condition 'qed_ok' in 'fa1': +Let x = ta1_0[0]. +Let x_1 = ta1_0[1]. +Let x_2 = ta1_0[3]. +Assume { + Type: is_sint32(x) /\ is_sint32(x_1) /\ is_sint32(x_2) /\ + is_sint32(ta1_0[4]). +} +Prove: (x_1 = x) /\ (x_2 = x_1). + +------------------------------------------------------------ + +Goal Post-condition 'qed_ko' in 'fa1': +Let x = ta1_0[4]. +Assume { + Type: is_sint32(ta1_0[0]) /\ is_sint32(ta1_0[1]) /\ is_sint32(ta1_0[3]) /\ + is_sint32(x). +} +Prove: x = 0. + +------------------------------------------------------------ + +Goal Post-condition 'qed_ko' in 'fa1': +Let x = ta1_0[3]. +Assume { + Type: is_sint32(ta1_0[0]) /\ is_sint32(ta1_0[1]) /\ is_sint32(x) /\ + is_sint32(ta1_0[4]). +} +Prove: x = 1. + +------------------------------------------------------------ +------------------------------------------------------------ + Function fa2 +------------------------------------------------------------ + +Goal Post-condition 'qed_ok' in 'fa2': +Let x = ta2_0[0]. +Let x_1 = ta2_0[1]. +Let x_2 = ta2_0[4]. +Assume { Type: is_sint32(x) /\ is_sint32(x_1) /\ is_sint32(x_2). } +Prove: (x_1 = x) /\ (x_2 = x_1). + +------------------------------------------------------------ + +Goal Post-condition 'qed_ko' in 'fa2': +Let x = ta2_0[4]. +Assume { Type: is_sint32(ta2_0[0]) /\ is_sint32(ta2_0[1]) /\ is_sint32(x). } +Prove: x = 1. + +------------------------------------------------------------ + +Goal Post-condition 'qed_ko' in 'fa2': +Let x = ta2_0[1]. +Assume { Type: is_sint32(ta2_0[0]) /\ is_sint32(x) /\ is_sint32(ta2_0[4]). } +Prove: x = 1. + +------------------------------------------------------------ +------------------------------------------------------------ + Function fa3 +------------------------------------------------------------ + +Goal Post-condition 'qed_ok' in 'fa3': +Let x = ta1_0[2]. +Let x_1 = ta1_0[4]. +Let x_2 = ta3_0[0]. +Let x_3 = ta3_0[2]. +Assume { + Type: is_sint32(x) /\ is_sint32(x_1) /\ is_sint32(x_2) /\ is_sint32(x_3). +} +Prove: (x_1 = x) /\ (x_3 = x_2). + +------------------------------------------------------------ + +Goal Post-condition 'qed_ko' in 'fa3': +Let x = ta3_0[0]. Assume { Type: is_sint32(x) /\ is_sint32(ta3_0[2]). } +Prove: x = 1. + +------------------------------------------------------------ + +Goal Post-condition 'qed_ko' in 'fa3': +Let x = ta3_0[2]. Assume { Type: is_sint32(ta3_0[0]) /\ is_sint32(x). } +Prove: x = 1. + +------------------------------------------------------------ + +Goal Post-condition 'qed_ko' in 'fa3': +Let x = ta2_0[4]. Assume { Type: is_sint32(x). } +Prove: x = 1. + +------------------------------------------------------------ +------------------------------------------------------------ + Function fs1 +------------------------------------------------------------ + +Goal Post-condition 'qed_ok' in 'fs1': +Let a = ts1_0[0]. +Let a_1 = ts1_0[1]. +Let a_2 = ts1_0[3]. +Let a_3 = ts1_0[2]. +Let x = a_3.F5_a. +Let x_1 = a_3.F5_b. +Assume { + Type: IsS5(a) /\ IsS5(a_1) /\ IsS5(a_2) /\ is_sint32(a.F5_a) /\ + is_sint32(x) /\ is_sint32(x_1) /\ is_sint32(a_3.F5_c). +} +Prove: (x_1 = x) /\ EqS5(a, a_1) /\ EqS5(a_1, a_2). + +------------------------------------------------------------ + +Goal Post-condition 'qed_ko' in 'fs1': +Let a = ts1_0[0]. +Let a_1 = ts1_0[2]. +Let x = a_1.F5_c. +Assume { + Type: IsS5(a) /\ IsS5(ts1_0[1]) /\ IsS5(ts1_0[3]) /\ is_sint32(a.F5_a) /\ + is_sint32(a_1.F5_a) /\ is_sint32(a_1.F5_b) /\ is_sint32(x). +} +Prove: x = 1. + +------------------------------------------------------------ + +Goal Post-condition 'qed_ko' in 'fs1': +Let a = ts1_0[0]. +Let x = a.F5_a. +Let a_1 = ts1_0[2]. +Assume { + Type: IsS5(a) /\ IsS5(ts1_0[1]) /\ IsS5(ts1_0[3]) /\ is_sint32(x) /\ + is_sint32(a_1.F5_a) /\ is_sint32(a_1.F5_b) /\ is_sint32(a_1.F5_c). +} +Prove: x = 1. + +------------------------------------------------------------ ------------------------------------------------------------ Function main_ko ------------------------------------------------------------ Goal Pre-condition 'qed_ko,Sc_eq_ko' in 'main_ko': +Let x = sc2_0.F3_Sc_c. Let a = sc2_0.F3_Sc_b. Let a_1 = sc3_0.F3_Sc_b. +Let a_2 = a_1[2]. Assume { - Type: IsS3_Sc(sc2_0) /\ IsS3_Sc(sc3_0). + Type: IsS3_Sc(sc2_0) /\ IsS3_Sc(sc3_0) /\ is_sint32(x) /\ is_sint32(a_2). (* Initializer *) Init: (sc3_0.F3_Sc_a) = 1. (* Initializer *) @@ -19,7 +157,7 @@ Assume { (* Initializer *) Init: a_1[1] = 3. (* Initializer *) - Init: a_1[2] = 4. + Init: a_2 = 4. (* Initializer *) Init: (sc3_0.F3_Sc_c) = 0. (* Initializer *) @@ -31,29 +169,80 @@ Assume { (* Initializer *) Init: forall i : Z. ((2 <= i) -> ((i <= 2) -> (a[i] = 0))). (* Initializer *) - Init: (sc2_0.F3_Sc_c) = 4. + Init: x = 4. } Prove: EqS3_Sc(sc2_0, sc3_0). ------------------------------------------------------------ Goal Pre-condition 'qed_ko,Sc_t' in 'main_ko': -Prove: false. +Let a = sc3_0.F3_Sc_b. +Let a_1 = a[2]. +Assume { + Type: IsS3_Sc(sc3_0) /\ is_sint32(a_1). + (* Initializer *) + Init: (sc3_0.F3_Sc_a) = 1. + (* Initializer *) + Init: a[0] = 2. + (* Initializer *) + Init: a[1] = 3. + (* Initializer *) + Init: a_1 = 4. + (* Initializer *) + Init: (sc3_0.F3_Sc_c) = 0. +} +Prove: a_1 = 3. ------------------------------------------------------------ Goal Pre-condition 'qed_ko,Sc_c_2' in 'main_ko': -Prove: false. +Let x = sc2_0.F3_Sc_c. +Let a = sc2_0.F3_Sc_b. +Assume { + Type: IsS3_Sc(sc2_0) /\ is_sint32(x). + (* Initializer *) + Init: (sc2_0.F3_Sc_a) = 1. + (* Initializer *) + Init: a[0] = 2. + (* Initializer *) + Init: a[1] = 3. + (* Initializer *) + Init: forall i : Z. ((2 <= i) -> ((i <= 2) -> (a[i] = 0))). + (* Initializer *) + Init: x = 4. +} +Prove: x = 2. ------------------------------------------------------------ Goal Pre-condition 'qed_ko,Tab_no_init' in 'main_ko': -Prove: false. +Let x = tab_0[5]. +Assume { + Type: is_uint8(x). + (* Initializer *) + Init: forall i : Z. ((0 <= i) -> ((i <= 31) -> (tab_0[i] = 0))). +} +Prove: x = 1. ------------------------------------------------------------ Goal Pre-condition 'qed_ko,With_Array_Struct_3' in 'main_ko': -Prove: false. +Let a = st_0.F2_St_tab. +Let a_1 = a[3]. +Assume { + Type: is_sint32(a_1). + (* Initializer *) + Init: a[0] = 1. + (* Initializer *) + Init: a[1] = 2. + (* Initializer *) + Init: a[2] = 3. + (* Initializer *) + Init: a_1 = 4. + (* Initializer *) + Init: forall i : Z. ((4 <= i) -> ((i <= 9) -> (a[i] = 0))). +} +Prove: a_1 = 3. ------------------------------------------------------------ @@ -69,3 +258,42 @@ Assume { Prove: x = 1. ------------------------------------------------------------ + +Goal Pre-condition 'qed_ko,T1_6' in 'main_ko': +Let x = t1_0[6]. +Assume { + Type: is_sint32(x). + (* Initializer *) + Init: forall i : Z. ((0 <= i) -> ((i <= 3) -> (t1_0[i] = 1))). + (* Initializer *) + Init: forall i : Z. ((5 <= i) -> ((i <= 6) -> (t1_0[i] = 2))). + (* Initializer *) + Init: forall i : Z. ((4 <= i) -> ((i <= 4) -> (t1_0[i] = 0))). + (* Initializer *) + Init: forall i : Z. ((7 <= i) -> ((i <= 9) -> (t1_0[i] = 0))). +} +Prove: x = 0. + +------------------------------------------------------------ + +Goal Pre-condition 'qed_ko,indirect_init_union_b' in 'main_ko': +Let x = u.F4_U_b. +Assume { + Type: is_sint64(x) /\ is_sint16((u.F4_U_t)[0]). + (* Initializer *) + Init: (u.F4_U_a) = (-1). +} +Prove: x = 0. + +------------------------------------------------------------ + +Goal Pre-condition 'qed_ko,indirect_init_union_t' in 'main_ko': +Let a = (u.F4_U_t)[0]. +Assume { + Type: is_sint64(u.F4_U_b) /\ is_sint16(a). + (* Initializer *) + Init: (u.F4_U_a) = (-1). +} +Prove: a = 0. + +------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/arith.0.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/arith.0.res.oracle index 07d06584686e232c0f532a6753c680eb5cfb9c90..e9dcd2c5a7a2cb592854cd7ce39ab81f151403c8 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/arith.0.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/arith.0.res.oracle @@ -25,7 +25,7 @@ [wp] [Qed] Goal typed_lemma_ucL4_qed_ok : Valid [wp] [Qed] Goal typed_lemma_ucN1_qed_ok : Valid [wp] [Qed] Goal typed_lemma_ucN2_qed_ok : Valid -[wp] [Qed] Goal typed_cast_sgn_usgn_post_qed_ok_nat : Valid +[wp] [Qed] Goal typed_cast_sgn_usgn_ensures_qed_ok_nat : Valid [wp] [Alt-Ergo] Goal typed_uchar_range_assert_qed_ok_A1 : Valid [wp] [Alt-Ergo] Goal typed_uchar_range_assert_qed_ok_A2 : Valid [wp] Proved goals: 24 / 24 @@ -38,5 +38,5 @@ Lemma 20 1 (1..8) 21 100% ------------------------------------------------------------- Functions WP Alt-Ergo Total Success cast_sgn_usgn 1 - 1 100% -uchar_range - 2 (8..20) 2 100% +uchar_range - 2 (12..24) 2 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/arith.1.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/arith.1.res.oracle index a08d1132de31a1100db53a8cf6a5a067f2ff2ef5..473a012c3e21722c774d5dde8a1d77be84ef94ee 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/arith.1.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/arith.1.res.oracle @@ -4,7 +4,7 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled -[wp] [Alt-Ergo] Goal typed_cast_sgn_usgn_post_qed_ko_KO : Unknown +[wp] [Alt-Ergo] Goal typed_cast_sgn_usgn_ensures_qed_ko_KO : Unknown [wp] Proved goals: 0 / 1 Alt-Ergo: 0 (unknown: 1) [wp] Report 'tests/wp_acsl/arith.i.1.report.json' diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/assign_array.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/assign_array.res.oracle index 9f7b8911db6db6d8cd8add3e31df51ff7a2c7384..cb994356b5b0a1d0d6dfab1cf301f3069c5c05f7 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/assign_array.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/assign_array.res.oracle @@ -4,10 +4,10 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 4 goals scheduled -[wp] [Qed] Goal typed_jobA_assign_exit : Valid -[wp] [Qed] Goal typed_jobA_assign_normal : Valid -[wp] [Qed] Goal typed_jobG_assign_exit : Valid -[wp] [Qed] Goal typed_jobG_assign_normal : Valid +[wp] [Qed] Goal typed_jobA_assigns_exit : Valid +[wp] [Qed] Goal typed_jobA_assigns_normal : Valid +[wp] [Qed] Goal typed_jobG_assigns_exit : Valid +[wp] [Qed] Goal typed_jobG_assigns_normal : Valid [wp] Proved goals: 4 / 4 Qed: 4 [wp] Report 'tests/wp_acsl/assign_array.i.0.report.json' diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigns_path.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigns_path.res.oracle index ee214135b6cbf6302dc3b6db7e95dc9f36064b97..898e9cdc2f924828edf032058bd9a72fc90f9ed8 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigns_path.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigns_path.res.oracle @@ -4,22 +4,22 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 9 goals scheduled -[wp] [Qed] Goal typed_job_post_N : Valid -[wp] [Alt-Ergo] Goal typed_job_post_A : Valid -[wp] [Alt-Ergo] Goal typed_job_loop_inv_preserved : Valid -[wp] [Qed] Goal typed_job_loop_inv_established : Valid -[wp] [Alt-Ergo] Goal typed_job_loop_inv_2_preserved : Valid -[wp] [Qed] Goal typed_job_loop_inv_2_established : Valid -[wp] [Qed] Goal typed_job_loop_assign : Valid -[wp] [Qed] Goal typed_job_assign_part1 : Valid -[wp] [Qed] Goal typed_job_assign_part2 : Valid +[wp] [Qed] Goal typed_job_ensures_N : Valid +[wp] [Alt-Ergo] Goal typed_job_ensures_A : Valid +[wp] [Alt-Ergo] Goal typed_job_loop_invariant_preserved : Valid +[wp] [Qed] Goal typed_job_loop_invariant_established : Valid +[wp] [Alt-Ergo] Goal typed_job_loop_invariant_2_preserved : Valid +[wp] [Qed] Goal typed_job_loop_invariant_2_established : Valid +[wp] [Qed] Goal typed_job_loop_assigns : Valid +[wp] [Qed] Goal typed_job_assigns_part1 : Valid +[wp] [Qed] Goal typed_job_assigns_part2 : Valid [wp] Proved goals: 9 / 9 Qed: 6 Alt-Ergo: 3 [wp] Report 'tests/wp_acsl/assigns_path.i.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -job 6 3 (16..28) 9 100% +job 6 3 (20..32) 9 100% ------------------------------------------------------------- [wp] Warning: Memory model hypotheses for function 'job': /*@ behavior typed: requires \separated(&p,b+(..)); */ diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigns_range.0.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigns_range.0.res.oracle index 5c7e54e44313cf946824b880f2542ab5a05ed509..c2e202de26b33c5638730e308d0680514e515639 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigns_range.0.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigns_range.0.res.oracle @@ -4,31 +4,31 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 17 goals scheduled -[wp] [Qed] Goal typed_call_assigns_all_assign_exit_part1 : Valid -[wp] [Qed] Goal typed_call_assigns_all_assign_exit_part2 : Valid -[wp] [Qed] Goal typed_call_assigns_all_assign_exit_part3 : Valid -[wp] [Qed] Goal typed_call_assigns_all_assign_exit_part4 : Valid -[wp] [Qed] Goal typed_call_assigns_all_assign_exit_part5 : Valid -[wp] [Qed] Goal typed_call_assigns_all_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_call_assigns_all_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_call_assigns_all_assign_normal_part3 : Valid -[wp] [Qed] Goal typed_call_assigns_all_assign_normal_part4 : Valid -[wp] [Qed] Goal typed_call_assigns_all_assign_normal_part5 : Valid -[wp] [Alt-Ergo] Goal typed_call_assigns_all_call_assigns_t1_an_element_pre : Valid -[wp] [Qed] Goal typed_call_assigns_all_call_assigns_t2_bound_pre : Valid -[wp] [Qed] Goal typed_call_assigns_all_call_assigns_t3_inf_bound_pre : Valid -[wp] [Alt-Ergo] Goal typed_call_assigns_all_call_assigns_t4_sup_bound_pre : Valid -[wp] [Alt-Ergo] Goal typed_call_assigns_t1_call_assigns_t1_an_element_pre : Valid -[wp] [Alt-Ergo] Goal typed_call_assigns_t2_call_assigns_t2_bound_pre : Valid -[wp] [Alt-Ergo] Goal typed_call_assigns_t4_call_assigns_t4_sup_bound_pre : Valid +[wp] [Qed] Goal typed_call_assigns_all_assigns_exit_part1 : Valid +[wp] [Qed] Goal typed_call_assigns_all_assigns_exit_part2 : Valid +[wp] [Qed] Goal typed_call_assigns_all_assigns_exit_part3 : Valid +[wp] [Qed] Goal typed_call_assigns_all_assigns_exit_part4 : Valid +[wp] [Qed] Goal typed_call_assigns_all_assigns_exit_part5 : Valid +[wp] [Qed] Goal typed_call_assigns_all_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_call_assigns_all_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_call_assigns_all_assigns_normal_part3 : Valid +[wp] [Qed] Goal typed_call_assigns_all_assigns_normal_part4 : Valid +[wp] [Qed] Goal typed_call_assigns_all_assigns_normal_part5 : Valid +[wp] [Alt-Ergo] Goal typed_call_assigns_all_call_assigns_t1_an_element_requires : Valid +[wp] [Qed] Goal typed_call_assigns_all_call_assigns_t2_bound_requires : Valid +[wp] [Qed] Goal typed_call_assigns_all_call_assigns_t3_inf_bound_requires : Valid +[wp] [Alt-Ergo] Goal typed_call_assigns_all_call_assigns_t4_sup_bound_requires : Valid +[wp] [Alt-Ergo] Goal typed_call_assigns_t1_call_assigns_t1_an_element_requires : Valid +[wp] [Alt-Ergo] Goal typed_call_assigns_t2_call_assigns_t2_bound_requires : Valid +[wp] [Alt-Ergo] Goal typed_call_assigns_t4_call_assigns_t4_sup_bound_requires : Valid [wp] Proved goals: 17 / 17 Qed: 12 Alt-Ergo: 5 [wp] Report 'tests/wp_acsl/assigns_range.i.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -call_assigns_all 12 2 (4..16) 14 100% -call_assigns_t1 - 1 (1..12) 1 100% -call_assigns_t2 - 1 (1..12) 1 100% +call_assigns_all 12 2 (8..20) 14 100% +call_assigns_t1 - 1 (4..16) 1 100% +call_assigns_t2 - 1 (4..16) 1 100% call_assigns_t4 - 1 (4..16) 1 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigns_range.1.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigns_range.1.res.oracle index 84e3f10f0efe53d104098b94a57cf534ff117f4f..73d00d5b60c654dd9afa4677e6010add74322230 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigns_range.1.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigns_range.1.res.oracle @@ -4,12 +4,12 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 6 goals scheduled -[wp] [Alt-Ergo] Goal typed_call_assigns_t1_assign_exit : Unknown -[wp] [Alt-Ergo] Goal typed_call_assigns_t1_assign_normal : Unknown -[wp] [Alt-Ergo] Goal typed_call_assigns_t2_assign_exit : Unknown -[wp] [Alt-Ergo] Goal typed_call_assigns_t2_assign_normal : Unknown -[wp] [Alt-Ergo] Goal typed_call_assigns_t4_assign_exit : Unknown -[wp] [Alt-Ergo] Goal typed_call_assigns_t4_assign_normal : Unknown +[wp] [Alt-Ergo] Goal typed_call_assigns_t1_assigns_exit : Unknown +[wp] [Alt-Ergo] Goal typed_call_assigns_t1_assigns_normal : Unknown +[wp] [Alt-Ergo] Goal typed_call_assigns_t2_assigns_exit : Unknown +[wp] [Alt-Ergo] Goal typed_call_assigns_t2_assigns_normal : Unknown +[wp] [Alt-Ergo] Goal typed_call_assigns_t4_assigns_exit : Unknown +[wp] [Alt-Ergo] Goal typed_call_assigns_t4_assigns_normal : Unknown [wp] Proved goals: 0 / 6 Alt-Ergo: 0 (unknown: 6) [wp] Report 'tests/wp_acsl/assigns_range.i.1.report.json' diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/axioms.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/axioms.res.oracle index 9f0c0ed6dfd4dc51ec6a27508ac7c19efc112a66..f5638f7fcd190c69e8182ab88bdc7c4b6dcff689 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/axioms.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/axioms.res.oracle @@ -4,16 +4,16 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 10 goals scheduled -[wp] [Alt-Ergo] Goal typed_f_post_P_todo : Unknown -[wp] [Alt-Ergo] Goal typed_f_post_Q : Valid -[wp] [Alt-Ergo] Goal typed_f_loop_inv_Index_preserved : Valid -[wp] [Alt-Ergo] Goal typed_f_loop_inv_Index_established : Valid -[wp] [Alt-Ergo] Goal typed_f_loop_inv_Positive_preserved : Valid -[wp] [Qed] Goal typed_f_loop_inv_Positive_established : Valid -[wp] [Qed] Goal typed_f_loop_assign_part1 : Valid -[wp] [Qed] Goal typed_f_loop_assign_part2 : Valid -[wp] [Alt-Ergo] Goal typed_f_loop_assign_part3 : Valid -[wp] [Alt-Ergo] Goal typed_f_assign : Unknown +[wp] [Alt-Ergo] Goal typed_f_ensures_P_todo : Unknown +[wp] [Alt-Ergo] Goal typed_f_ensures_Q : Valid +[wp] [Alt-Ergo] Goal typed_f_loop_invariant_Index_preserved : Valid +[wp] [Alt-Ergo] Goal typed_f_loop_invariant_Index_established : Valid +[wp] [Alt-Ergo] Goal typed_f_loop_invariant_Positive_preserved : Valid +[wp] [Qed] Goal typed_f_loop_invariant_Positive_established : Valid +[wp] [Qed] Goal typed_f_loop_assigns_part1 : Valid +[wp] [Qed] Goal typed_f_loop_assigns_part2 : Valid +[wp] [Alt-Ergo] Goal typed_f_loop_assigns_part3 : Valid +[wp] [Alt-Ergo] Goal typed_f_assigns : Unknown [wp] Proved goals: 8 / 10 Qed: 3 Alt-Ergo: 5 (unknown: 2) diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/base_offset.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/base_offset.res.oracle index 5cca1ab7358a312f7bab570a0cf48b14de209f7d..4db477821a2d5675f28755aca8f3efd79f3afa9b 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/base_offset.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/base_offset.res.oracle @@ -4,9 +4,9 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 3 goals scheduled -[wp] [Qed] Goal typed_f_post : Valid -[wp] [Qed] Goal typed_f_post_2 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_3 : Valid +[wp] [Qed] Goal typed_f_ensures : Valid +[wp] [Qed] Goal typed_f_ensures_2 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_3 : Valid [wp] Proved goals: 3 / 3 Qed: 2 Alt-Ergo: 1 diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/bitwise.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/bitwise.res.oracle index 2fa1eca8458955a096b6d3c49920c29621e3a793..3e2273eac8354bdd6fb8fdb663d0c28f8e47bc6c 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/bitwise.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/bitwise.res.oracle @@ -4,35 +4,35 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 29 goals scheduled -[wp] [Qed] Goal typed_band_post : Valid -[wp] [Qed] Goal typed_band_post_band0 : Valid -[wp] [Qed] Goal typed_band_bit0_post_band1 : Valid -[wp] [Qed] Goal typed_band_bit0_post_band2 : Valid -[wp] [Qed] Goal typed_band_bit1_post_band3 : Valid -[wp] [Qed] Goal typed_band_bit2_post_band4 : Valid -[wp] [Qed] Goal typed_band_bit3_post_band5 : Valid -[wp] [Qed] Goal typed_band_bit4_post_band6 : Valid -[wp] [Alt-Ergo] Goal typed_band_bool_false_post : Unknown -[wp] [Qed] Goal typed_band_bool_true_post : Valid -[wp] [Qed] Goal typed_bnot_post : Valid -[wp] [Qed] Goal typed_bor_post : Valid -[wp] [Qed] Goal typed_bor_post_bor0 : Valid -[wp] [Qed] Goal typed_bor_bit1_post_bor1 : Valid -[wp] [Qed] Goal typed_bor_bit2_post_bor2 : Valid -[wp] [Qed] Goal typed_bor_bit3_post_bor3 : Valid -[wp] [Alt-Ergo] Goal typed_bor_bool_false_post : Unknown -[wp] [Alt-Ergo] Goal typed_bor_bool_true_post : Valid -[wp] [Qed] Goal typed_bxor_post : Valid -[wp] [Qed] Goal typed_bxor_bit1_post : Valid -[wp] [Qed] Goal typed_bxor_bit2_post : Valid -[wp] [Alt-Ergo] Goal typed_bxor_bool_false_post : Unknown -[wp] [Qed] Goal typed_bxor_bool_true_post : Valid -[wp] [Qed] Goal typed_lshift_post : Valid -[wp] [Qed] Goal typed_lshift_shift1_post_lsl1 : Valid -[wp] [Qed] Goal typed_lshift_shift1_post_lsl2 : Valid -[wp] [Qed] Goal typed_lshift_shift2_post_lsl3 : Valid -[wp] [Qed] Goal typed_rshift_post : Valid -[wp] [Qed] Goal typed_rshift_shift1_post_lsr1 : Valid +[wp] [Qed] Goal typed_band_ensures : Valid +[wp] [Qed] Goal typed_band_ensures_band0 : Valid +[wp] [Qed] Goal typed_band_bit0_ensures_band1 : Valid +[wp] [Qed] Goal typed_band_bit0_ensures_band2 : Valid +[wp] [Qed] Goal typed_band_bit1_ensures_band3 : Valid +[wp] [Qed] Goal typed_band_bit2_ensures_band4 : Valid +[wp] [Qed] Goal typed_band_bit3_ensures_band5 : Valid +[wp] [Qed] Goal typed_band_bit4_ensures_band6 : Valid +[wp] [Alt-Ergo] Goal typed_band_bool_false_ensures : Unknown +[wp] [Qed] Goal typed_band_bool_true_ensures : Valid +[wp] [Qed] Goal typed_bnot_ensures : Valid +[wp] [Qed] Goal typed_bor_ensures : Valid +[wp] [Qed] Goal typed_bor_ensures_bor0 : Valid +[wp] [Qed] Goal typed_bor_bit1_ensures_bor1 : Valid +[wp] [Qed] Goal typed_bor_bit2_ensures_bor2 : Valid +[wp] [Qed] Goal typed_bor_bit3_ensures_bor3 : Valid +[wp] [Alt-Ergo] Goal typed_bor_bool_false_ensures : Unknown +[wp] [Alt-Ergo] Goal typed_bor_bool_true_ensures : Valid +[wp] [Qed] Goal typed_bxor_ensures : Valid +[wp] [Qed] Goal typed_bxor_bit1_ensures : Valid +[wp] [Qed] Goal typed_bxor_bit2_ensures : Valid +[wp] [Alt-Ergo] Goal typed_bxor_bool_false_ensures : Unknown +[wp] [Qed] Goal typed_bxor_bool_true_ensures : Valid +[wp] [Qed] Goal typed_lshift_ensures : Valid +[wp] [Qed] Goal typed_lshift_shift1_ensures_lsl1 : Valid +[wp] [Qed] Goal typed_lshift_shift1_ensures_lsl2 : Valid +[wp] [Qed] Goal typed_lshift_shift2_ensures_lsl3 : Valid +[wp] [Qed] Goal typed_rshift_ensures : Valid +[wp] [Qed] Goal typed_rshift_shift1_ensures_lsr1 : Valid [wp] Proved goals: 26 / 29 Qed: 25 Alt-Ergo: 1 (unknown: 3) diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/bitwise2.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/bitwise2.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..9a78b68f273bf6996386d03a365069f903433e68 --- /dev/null +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/bitwise2.res.oracle @@ -0,0 +1,22 @@ +# frama-c -wp -wp-timeout 90 -wp-steps 1500 [...] +[kernel] Parsing tests/wp_acsl/bitwise2.i (no preprocessing) +[wp] Running WP plugin... +[wp] Loading driver 'share/wp.driver' +[wp] Warning: Missing RTE guards +[wp] 5 goals scheduled +[wp] [Qed] Goal typed_job1_ensures : Valid +[wp] [Qed] Goal typed_job1bis_ensures : Valid +[wp] [Qed] Goal typed_job2_ensures : Valid +[wp] [Qed] Goal typed_job3_ensures : Valid +[wp] [Qed] Goal typed_job4_ensures : Valid +[wp] Proved goals: 5 / 5 + Qed: 5 +[wp] Report 'tests/wp_acsl/bitwise2.i.0.report.json' +------------------------------------------------------------- +Functions WP Alt-Ergo Total Success +job1 1 - 1 100% +job1bis 1 - 1 100% +job2 1 - 1 100% +job3 1 - 1 100% +job4 1 - 1 100% +------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/block_length.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/block_length.res.oracle index a602ae20ac0c4038302d93be1e5d770b7baca9bf..6033f7105e78cd4d628f8150f778cbaf3f2b1b0c 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/block_length.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/block_length.res.oracle @@ -4,16 +4,16 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 10 goals scheduled -[wp] [Qed] Goal typed_f_post_Pt : Valid -[wp] [Qed] Goal typed_f_post_Psiz1 : Valid -[wp] [Qed] Goal typed_f_post_Pmat1 : Valid -[wp] [Qed] Goal typed_f_post_Psiz2 : Valid -[wp] [Qed] Goal typed_f_post_Pmat2 : Valid -[wp] [Qed] Goal typed_f_post_Ps : Valid -[wp] [Qed] Goal typed_f_post_Pts : Valid -[wp] [Qed] Goal typed_f_post_Pt1 : Valid -[wp] [Qed] Goal typed_f_post_Pmat12 : Valid -[wp] [Qed] Goal typed_f_post_Pts1 : Valid +[wp] [Qed] Goal typed_f_ensures_Pt : Valid +[wp] [Qed] Goal typed_f_ensures_Psiz1 : Valid +[wp] [Qed] Goal typed_f_ensures_Pmat1 : Valid +[wp] [Qed] Goal typed_f_ensures_Psiz2 : Valid +[wp] [Qed] Goal typed_f_ensures_Pmat2 : Valid +[wp] [Qed] Goal typed_f_ensures_Ps : Valid +[wp] [Qed] Goal typed_f_ensures_Pts : Valid +[wp] [Qed] Goal typed_f_ensures_Pt1 : Valid +[wp] [Qed] Goal typed_f_ensures_Pmat12 : Valid +[wp] [Qed] Goal typed_f_ensures_Pts1 : Valid [wp] Proved goals: 10 / 10 Qed: 10 [wp] Report 'tests/wp_acsl/block_length.i.0.report.json' diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/cnf.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/cnf.res.oracle index ca4bd42b039922e733543429316587d83a3560da..6ebd97b44fdd765b8aca8b5bbeca9eadb450e4ac 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/cnf.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/cnf.res.oracle @@ -5,20 +5,20 @@ [wp] Warning: Missing RTE guards [wp] 43 goals scheduled [wp:cnf] CNF=P_A /\ P_A1 /\ P_A2 -[wp] [Qed] Goal typed_f_post_a0 : Valid +[wp] [Qed] Goal typed_f_ensures_a0 : Valid [wp:cnf] CNF=P_A \/ P_A1 \/ P_A2 -[wp] [Qed] Goal typed_f_post_a1 : Valid +[wp] [Qed] Goal typed_f_ensures_a1 : Valid [wp:cnf] CNF=P_A2 -[wp] [Qed] Goal typed_f_post_a2 : Valid +[wp] [Qed] Goal typed_f_ensures_a2 : Valid [wp:cnf] CNF=((not P_A1) \/ P_A2) /\ (P_A1 \/ (not P_A2)) -[wp] [Alt-Ergo] Goal typed_f_post_a3 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_a3 : Valid [wp:cnf] CNF=((not P_A) \/ P_A1) /\ (P_A \/ P_A2) -[wp] [Alt-Ergo] Goal typed_f_post_a4 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_a4 : Valid [wp:cnf] CNF=(P_A \/ P_B) /\ (P_A \/ P_B1) /\ (P_A \/ P_B2) /\ (P_A \/ P_C) /\ (P_A1 \/ P_B) /\ (P_A1 \/ P_B1) /\ (P_A1 \/ P_B2) /\ (P_A1 \/ P_C) /\ (P_A2 \/ P_B) /\ (P_A2 \/ P_B1) /\ (P_A2 \/ P_B2) /\ (P_A2 \/ P_C) -[wp] [Alt-Ergo] Goal typed_f_post_a5 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_a5 : Valid [wp:cnf] CNF=(P_A \/ P_A1 \/ P_A2 \/ P_C) /\ (P_A \/ P_A1 \/ P_A2 \/ P_B \/ P_C) /\ (P_A \/ P_A1 \/ P_A2 \/ P_B1 \/ P_C) @@ -27,7 +27,7 @@ /\ (P_A \/ P_A1 \/ P_A2 \/ P_B \/ P_B1 \/ P_C) /\ (P_A \/ P_A1 \/ P_A2 \/ P_B \/ P_B2 \/ P_C) /\ (P_A \/ P_A1 \/ P_A2 \/ P_B1 \/ P_B2 \/ P_C) -[wp] [Alt-Ergo] Goal typed_f_post_a6 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_a6 : Valid [wp:cnf] CNF=((not P_A) \/ (not P_A1) \/ P_A2 \/ P_C) /\ ((not P_A) \/ (not P_A1) \/ P_A2 \/ (not P_B) \/ P_C) @@ -37,7 +37,7 @@ /\ ((not P_A) \/ (not P_A1) \/ P_A2 \/ (not P_B) \/ (not P_B1) \/ P_C) /\ ((not P_A) \/ (not P_A1) \/ P_A2 \/ (not P_B) \/ P_B2 \/ P_C) /\ ((not P_A) \/ (not P_A1) \/ P_A2 \/ (not P_B1) \/ P_B2 \/ P_C) -[wp] [Alt-Ergo] Goal typed_f_post_a7 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_a7 : Valid [wp:cnf] CNF=((not P_A1) \/ P_A2 \/ P_C) /\ (P_A1 \/ (not P_A2) \/ P_C) /\ ((not P_A1) \/ P_A2 \/ (not P_B1) \/ P_B2) @@ -60,7 +60,7 @@ /\ (P_A1 \/ (not P_A2) \/ (not P_B1) \/ P_B2 \/ P_C) /\ (P_A1 \/ (not P_A2) \/ P_B1 \/ (not P_B2) \/ P_C) /\ (P_A1 \/ (not P_A2) \/ P_B1 \/ P_B2 \/ P_C) -[wp] [Alt-Ergo] Goal typed_f_post_a8 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_a8 : Valid [wp:cnf] CNF=((not P_A) \/ P_A1 \/ P_C) /\ (P_A \/ P_A2 \/ P_C) /\ ((not P_A) \/ P_A1 \/ (not P_B) \/ P_B1) @@ -122,37 +122,37 @@ /\ ((not P_A) \/ P_A1 \/ P_A2 \/ P_B \/ P_B1 \/ P_B2 \/ P_C) /\ (P_A \/ P_A1 \/ P_A2 \/ (not P_B) \/ P_B1 \/ P_B2 \/ P_C) /\ (P_A \/ P_A1 \/ P_A2 \/ P_B \/ P_B1 \/ P_B2 \/ P_C) -[wp] [Alt-Ergo] Goal typed_f_post_a9 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_a9 : Valid [wp:cnf] CNF=P_B /\ P_B1 /\ P_B2 /\ P_C -[wp] [Qed] Goal typed_f_post_b0 : Valid +[wp] [Qed] Goal typed_f_ensures_b0 : Valid [wp:cnf] CNF=P_C /\ (P_B \/ P_B1 \/ P_B2) -[wp] [Qed] Goal typed_f_post_b1 : Valid +[wp] [Qed] Goal typed_f_ensures_b1 : Valid [wp:cnf] CNF=P_C /\ ((not P_B) \/ (not P_B1) \/ P_B2) -[wp] [Alt-Ergo] Goal typed_f_post_b2 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_b2 : Valid [wp:cnf] CNF=P_C /\ ((not P_B1) \/ P_B2) /\ (P_B1 \/ (not P_B2)) -[wp] [Alt-Ergo] Goal typed_f_post_b3 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_b3 : Valid [wp:cnf] CNF=P_C /\ ((not P_B) \/ P_B1) /\ (P_B \/ P_B2) -[wp] [Alt-Ergo] Goal typed_f_post_b4 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_b4 : Valid [wp:cnf] CNF=true -[wp] [Qed] Goal typed_f_post_b5 : Valid +[wp] [Qed] Goal typed_f_ensures_b5 : Valid [wp:cnf] CNF=P_B \/ P_B1 \/ P_B2 \/ P_C1 -[wp] [Qed] Goal typed_f_post_b6 : Valid -[wp] [Qed] Goal typed_f_post_b7 : Valid -[wp] [Qed] Goal typed_f_post_b8 : Valid +[wp] [Qed] Goal typed_f_ensures_b6 : Valid +[wp] [Qed] Goal typed_f_ensures_b7 : Valid +[wp] [Qed] Goal typed_f_ensures_b8 : Valid [wp:cnf] CNF=true -[wp] [Qed] Goal typed_f_post_b9 : Valid +[wp] [Qed] Goal typed_f_ensures_b9 : Valid [wp:cnf] CNF=(P_B \/ P_C) /\ (P_B1 \/ P_C) /\ (P_B2 \/ P_C) -[wp] [Alt-Ergo] Goal typed_f_post_c0 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_c0 : Valid [wp:cnf] CNF=P_B \/ P_B1 \/ P_B2 \/ P_C -[wp] [Qed] Goal typed_f_post_c1 : Valid +[wp] [Qed] Goal typed_f_ensures_c1 : Valid [wp:cnf] CNF=(not P_B) \/ (not P_B1) \/ P_B2 \/ P_C -[wp] [Alt-Ergo] Goal typed_f_post_c2 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_c2 : Valid [wp:cnf] CNF=((not P_B1) \/ P_B2 \/ P_C) /\ (P_B1 \/ (not P_B2) \/ P_C) -[wp] [Alt-Ergo] Goal typed_f_post_c3 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_c3 : Valid [wp:cnf] CNF=((not P_B) \/ P_B1 \/ P_C) /\ (P_B \/ P_B2 \/ P_C) /\ ((not P_B) \/ P_B1 \/ P_B2 \/ P_C) /\ (P_B \/ P_B1 \/ P_B2 \/ P_C) -[wp] [Alt-Ergo] Goal typed_f_post_c4 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_c4 : Valid [wp:cnf] CNF=(P_B \/ (not P_C) \/ (not P_C1)) /\ (P_B \/ P_C \/ P_C1) /\ (P_B1 \/ (not P_C) \/ (not P_C1)) /\ (P_B1 \/ P_C \/ P_C1) @@ -181,7 +181,7 @@ /\ (P_B \/ (not P_B1) \/ (not P_B2) \/ P_C \/ P_C1) /\ (P_B \/ (not P_B1) \/ P_B2 \/ P_C \/ P_C1) /\ (P_B \/ P_B1 \/ (not P_B2) \/ P_C \/ P_C1) -[wp] [Alt-Ergo] Goal typed_f_post_c5 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_c5 : Valid [wp:cnf] CNF=((not P_B) \/ P_C1) /\ ((not P_B1) \/ P_C1) /\ ((not P_B2) \/ P_C1) /\ ((not P_B) \/ (not P_B1) \/ P_C1) @@ -208,7 +208,7 @@ /\ (P_B \/ P_B1 \/ (not P_B2) \/ (not P_C) \/ P_C1) /\ (P_B \/ P_B1 \/ P_B2 \/ (not P_C) \/ (not P_C1)) /\ (P_B \/ P_B1 \/ P_B2 \/ P_C \/ P_C1) -[wp] [Alt-Ergo] Goal typed_f_post_c6 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_c6 : Valid [wp:cnf] CNF=((not P_B2) \/ P_C1) /\ (P_B \/ P_C1) /\ (P_B1 \/ P_C1) /\ ((not P_B) \/ (not P_B2) \/ P_C1) /\ ((not P_B) \/ P_B1 \/ P_C1) @@ -234,72 +234,72 @@ /\ ((not P_B) \/ (not P_B1) \/ P_B2 \/ P_C \/ P_C1) /\ ((not P_B) \/ P_B1 \/ P_B2 \/ (not P_C) \/ P_C1) /\ (P_B \/ (not P_B1) \/ P_B2 \/ (not P_C) \/ P_C1) -[wp] [Alt-Ergo] Goal typed_f_post_c7 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_c7 : Valid [wp:cnf] Too big CNF/DNF [wp:cnf] CNF=((P_C \/ (P_B2 <-> P_B1)) -> ((P_B2 <-> P_B1) <-> P_C1)) /\ (((P_B2 <-> P_B1) <-> P_C1) -> (P_C \/ (P_B2 <-> P_B1))) -[wp] [Alt-Ergo] Goal typed_f_post_c8 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_c8 : Valid [wp:cnf] Too big CNF/DNF [wp:cnf] CNF=((P_C \/ ((P_B -> P_B1) /\ ((not P_B) -> P_B2))) -> ((P_B2 <-> P_B1) <-> P_C1)) /\ (((P_B2 <-> P_B1) <-> P_C1) -> (P_C \/ ((P_B -> P_B1) /\ ((not P_B) -> P_B2)))) -[wp] [Alt-Ergo] Goal typed_f_post_c9 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_c9 : Valid [wp:cnf] CNF=(P_B \/ (not P_C)) /\ (P_B1 \/ (not P_C)) /\ (P_B2 \/ (not P_C)) /\ ((not P_B) \/ (not P_B1) \/ (not P_B2) \/ P_C) -[wp] [Alt-Ergo] Goal typed_f_post_d0 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_d0 : Valid [wp:cnf] CNF=((not P_B) \/ P_C) /\ ((not P_B1) \/ P_C) /\ ((not P_B2) \/ P_C) /\ (P_B \/ P_B1 \/ P_B2 \/ (not P_C)) -[wp] [Alt-Ergo] Goal typed_f_post_d1 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_d1 : Valid [wp:cnf] CNF=((not P_B2) \/ P_C) /\ (P_B \/ P_C) /\ (P_B1 \/ P_C) /\ ((not P_B) \/ (not P_B1) \/ P_B2 \/ (not P_C)) -[wp] [Alt-Ergo] Goal typed_f_post_d2 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_d2 : Valid [wp:cnf] CNF=((not P_B1) \/ (not P_B2) \/ P_C) /\ ((not P_B1) \/ P_B2 \/ (not P_C)) /\ (P_B1 \/ (not P_B2) \/ (not P_C)) /\ (P_B1 \/ P_B2 \/ P_C) -[wp] [Alt-Ergo] Goal typed_f_post_d3 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_d3 : Valid [wp:cnf] CNF=((not P_B) \/ (not P_B1) \/ P_C) /\ ((not P_B) \/ P_B1 \/ (not P_C)) /\ ((not P_B1) \/ (not P_B2) \/ P_C) /\ (P_B \/ (not P_B2) \/ P_C) /\ (P_B \/ P_B2 \/ (not P_C)) /\ ((not P_B) \/ P_B1 \/ P_B2 \/ (not P_C)) /\ (P_B \/ P_B1 \/ P_B2 \/ (not P_C)) -[wp] [Alt-Ergo] Goal typed_f_post_d4 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_d4 : Valid [wp:cnf] CNF=((not P_B1) \/ P_B2) /\ (P_B \/ (not P_B1)) /\ (P_B \/ (not P_B2)) /\ (P_B \/ (not P_C)) /\ (P_B1 \/ (not P_B2)) /\ (P_B1 \/ (not P_C)) /\ (P_B2 \/ (not P_C)) -[wp] [Alt-Ergo] Goal typed_f_post_d5 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_d5 : Valid [wp:cnf] CNF=((not P_B) \/ P_B1 \/ P_B2 \/ P_C) /\ (P_B \/ P_B1 \/ P_B2 \/ (not P_C)) -[wp] [Alt-Ergo] Goal typed_f_post_d6 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_d6 : Valid [wp:cnf] CNF=((not P_B) \/ (not P_B1) \/ P_B2) /\ (P_B1 \/ P_B2 \/ P_C) /\ ((not P_B) \/ (not P_B1) \/ P_B2 \/ (not P_C)) /\ (P_B \/ P_B1 \/ P_B2 \/ P_C) -[wp] [Alt-Ergo] Goal typed_f_post_d7 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_d7 : Valid [wp:cnf] CNF=((not P_B1) \/ P_B2) /\ (P_B1 \/ (not P_B2)) /\ ((not P_B1) \/ P_B2 \/ (not P_C)) /\ (P_B1 \/ (not P_B2) \/ (not P_C)) /\ (P_B1 \/ P_B2 \/ P_C) -[wp] [Alt-Ergo] Goal typed_f_post_d8 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_d8 : Valid [wp:cnf] CNF=((not P_B) \/ P_B1 \/ (not P_B2)) /\ ((not P_B) \/ P_B1 \/ (not P_C)) /\ (P_B \/ (not P_B1) \/ P_B2) /\ (P_B \/ P_B2 \/ (not P_C)) /\ ((not P_B) \/ P_B1 \/ P_B2 \/ (not P_C)) /\ (P_B \/ P_B1 \/ P_B2 \/ (not P_C)) -[wp] [Alt-Ergo] Goal typed_f_post_d9 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_d9 : Valid [wp:cnf] CNF=P_A /\ ((not P_B) \/ P_C) /\ ((not P_A) \/ (not P_B) \/ P_C) -[wp] [Alt-Ergo] Goal typed_f_post_e0 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_e0 : Valid [wp:cnf] CNF=P_B /\ ((not P_B) \/ P_C) /\ ((not P_A) \/ (not P_B) \/ P_C) -[wp] [Alt-Ergo] Goal typed_f_post_e1 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_e1 : Valid [wp:cnf] CNF=P_C /\ ((not P_B) \/ P_C) /\ ((not P_A) \/ (not P_B) \/ P_C) -[wp] [Alt-Ergo] Goal typed_f_post_e2 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_e2 : Valid [wp] Proved goals: 43 / 43 Qed: 11 Alt-Ergo: 32 diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/div_mod.0.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/div_mod.0.res.oracle index 2319800e301920f9b30018999c78d1c7d0f4554e..1e773b52273de86d9f36b4e825be5eaec60f0c93 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/div_mod.0.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/div_mod.0.res.oracle @@ -4,33 +4,33 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 22 goals scheduled -[wp] [Alt-Ergo] Goal typed_f_post_d0_div_pos_pos : Valid -[wp] [Alt-Ergo] Goal typed_f_post_d1_div_neg_pos : Valid -[wp] [Alt-Ergo] Goal typed_f_post_d2_div_pos_neg : Valid -[wp] [Alt-Ergo] Goal typed_f_post_d3_div_neg_neg : Valid -[wp] [Alt-Ergo] Goal typed_f_post_d4_div_x_1 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_d5_div_x_minus1 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_d6_div_0_x : Valid -[wp] [Alt-Ergo] Goal typed_f_post_sd0_div_pos_pos : Valid -[wp] [Alt-Ergo] Goal typed_f_post_sd1_div_neg_pos : Valid -[wp] [Alt-Ergo] Goal typed_f_post_sd2_div_pos_neg : Valid -[wp] [Alt-Ergo] Goal typed_f_post_sd3_div_neg_neg : Valid -[wp] [Alt-Ergo] Goal typed_f_post_m0_mod_pos_pos : Valid -[wp] [Alt-Ergo] Goal typed_f_post_m1_mod_neg_pos : Valid -[wp] [Alt-Ergo] Goal typed_f_post_m2_mod_pos_neg : Valid -[wp] [Alt-Ergo] Goal typed_f_post_m3_mod_neg_neg : Valid -[wp] [Alt-Ergo] Goal typed_f_post_m4_mod_x_1 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_m5_mod_x_minus1 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_m6_mod_0_x : Valid -[wp] [Alt-Ergo] Goal typed_f_post_sm0_mod_pos_pos : Valid -[wp] [Alt-Ergo] Goal typed_f_post_sm1_mod_neg_pos : Valid -[wp] [Alt-Ergo] Goal typed_f_post_sm2_mod_pos_neg : Valid -[wp] [Alt-Ergo] Goal typed_f_post_sm3_mod_neg_neg : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_d0_div_pos_pos : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_d1_div_neg_pos : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_d2_div_pos_neg : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_d3_div_neg_neg : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_d4_div_x_1 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_d5_div_x_minus1 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_d6_div_0_x : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_sd0_div_pos_pos : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_sd1_div_neg_pos : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_sd2_div_pos_neg : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_sd3_div_neg_neg : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_m0_mod_pos_pos : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_m1_mod_neg_pos : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_m2_mod_pos_neg : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_m3_mod_neg_neg : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_m4_mod_x_1 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_m5_mod_x_minus1 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_m6_mod_0_x : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_sm0_mod_pos_pos : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_sm1_mod_neg_pos : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_sm2_mod_pos_neg : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_sm3_mod_neg_neg : Valid [wp] Proved goals: 22 / 22 Qed: 0 Alt-Ergo: 22 [wp] Report 'tests/wp_acsl/div_mod.i.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -f - 22 (4..16) 22 100% +f - 22 (8..20) 22 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/div_mod.1.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/div_mod.1.res.oracle index 75e57bd9f16a32b1bb132837a6f25cb69f01a106..6e34345f147116099c1622515dd63fb4e3e7de30 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/div_mod.1.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/div_mod.1.res.oracle @@ -4,28 +4,28 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 22 goals scheduled -[wp] [alt-ergo] Goal typed_f_post_d0_div_pos_pos : Valid -[wp] [alt-ergo] Goal typed_f_post_d1_div_neg_pos : Valid -[wp] [alt-ergo] Goal typed_f_post_d2_div_pos_neg : Valid -[wp] [alt-ergo] Goal typed_f_post_d3_div_neg_neg : Valid -[wp] [alt-ergo] Goal typed_f_post_d4_div_x_1 : Valid -[wp] [alt-ergo] Goal typed_f_post_d5_div_x_minus1 : Valid -[wp] [alt-ergo] Goal typed_f_post_d6_div_0_x : Valid -[wp] [alt-ergo] Goal typed_f_post_sd0_div_pos_pos : Valid -[wp] [alt-ergo] Goal typed_f_post_sd1_div_neg_pos : Valid -[wp] [alt-ergo] Goal typed_f_post_sd2_div_pos_neg : Valid -[wp] [alt-ergo] Goal typed_f_post_sd3_div_neg_neg : Valid -[wp] [alt-ergo] Goal typed_f_post_m0_mod_pos_pos : Valid -[wp] [alt-ergo] Goal typed_f_post_m1_mod_neg_pos : Valid -[wp] [alt-ergo] Goal typed_f_post_m2_mod_pos_neg : Valid -[wp] [alt-ergo] Goal typed_f_post_m3_mod_neg_neg : Valid -[wp] [alt-ergo] Goal typed_f_post_m4_mod_x_1 : Valid -[wp] [alt-ergo] Goal typed_f_post_m5_mod_x_minus1 : Valid -[wp] [alt-ergo] Goal typed_f_post_m6_mod_0_x : Valid -[wp] [alt-ergo] Goal typed_f_post_sm0_mod_pos_pos : Valid -[wp] [alt-ergo] Goal typed_f_post_sm1_mod_neg_pos : Valid -[wp] [alt-ergo] Goal typed_f_post_sm2_mod_pos_neg : Valid -[wp] [alt-ergo] Goal typed_f_post_sm3_mod_neg_neg : Valid +[wp] [alt-ergo] Goal typed_f_ensures_d0_div_pos_pos : Valid +[wp] [alt-ergo] Goal typed_f_ensures_d1_div_neg_pos : Valid +[wp] [alt-ergo] Goal typed_f_ensures_d2_div_pos_neg : Valid +[wp] [alt-ergo] Goal typed_f_ensures_d3_div_neg_neg : Valid +[wp] [alt-ergo] Goal typed_f_ensures_d4_div_x_1 : Valid +[wp] [alt-ergo] Goal typed_f_ensures_d5_div_x_minus1 : Valid +[wp] [alt-ergo] Goal typed_f_ensures_d6_div_0_x : Valid +[wp] [alt-ergo] Goal typed_f_ensures_sd0_div_pos_pos : Valid +[wp] [alt-ergo] Goal typed_f_ensures_sd1_div_neg_pos : Valid +[wp] [alt-ergo] Goal typed_f_ensures_sd2_div_pos_neg : Valid +[wp] [alt-ergo] Goal typed_f_ensures_sd3_div_neg_neg : Valid +[wp] [alt-ergo] Goal typed_f_ensures_m0_mod_pos_pos : Valid +[wp] [alt-ergo] Goal typed_f_ensures_m1_mod_neg_pos : Valid +[wp] [alt-ergo] Goal typed_f_ensures_m2_mod_pos_neg : Valid +[wp] [alt-ergo] Goal typed_f_ensures_m3_mod_neg_neg : Valid +[wp] [alt-ergo] Goal typed_f_ensures_m4_mod_x_1 : Valid +[wp] [alt-ergo] Goal typed_f_ensures_m5_mod_x_minus1 : Valid +[wp] [alt-ergo] Goal typed_f_ensures_m6_mod_0_x : Valid +[wp] [alt-ergo] Goal typed_f_ensures_sm0_mod_pos_pos : Valid +[wp] [alt-ergo] Goal typed_f_ensures_sm1_mod_neg_pos : Valid +[wp] [alt-ergo] Goal typed_f_ensures_sm2_mod_pos_neg : Valid +[wp] [alt-ergo] Goal typed_f_ensures_sm3_mod_neg_neg : Valid [wp] Proved goals: 22 / 22 Qed: 0 alt-ergo: 22 diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/div_mod.2.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/div_mod.2.res.oracle index 2136cd8449ea6524b1638468f4126ae482863824..dd6bba2a7058bbc80cd6555bf7a31ae028ce1e13 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/div_mod.2.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/div_mod.2.res.oracle @@ -4,8 +4,8 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 2 goals scheduled -[wp] [Alt-Ergo] Goal typed_f_post_d7_div_0_x_ko : Unknown -[wp] [Alt-Ergo] Goal typed_f_post_m7_mod_0_x_ko : Unknown +[wp] [Alt-Ergo] Goal typed_f_ensures_d7_div_0_x_ko : Unknown +[wp] [Alt-Ergo] Goal typed_f_ensures_m7_mod_0_x_ko : Unknown [wp] Proved goals: 0 / 2 Alt-Ergo: 0 (unknown: 2) [wp] Report 'tests/wp_acsl/div_mod.i.2.report.json' diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/e_imply.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/e_imply.res.oracle index 981bfaf3a377d967a9662d41f2348fc3e77c06f3..e7b1cca13f1c7f69fbf490a84061ed866318994f 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/e_imply.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/e_imply.res.oracle @@ -5,48 +5,48 @@ [wp] Warning: Missing RTE guards [wp] Computing [100 goals...] [wp] 119 goals scheduled -[wp] [Alt-Ergo] Goal typed_f_post_p0 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_p1 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_p2 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_p3 : Valid -[wp] [Qed] Goal typed_f_post_p4 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_p5 : Valid -[wp] [Qed] Goal typed_f_post_p6 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_p7 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_p8 : Valid -[wp] [Qed] Goal typed_f_post_p9 : Valid -[wp] [Qed] Goal typed_f_post_i0 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_i1 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_i2 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_i3 : Valid -[wp] [Qed] Goal typed_f_post_i4 : Valid -[wp] [Qed] Goal typed_f_post_i5 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_i6 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_i7 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_i8 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_i9 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_a0 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_a1 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_a2 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_a3 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_a4 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_a5 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_a6 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_a7 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_a8 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_a9 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_o0 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_o1 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_o2 : Valid -[wp] [Qed] Goal typed_f_post_o3 : Valid -[wp] [Qed] Goal typed_f_post_o4 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_o5 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_o6 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_o7 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_o8 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_o9 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_f0 : Valid -[wp] [Alt-Ergo] Goal typed_f_post_f1 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_p0 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_p1 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_p2 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_p3 : Valid +[wp] [Qed] Goal typed_f_ensures_p4 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_p5 : Valid +[wp] [Qed] Goal typed_f_ensures_p6 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_p7 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_p8 : Valid +[wp] [Qed] Goal typed_f_ensures_p9 : Valid +[wp] [Qed] Goal typed_f_ensures_i0 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_i1 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_i2 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_i3 : Valid +[wp] [Qed] Goal typed_f_ensures_i4 : Valid +[wp] [Qed] Goal typed_f_ensures_i5 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_i6 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_i7 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_i8 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_i9 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_a0 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_a1 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_a2 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_a3 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_a4 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_a5 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_a6 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_a7 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_a8 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_a9 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_o0 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_o1 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_o2 : Valid +[wp] [Qed] Goal typed_f_ensures_o3 : Valid +[wp] [Qed] Goal typed_f_ensures_o4 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_o5 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_o6 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_o7 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_o8 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_o9 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_f0 : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_f1 : Valid [wp] Proved goals: 119 / 119 Qed: 8 Alt-Ergo: 111 diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/equal.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/equal.res.oracle index 023b79add824fb2e8a201c35c0ce6dbd6535c0cd..445532eb63d57b2cfa5489a3454ad2859ac54eed 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/equal.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/equal.res.oracle @@ -4,12 +4,12 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 6 goals scheduled -[wp] [Alt-Ergo] Goal typed_simple_array_post : Valid -[wp] [Qed] Goal typed_simple_struct_post : Valid -[wp] [Alt-Ergo] Goal typed_with_array_struct_post : Valid -[wp] [Alt-Ergo] Goal typed_with_ptr_and_array_struct_post : Valid -[wp] [Alt-Ergo] Goal typed_with_ptr_array_post : Valid -[wp] [Alt-Ergo] Goal typed_with_ptr_struct_post : Valid +[wp] [Alt-Ergo] Goal typed_simple_array_ensures : Valid +[wp] [Qed] Goal typed_simple_struct_ensures : Valid +[wp] [Alt-Ergo] Goal typed_with_array_struct_ensures : Valid +[wp] [Alt-Ergo] Goal typed_with_ptr_and_array_struct_ensures : Valid +[wp] [Alt-Ergo] Goal typed_with_ptr_array_ensures : Valid +[wp] [Alt-Ergo] Goal typed_with_ptr_struct_ensures : Valid [wp] Proved goals: 6 / 6 Qed: 1 Alt-Ergo: 5 @@ -18,8 +18,8 @@ Functions WP Alt-Ergo Total Success simple_struct 1 - 1 100% simple_array - 1 (12..24) 1 100% -with_array_struct - 1 (8..20) 1 100% -with_ptr_struct - 1 (1..12) 1 100% -with_ptr_array - 1 (8..20) 1 100% +with_array_struct - 1 (12..24) 1 100% +with_ptr_struct - 1 (8..20) 1 100% +with_ptr_array - 1 (12..24) 1 100% with_ptr_and_array_struct - 1 (24..36) 1 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/funvar_inv.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/funvar_inv.res.oracle index 01ff9f7bec5f551c82f6476a701ef8ac26af11f2..4710a979b9fec752a3813171ab64bef7cab9603a 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/funvar_inv.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/funvar_inv.res.oracle @@ -4,9 +4,9 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 3 goals scheduled -[wp] [Qed] Goal typed_ref_f_loop_assign : Valid -[wp] [Qed] Goal typed_ref_f2_loop_assign : Valid -[wp] [Qed] Goal typed_ref_g_loop_assign : Valid +[wp] [Qed] Goal typed_ref_f_loop_assigns : Valid +[wp] [Qed] Goal typed_ref_f2_loop_assigns : Valid +[wp] [Qed] Goal typed_ref_g_loop_assigns : Valid [wp] Proved goals: 3 / 3 Qed: 3 [wp] Report 'tests/wp_acsl/funvar_inv.i.0.report.json' diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/implicit_enum_cast.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/implicit_enum_cast.res.oracle index 9ed0b0beac94694fe09623eef691536cc711ddc0..33a7efd8bc0ee2889c1b612813747638acc9c1ea 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/implicit_enum_cast.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/implicit_enum_cast.res.oracle @@ -4,15 +4,15 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 9 goals scheduled -[wp] [Qed] Goal typed_bar_post : Valid -[wp] [Qed] Goal typed_bar_assign_exit_part1 : Valid -[wp] [Qed] Goal typed_bar_assign_exit_part2 : Valid -[wp] [Qed] Goal typed_bar_assign_exit_part3 : Valid -[wp] [Qed] Goal typed_bar_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_bar_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_bar_assign_normal_part3 : Valid -[wp] [Qed] Goal typed_bar_assign_normal_part4 : Valid -[wp] [Qed] Goal typed_bar_assign_normal_part5 : Valid +[wp] [Qed] Goal typed_bar_ensures : Valid +[wp] [Qed] Goal typed_bar_assigns_exit_part1 : Valid +[wp] [Qed] Goal typed_bar_assigns_exit_part2 : Valid +[wp] [Qed] Goal typed_bar_assigns_exit_part3 : Valid +[wp] [Qed] Goal typed_bar_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_bar_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_bar_assigns_normal_part3 : Valid +[wp] [Qed] Goal typed_bar_assigns_normal_part4 : Valid +[wp] [Qed] Goal typed_bar_assigns_normal_part5 : Valid [wp] Proved goals: 9 / 9 Qed: 9 [wp] Report 'tests/wp_acsl/implicit_enum_cast.i.0.report.json' diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_label.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_label.res.oracle index fe45ccb3d654892e61686211c0102f8c154f8e6a..c3f090839d60777287c9ef82e5ad5055ba596528 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_label.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_label.res.oracle @@ -6,10 +6,10 @@ No code nor implicit assigns clause for function main, generating default assigns from the prototype [wp] Warning: Missing RTE guards [wp] 4 goals scheduled -[wp] [Alt-Ergo] Goal typed_extra_post_KO : Unknown -[wp] [Qed] Goal typed_foreign_post_OK : Valid -[wp] [Alt-Ergo] Goal typed_job_post_OK : Valid -[wp] [Qed] Goal typed_main_pre_OK : Valid +[wp] [Alt-Ergo] Goal typed_extra_ensures_KO : Unknown +[wp] [Qed] Goal typed_foreign_ensures_OK : Valid +[wp] [Alt-Ergo] Goal typed_job_ensures_OK : Valid +[wp] [Qed] Goal typed_main_requires_OK : Valid [wp] Proved goals: 3 / 4 Qed: 2 Alt-Ergo: 1 (unknown: 1) diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_value.0.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_value.0.res.oracle index 87c51d12edc17d9360bd1aef0ebd6ccc5fa192cd..0619f73d418710651fd29071598ac152e5d46f4e 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_value.0.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_value.0.res.oracle @@ -3,25 +3,40 @@ [wp] Running WP plugin... [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards -[wp] 13 goals scheduled -[wp] [Qed] Goal typed_main_pre_qed_ok_Struct_Simple_a : Valid -[wp] [Qed] Goal typed_main_pre_qed_ok_Struct_Simple_b : Valid -[wp] [Qed] Goal typed_main_pre_qed_ok_Simple_Array_0 : Valid -[wp] [Alt-Ergo] Goal typed_main_pre_qed_ok_Simple_Array_1 : Valid -[wp] [Qed] Goal typed_main_pre_qed_ok_With_Array_Struct_5 : Valid -[wp] [Qed] Goal typed_main_pre_qed_ok_With_Array_Struct_3 : Valid -[wp] [Alt-Ergo] Goal typed_main_pre_qed_ok_Sc_eq : Valid -[wp] [Qed] Goal typed_main_pre_qed_ok_Sc_t : Valid -[wp] [Qed] Goal typed_main_pre_qed_ok_Sc_t_2 : Valid -[wp] [Qed] Goal typed_main_pre_qed_ok_Sc_c_2 : Valid -[wp] [Qed] Goal typed_main_pre_qed_ok_Sc_c_3 : Valid -[wp] [Qed] Goal typed_main_pre_qed_ok_Tab_no_init : Valid -[wp] [Alt-Ergo] Goal typed_main_pre_qed_ok_Tab_todo : Valid -[wp] Proved goals: 13 / 13 - Qed: 10 - Alt-Ergo: 3 +[wp] 24 goals scheduled +[wp] [Qed] Goal typed_fa1_ensures_qed_ok : Valid +[wp] [Qed] Goal typed_fa2_ensures_qed_ok : Valid +[wp] [Qed] Goal typed_fa3_ensures_qed_ok : Valid +[wp] [Alt-Ergo] Goal typed_fs1_ensures_qed_ok : Valid +[wp] [Qed] Goal typed_main_requires_qed_ok_Struct_Simple_a : Valid +[wp] [Qed] Goal typed_main_requires_qed_ok_Struct_Simple_b : Valid +[wp] [Qed] Goal typed_main_requires_qed_ok_Simple_Array_0 : Valid +[wp] [Alt-Ergo] Goal typed_main_requires_qed_ok_Simple_Array_1 : Valid +[wp] [Qed] Goal typed_main_requires_qed_ok_With_Array_Struct_5 : Valid +[wp] [Qed] Goal typed_main_requires_qed_ok_With_Array_Struct_3 : Valid +[wp] [Alt-Ergo] Goal typed_main_requires_qed_ok_Sc_eq : Valid +[wp] [Qed] Goal typed_main_requires_qed_ok_Sc_t : Valid +[wp] [Qed] Goal typed_main_requires_qed_ok_Sc_t_2 : Valid +[wp] [Qed] Goal typed_main_requires_qed_ok_Sc_c_2 : Valid +[wp] [Qed] Goal typed_main_requires_qed_ok_Sc_c_3 : Valid +[wp] [Qed] Goal typed_main_requires_qed_ok_Tab_no_init : Valid +[wp] [Alt-Ergo] Goal typed_main_requires_qed_ok_Tab_todo : Valid +[wp] [Qed] Goal typed_main_requires_qed_ok : Valid +[wp] [Qed] Goal typed_main_requires_qed_ok_2 : Valid +[wp] [Alt-Ergo] Goal typed_main_requires_qed_ok_3 : Valid +[wp] [Qed] Goal typed_main_requires_qed_ok_todo : Valid +[wp] [Alt-Ergo] Goal typed_main_requires_qed_ok_4 : Valid +[wp] [Alt-Ergo] Goal typed_main_requires_qed_ok_5 : Valid +[wp] [Qed] Goal typed_main_requires_qed_ok_direct_init_union : Valid +[wp] Proved goals: 24 / 24 + Qed: 17 + Alt-Ergo: 7 [wp] Report 'tests/wp_acsl/init_value.i.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -main 10 3 (28..40) 13 100% +main 14 6 (28..40) 20 100% +fa1 1 - 1 100% +fa2 1 - 1 100% +fa3 1 - 1 100% +fs1 - 1 (160..184) 1 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_value.1.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_value.1.res.oracle index 9ca602f4ad9efda7c9c0c3e9cfc48d54109d812f..6fd6542afa8361c5a6836072b77949b948416ead 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_value.1.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_value.1.res.oracle @@ -3,17 +3,33 @@ [wp] Running WP plugin... [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards -[wp] 6 goals scheduled -[wp] [Alt-Ergo] Goal typed_main_ko_pre_qed_ko_Sc_eq_ko : Unknown -[wp] [Alt-Ergo] Goal typed_main_ko_pre_qed_ko_Sc_t : Unknown -[wp] [Alt-Ergo] Goal typed_main_ko_pre_qed_ko_Sc_c_2 : Unknown -[wp] [Alt-Ergo] Goal typed_main_ko_pre_qed_ko_Tab_no_init : Unknown -[wp] [Alt-Ergo] Goal typed_main_ko_pre_qed_ko_With_Array_Struct_3 : Unknown -[wp] [Alt-Ergo] Goal typed_main_ko_pre_qed_ko_Simple_Array_1 : Unknown -[wp] Proved goals: 0 / 6 - Alt-Ergo: 0 (unknown: 6) +[wp] 18 goals scheduled +[wp] [Alt-Ergo] Goal typed_fa1_ensures_qed_ko : Unknown +[wp] [Alt-Ergo] Goal typed_fa1_ensures_qed_ko_2 : Unknown +[wp] [Alt-Ergo] Goal typed_fa2_ensures_qed_ko : Unknown +[wp] [Alt-Ergo] Goal typed_fa2_ensures_qed_ko_2 : Unknown +[wp] [Alt-Ergo] Goal typed_fa3_ensures_qed_ko : Unknown +[wp] [Alt-Ergo] Goal typed_fa3_ensures_qed_ko_2 : Unknown +[wp] [Alt-Ergo] Goal typed_fa3_ensures_qed_ko_3 : Unknown +[wp] [Alt-Ergo] Goal typed_fs1_ensures_qed_ko : Unknown +[wp] [Alt-Ergo] Goal typed_fs1_ensures_qed_ko_2 : Unknown +[wp] [Alt-Ergo] Goal typed_main_ko_requires_qed_ko_Sc_eq_ko : Unknown +[wp] [Alt-Ergo] Goal typed_main_ko_requires_qed_ko_Sc_t : Unknown +[wp] [Alt-Ergo] Goal typed_main_ko_requires_qed_ko_Sc_c_2 : Unknown +[wp] [Alt-Ergo] Goal typed_main_ko_requires_qed_ko_Tab_no_init : Unknown +[wp] [Alt-Ergo] Goal typed_main_ko_requires_qed_ko_With_Array_Struct_3 : Unknown +[wp] [Alt-Ergo] Goal typed_main_ko_requires_qed_ko_Simple_Array_1 : Unknown +[wp] [Alt-Ergo] Goal typed_main_ko_requires_qed_ko_T1_6 : Unknown +[wp] [Alt-Ergo] Goal typed_main_ko_requires_qed_ko_indirect_init_union_b : Unknown +[wp] [Alt-Ergo] Goal typed_main_ko_requires_qed_ko_indirect_init_union_t : Unknown +[wp] Proved goals: 0 / 18 + Alt-Ergo: 0 (unknown: 18) [wp] Report 'tests/wp_acsl/init_value.i.1.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -main_ko - - 6 0.0% +main_ko - - 9 0.0% +fa1 - - 2 0.0% +fa2 - - 2 0.0% +fa3 - - 3 0.0% +fs1 - - 2 0.0% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_value_mem.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_value_mem.res.oracle index 06e2445b2a07f8686ecd2cb49302d6a94991f8db..aeadf11adb3ff7326101e7ced83584da67ca0ab7 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_value_mem.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_value_mem.res.oracle @@ -4,13 +4,13 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 2 goals scheduled -[wp] [Alt-Ergo] Goal typed_main_post_P : Valid -[wp] [Alt-Ergo] Goal typed_main_post_Q : Valid +[wp] [Alt-Ergo] Goal typed_main_ensures_P : Valid +[wp] [Alt-Ergo] Goal typed_main_ensures_Q : Valid [wp] Proved goals: 2 / 2 Qed: 0 Alt-Ergo: 2 [wp] Report 'tests/wp_acsl/init_value_mem.i.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -main - 2 (32..44) 2 100% +main - 2 (36..48) 2 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/intbool.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/intbool.res.oracle index 1863f3ab49f2bd301a30a76a427a88d3abceac74..aa952f482657fa24e4a8d422a41045c85f63defa 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/intbool.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/intbool.res.oracle @@ -4,7 +4,7 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled -[wp] [Qed] Goal typed_bug_post : Valid +[wp] [Qed] Goal typed_bug_ensures : Valid [wp] Proved goals: 1 / 1 Qed: 1 [wp] Report 'tests/wp_acsl/intbool.i.0.report.json' diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/logic.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/logic.res.oracle index 9aa246a2736630707b73b86901adcaca0d4596bf..d22e02bbbd1cbe7cd09d5e8f0b635136c58655b7 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/logic.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/logic.res.oracle @@ -41,27 +41,27 @@ [wp] tests/wp_acsl/logic.i:62: Warning: Logic cast to struct (Tint2) from (int [6]) not implemented yet [wp] 21 goals scheduled -[wp] [Alt-Ergo] Goal typed_h_post : Unknown (Stronger) -[wp] [Qed] Goal typed_h_assign_exit : Valid -[wp] [Qed] Goal typed_h_assign_normal : Valid -[wp] [Qed] Goal typed_main_pre_qed_ok : Valid -[wp] [Alt-Ergo] Goal typed_main_pre_qed_ok_2 : Valid -[wp] [Alt-Ergo] Goal typed_main_pre_qed_ok_3 : Valid -[wp] [Alt-Ergo] Goal typed_main_pre_qed_ok_4 : Unknown (Stronger) -[wp] [Alt-Ergo] Goal typed_main_pre_qed_ok_5 : Unknown (Stronger) -[wp] [Alt-Ergo] Goal typed_main_pre_qed_ok_6 : Unknown (Stronger) -[wp] [Alt-Ergo] Goal typed_main_pre_qed_ok_7 : Unknown (Stronger) -[wp] [Alt-Ergo] Goal typed_main_pre_qed_ok_8 : Unknown (Stronger) -[wp] [Alt-Ergo] Goal typed_main_pre_qed_ok_9 : Unknown (Stronger) -[wp] [Alt-Ergo] Goal typed_main_pre_qed_ok_10 : Unknown (Stronger) -[wp] [Alt-Ergo] Goal typed_main_pre_qed_ok_11 : Unknown (Stronger) -[wp] [Alt-Ergo] Goal typed_main_pre_qed_ok_12 : Unknown (Stronger) -[wp] [Alt-Ergo] Goal typed_main_pre_qed_ok_13 : Unknown (Stronger) -[wp] [Alt-Ergo] Goal typed_main_pre_qed_ok_14 : Unknown (Stronger) -[wp] [Alt-Ergo] Goal typed_main_pre_qed_ok_15 : Unknown (Stronger) -[wp] [Alt-Ergo] Goal typed_main_pre_qed_ok_16 : Unknown (Stronger) -[wp] [Alt-Ergo] Goal typed_main_pre_qed_ok_17 : Unknown (Stronger) -[wp] [Alt-Ergo] Goal typed_main_pre_qed_ok_18 : Unknown (Stronger) +[wp] [Alt-Ergo] Goal typed_h_ensures : Unknown (Stronger) +[wp] [Qed] Goal typed_h_assigns_exit : Valid +[wp] [Qed] Goal typed_h_assigns_normal : Valid +[wp] [Qed] Goal typed_main_requires_qed_ok : Valid +[wp] [Alt-Ergo] Goal typed_main_requires_qed_ok_2 : Valid +[wp] [Alt-Ergo] Goal typed_main_requires_qed_ok_3 : Valid +[wp] [Alt-Ergo] Goal typed_main_requires_qed_ok_4 : Unknown (Stronger) +[wp] [Alt-Ergo] Goal typed_main_requires_qed_ok_5 : Unknown (Stronger) +[wp] [Alt-Ergo] Goal typed_main_requires_qed_ok_6 : Unknown (Stronger) +[wp] [Alt-Ergo] Goal typed_main_requires_qed_ok_7 : Unknown (Stronger) +[wp] [Alt-Ergo] Goal typed_main_requires_qed_ok_8 : Unknown (Stronger) +[wp] [Alt-Ergo] Goal typed_main_requires_qed_ok_9 : Unknown (Stronger) +[wp] [Alt-Ergo] Goal typed_main_requires_qed_ok_10 : Unknown (Stronger) +[wp] [Alt-Ergo] Goal typed_main_requires_qed_ok_11 : Unknown (Stronger) +[wp] [Alt-Ergo] Goal typed_main_requires_qed_ok_12 : Unknown (Stronger) +[wp] [Alt-Ergo] Goal typed_main_requires_qed_ok_13 : Unknown (Stronger) +[wp] [Alt-Ergo] Goal typed_main_requires_qed_ok_14 : Unknown (Stronger) +[wp] [Alt-Ergo] Goal typed_main_requires_qed_ok_15 : Unknown (Stronger) +[wp] [Alt-Ergo] Goal typed_main_requires_qed_ok_16 : Unknown (Stronger) +[wp] [Alt-Ergo] Goal typed_main_requires_qed_ok_17 : Unknown (Stronger) +[wp] [Alt-Ergo] Goal typed_main_requires_qed_ok_18 : Unknown (Stronger) [wp] Proved goals: 5 / 21 Qed: 3 Alt-Ergo: 2 (unknown: 16) @@ -69,5 +69,5 @@ ------------------------------------------------------------- Functions WP Alt-Ergo Total Success h 2 - 3 66.7% -main 1 2 (56..68) 18 16.7% +main 1 2 (56..80) 18 16.7% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/looplabels.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/looplabels.res.oracle index 77cdf82dbbd7f0285c166b0471c02e50b21fc5fb..26c8030d9dac191617788700e6e1cdd7118eb509 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/looplabels.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/looplabels.res.oracle @@ -4,14 +4,14 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 8 goals scheduled -[wp] [Alt-Ergo] Goal typed_copy_post : Valid -[wp] [Alt-Ergo] Goal typed_copy_loop_inv_preserved : Valid -[wp] [Qed] Goal typed_copy_loop_inv_established : Valid -[wp] [Alt-Ergo] Goal typed_copy_loop_inv_2_preserved : Valid -[wp] [Alt-Ergo] Goal typed_copy_loop_inv_2_established : Valid -[wp] [Qed] Goal typed_copy_loop_assign_part1 : Valid -[wp] [Alt-Ergo] Goal typed_copy_loop_assign_part2 : Valid -[wp] [Qed] Goal typed_copy_assign : Valid +[wp] [Alt-Ergo] Goal typed_copy_ensures : Valid +[wp] [Alt-Ergo] Goal typed_copy_loop_invariant_preserved : Valid +[wp] [Qed] Goal typed_copy_loop_invariant_established : Valid +[wp] [Alt-Ergo] Goal typed_copy_loop_invariant_2_preserved : Valid +[wp] [Alt-Ergo] Goal typed_copy_loop_invariant_2_established : Valid +[wp] [Qed] Goal typed_copy_loop_assigns_part1 : Valid +[wp] [Alt-Ergo] Goal typed_copy_loop_assigns_part2 : Valid +[wp] [Qed] Goal typed_copy_assigns : Valid [wp] Proved goals: 8 / 8 Qed: 3 Alt-Ergo: 5 diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/null.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/null.res.oracle index dacdfd4c992379bde9e6c0efe492641d11254806..1d6e4b7c5b2eb68d7ca0b4629b29969acf284380 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/null.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/null.res.oracle @@ -6,7 +6,7 @@ [wp] 3 goals scheduled [wp] [Alt-Ergo] Goal typed_lemma_valid_non_null : Valid [wp] [Alt-Ergo] Goal typed_lemma_valid_read_non_null : Valid -[wp] [Qed] Goal typed_null_is_zero_post : Valid +[wp] [Qed] Goal typed_null_is_zero_ensures : Valid [wp] Proved goals: 3 / 3 Qed: 1 Alt-Ergo: 2 diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/pointer.0.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/pointer.0.res.oracle index a567ce67a3445906ea27d5af544c925b5efe6cf2..7c36192fd7af34f0c6f8d194d94f4307d5195843 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/pointer.0.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/pointer.0.res.oracle @@ -6,15 +6,15 @@ [wp] tests/wp_acsl/pointer.i:50: Warning: Uncomparable locations p_0 and mem:t [wp] tests/wp_acsl/pointer.i:49: Warning: Uncomparable locations p_0 and mem:t [wp] 9 goals scheduled -[wp] [Alt-Ergo] Goal typed_ref_absurd_post_qed_ko_Base_oracle_ko : Unknown -[wp] [Alt-Ergo] Goal typed_ref_absurd_post_qed_ko_Comp_oracle_ko : Unknown -[wp] [Qed] Goal typed_ref_array_post_Lt : Valid -[wp] [Qed] Goal typed_ref_array_post_Le : Valid -[wp] [Qed] Goal typed_ref_array_post_Eq : Valid -[wp] [Alt-Ergo] Goal typed_ref_mixed_array_pointer_post_qed_ko_Le_oracle_ko : Unknown (Stronger) -[wp] [Alt-Ergo] Goal typed_ref_mixed_array_pointer_post_qed_ko_Lt_oracle_ko : Unknown (Stronger) -[wp] [Alt-Ergo] Goal typed_ref_pointer_post_qed_ko_Le_oracle_ko : Unknown -[wp] [Alt-Ergo] Goal typed_ref_pointer_post_qed_ko_Eq_oracle_ko : Unknown +[wp] [Alt-Ergo] Goal typed_ref_absurd_ensures_qed_ko_Base_oracle_ko : Unknown +[wp] [Alt-Ergo] Goal typed_ref_absurd_ensures_qed_ko_Comp_oracle_ko : Unknown +[wp] [Qed] Goal typed_ref_array_ensures_Lt : Valid +[wp] [Qed] Goal typed_ref_array_ensures_Le : Valid +[wp] [Qed] Goal typed_ref_array_ensures_Eq : Valid +[wp] [Alt-Ergo] Goal typed_ref_mixed_array_pointer_ensures_qed_ko_Le_oracle_ko : Unknown (Stronger) +[wp] [Alt-Ergo] Goal typed_ref_mixed_array_pointer_ensures_qed_ko_Lt_oracle_ko : Unknown (Stronger) +[wp] [Alt-Ergo] Goal typed_ref_pointer_ensures_qed_ko_Le_oracle_ko : Unknown +[wp] [Alt-Ergo] Goal typed_ref_pointer_ensures_qed_ko_Eq_oracle_ko : Unknown [wp] Proved goals: 3 / 9 Qed: 3 Alt-Ergo: 0 (unknown: 6) diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/pointer.1.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/pointer.1.res.oracle index b17fbb3bd877ca7296c953e5d4a3c00e03d95781..ae8ae26c94ab00e62049da1bfbe6c2ba3b3b546b 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/pointer.1.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/pointer.1.res.oracle @@ -6,15 +6,15 @@ [wp] tests/wp_acsl/pointer.i:50: Warning: Uncomparable locations p_0 and mem:t [wp] tests/wp_acsl/pointer.i:49: Warning: Uncomparable locations p_0 and mem:t [wp] 9 goals scheduled -[wp] [Alt-Ergo] Goal typed_absurd_post_qed_ko_Base_oracle_ko : Unknown -[wp] [Alt-Ergo] Goal typed_absurd_post_qed_ko_Comp_oracle_ko : Unknown -[wp] [Qed] Goal typed_array_post_Lt : Valid -[wp] [Qed] Goal typed_array_post_Le : Valid -[wp] [Qed] Goal typed_array_post_Eq : Valid -[wp] [Alt-Ergo] Goal typed_mixed_array_pointer_post_qed_ko_Le_oracle_ko : Unknown (Stronger) -[wp] [Alt-Ergo] Goal typed_mixed_array_pointer_post_qed_ko_Lt_oracle_ko : Unknown (Stronger) -[wp] [Alt-Ergo] Goal typed_pointer_post_qed_ko_Le_oracle_ko : Unknown -[wp] [Alt-Ergo] Goal typed_pointer_post_qed_ko_Eq_oracle_ko : Unknown +[wp] [Alt-Ergo] Goal typed_absurd_ensures_qed_ko_Base_oracle_ko : Unknown +[wp] [Alt-Ergo] Goal typed_absurd_ensures_qed_ko_Comp_oracle_ko : Unknown +[wp] [Qed] Goal typed_array_ensures_Lt : Valid +[wp] [Qed] Goal typed_array_ensures_Le : Valid +[wp] [Qed] Goal typed_array_ensures_Eq : Valid +[wp] [Alt-Ergo] Goal typed_mixed_array_pointer_ensures_qed_ko_Le_oracle_ko : Unknown (Stronger) +[wp] [Alt-Ergo] Goal typed_mixed_array_pointer_ensures_qed_ko_Lt_oracle_ko : Unknown (Stronger) +[wp] [Alt-Ergo] Goal typed_pointer_ensures_qed_ko_Le_oracle_ko : Unknown +[wp] [Alt-Ergo] Goal typed_pointer_ensures_qed_ko_Eq_oracle_ko : Unknown [wp] Proved goals: 3 / 9 Qed: 3 Alt-Ergo: 0 (unknown: 6) diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/precedence.0.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/precedence.0.res.oracle index cd608ff8c72d15f5af4d9b76bc195802dd5f93ae..6326d96688ad9b8c8e24017e0a793f78510c8d54 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/precedence.0.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/precedence.0.res.oracle @@ -40,58 +40,58 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 52 goals scheduled -[wp] [Qed] Goal typed_bitwise_post_r_precedence_and_xor : Valid -[wp] [Qed] Goal typed_bitwise_post_l_precedence_and_xor : Valid -[wp] [Qed] Goal typed_bitwise_post_r_precedence_xor_or : Valid -[wp] [Qed] Goal typed_bitwise_post_l_precedence_xor_or : Valid -[wp] [Qed] Goal typed_bitwise_post_r_precedence_or_implies : Valid -[wp] [Qed] Goal typed_bitwise_post_l_precedence_or_implies : Valid -[wp] [Qed] Goal typed_bitwise_post_ok_r_precedence_implies_or : Valid -[wp] [Qed] Goal typed_bitwise_post_ok_since : Valid -[wp] [Qed] Goal typed_bitwise_post_r_assoc_implies : Valid -[wp] [Qed] Goal typed_bitwise_post_r_precedence_implies_equiv : Valid -[wp] [Qed] Goal typed_bitwise_post_l_precedence_implies_equiv : Valid -[wp] [Qed] Goal typed_comparison_post_chainable_lt_lt : Valid -[wp] [Qed] Goal typed_comparison_post_chainable_le_le : Valid -[wp] [Qed] Goal typed_comparison_post_chainable_gt_gt : Valid -[wp] [Qed] Goal typed_comparison_post_chainable_ge_ge : Valid -[wp] [Qed] Goal typed_comparison_post_chainable_eq_eq : Valid -[wp] [Qed] Goal typed_comparison_post_r_precedence_eq_and : Valid -[wp] [Qed] Goal typed_comparison_post_l_precedence_eq_and : Valid -[wp] [Qed] Goal typed_comparison_post_r_precedence_neq_and : Valid -[wp] [Qed] Goal typed_comparison_post_l_precedence_neq_and : Valid -[wp] [Qed] Goal typed_predicate_post_r_precedence_and_xor : Valid -[wp] [Qed] Goal typed_predicate_post_l_precedence_and_xor : Valid -[wp] [Qed] Goal typed_predicate_post_r_precedence_xor_or : Valid -[wp] [Qed] Goal typed_predicate_post_l_precedence_xor_or : Valid -[wp] [Qed] Goal typed_predicate_post_r_precedence_or_implies : Valid -[wp] [Qed] Goal typed_predicate_post_l_precedence_or_implies : Valid -[wp] [Alt-Ergo] Goal typed_predicate_post_ok_r_precedence_implies_or : Valid -[wp] [Qed] Goal typed_predicate_post_ok_since : Valid -[wp] [Qed] Goal typed_predicate_post_r_assoc_implies : Valid -[wp] [Qed] Goal typed_predicate_post_r_precedence_implies_equiv : Valid -[wp] [Qed] Goal typed_predicate_post_l_precedence_implies_equiv : Valid -[wp] [Qed] Goal typed_predicate_post_r_precedence_equiv_ite : Valid -[wp] [Qed] Goal typed_predicate_post_m_precedence_equiv_ite : Valid -[wp] [Qed] Goal typed_predicate_post_l_precedence_equiv_ite : Valid -[wp] [Qed] Goal typed_predicate_post_r_assoc_ite : Valid -[wp] [Qed] Goal typed_predicate_post_r_precedence_ite_forall : Valid -[wp] [Qed] Goal typed_predicate_post_m_precedence_ite_forall : Valid -[wp] [Qed] Goal typed_predicate_post_l_precedence_ite_forall : Valid -[wp] [Qed] Goal typed_predicate_post_r_assoc_forall : Valid -[wp] [Qed] Goal typed_predicate_post_r_precedence_ite_exists : Valid -[wp] [Qed] Goal typed_predicate_post_m_precedence_ite_exists : Valid -[wp] [Qed] Goal typed_predicate_post_l_precedence_ite_exists : Valid -[wp] [Qed] Goal typed_predicate_post_r_assoc_exist : Valid -[wp] [Qed] Goal typed_predicate_post_r_precedence_ite_let : Valid -[wp] [Qed] Goal typed_predicate_post_m_precedence_ite_let : Valid -[wp] [Qed] Goal typed_predicate_post_l_precedence_ite_let : Valid -[wp] [Qed] Goal typed_predicate_post_r_assoc_let : Valid -[wp] [Qed] Goal typed_predicate_post_scope_let : Valid -[wp] [Qed] Goal typed_predicate_post_scope_let_2 : Valid -[wp] [Qed] Goal typed_predicate_post_r_precedence_ite_naming : Valid -[wp] [Qed] Goal typed_predicate_bitwise_post_r_precedence_equiv_Pand : Valid -[wp] [Qed] Goal typed_predicate_bitwise_post_l_precedence_equiv_Pand : Valid +[wp] [Qed] Goal typed_bitwise_ensures_r_precedence_and_xor : Valid +[wp] [Qed] Goal typed_bitwise_ensures_l_precedence_and_xor : Valid +[wp] [Qed] Goal typed_bitwise_ensures_r_precedence_xor_or : Valid +[wp] [Qed] Goal typed_bitwise_ensures_l_precedence_xor_or : Valid +[wp] [Qed] Goal typed_bitwise_ensures_r_precedence_or_implies : Valid +[wp] [Qed] Goal typed_bitwise_ensures_l_precedence_or_implies : Valid +[wp] [Qed] Goal typed_bitwise_ensures_ok_r_precedence_implies_or : Valid +[wp] [Qed] Goal typed_bitwise_ensures_ok_since : Valid +[wp] [Qed] Goal typed_bitwise_ensures_r_assoc_implies : Valid +[wp] [Qed] Goal typed_bitwise_ensures_r_precedence_implies_equiv : Valid +[wp] [Qed] Goal typed_bitwise_ensures_l_precedence_implies_equiv : Valid +[wp] [Qed] Goal typed_comparison_ensures_chainable_lt_lt : Valid +[wp] [Qed] Goal typed_comparison_ensures_chainable_le_le : Valid +[wp] [Qed] Goal typed_comparison_ensures_chainable_gt_gt : Valid +[wp] [Qed] Goal typed_comparison_ensures_chainable_ge_ge : Valid +[wp] [Qed] Goal typed_comparison_ensures_chainable_eq_eq : Valid +[wp] [Qed] Goal typed_comparison_ensures_r_precedence_eq_and : Valid +[wp] [Qed] Goal typed_comparison_ensures_l_precedence_eq_and : Valid +[wp] [Qed] Goal typed_comparison_ensures_r_precedence_neq_and : Valid +[wp] [Qed] Goal typed_comparison_ensures_l_precedence_neq_and : Valid +[wp] [Qed] Goal typed_predicate_ensures_r_precedence_and_xor : Valid +[wp] [Qed] Goal typed_predicate_ensures_l_precedence_and_xor : Valid +[wp] [Qed] Goal typed_predicate_ensures_r_precedence_xor_or : Valid +[wp] [Qed] Goal typed_predicate_ensures_l_precedence_xor_or : Valid +[wp] [Qed] Goal typed_predicate_ensures_r_precedence_or_implies : Valid +[wp] [Qed] Goal typed_predicate_ensures_l_precedence_or_implies : Valid +[wp] [Alt-Ergo] Goal typed_predicate_ensures_ok_r_precedence_implies_or : Valid +[wp] [Qed] Goal typed_predicate_ensures_ok_since : Valid +[wp] [Qed] Goal typed_predicate_ensures_r_assoc_implies : Valid +[wp] [Qed] Goal typed_predicate_ensures_r_precedence_implies_equiv : Valid +[wp] [Qed] Goal typed_predicate_ensures_l_precedence_implies_equiv : Valid +[wp] [Qed] Goal typed_predicate_ensures_r_precedence_equiv_ite : Valid +[wp] [Qed] Goal typed_predicate_ensures_m_precedence_equiv_ite : Valid +[wp] [Qed] Goal typed_predicate_ensures_l_precedence_equiv_ite : Valid +[wp] [Qed] Goal typed_predicate_ensures_r_assoc_ite : Valid +[wp] [Qed] Goal typed_predicate_ensures_r_precedence_ite_forall : Valid +[wp] [Qed] Goal typed_predicate_ensures_m_precedence_ite_forall : Valid +[wp] [Qed] Goal typed_predicate_ensures_l_precedence_ite_forall : Valid +[wp] [Qed] Goal typed_predicate_ensures_r_assoc_forall : Valid +[wp] [Qed] Goal typed_predicate_ensures_r_precedence_ite_exists : Valid +[wp] [Qed] Goal typed_predicate_ensures_m_precedence_ite_exists : Valid +[wp] [Qed] Goal typed_predicate_ensures_l_precedence_ite_exists : Valid +[wp] [Qed] Goal typed_predicate_ensures_r_assoc_exist : Valid +[wp] [Qed] Goal typed_predicate_ensures_r_precedence_ite_let : Valid +[wp] [Qed] Goal typed_predicate_ensures_m_precedence_ite_let : Valid +[wp] [Qed] Goal typed_predicate_ensures_l_precedence_ite_let : Valid +[wp] [Qed] Goal typed_predicate_ensures_r_assoc_let : Valid +[wp] [Qed] Goal typed_predicate_ensures_scope_let : Valid +[wp] [Qed] Goal typed_predicate_ensures_scope_let_2 : Valid +[wp] [Qed] Goal typed_predicate_ensures_r_precedence_ite_naming : Valid +[wp] [Qed] Goal typed_predicate_bitwise_ensures_r_precedence_equiv_Pand : Valid +[wp] [Qed] Goal typed_predicate_bitwise_ensures_l_precedence_equiv_Pand : Valid [wp] Proved goals: 52 / 52 Qed: 51 Alt-Ergo: 1 diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/precedence.1.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/precedence.1.res.oracle index 13603360f9df78991446d692a107ee35c1cbf1c7..b5d9d479c01f387417e3f2800de0874cecf618f7 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/precedence.1.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/precedence.1.res.oracle @@ -40,43 +40,43 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 37 goals scheduled -[wp] [Alt-Ergo] Goal typed_bitwise_post_ko_l_precedence_xor_and : Unknown -[wp] [Alt-Ergo] Goal typed_bitwise_post_ko_r_precedence_xor_and : Unknown -[wp] [Alt-Ergo] Goal typed_bitwise_post_ko_l_precedence_or_xor : Unknown -[wp] [Alt-Ergo] Goal typed_bitwise_post_ko_r_precedence_or_xor : Unknown -[wp] [Alt-Ergo] Goal typed_bitwise_post_ko_l_precedence_implies_or : Unknown -[wp] [Alt-Ergo] Goal typed_bitwise_post_ko_l_assoc_implies : Unknown -[wp] [Alt-Ergo] Goal typed_bitwise_post_ko_r_precedence_equiv_implies : Unknown -[wp] [Alt-Ergo] Goal typed_bitwise_post_ko_l_precedence_equiv_implies : Unknown -[wp] [Alt-Ergo] Goal typed_comparison_post_ko_r_precedence_and_eq : Unknown -[wp] [Alt-Ergo] Goal typed_comparison_post_ko_l_precedence_and_eq : Unknown -[wp] [Alt-Ergo] Goal typed_comparison_post_ko_l_nonassoc_eq : Unknown -[wp] [Alt-Ergo] Goal typed_comparison_post_ko_r_nonassoc_eq : Unknown -[wp] [Alt-Ergo] Goal typed_comparison_post_ko_r_precedence_and_neq : Unknown -[wp] [Alt-Ergo] Goal typed_comparison_post_ko_l_precedence_and_neq : Unknown -[wp] [Alt-Ergo] Goal typed_predicate_post_ko_l_precedence_xor_and : Unknown -[wp] [Alt-Ergo] Goal typed_predicate_post_ko_r_precedence_xor_and : Unknown -[wp] [Alt-Ergo] Goal typed_predicate_post_ko_l_precedence_or_xor : Unknown -[wp] [Alt-Ergo] Goal typed_predicate_post_ko_r_precedence_or_xor : Unknown -[wp] [Alt-Ergo] Goal typed_predicate_post_ko_l_precedence_implies_or : Unknown -[wp] [Alt-Ergo] Goal typed_predicate_post_ko_l_assoc_implies : Unknown -[wp] [Alt-Ergo] Goal typed_predicate_post_ko_r_precedence_equiv_implies : Unknown -[wp] [Alt-Ergo] Goal typed_predicate_post_ko_l_precedence_equiv_implies : Unknown -[wp] [Alt-Ergo] Goal typed_predicate_post_ko_r_precedence_ite_equiv : Unknown -[wp] [Alt-Ergo] Goal typed_predicate_post_ko_l_precedence_ite_equiv : Unknown -[wp] [Alt-Ergo] Goal typed_predicate_post_ko_l_assoc_ite : Unknown -[wp] [Alt-Ergo] Goal typed_predicate_post_ko_r_precedence_forall_ite : Unknown -[wp] [Alt-Ergo] Goal typed_predicate_post_ko_m_precedence_forall_ite : Unknown -[wp] [Alt-Ergo] Goal typed_predicate_post_ko_l_precedence_forall_ite : Unknown -[wp] [Alt-Ergo] Goal typed_predicate_post_ko_r_assoc_forall : Unknown -[wp] [Alt-Ergo] Goal typed_predicate_post_ko_r_precedence_exists_ite : Unknown -[wp] [Alt-Ergo] Goal typed_predicate_post_ko_m_precedence_exists_ite : Unknown -[wp] [Alt-Ergo] Goal typed_predicate_post_ko_l_precedence_exists_ite : Unknown -[wp] [Alt-Ergo] Goal typed_predicate_post_ko_r_assoc_exist : Unknown -[wp] [Alt-Ergo] Goal typed_predicate_post_ko_r_precedence_let_ite : Unknown -[wp] [Alt-Ergo] Goal typed_predicate_post_ko_m_precedence_let_ite : Unknown -[wp] [Alt-Ergo] Goal typed_predicate_post_ko_l_precedence_let_ite : Unknown -[wp] [Alt-Ergo] Goal typed_predicate_post_ko_l_assoc_naming : Unknown +[wp] [Alt-Ergo] Goal typed_bitwise_ensures_ko_l_precedence_xor_and : Unknown +[wp] [Alt-Ergo] Goal typed_bitwise_ensures_ko_r_precedence_xor_and : Unknown +[wp] [Alt-Ergo] Goal typed_bitwise_ensures_ko_l_precedence_or_xor : Unknown +[wp] [Alt-Ergo] Goal typed_bitwise_ensures_ko_r_precedence_or_xor : Unknown +[wp] [Alt-Ergo] Goal typed_bitwise_ensures_ko_l_precedence_implies_or : Unknown +[wp] [Alt-Ergo] Goal typed_bitwise_ensures_ko_l_assoc_implies : Unknown +[wp] [Alt-Ergo] Goal typed_bitwise_ensures_ko_r_precedence_equiv_implies : Unknown +[wp] [Alt-Ergo] Goal typed_bitwise_ensures_ko_l_precedence_equiv_implies : Unknown +[wp] [Alt-Ergo] Goal typed_comparison_ensures_ko_r_precedence_and_eq : Unknown +[wp] [Alt-Ergo] Goal typed_comparison_ensures_ko_l_precedence_and_eq : Unknown +[wp] [Alt-Ergo] Goal typed_comparison_ensures_ko_l_nonassoc_eq : Unknown +[wp] [Alt-Ergo] Goal typed_comparison_ensures_ko_r_nonassoc_eq : Unknown +[wp] [Alt-Ergo] Goal typed_comparison_ensures_ko_r_precedence_and_neq : Unknown +[wp] [Alt-Ergo] Goal typed_comparison_ensures_ko_l_precedence_and_neq : Unknown +[wp] [Alt-Ergo] Goal typed_predicate_ensures_ko_l_precedence_xor_and : Unknown +[wp] [Alt-Ergo] Goal typed_predicate_ensures_ko_r_precedence_xor_and : Unknown +[wp] [Alt-Ergo] Goal typed_predicate_ensures_ko_l_precedence_or_xor : Unknown +[wp] [Alt-Ergo] Goal typed_predicate_ensures_ko_r_precedence_or_xor : Unknown +[wp] [Alt-Ergo] Goal typed_predicate_ensures_ko_l_precedence_implies_or : Unknown +[wp] [Alt-Ergo] Goal typed_predicate_ensures_ko_l_assoc_implies : Unknown +[wp] [Alt-Ergo] Goal typed_predicate_ensures_ko_r_precedence_equiv_implies : Unknown +[wp] [Alt-Ergo] Goal typed_predicate_ensures_ko_l_precedence_equiv_implies : Unknown +[wp] [Alt-Ergo] Goal typed_predicate_ensures_ko_r_precedence_ite_equiv : Unknown +[wp] [Alt-Ergo] Goal typed_predicate_ensures_ko_l_precedence_ite_equiv : Unknown +[wp] [Alt-Ergo] Goal typed_predicate_ensures_ko_l_assoc_ite : Unknown +[wp] [Alt-Ergo] Goal typed_predicate_ensures_ko_r_precedence_forall_ite : Unknown +[wp] [Alt-Ergo] Goal typed_predicate_ensures_ko_m_precedence_forall_ite : Unknown +[wp] [Alt-Ergo] Goal typed_predicate_ensures_ko_l_precedence_forall_ite : Unknown +[wp] [Alt-Ergo] Goal typed_predicate_ensures_ko_r_assoc_forall : Unknown +[wp] [Alt-Ergo] Goal typed_predicate_ensures_ko_r_precedence_exists_ite : Unknown +[wp] [Alt-Ergo] Goal typed_predicate_ensures_ko_m_precedence_exists_ite : Unknown +[wp] [Alt-Ergo] Goal typed_predicate_ensures_ko_l_precedence_exists_ite : Unknown +[wp] [Alt-Ergo] Goal typed_predicate_ensures_ko_r_assoc_exist : Unknown +[wp] [Alt-Ergo] Goal typed_predicate_ensures_ko_r_precedence_let_ite : Unknown +[wp] [Alt-Ergo] Goal typed_predicate_ensures_ko_m_precedence_let_ite : Unknown +[wp] [Alt-Ergo] Goal typed_predicate_ensures_ko_l_precedence_let_ite : Unknown +[wp] [Alt-Ergo] Goal typed_predicate_ensures_ko_l_assoc_naming : Unknown [wp] Proved goals: 0 / 37 Alt-Ergo: 0 (unknown: 37) [wp] Report 'tests/wp_acsl/precedence.i.1.report.json' diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/range.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/range.res.oracle index a3ac45cef648087747780c8102a707bcd3d35880..cf9b98a9f724f9762c4a7cfe28c19da16a5f7014 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/range.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/range.res.oracle @@ -4,10 +4,10 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 4 goals scheduled -[wp] [Qed] Goal typed_test_post_P1_ok : Valid -[wp] [Qed] Goal typed_test_post_P2_ok : Valid -[wp] [Qed] Goal typed_test_call_val_assigns_p_pre_HP_ok : Valid -[wp] [Qed] Goal typed_test_call_val_assigns_q_pre_HQ_ok : Valid +[wp] [Qed] Goal typed_test_ensures_P1_ok : Valid +[wp] [Qed] Goal typed_test_ensures_P2_ok : Valid +[wp] [Qed] Goal typed_test_call_val_assigns_p_requires_HP_ok : Valid +[wp] [Qed] Goal typed_test_call_val_assigns_q_requires_HQ_ok : Valid [wp] Proved goals: 4 / 4 Qed: 4 [wp] Report 'tests/wp_acsl/range.i.0.report.json' diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/reads.0.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/reads.0.res.oracle index b9820c5fc668f07c45d573cc977ca87992aa673a..1134f87973041a8458dc62fa39859376138ef84f 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/reads.0.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/reads.0.res.oracle @@ -4,21 +4,21 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 7 goals scheduled -[wp] [Alt-Ergo] Goal typed_f_post_qed_ok : Valid -[wp] [Alt-Ergo] Goal typed_g_post_qed_ok : Valid -[wp] [Qed] Goal typed_modifies_x_post_qed_ok_F_OK : Valid -[wp] [Alt-Ergo] Goal typed_modifies_x_post_qed_ok_W_OK_todo : Unknown -[wp] [Qed] Goal typed_modifies_y_post_qed_ok_F_OK : Valid -[wp] [Qed] Goal typed_modifies_y_post_qed_ok_G_OK : Valid -[wp] [Alt-Ergo] Goal typed_modifies_y_post_qed_ok_W_OK_todo : Unknown +[wp] [Alt-Ergo] Goal typed_f_ensures_qed_ok : Valid +[wp] [Alt-Ergo] Goal typed_g_ensures_qed_ok : Valid +[wp] [Qed] Goal typed_modifies_x_ensures_qed_ok_F_OK : Valid +[wp] [Alt-Ergo] Goal typed_modifies_x_ensures_qed_ok_W_OK_todo : Unknown +[wp] [Qed] Goal typed_modifies_y_ensures_qed_ok_F_OK : Valid +[wp] [Qed] Goal typed_modifies_y_ensures_qed_ok_G_OK : Valid +[wp] [Alt-Ergo] Goal typed_modifies_y_ensures_qed_ok_W_OK_todo : Unknown [wp] Proved goals: 5 / 7 Qed: 3 Alt-Ergo: 2 (unknown: 2) [wp] Report 'tests/wp_acsl/reads.i.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -f - 1 (8..20) 1 100% -g - 1 (16..28) 1 100% +f - 1 (12..24) 1 100% +g - 1 (20..32) 1 100% modifies_y 2 - 3 66.7% modifies_x 1 - 2 50.0% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/reads.1.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/reads.1.res.oracle index df2151ee5ac0385ea2ab9a5b8cb204730fed21b3..d35f0f34da7689d26651e64ae1adf2cb9de89f6d 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/reads.1.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/reads.1.res.oracle @@ -4,9 +4,9 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 3 goals scheduled -[wp] [Alt-Ergo] Goal typed_modifies_x_post_qed_ko_G_KO : Unknown -[wp] [Alt-Ergo] Goal typed_modifies_x_post_qed_ko_H_KO : Unknown -[wp] [Alt-Ergo] Goal typed_modifies_y_post_qed_ko_H_KO : Unknown +[wp] [Alt-Ergo] Goal typed_modifies_x_ensures_qed_ko_G_KO : Unknown +[wp] [Alt-Ergo] Goal typed_modifies_x_ensures_qed_ko_H_KO : Unknown +[wp] [Alt-Ergo] Goal typed_modifies_y_ensures_qed_ko_H_KO : Unknown [wp] Proved goals: 0 / 3 Alt-Ergo: 0 (unknown: 3) [wp] Report 'tests/wp_acsl/reads.i.1.report.json' diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/record.0.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/record.0.res.oracle index 78f64842093f63d9177b70abd9eb1bdb5515d13c..a2ea10ac9b80001466ddd948bed20efb069c0c0c 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/record.0.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/record.0.res.oracle @@ -4,22 +4,22 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 11 goals scheduled -[wp] [Alt-Ergo] Goal typed_f_post_M1_qed_ok : Valid -[wp] [Qed] Goal typed_f_post_M2_qed_ok : Valid -[wp] [Qed] Goal typed_f_post_M3_qed_ok : Valid -[wp] [Qed] Goal typed_f_post_M4_qed_ok : Valid -[wp] [Qed] Goal typed_f_post_M5_qed_ok : Valid -[wp] [Qed] Goal typed_f_post_M6_qed_ok : Valid -[wp] [Qed] Goal typed_f_post_P1_qed_ok : Valid -[wp] [Alt-Ergo] Goal typed_f_post_P2_qed_ok : Valid -[wp] [Qed] Goal typed_f_post_P3_qed_ok : Valid -[wp] [Qed] Goal typed_f_post_P4_qed_ok : Valid -[wp] [Qed] Goal typed_f_post_P5_qed_ok : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_M1_qed_ok : Valid +[wp] [Qed] Goal typed_f_ensures_M2_qed_ok : Valid +[wp] [Qed] Goal typed_f_ensures_M3_qed_ok : Valid +[wp] [Qed] Goal typed_f_ensures_M4_qed_ok : Valid +[wp] [Qed] Goal typed_f_ensures_M5_qed_ok : Valid +[wp] [Qed] Goal typed_f_ensures_M6_qed_ok : Valid +[wp] [Qed] Goal typed_f_ensures_P1_qed_ok : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_P2_qed_ok : Valid +[wp] [Qed] Goal typed_f_ensures_P3_qed_ok : Valid +[wp] [Qed] Goal typed_f_ensures_P4_qed_ok : Valid +[wp] [Qed] Goal typed_f_ensures_P5_qed_ok : Valid [wp] Proved goals: 11 / 11 Qed: 9 Alt-Ergo: 2 [wp] Report 'tests/wp_acsl/record.i.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -f 9 2 (8..20) 11 100% +f 9 2 (12..24) 11 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/record.1.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/record.1.res.oracle index 8a8174e1563a87d8dbe78fbefdc9098565e0bdb7..72d59398c6be91dad9e49ad0527e4fbe318b36ab 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/record.1.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/record.1.res.oracle @@ -4,7 +4,7 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled -[wp] [Alt-Ergo] Goal typed_f_post_KP5_qed_ko : Unknown +[wp] [Alt-Ergo] Goal typed_f_ensures_KP5_qed_ko : Unknown [wp] Proved goals: 0 / 1 Alt-Ergo: 0 (unknown: 1) [wp] Report 'tests/wp_acsl/record.i.1.report.json' diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/simpl_is_type.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/simpl_is_type.res.oracle index c7337043ba717ec108b1534c6fdf2e328e8eb160..715daac305cf3a7f9bd3862f3a5fbdf07cf4968f 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/simpl_is_type.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/simpl_is_type.res.oracle @@ -4,21 +4,21 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 15 goals scheduled -[wp] [Alt-Ergo] Goal typed_f_post : Valid -[wp] [Alt-Ergo] Goal typed_f_loop_inv_preserved : Valid -[wp] [Qed] Goal typed_f_loop_inv_established : Valid -[wp] [Alt-Ergo] Goal typed_f_loop_inv_2_preserved : Valid -[wp] [Qed] Goal typed_f_loop_inv_2_established : Valid -[wp] [Alt-Ergo] Goal typed_f_loop_inv_3_preserved : Valid -[wp] [Alt-Ergo] Goal typed_f_loop_inv_3_established : Valid -[wp] [Qed] Goal typed_f_loop_assign_part1 : Valid -[wp] [Alt-Ergo] Goal typed_f_loop_assign_part2 : Valid -[wp] [Alt-Ergo] Goal typed_g_post : Valid -[wp] [Alt-Ergo] Goal typed_g_loop_inv_preserved : Valid -[wp] [Qed] Goal typed_g_loop_inv_established : Valid -[wp] [Alt-Ergo] Goal typed_g_loop_inv_2_preserved : Valid -[wp] [Qed] Goal typed_g_loop_inv_2_established : Valid -[wp] [Qed] Goal typed_g_loop_assign : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures : Valid +[wp] [Alt-Ergo] Goal typed_f_loop_invariant_preserved : Valid +[wp] [Qed] Goal typed_f_loop_invariant_established : Valid +[wp] [Alt-Ergo] Goal typed_f_loop_invariant_2_preserved : Valid +[wp] [Qed] Goal typed_f_loop_invariant_2_established : Valid +[wp] [Alt-Ergo] Goal typed_f_loop_invariant_3_preserved : Valid +[wp] [Alt-Ergo] Goal typed_f_loop_invariant_3_established : Valid +[wp] [Qed] Goal typed_f_loop_assigns_part1 : Valid +[wp] [Alt-Ergo] Goal typed_f_loop_assigns_part2 : Valid +[wp] [Alt-Ergo] Goal typed_g_ensures : Valid +[wp] [Alt-Ergo] Goal typed_g_loop_invariant_preserved : Valid +[wp] [Qed] Goal typed_g_loop_invariant_established : Valid +[wp] [Alt-Ergo] Goal typed_g_loop_invariant_2_preserved : Valid +[wp] [Qed] Goal typed_g_loop_invariant_2_established : Valid +[wp] [Qed] Goal typed_g_loop_assigns : Valid [wp] Proved goals: 15 / 15 Qed: 6 Alt-Ergo: 9 @@ -26,5 +26,5 @@ ------------------------------------------------------------- Functions WP Alt-Ergo Total Success f 3 6 (88..112) 9 100% -g 3 3 (32..44) 6 100% +g 3 3 (36..48) 6 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/struct_use_case.0.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/struct_use_case.0.res.oracle index bc2da4692e74afd2351380a01b1d5d6773a82118..ef6763632888b42c9e772ebbe7129a1d918ce1b5 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/struct_use_case.0.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/struct_use_case.0.res.oracle @@ -4,14 +4,14 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 2 goals scheduled -[wp] [Alt-Ergo] Goal typed_caveat_f_post_ok : Valid -[wp] [Qed] Goal typed_caveat_g_post_ok : Valid +[wp] [Alt-Ergo] Goal typed_caveat_f_ensures_ok : Valid +[wp] [Qed] Goal typed_caveat_g_ensures_ok : Valid [wp] Proved goals: 2 / 2 Qed: 1 Alt-Ergo: 1 [wp] Report 'tests/wp_acsl/struct_use_case.i.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -f - 1 (12..24) 1 100% +f - 1 (16..28) 1 100% g 1 - 1 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/struct_use_case.1.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/struct_use_case.1.res.oracle index aa9dcc7c838b295eba14bdfefcf06087c73b0da0..c79e18f32beff0106a9501e7819fa5cd7491182e 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/struct_use_case.1.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/struct_use_case.1.res.oracle @@ -4,8 +4,8 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 2 goals scheduled -[wp] [Alt-Ergo] Goal typed_caveat_f_post_ko : Unknown -[wp] [Alt-Ergo] Goal typed_caveat_g_post_ko : Unknown +[wp] [Alt-Ergo] Goal typed_caveat_f_ensures_ko : Unknown +[wp] [Alt-Ergo] Goal typed_caveat_g_ensures_ko : Unknown [wp] Proved goals: 0 / 2 Alt-Ergo: 0 (unknown: 2) [wp] Report 'tests/wp_acsl/struct_use_case.i.1.report.json' diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/type_guard.0.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/type_guard.0.res.oracle index a6ea9f4aee35b72f24c5892b641b421f3e1ecb29..3ba6b703c8f482e68d1c1f9ea2710c9d22b62720 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/type_guard.0.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/type_guard.0.res.oracle @@ -4,7 +4,7 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled -[wp] [Alt-Ergo] Goal typed_f_post_qed_ok : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_qed_ok : Valid [wp] Proved goals: 1 / 1 Qed: 0 Alt-Ergo: 1 diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/type_guard.1.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/type_guard.1.res.oracle index 8744936bcc14ad243102625fe6ae9731f71e5d77..4c0a4a82d065b3f536d0d7f827695ee0651a7645 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/type_guard.1.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/type_guard.1.res.oracle @@ -4,7 +4,7 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled -[wp] [Alt-Ergo] Goal typed_f_post_qed_ko : Unknown +[wp] [Alt-Ergo] Goal typed_f_ensures_qed_ko : Unknown [wp] Proved goals: 0 / 1 Alt-Ergo: 0 (unknown: 1) [wp] Report 'tests/wp_acsl/type_guard.i.1.report.json' diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/unit_bit_test.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/unit_bit_test.res.oracle index d7e86c63e7d8693f991c8fef5366b7b241c04641..ee02448280b4c73aa34876eb3a4874e1c0502ffe 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/unit_bit_test.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/unit_bit_test.res.oracle @@ -4,10 +4,10 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 4 goals scheduled -[wp] [Qed] Goal typed_rotate_left_post_bit_zero : Valid -[wp] [Alt-Ergo] Goal typed_rotate_left_post_other_bits : Valid -[wp] [Qed] Goal typed_sum_post_ok : Valid -[wp] [Alt-Ergo] Goal typed_sum_post_ko : Unknown +[wp] [Qed] Goal typed_rotate_left_ensures_bit_zero : Valid +[wp] [Alt-Ergo] Goal typed_rotate_left_ensures_other_bits : Valid +[wp] [Qed] Goal typed_sum_ensures_ok : Valid +[wp] [Alt-Ergo] Goal typed_sum_ensures_ko : Unknown [wp] Proved goals: 3 / 4 Qed: 2 Alt-Ergo: 1 (unknown: 1) @@ -15,5 +15,5 @@ ------------------------------------------------------------- Functions WP Alt-Ergo Total Success sum 1 - 2 50.0% -rotate_left 1 1 (44..56) 2 100% +rotate_left 1 1 (48..60) 2 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/user_def_type_guard.0.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/user_def_type_guard.0.res.oracle index 1f5420c4053fa980ede1d4ea9050af8a1d59606f..e3c4552cbe9e0350037d723724eb26bf370a4e81 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/user_def_type_guard.0.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/user_def_type_guard.0.res.oracle @@ -4,7 +4,7 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled -[wp] [Alt-Ergo] Goal typed_f_post_qed_ok : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_qed_ok : Valid [wp] Proved goals: 1 / 1 Qed: 0 Alt-Ergo: 1 diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/user_def_type_guard.1.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/user_def_type_guard.1.res.oracle index 4295e2a6211fcbc7d2b230b393e4f0bd2df74e2b..25a1b0cae037d1c7fb6fdbbfff453344fa380fc0 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/user_def_type_guard.1.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/user_def_type_guard.1.res.oracle @@ -4,7 +4,7 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled -[wp] [Alt-Ergo] Goal typed_f_post_qed_ko : Unknown +[wp] [Alt-Ergo] Goal typed_f_ensures_qed_ko : Unknown [wp] Proved goals: 0 / 1 Alt-Ergo: 0 (unknown: 1) [wp] Report 'tests/wp_acsl/user_def_type_guard.i.1.report.json' diff --git a/src/plugins/wp/tests/wp_acsl/pointer.i.0.report.json b/src/plugins/wp/tests/wp_acsl/pointer.i.0.report.json index 84a062bbe53b9f468efbf2d33bf8ffdf25666d69..24bc2e2f049ee646bdbf708aa854c519013da8e6 100644 --- a/src/plugins/wp/tests/wp_acsl/pointer.i.0.report.json +++ b/src/plugins/wp/tests/wp_acsl/pointer.i.0.report.json @@ -1,38 +1,38 @@ { "wp:global": { "alt-ergo": { "total": 6, "unknown": 6 }, "qed": { "total": 3, "valid": 3 }, "wp:main": { "total": 9, "valid": 3, "unknown": 6 } }, - "wp:functions": { "array": { "array_post_Eq": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "array_post_Le": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "array_post_Lt": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "array": { "array_ensures_Eq": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "array_ensures_Le": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "array_ensures_Lt": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 3, "valid": 3 }, "wp:main": { "total": 3, "valid": 3 } } }, - "pointer": { "pointer_post_qed_ko_Eq_oracle_ko": + "pointer": { "pointer_ensures_qed_ko_Eq_oracle_ko": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "pointer_post_qed_ko_Le_oracle_ko": + "pointer_ensures_qed_ko_Le_oracle_ko": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 2, "unknown": 2 }, "wp:main": { "total": 2, "unknown": 2 } } }, - "mixed_array_pointer": { "mixed_array_pointer_post_qed_ko_Lt_oracle_ko": + "mixed_array_pointer": { "mixed_array_pointer_ensures_qed_ko_Lt_oracle_ko": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "mixed_array_pointer_post_qed_ko_Le_oracle_ko": + "mixed_array_pointer_ensures_qed_ko_Le_oracle_ko": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, @@ -43,10 +43,10 @@ "wp:main": { "total": 2, "unknown": 2 } } }, - "absurd": { "absurd_post_qed_ko_Comp_oracle_ko": + "absurd": { "absurd_ensures_qed_ko_Comp_oracle_ko": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "absurd_post_qed_ko_Base_oracle_ko": + "absurd_ensures_qed_ko_Base_oracle_ko": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 2, diff --git a/src/plugins/wp/tests/wp_acsl/pointer.i.1.report.json b/src/plugins/wp/tests/wp_acsl/pointer.i.1.report.json index 84a062bbe53b9f468efbf2d33bf8ffdf25666d69..24bc2e2f049ee646bdbf708aa854c519013da8e6 100644 --- a/src/plugins/wp/tests/wp_acsl/pointer.i.1.report.json +++ b/src/plugins/wp/tests/wp_acsl/pointer.i.1.report.json @@ -1,38 +1,38 @@ { "wp:global": { "alt-ergo": { "total": 6, "unknown": 6 }, "qed": { "total": 3, "valid": 3 }, "wp:main": { "total": 9, "valid": 3, "unknown": 6 } }, - "wp:functions": { "array": { "array_post_Eq": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "array_post_Le": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "array_post_Lt": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "array": { "array_ensures_Eq": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "array_ensures_Le": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "array_ensures_Lt": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 3, "valid": 3 }, "wp:main": { "total": 3, "valid": 3 } } }, - "pointer": { "pointer_post_qed_ko_Eq_oracle_ko": + "pointer": { "pointer_ensures_qed_ko_Eq_oracle_ko": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "pointer_post_qed_ko_Le_oracle_ko": + "pointer_ensures_qed_ko_Le_oracle_ko": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 2, "unknown": 2 }, "wp:main": { "total": 2, "unknown": 2 } } }, - "mixed_array_pointer": { "mixed_array_pointer_post_qed_ko_Lt_oracle_ko": + "mixed_array_pointer": { "mixed_array_pointer_ensures_qed_ko_Lt_oracle_ko": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "mixed_array_pointer_post_qed_ko_Le_oracle_ko": + "mixed_array_pointer_ensures_qed_ko_Le_oracle_ko": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, @@ -43,10 +43,10 @@ "wp:main": { "total": 2, "unknown": 2 } } }, - "absurd": { "absurd_post_qed_ko_Comp_oracle_ko": + "absurd": { "absurd_ensures_qed_ko_Comp_oracle_ko": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "absurd_post_qed_ko_Base_oracle_ko": + "absurd_ensures_qed_ko_Base_oracle_ko": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 2, diff --git a/src/plugins/wp/tests/wp_acsl/precedence.i.0.report.json b/src/plugins/wp/tests/wp_acsl/precedence.i.0.report.json index e6f56a33ce42a5132d53ef846fd4e743a142c83e..db09e8ac05f0bb0ebc86fa1be39a1bd8f8333434 100644 --- a/src/plugins/wp/tests/wp_acsl/precedence.i.0.report.json +++ b/src/plugins/wp/tests/wp_acsl/precedence.i.0.report.json @@ -1,117 +1,111 @@ { "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 2 }, "qed": { "total": 51, "valid": 51 }, "wp:main": { "total": 52, "valid": 52, "rank": 2 } }, - "wp:functions": { "predicate": { "predicate_post_r_precedence_ite_naming": + "wp:functions": { "predicate": { "predicate_ensures_r_precedence_ite_naming": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "predicate_post_scope_let_2": { "qed": + "predicate_ensures_scope_let_2": { "qed": { "total": 1, "valid": 1 }, - "wp:main": + "wp:main": { "total": 1, "valid": 1 } }, - "predicate_post_scope_let": { "qed": - { "total": 1, + "predicate_ensures_scope_let": { "qed": + { "total": 1, "valid": 1 }, - "wp:main": - { "total": 1, + "wp:main": + { "total": 1, "valid": 1 } }, - "predicate_post_r_assoc_let": { "qed": + "predicate_ensures_r_assoc_let": { "qed": { "total": 1, "valid": 1 }, - "wp:main": + "wp:main": { "total": 1, "valid": 1 } }, - "predicate_post_l_precedence_ite_let": + "predicate_ensures_l_precedence_ite_let": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "predicate_post_m_precedence_ite_let": + "predicate_ensures_m_precedence_ite_let": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "predicate_post_r_precedence_ite_let": + "predicate_ensures_r_precedence_ite_let": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "predicate_post_r_assoc_exist": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "predicate_post_l_precedence_ite_exists": + "predicate_ensures_r_assoc_exist": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "predicate_post_m_precedence_ite_exists": + "predicate_ensures_l_precedence_ite_exists": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "predicate_post_r_precedence_ite_exists": + "predicate_ensures_m_precedence_ite_exists": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "predicate_post_r_assoc_forall": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "predicate_post_l_precedence_ite_forall": + "predicate_ensures_r_precedence_ite_exists": + { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, + "predicate_ensures_r_assoc_forall": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "predicate_post_m_precedence_ite_forall": + "predicate_ensures_l_precedence_ite_forall": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "predicate_post_r_precedence_ite_forall": + "predicate_ensures_m_precedence_ite_forall": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "predicate_post_r_assoc_ite": { "qed": + "predicate_ensures_r_precedence_ite_forall": + { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, + "predicate_ensures_r_assoc_ite": { "qed": { "total": 1, "valid": 1 }, - "wp:main": + "wp:main": { "total": 1, "valid": 1 } }, - "predicate_post_l_precedence_equiv_ite": + "predicate_ensures_l_precedence_equiv_ite": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "predicate_post_m_precedence_equiv_ite": + "predicate_ensures_m_precedence_equiv_ite": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "predicate_post_r_precedence_equiv_ite": + "predicate_ensures_r_precedence_equiv_ite": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "predicate_post_l_precedence_implies_equiv": + "predicate_ensures_l_precedence_implies_equiv": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "predicate_post_r_precedence_implies_equiv": + "predicate_ensures_r_precedence_implies_equiv": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "predicate_post_r_assoc_implies": + "predicate_ensures_r_assoc_implies": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "predicate_post_ok_since": { "qed": - { "total": 1, + "predicate_ensures_ok_since": { "qed": + { "total": 1, "valid": 1 }, - "wp:main": - { "total": 1, + "wp:main": + { "total": 1, "valid": 1 } }, - "predicate_post_ok_r_precedence_implies_or": + "predicate_ensures_ok_r_precedence_implies_or": { "alt-ergo": { "total": 1, "valid": 1, "rank": 2 }, "wp:main": { "total": 1, "valid": 1, "rank": 2 } }, - "predicate_post_l_precedence_or_implies": + "predicate_ensures_l_precedence_or_implies": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "predicate_post_r_precedence_or_implies": + "predicate_ensures_r_precedence_or_implies": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "predicate_post_l_precedence_xor_or": + "predicate_ensures_l_precedence_xor_or": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "predicate_post_r_precedence_xor_or": + "predicate_ensures_r_precedence_xor_or": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "predicate_post_l_precedence_and_xor": + "predicate_ensures_l_precedence_and_xor": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "predicate_post_r_precedence_and_xor": + "predicate_ensures_r_precedence_and_xor": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, @@ -122,85 +116,86 @@ "wp:main": { "total": 30, "valid": 30, "rank": 2 } } }, - "comparison": { "comparison_post_l_precedence_neq_and": + "comparison": { "comparison_ensures_l_precedence_neq_and": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "comparison_post_r_precedence_neq_and": + "comparison_ensures_r_precedence_neq_and": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "comparison_post_l_precedence_eq_and": + "comparison_ensures_l_precedence_eq_and": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "comparison_post_r_precedence_eq_and": + "comparison_ensures_r_precedence_eq_and": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "comparison_post_chainable_eq_eq": + "comparison_ensures_chainable_eq_eq": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "comparison_post_chainable_ge_ge": + "comparison_ensures_chainable_ge_ge": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "comparison_post_chainable_gt_gt": + "comparison_ensures_chainable_gt_gt": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "comparison_post_chainable_le_le": + "comparison_ensures_chainable_le_le": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "comparison_post_chainable_lt_lt": + "comparison_ensures_chainable_lt_lt": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, "wp:section": { "qed": { "total": 9, "valid": 9 }, "wp:main": { "total": 9, "valid": 9 } } }, - "bitwise": { "bitwise_post_l_precedence_implies_equiv": + "bitwise": { "bitwise_ensures_l_precedence_implies_equiv": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "bitwise_post_r_precedence_implies_equiv": + "bitwise_ensures_r_precedence_implies_equiv": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "bitwise_post_r_assoc_implies": { "qed": + "bitwise_ensures_r_assoc_implies": { "qed": { "total": 1, "valid": 1 }, - "wp:main": + "wp:main": { "total": 1, "valid": 1 } }, - "bitwise_post_ok_since": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "bitwise_post_ok_r_precedence_implies_or": + "bitwise_ensures_ok_since": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "bitwise_ensures_ok_r_precedence_implies_or": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "bitwise_post_l_precedence_or_implies": + "bitwise_ensures_l_precedence_or_implies": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "bitwise_post_r_precedence_or_implies": + "bitwise_ensures_r_precedence_or_implies": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "bitwise_post_l_precedence_xor_or": + "bitwise_ensures_l_precedence_xor_or": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "bitwise_post_r_precedence_xor_or": + "bitwise_ensures_r_precedence_xor_or": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "bitwise_post_l_precedence_and_xor": + "bitwise_ensures_l_precedence_and_xor": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "bitwise_post_r_precedence_and_xor": + "bitwise_ensures_r_precedence_and_xor": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, "wp:section": { "qed": { "total": 11, "valid": 11 }, "wp:main": { "total": 11, "valid": 11 } } }, - "predicate_bitwise": { "predicate_bitwise_post_l_precedence_equiv_Pand": + "predicate_bitwise": { "predicate_bitwise_ensures_l_precedence_equiv_Pand": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "predicate_bitwise_post_r_precedence_equiv_Pand": + "predicate_bitwise_ensures_r_precedence_equiv_Pand": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, diff --git a/src/plugins/wp/tests/wp_acsl/precedence.i.1.report.json b/src/plugins/wp/tests/wp_acsl/precedence.i.1.report.json index f4ee809d7dcb9c42b674bb7cf680480c684e0e7f..47bc323909bc169c81bdfa3e75ab33a9d4e89e85 100644 --- a/src/plugins/wp/tests/wp_acsl/precedence.i.1.report.json +++ b/src/plugins/wp/tests/wp_acsl/precedence.i.1.report.json @@ -1,117 +1,116 @@ { "wp:global": { "alt-ergo": { "total": 37, "unknown": 37 }, "wp:main": { "total": 37, "unknown": 37 } }, - "wp:functions": { "predicate": { "predicate_post_ko_l_assoc_naming": + "wp:functions": { "predicate": { "predicate_ensures_ko_l_assoc_naming": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "predicate_post_ko_l_precedence_let_ite": + "predicate_ensures_ko_l_precedence_let_ite": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "predicate_post_ko_m_precedence_let_ite": + "predicate_ensures_ko_m_precedence_let_ite": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "predicate_post_ko_r_precedence_let_ite": + "predicate_ensures_ko_r_precedence_let_ite": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "predicate_post_ko_r_assoc_exist": + "predicate_ensures_ko_r_assoc_exist": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "predicate_post_ko_l_precedence_exists_ite": + "predicate_ensures_ko_l_precedence_exists_ite": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "predicate_post_ko_m_precedence_exists_ite": + "predicate_ensures_ko_m_precedence_exists_ite": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "predicate_post_ko_r_precedence_exists_ite": + "predicate_ensures_ko_r_precedence_exists_ite": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "predicate_post_ko_r_assoc_forall": + "predicate_ensures_ko_r_assoc_forall": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "predicate_post_ko_l_precedence_forall_ite": + "predicate_ensures_ko_l_precedence_forall_ite": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "predicate_post_ko_m_precedence_forall_ite": + "predicate_ensures_ko_m_precedence_forall_ite": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "predicate_post_ko_r_precedence_forall_ite": + "predicate_ensures_ko_r_precedence_forall_ite": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "predicate_post_ko_l_assoc_ite": { "alt-ergo": - { "total": 1, - "unknown": 1 }, - "wp:main": - { "total": 1, - "unknown": 1 } }, - "predicate_post_ko_l_precedence_ite_equiv": + "predicate_ensures_ko_l_assoc_ite": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "predicate_post_ko_r_precedence_ite_equiv": + "predicate_ensures_ko_l_precedence_ite_equiv": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "predicate_post_ko_l_precedence_equiv_implies": + "predicate_ensures_ko_r_precedence_ite_equiv": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "predicate_post_ko_r_precedence_equiv_implies": + "predicate_ensures_ko_l_precedence_equiv_implies": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "predicate_post_ko_l_assoc_implies": + "predicate_ensures_ko_r_precedence_equiv_implies": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "predicate_post_ko_l_precedence_implies_or": + "predicate_ensures_ko_l_assoc_implies": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "predicate_post_ko_r_precedence_or_xor": + "predicate_ensures_ko_l_precedence_implies_or": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "predicate_post_ko_l_precedence_or_xor": + "predicate_ensures_ko_r_precedence_or_xor": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "predicate_post_ko_r_precedence_xor_and": + "predicate_ensures_ko_l_precedence_or_xor": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "predicate_post_ko_l_precedence_xor_and": + "predicate_ensures_ko_r_precedence_xor_and": + { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, + "predicate_ensures_ko_l_precedence_xor_and": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, @@ -120,32 +119,32 @@ "unknown": 23 }, "wp:main": { "total": 23, "unknown": 23 } } }, - "comparison": { "comparison_post_ko_l_precedence_and_neq": + "comparison": { "comparison_ensures_ko_l_precedence_and_neq": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "comparison_post_ko_r_precedence_and_neq": + "comparison_ensures_ko_r_precedence_and_neq": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "comparison_post_ko_r_nonassoc_eq": + "comparison_ensures_ko_r_nonassoc_eq": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "comparison_post_ko_l_nonassoc_eq": + "comparison_ensures_ko_l_nonassoc_eq": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "comparison_post_ko_l_precedence_and_eq": + "comparison_ensures_ko_l_precedence_and_eq": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "comparison_post_ko_r_precedence_and_eq": + "comparison_ensures_ko_r_precedence_and_eq": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, @@ -154,31 +153,28 @@ "unknown": 6 }, "wp:main": { "total": 6, "unknown": 6 } } }, - "bitwise": { "bitwise_post_ko_l_precedence_equiv_implies": + "bitwise": { "bitwise_ensures_ko_l_precedence_equiv_implies": + { "alt-ergo": { "total": 1, "unknown": 1 }, + "wp:main": { "total": 1, "unknown": 1 } }, + "bitwise_ensures_ko_r_precedence_equiv_implies": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "bitwise_post_ko_r_precedence_equiv_implies": + "bitwise_ensures_ko_l_assoc_implies": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "bitwise_post_ko_l_assoc_implies": { "alt-ergo": - { "total": 1, - "unknown": 1 }, - "wp:main": - { "total": 1, - "unknown": 1 } }, - "bitwise_post_ko_l_precedence_implies_or": + "bitwise_ensures_ko_l_precedence_implies_or": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "bitwise_post_ko_r_precedence_or_xor": + "bitwise_ensures_ko_r_precedence_or_xor": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "bitwise_post_ko_l_precedence_or_xor": + "bitwise_ensures_ko_l_precedence_or_xor": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "bitwise_post_ko_r_precedence_xor_and": + "bitwise_ensures_ko_r_precedence_xor_and": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "bitwise_post_ko_l_precedence_xor_and": + "bitwise_ensures_ko_l_precedence_xor_and": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 8, diff --git a/src/plugins/wp/tests/wp_acsl/range.i.0.report.json b/src/plugins/wp/tests/wp_acsl/range.i.0.report.json index 8c826553edf4f3838808c7a0b7ba2b3bd8cab80c..d2f9a6999e9c03657fb5523f99bafc0a85eefb0f 100644 --- a/src/plugins/wp/tests/wp_acsl/range.i.0.report.json +++ b/src/plugins/wp/tests/wp_acsl/range.i.0.report.json @@ -1,19 +1,25 @@ { "wp:global": { "qed": { "total": 4, "valid": 4 }, "wp:main": { "total": 4, "valid": 4 } }, - "wp:functions": { "test": { "specialization_val_assigns_q_pre_HQ_ok_at_test_stmt_2": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "specialization_val_assigns_p_pre_HP_ok_at_test_stmt_1": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "test_post_P2_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "test_post_P1_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "test": { "val_assigns_q_requires_HQ_ok": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "val_assigns_p_requires_HP_ok": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "test_ensures_P2_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "test_ensures_P1_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 4, "valid": 4 }, "wp:main": { "total": 4, diff --git a/src/plugins/wp/tests/wp_acsl/reads.i.0.report.json b/src/plugins/wp/tests/wp_acsl/reads.i.0.report.json index f94728bb3726fd7c91bb967d9ca076fe1d0d1559..1cf27c3b07a3485d1473914e6544469b28ba09ee 100644 --- a/src/plugins/wp/tests/wp_acsl/reads.i.0.report.json +++ b/src/plugins/wp/tests/wp_acsl/reads.i.0.report.json @@ -1,49 +1,43 @@ { "wp:global": { "alt-ergo": { "total": 4, "valid": 2, "unknown": 2, - "rank": 5 }, + "rank": 6 }, "qed": { "total": 3, "valid": 3 }, "wp:main": { "total": 7, "valid": 5, "unknown": 2, - "rank": 5 } }, - "wp:functions": { "f": { "f_post_qed_ok": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 3 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 3 } }, + "rank": 6 } }, + "wp:functions": { "f": { "f_ensures_qed_ok": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 4 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 4 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "wp:main": { "total": 1, "valid": 1, - "rank": 3 } } }, - "g": { "g_post_qed_ok": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 5 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 5 } }, + "rank": 4 } } }, + "g": { "g_ensures_qed_ok": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 6 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 6 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 5 }, + "rank": 6 }, "wp:main": { "total": 1, "valid": 1, - "rank": 5 } } }, - "modifies_y": { "modifies_y_post_qed_ok_W_OK_todo": + "rank": 6 } } }, + "modifies_y": { "modifies_y_ensures_qed_ok_W_OK_todo": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "modifies_y_post_qed_ok_G_OK": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "modifies_y_post_qed_ok_F_OK": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "modifies_y_ensures_qed_ok_G_OK": + { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, + "modifies_y_ensures_qed_ok_F_OK": + { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "qed": { "total": 2, @@ -51,17 +45,14 @@ "wp:main": { "total": 3, "valid": 2, "unknown": 1 } } }, - "modifies_x": { "modifies_x_post_qed_ok_W_OK_todo": + "modifies_x": { "modifies_x_ensures_qed_ok_W_OK_todo": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "modifies_x_post_qed_ok_F_OK": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "modifies_x_ensures_qed_ok_F_OK": + { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "qed": { "total": 1, diff --git a/src/plugins/wp/tests/wp_acsl/reads.i.1.report.json b/src/plugins/wp/tests/wp_acsl/reads.i.1.report.json index f4ac0417345e052a2ad213c9e4446977997fd652..f145905f3f1bb235dd361b41335a53c980721505 100644 --- a/src/plugins/wp/tests/wp_acsl/reads.i.1.report.json +++ b/src/plugins/wp/tests/wp_acsl/reads.i.1.report.json @@ -1,27 +1,24 @@ { "wp:global": { "alt-ergo": { "total": 3, "unknown": 3 }, "wp:main": { "total": 3, "unknown": 3 } }, - "wp:functions": { "modifies_y": { "modifies_y_post_qed_ko_H_KO": { "alt-ergo": - { "total": 1, - "unknown": 1 }, - "wp:main": - { "total": 1, - "unknown": 1 } }, + "wp:functions": { "modifies_y": { "modifies_y_ensures_qed_ko_H_KO": + { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } } }, - "modifies_x": { "modifies_x_post_qed_ko_H_KO": { "alt-ergo": - { "total": 1, - "unknown": 1 }, - "wp:main": - { "total": 1, - "unknown": 1 } }, - "modifies_x_post_qed_ko_G_KO": { "alt-ergo": - { "total": 1, - "unknown": 1 }, - "wp:main": - { "total": 1, - "unknown": 1 } }, + "modifies_x": { "modifies_x_ensures_qed_ko_H_KO": + { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, + "modifies_x_ensures_qed_ko_G_KO": + { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 2, "unknown": 2 }, "wp:main": { "total": 2, diff --git a/src/plugins/wp/tests/wp_acsl/record.i.0.report.json b/src/plugins/wp/tests/wp_acsl/record.i.0.report.json index 9088827e1204b21214c522863bc94621babe2eda..9b9a9693c3054b91ddd8401b4698d45450a429da 100644 --- a/src/plugins/wp/tests/wp_acsl/record.i.0.report.json +++ b/src/plugins/wp/tests/wp_acsl/record.i.0.report.json @@ -1,58 +1,58 @@ -{ "wp:global": { "alt-ergo": { "total": 2, "valid": 2, "rank": 3 }, +{ "wp:global": { "alt-ergo": { "total": 2, "valid": 2, "rank": 4 }, "qed": { "total": 9, "valid": 9 }, - "wp:main": { "total": 11, "valid": 11, "rank": 3 } }, - "wp:functions": { "f": { "f_post_P5_qed_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_P4_qed_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_P3_qed_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_P2_qed_ok": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 3 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 3 } }, - "f_post_P1_qed_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_M6_qed_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_M5_qed_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_M4_qed_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_M3_qed_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_M2_qed_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_M1_qed_ok": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 3 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 3 } }, + "wp:main": { "total": 11, "valid": 11, "rank": 4 } }, + "wp:functions": { "f": { "f_ensures_P5_qed_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_P4_qed_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_P3_qed_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_P2_qed_ok": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 4 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 4 } }, + "f_ensures_P1_qed_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_M6_qed_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_M5_qed_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_M4_qed_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_M3_qed_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_M2_qed_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_M1_qed_ok": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 3 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 3 } }, "wp:section": { "alt-ergo": { "total": 2, "valid": 2, - "rank": 3 }, + "rank": 4 }, "qed": { "total": 9, "valid": 9 }, "wp:main": { "total": 11, "valid": 11, - "rank": 3 } } } } } + "rank": 4 } } } } } diff --git a/src/plugins/wp/tests/wp_acsl/record.i.1.report.json b/src/plugins/wp/tests/wp_acsl/record.i.1.report.json index cb6c705d66e39d531179b6c6e67dfc466d62534d..51e5dfebbb711da48275cf971ae5002909811134 100644 --- a/src/plugins/wp/tests/wp_acsl/record.i.1.report.json +++ b/src/plugins/wp/tests/wp_acsl/record.i.1.report.json @@ -1,9 +1,9 @@ { "wp:global": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "wp:functions": { "f": { "f_post_KP5_qed_ko": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, + "wp:functions": { "f": { "f_ensures_KP5_qed_ko": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, diff --git a/src/plugins/wp/tests/wp_acsl/simpl_is_type.i.0.report.json b/src/plugins/wp/tests/wp_acsl/simpl_is_type.i.0.report.json index d38e69542c69f1b4a84bb4639d1e59834a9094f5..d07adcf774b224f941c13beee90765584afdb8a1 100644 --- a/src/plugins/wp/tests/wp_acsl/simpl_is_type.i.0.report.json +++ b/src/plugins/wp/tests/wp_acsl/simpl_is_type.i.0.report.json @@ -1,39 +1,42 @@ { "wp:global": { "alt-ergo": { "total": 9, "valid": 9, "rank": 20 }, "qed": { "total": 6, "valid": 6 }, "wp:main": { "total": 15, "valid": 15, "rank": 20 } }, - "wp:functions": { "f": { "f_loop_inv_3": { "alt-ergo": { "total": 2, - "valid": 2, - "rank": 20 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 20 } }, - "f_loop_inv_2": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 14 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 14 } }, - "f_loop_inv": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 4 }, - "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 4 } }, - "f_loop_assign": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 19 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 19 } }, - "f_post": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 5 }, - "wp:main": { "total": 1, "valid": 1, - "rank": 5 } }, + "wp:functions": { "f": { "f_loop_invariant_3": { "alt-ergo": { "total": 2, + "valid": 2, + "rank": 20 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 20 } }, + "f_loop_invariant_2": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 15 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 15 } }, + "f_loop_invariant": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 4 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 4 } }, + "f_loop_assigns": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 19 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 19 } }, + "f_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 6 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 6 } }, "wp:section": { "alt-ergo": { "total": 6, "valid": 6, "rank": 20 }, @@ -41,33 +44,36 @@ "wp:main": { "total": 9, "valid": 9, "rank": 20 } } }, - "g": { "g_loop_inv_2": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 9 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 9 } }, - "g_loop_inv": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 4 }, - "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 4 } }, - "g_loop_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "g_post": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 6 }, - "wp:main": { "total": 1, "valid": 1, - "rank": 6 } }, + "g": { "g_loop_invariant_2": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 9 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 9 } }, + "g_loop_invariant": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 4 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 4 } }, + "g_loop_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "g_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 7 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 7 } }, "wp:section": { "alt-ergo": { "total": 3, "valid": 3, - "rank": 9 }, + "rank": 10 }, "qed": { "total": 3, "valid": 3 }, "wp:main": { "total": 6, "valid": 6, - "rank": 9 } } } } } + "rank": 10 } } } } } diff --git a/src/plugins/wp/tests/wp_acsl/struct_use_case.i.0.report.json b/src/plugins/wp/tests/wp_acsl/struct_use_case.i.0.report.json index 9c63f9c8cb36650f0966a0ebfa79d7cb96b2383e..aaae37ff8f878420384af3259e3bfb78d22109dd 100644 --- a/src/plugins/wp/tests/wp_acsl/struct_use_case.i.0.report.json +++ b/src/plugins/wp/tests/wp_acsl/struct_use_case.i.0.report.json @@ -1,21 +1,22 @@ -{ "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 4 }, +{ "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 5 }, "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 2, "valid": 2, "rank": 4 } }, - "wp:functions": { "f": { "f_post_ok": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 4 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 4 } }, + "wp:main": { "total": 2, "valid": 2, "rank": 5 } }, + "wp:functions": { "f": { "f_ensures_ok": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 5 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 5 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 4 }, + "rank": 5 }, "wp:main": { "total": 1, "valid": 1, - "rank": 4 } } }, - "g": { "g_post_ok": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "rank": 5 } } }, + "g": { "g_ensures_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } } } } diff --git a/src/plugins/wp/tests/wp_acsl/struct_use_case.i.1.report.json b/src/plugins/wp/tests/wp_acsl/struct_use_case.i.1.report.json index 94840d490cdf280942961010b08c1ce7db56ac7b..6b4d6768aebd25c56a7bf0771169de61d601e9ff 100644 --- a/src/plugins/wp/tests/wp_acsl/struct_use_case.i.1.report.json +++ b/src/plugins/wp/tests/wp_acsl/struct_use_case.i.1.report.json @@ -1,17 +1,17 @@ { "wp:global": { "alt-ergo": { "total": 2, "unknown": 2 }, "wp:main": { "total": 2, "unknown": 2 } }, - "wp:functions": { "f": { "f_post_ko": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, + "wp:functions": { "f": { "f_ensures_ko": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } } }, - "g": { "g_post_ko": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, + "g": { "g_ensures_ko": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, diff --git a/src/plugins/wp/tests/wp_acsl/type_guard.i.0.report.json b/src/plugins/wp/tests/wp_acsl/type_guard.i.0.report.json index fb064203528e5eee25162196cbba807898464150..0618799784165be7c5a9c17185f4d7324684eaef 100644 --- a/src/plugins/wp/tests/wp_acsl/type_guard.i.0.report.json +++ b/src/plugins/wp/tests/wp_acsl/type_guard.i.0.report.json @@ -1,11 +1,11 @@ { "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 4 }, "wp:main": { "total": 1, "valid": 1, "rank": 4 } }, - "wp:functions": { "f": { "f_post_qed_ok": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 4 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 4 } }, + "wp:functions": { "f": { "f_ensures_qed_ok": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 4 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 4 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, "rank": 4 }, diff --git a/src/plugins/wp/tests/wp_acsl/type_guard.i.1.report.json b/src/plugins/wp/tests/wp_acsl/type_guard.i.1.report.json index 4610ea6500e483923af7be7db0f4a28e975cc4b2..2bc163cf605feecdbd36d9f76487a13ff5787b88 100644 --- a/src/plugins/wp/tests/wp_acsl/type_guard.i.1.report.json +++ b/src/plugins/wp/tests/wp_acsl/type_guard.i.1.report.json @@ -1,9 +1,9 @@ { "wp:global": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "wp:functions": { "f": { "f_post_qed_ko": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, + "wp:functions": { "f": { "f_ensures_qed_ko": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, diff --git a/src/plugins/wp/tests/wp_acsl/unit_bit_test.c.0.report.json b/src/plugins/wp/tests/wp_acsl/unit_bit_test.c.0.report.json index 4cfd17d42d781fa75239484b5f21aef5f83682e6..6c8cdc3f855be7fa51140fe38517e7171e44eb05 100644 --- a/src/plugins/wp/tests/wp_acsl/unit_bit_test.c.0.report.json +++ b/src/plugins/wp/tests/wp_acsl/unit_bit_test.c.0.report.json @@ -1,16 +1,16 @@ { "wp:global": { "alt-ergo": { "total": 2, "valid": 1, "unknown": 1, - "rank": 12 }, + "rank": 13 }, "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 4, "valid": 3, "unknown": 1, - "rank": 12 } }, - "wp:functions": { "sum": { "sum_post_ko": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "sum_post_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "rank": 13 } }, + "wp:functions": { "sum": { "sum_ensures_ko": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, + "sum_ensures_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "qed": { "total": 1, @@ -18,25 +18,21 @@ "wp:main": { "total": 2, "valid": 1, "unknown": 1 } } }, - "rotate_left": { "rotate_left_post_other_bits": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 12 }, - "wp:main": - { "total": 1, - "valid": 1, - "rank": 12 } }, - "rotate_left_post_bit_zero": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "rotate_left": { "rotate_left_ensures_other_bits": + { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 13 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 13 } }, + "rotate_left_ensures_bit_zero": + { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 12 }, + "rank": 13 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 2, "valid": 2, - "rank": 12 } } } } } + "rank": 13 } } } } } diff --git a/src/plugins/wp/tests/wp_acsl/user_def_type_guard.i.0.report.json b/src/plugins/wp/tests/wp_acsl/user_def_type_guard.i.0.report.json index fb064203528e5eee25162196cbba807898464150..0618799784165be7c5a9c17185f4d7324684eaef 100644 --- a/src/plugins/wp/tests/wp_acsl/user_def_type_guard.i.0.report.json +++ b/src/plugins/wp/tests/wp_acsl/user_def_type_guard.i.0.report.json @@ -1,11 +1,11 @@ { "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 4 }, "wp:main": { "total": 1, "valid": 1, "rank": 4 } }, - "wp:functions": { "f": { "f_post_qed_ok": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 4 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 4 } }, + "wp:functions": { "f": { "f_ensures_qed_ok": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 4 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 4 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, "rank": 4 }, diff --git a/src/plugins/wp/tests/wp_acsl/user_def_type_guard.i.1.report.json b/src/plugins/wp/tests/wp_acsl/user_def_type_guard.i.1.report.json index 4610ea6500e483923af7be7db0f4a28e975cc4b2..2bc163cf605feecdbd36d9f76487a13ff5787b88 100644 --- a/src/plugins/wp/tests/wp_acsl/user_def_type_guard.i.1.report.json +++ b/src/plugins/wp/tests/wp_acsl/user_def_type_guard.i.1.report.json @@ -1,9 +1,9 @@ { "wp:global": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "wp:functions": { "f": { "f_post_qed_ko": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, + "wp:functions": { "f": { "f_ensures_qed_ko": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, diff --git a/src/plugins/wp/tests/wp_bts/bts0708.i.0.report.json b/src/plugins/wp/tests/wp_bts/bts0708.i.0.report.json index 27c215485f0ca0b5e26cf2faf090f5fe7d6203ed..9b21c57e6764f83c8106e8bdcba457980dd363e9 100644 --- a/src/plugins/wp/tests/wp_bts/bts0708.i.0.report.json +++ b/src/plugins/wp/tests/wp_bts/bts0708.i.0.report.json @@ -1,15 +1,17 @@ { "wp:global": { "alt-ergo": { "total": 2, "valid": 2, "rank": 2 }, "wp:main": { "total": 2, "valid": 2, "rank": 2 } }, - "wp:functions": { "f": { "f_post_B": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, "valid": 1, - "rank": 2 } }, - "f_post_A": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, "valid": 1, - "rank": 2 } }, + "wp:functions": { "f": { "f_ensures_B": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 2 } }, + "f_ensures_A": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 2 } }, "wp:section": { "alt-ergo": { "total": 2, "valid": 2, "rank": 2 }, diff --git a/src/plugins/wp/tests/wp_bts/bts0843.i.0.report.json b/src/plugins/wp/tests/wp_bts/bts0843.i.0.report.json index 98fac150243c88f138f6b09847411550ae262f18..f84577519767591971bbc20da35fe4f852aae130 100644 --- a/src/plugins/wp/tests/wp_bts/bts0843.i.0.report.json +++ b/src/plugins/wp/tests/wp_bts/bts0843.i.0.report.json @@ -1,24 +1,22 @@ { "wp:global": { "alt-ergo": { "total": 2, "valid": 2, "rank": 3 }, "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 4, "valid": 4, "rank": 3 } }, - "wp:functions": { "f3": { "f3_assign": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "f3": { "f3_assigns": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "g3": { "specialization_f3_pre_at_g3_stmt_4": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "g3_assign": { "alt-ergo": { "total": 2, + "g3": { "f3_requires": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "g3_assigns": { "alt-ergo": { "total": 2, + "valid": 2, + "rank": 3 }, + "wp:main": { "total": 2, "valid": 2, - "rank": 3 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 3 } }, + "rank": 3 } }, "wp:section": { "alt-ergo": { "total": 2, "valid": 2, "rank": 3 }, diff --git a/src/plugins/wp/tests/wp_bts/bts788.i.0.report.json b/src/plugins/wp/tests/wp_bts/bts788.i.0.report.json index 88377a5be5690138764ea88265c25891193ad7c0..b18ac612571ac4ffa33fa11a0c96b7265de6be08 100644 --- a/src/plugins/wp/tests/wp_bts/bts788.i.0.report.json +++ b/src/plugins/wp/tests/wp_bts/bts788.i.0.report.json @@ -1,22 +1,22 @@ { "wp:global": { "alt-ergo": { "total": 2, "valid": 2, "rank": 3 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 3, "valid": 3, "rank": 3 } }, - "wp:functions": { "main": { "main_post_I2": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 3 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 3 } }, - "main_post_I1": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 3 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 3 } }, - "main_post_I0": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "main": { "main_ensures_I2": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 3 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 3 } }, + "main_ensures_I1": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 3 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 3 } }, + "main_ensures_I0": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 2, "valid": 2, "rank": 3 }, diff --git a/src/plugins/wp/tests/wp_bts/bts_1360.i.0.report.json b/src/plugins/wp/tests/wp_bts/bts_1360.i.0.report.json index 6a79ffdefbfbe2beb018b7888d35cb07a7bf0f63..94487efbf272d7019456522624b242efb432604c 100644 --- a/src/plugins/wp/tests/wp_bts/bts_1360.i.0.report.json +++ b/src/plugins/wp/tests/wp_bts/bts_1360.i.0.report.json @@ -14,14 +14,16 @@ "foo_wrong_assert_rte_mem_access": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "foo_wrong_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "foo_wrong_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "foo_wrong_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "foo_wrong_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "qed": { "total": 4, @@ -43,16 +45,18 @@ "rank": 4 }, "wp:main": { "total": 1, "valid": 1, "rank": 4 } }, - "foo_correct_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "foo_correct_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "foo_correct_assigns": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "foo_correct_ensures": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, "rank": 4 }, diff --git a/src/plugins/wp/tests/wp_bts/bts_1462.i.0.report.json b/src/plugins/wp/tests/wp_bts/bts_1462.i.0.report.json index b7594892d85855829ee677051fabf893258ee369..0719103e8bc1d5263f550516f702cf3c0b923272 100644 --- a/src/plugins/wp/tests/wp_bts/bts_1462.i.0.report.json +++ b/src/plugins/wp/tests/wp_bts/bts_1462.i.0.report.json @@ -8,21 +8,26 @@ "rank": 2 }, "wp:main": { "total": 1, "valid": 1, "rank": 2 } }, - "wrong_loop_inv_C": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, - "wrong_loop_inv_B": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, - "wrong_loop_inv_A_KO": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 1, - "unknown": 1 } }, + "wrong_loop_invariant_C": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": + { "total": 2, + "valid": 2 } }, + "wrong_loop_invariant_B": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": + { "total": 2, + "valid": 2 } }, + "wrong_loop_invariant_A_KO": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 2, + "valid": 1, + "unknown": 1 } }, "wrong_assert_for_value": { "alt-ergo": { "total": 1, "valid": 1, @@ -31,10 +36,10 @@ { "total": 1, "valid": 1, "rank": 1 } }, - "wrong_loop_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wrong_loop_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 3, "valid": 2, "unknown": 1, @@ -45,14 +50,14 @@ "valid": 8, "unknown": 1, "rank": 2 } } }, - "local": { "local_loop_inv": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, - "local_loop_assign": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, + "local": { "local_loop_invariant": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, + "local_loop_assigns": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, "wp:section": { "qed": { "total": 4, "valid": 4 }, "wp:main": { "total": 4, diff --git a/src/plugins/wp/tests/wp_bts/bts_1586.i.0.report.json b/src/plugins/wp/tests/wp_bts/bts_1586.i.0.report.json index 9b65d383251243503724bec1e5dbb1df40266956..c8f7254db678407b637fbbd5630ad7138b8d784f 100644 --- a/src/plugins/wp/tests/wp_bts/bts_1586.i.0.report.json +++ b/src/plugins/wp/tests/wp_bts/bts_1586.i.0.report.json @@ -1,7 +1,7 @@ { "wp:global": { "alt-ergo": { "total": 2, "unknown": 2 }, "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 4, "valid": 2, "unknown": 2 } }, - "wp:functions": { "compute_bizarre": { "compute_bizarre_Bizarre_post_TRANS": + "wp:functions": { "compute_bizarre": { "compute_bizarre_Bizarre_ensures_TRANS": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, @@ -10,7 +10,7 @@ "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "compute_normal": { "compute_normal_Normal_post_TRANS": + "compute_normal": { "compute_normal_Normal_ensures_TRANS": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, diff --git a/src/plugins/wp/tests/wp_bts/bts_1588.i.0.report.json b/src/plugins/wp/tests/wp_bts/bts_1588.i.0.report.json index 599915d2f1099c20e57378f12c8b7650869f021d..20f18a7e95a515ebdf59eef3ef5be2c0db1a115a 100644 --- a/src/plugins/wp/tests/wp_bts/bts_1588.i.0.report.json +++ b/src/plugins/wp/tests/wp_bts/bts_1588.i.0.report.json @@ -3,10 +3,10 @@ "wp:functions": { "f": { "f_assert_a1": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "f_loop_inv_l1_2": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, + "f_loop_invariant_l1_2": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, "wp:section": { "qed": { "total": 3, "valid": 3 }, "wp:main": { "total": 3, "valid": 3 } } } } } diff --git a/src/plugins/wp/tests/wp_bts/bts_1601.c.0.report.json b/src/plugins/wp/tests/wp_bts/bts_1601.c.0.report.json index 43baa1f072a617efb65c27d8f4b662a8327e8b92..406e1c61d89ad35e2df5c92b839eec586460153d 100644 --- a/src/plugins/wp/tests/wp_bts/bts_1601.c.0.report.json +++ b/src/plugins/wp/tests/wp_bts/bts_1601.c.0.report.json @@ -1,6 +1,6 @@ -{ "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 4 }, +{ "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 5 }, "qed": { "total": 7, "valid": 7 }, - "wp:main": { "total": 8, "valid": 8, "rank": 4 } }, + "wp:main": { "total": 8, "valid": 8, "rank": 5 } }, "wp:functions": { "foo": { "foo_assert_7": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, @@ -27,19 +27,19 @@ "valid": 1 } }, "foo_assert": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 4 }, + "rank": 5 }, "wp:main": { "total": 1, "valid": 1, - "rank": 4 } }, - "foo_basic_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "rank": 5 } }, + "foo_basic_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 4 }, + "rank": 5 }, "qed": { "total": 7, "valid": 7 }, "wp:main": { "total": 8, "valid": 8, - "rank": 4 } } } } } + "rank": 5 } } } } } diff --git a/src/plugins/wp/tests/wp_bts/bts_1828.i.0.report.json b/src/plugins/wp/tests/wp_bts/bts_1828.i.0.report.json index db6b667f02bcfbfa38ed9f12bbd73782bdd9d252..2e19c0ff7adfbea3e83cdfe089a417b6f604525c 100644 --- a/src/plugins/wp/tests/wp_bts/bts_1828.i.0.report.json +++ b/src/plugins/wp/tests/wp_bts/bts_1828.i.0.report.json @@ -1,22 +1,22 @@ { "wp:global": { "alt-ergo": { "total": 3, "valid": 1, "unknown": 2, - "rank": 1 }, + "rank": 3 }, "qed": { "total": 3, "valid": 3 }, "wp:main": { "total": 6, "valid": 4, "unknown": 2, - "rank": 1 } }, + "rank": 3 } }, "wp:functions": { "local_frame": { "local_frame_assert_ok": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 1 }, + "rank": 3 }, "wp:main": { "total": 1, "valid": 1, - "rank": 1 } }, + "rank": 3 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 1 }, + "rank": 3 }, "wp:main": { "total": 1, "valid": 1, - "rank": 1 } } }, + "rank": 3 } } }, "global_frame": { "global_frame_assert_ok_2": { "qed": { "total": 1, "valid": 1 }, @@ -29,16 +29,16 @@ "wp:main": { "total": 1, "valid": 1 } }, - "global_frame_post_zero_always": + "global_frame_ensures_zero_always": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "global_frame_post_one_iff_ref": + "global_frame_ensures_one_iff_ref": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "global_frame_post_sep_iff_ref": + "global_frame_ensures_sep_iff_ref": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, diff --git a/src/plugins/wp/tests/wp_bts/bts_1828.i.1.report.json b/src/plugins/wp/tests/wp_bts/bts_1828.i.1.report.json index 46519328dff46dbbeb462ab1b6bba198aa1735ef..4df401a00378c91fe19b8cc3c1b21d09785e0fdb 100644 --- a/src/plugins/wp/tests/wp_bts/bts_1828.i.1.report.json +++ b/src/plugins/wp/tests/wp_bts/bts_1828.i.1.report.json @@ -1,20 +1,20 @@ -{ "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 1 }, +{ "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 3 }, "qed": { "total": 5, "valid": 5 }, - "wp:main": { "total": 6, "valid": 6, "rank": 1 } }, + "wp:main": { "total": 6, "valid": 6, "rank": 3 } }, "wp:functions": { "local_frame": { "local_frame_assert_ok": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 1 }, + "rank": 3 }, "wp:main": { "total": 1, "valid": 1, - "rank": 1 } }, + "rank": 3 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 1 }, + "rank": 3 }, "wp:main": { "total": 1, "valid": 1, - "rank": 1 } } }, + "rank": 3 } } }, "global_frame": { "global_frame_assert_ok_2": { "qed": { "total": 1, "valid": 1 }, @@ -27,15 +27,15 @@ "wp:main": { "total": 1, "valid": 1 } }, - "global_frame_post_zero_always": + "global_frame_ensures_zero_always": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "global_frame_post_one_iff_ref": + "global_frame_ensures_one_iff_ref": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "global_frame_post_sep_iff_ref": + "global_frame_ensures_sep_iff_ref": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, diff --git a/src/plugins/wp/tests/wp_bts/bts_2079.i.0.report.json b/src/plugins/wp/tests/wp_bts/bts_2079.i.0.report.json index 91b04794d8fc2b59c8aa87d6ffba87124a3faeec..8cfd69611e5ac5a6ed8fc5814df083844b6d6ce6 100644 --- a/src/plugins/wp/tests/wp_bts/bts_2079.i.0.report.json +++ b/src/plugins/wp/tests/wp_bts/bts_2079.i.0.report.json @@ -1,13 +1,13 @@ { "wp:global": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } }, - "wp:functions": { "main": { "main_post_Eval_Q": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "main_post_Eval_P": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "main": { "main_ensures_Eval_Q": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "main_ensures_Eval_P": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, diff --git a/src/plugins/wp/tests/wp_bts/bts_2159.i.0.report.json b/src/plugins/wp/tests/wp_bts/bts_2159.i.0.report.json index 347952823a27fa01d362e7dd660290022854acda..ed70bf1a3deddc7b7e49837020eda032ac920b4c 100644 --- a/src/plugins/wp/tests/wp_bts/bts_2159.i.0.report.json +++ b/src/plugins/wp/tests/wp_bts/bts_2159.i.0.report.json @@ -1,11 +1,11 @@ { "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 15 }, "wp:main": { "total": 1, "valid": 1, "rank": 15 } }, - "wp:functions": { "job": { "job_post": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 15 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 15 } }, + "wp:functions": { "job": { "job_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 15 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 15 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, "rank": 15 }, diff --git a/src/plugins/wp/tests/wp_bts/ergo_typecheck.i.0.report.json b/src/plugins/wp/tests/wp_bts/ergo_typecheck.i.0.report.json index 0f182e121aaa382e8853679df82b3daff9bc22aa..414c3cf94d8eb41a5b1a4767cdfbacd5c6e2fc60 100644 --- a/src/plugins/wp/tests/wp_bts/ergo_typecheck.i.0.report.json +++ b/src/plugins/wp/tests/wp_bts/ergo_typecheck.i.0.report.json @@ -1,36 +1,36 @@ { "wp:global": { "qed": { "total": 8, "valid": 8 }, "wp:main": { "total": 8, "valid": 8 } }, - "wp:functions": { "f": { "f_assign": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_var_unit4": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_var_unit3": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_var_unit2": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_var_unit1": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_var_unit0": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_var_inline": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_var_divded": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "f": { "f_assigns": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_var_unit4": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_var_unit3": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_var_unit2": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_var_unit1": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_var_unit0": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_var_inline": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_var_divded": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 8, "valid": 8 }, "wp:main": { "total": 8, "valid": 8 } } } } } diff --git a/src/plugins/wp/tests/wp_bts/issue_198.i.0.report.json b/src/plugins/wp/tests/wp_bts/issue_198.i.0.report.json index 0275e393424287f885ce511bcf1055b0939898ff..8add84a6b5d7f48c762f4162d0a1f437623fe410 100644 --- a/src/plugins/wp/tests/wp_bts/issue_198.i.0.report.json +++ b/src/plugins/wp/tests/wp_bts/issue_198.i.0.report.json @@ -1,14 +1,14 @@ -{ "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 1 }, - "wp:main": { "total": 1, "valid": 1, "rank": 1 } }, +{ "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 2 }, + "wp:main": { "total": 1, "valid": 1, "rank": 2 } }, "wp:axiomatics": { "": { "lemma_broken": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 1 }, + "rank": 2 }, "wp:main": { "total": 1, "valid": 1, - "rank": 1 } }, + "rank": 2 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 1 }, + "rank": 2 }, "wp:main": { "total": 1, "valid": 1, - "rank": 1 } } } } } + "rank": 2 } } } } } diff --git a/src/plugins/wp/tests/wp_bts/issue_453.i.0.report.json b/src/plugins/wp/tests/wp_bts/issue_453.i.0.report.json index f2f5e9296957994d1c41554f1adc9c70f3f7fe25..6deccb7f511907d2da384a9fb2bb7691f959eb63 100644 --- a/src/plugins/wp/tests/wp_bts/issue_453.i.0.report.json +++ b/src/plugins/wp/tests/wp_bts/issue_453.i.0.report.json @@ -1,32 +1,30 @@ { "wp:global": { "qed": { "total": 6, "valid": 6 }, "wp:main": { "total": 6, "valid": 6 } }, - "wp:functions": { "f1": { "f1_stmt_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f1_loop_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f1_stmt_post_Sincr": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "f1": { "f1_assigns": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f1_loop_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f1_ensures_Sincr": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 3, "valid": 3 }, "wp:main": { "total": 3, "valid": 3 } } }, - "f2": { "f2_stmt_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f2_loop_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f2_stmt_post_Sincr": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "f2": { "f2_assigns": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f2_loop_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f2_ensures_Sincr": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 3, "valid": 3 }, "wp:main": { "total": 3, "valid": 3 } } } } } diff --git a/src/plugins/wp/tests/wp_bts/issue_494.i.0.report.json b/src/plugins/wp/tests/wp_bts/issue_494.i.0.report.json index 0d7cba60afdf053abe9306b5535bbe1baaa860bd..d2c13e606a02ea298d5cecf7a69d686f94725326 100644 --- a/src/plugins/wp/tests/wp_bts/issue_494.i.0.report.json +++ b/src/plugins/wp/tests/wp_bts/issue_494.i.0.report.json @@ -2,10 +2,12 @@ "rank": 3 }, "wp:main": { "total": 3, "valid": 1, "unknown": 2, "rank": 3 } }, - "wp:functions": { "f": { "f_post": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, - "wp:main": { "total": 1, "valid": 1, - "rank": 3 } }, + "wp:functions": { "f": { "f_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 3 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 3 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, "rank": 3 }, diff --git a/src/plugins/wp/tests/wp_bts/issue_508.c.0.report.json b/src/plugins/wp/tests/wp_bts/issue_508.c.0.report.json index f560b0badc636d31085540dc1622a41f5718bf87..4c75c284f8a45dc0d2ca538514549cbdc3238e7b 100644 --- a/src/plugins/wp/tests/wp_bts/issue_508.c.0.report.json +++ b/src/plugins/wp/tests/wp_bts/issue_508.c.0.report.json @@ -1,14 +1,14 @@ { "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 14 }, "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 3, "valid": 3, "rank": 14 } }, - "wp:functions": { "add": { "add_assign": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 14 }, - "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 3, - "valid": 3, - "rank": 14 } }, + "wp:functions": { "add": { "add_assigns": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 14 }, + "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 3, + "valid": 3, + "rank": 14 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, "rank": 14 }, diff --git a/src/plugins/wp/tests/wp_bts/nupw-bcl-bts1120.i.0.report.json b/src/plugins/wp/tests/wp_bts/nupw-bcl-bts1120.i.0.report.json index d6bedb812b340702a1509a59c9e1f74bf26cdd3f..4c4cf67940252aa7f1e4b328dfa5f41b385fc87f 100644 --- a/src/plugins/wp/tests/wp_bts/nupw-bcl-bts1120.i.0.report.json +++ b/src/plugins/wp/tests/wp_bts/nupw-bcl-bts1120.i.0.report.json @@ -1,25 +1,25 @@ { "wp:global": { "qed": { "total": 8, "valid": 8 }, "wp:main": { "total": 8, "valid": 8 } }, - "wp:functions": { "g": { "g_assign": { "qed": { "total": 4, "valid": 4 }, - "wp:main": { "total": 4, - "valid": 4 } }, - "g_loop_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "g_exit_ok": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "g": { "g_assigns": { "qed": { "total": 4, "valid": 4 }, + "wp:main": { "total": 4, + "valid": 4 } }, + "g_loop_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "g_exits_ok": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 6, "valid": 6 }, "wp:main": { "total": 6, "valid": 6 } } }, - "unreachable_smt_with_contract": { "specialization_f_with_precond_pre_ok_at_unreachable_smt_with_contract_stmt_10": + "unreachable_smt_with_contract": { "f_with_precond_requires_ok": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "unreachable_smt_with_contract_post_ok": + "unreachable_smt_with_contract_ensures_ok": { "qed": { "total": 1, "valid": 1 }, "wp:main": diff --git a/src/plugins/wp/tests/wp_bts/oracle/bts_2110.res.oracle b/src/plugins/wp/tests/wp_bts/oracle/bts_2110.res.oracle index 2b5900b11b1f7a65384e20c101e23e19a203241d..9ca77b0609a0f99d2701bffd22be5ee5f20b4acf 100644 --- a/src/plugins/wp/tests/wp_bts/oracle/bts_2110.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle/bts_2110.res.oracle @@ -5,13 +5,13 @@ [wp] Warning: Missing RTE guards [wp] 2 goals scheduled --------------------------------------------- ---- File 'typed/myMain_stmt_assign.ergo' +--- File 'typed/myMain_assigns.ergo' --------------------------------------------- (* ---------------------------------------------------------- *) (* --- Assigns 'KO' at call 'myRead' (file tests/wp_bts/bts_2110.i, line 36) --- *) (* ---------------------------------------------------------- *) -goal myMain_stmt_assign: +goal myMain_assigns: forall i : int. forall t : int farray. forall t_1 : (addr,int) farray. @@ -82,13 +82,13 @@ predicate IsS2_A(S:S2_A) = is_sint32(S.F2_A_dummy) predicate EqS2_A(S:S2_A, S_1:S2_A) = (S_1.F2_A_dummy) = (S.F2_A_dummy) --------------------------------------------- ---- File 'typed/myMain_post_KO.ergo' +--- File 'typed/myMain_ensures_KO.ergo' --------------------------------------------- (* ---------------------------------------------------------- *) (* --- Post-condition 'KO' in 'myMain' --- *) (* ---------------------------------------------------------- *) -goal myMain_post_KO: +goal myMain_ensures_KO: forall t_1,t : (addr,int) farray. forall a_1,a : addr. let a_2 = Load_S2_A(a_1, t_1) : S2_A in diff --git a/src/plugins/wp/tests/wp_bts/oracle/nupw-bcl-bts1120.res.oracle b/src/plugins/wp/tests/wp_bts/oracle/nupw-bcl-bts1120.res.oracle index b13aeff75c9ead8782c619e090f770f7136b2857..094d64fd5cc15c062e1c9bf26f9235d9517c3538 100644 --- a/src/plugins/wp/tests/wp_bts/oracle/nupw-bcl-bts1120.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle/nupw-bcl-bts1120.res.oracle @@ -6,12 +6,12 @@ [cfg] Forget exits clause of node <blkIn-stmt:26> [wp] tests/wp_bts/nupw-bcl-bts1120.i:54: Warning: [cfg] Forget exits clause of node <blkIn-stmt:26> -[wp] [CFG] Goal unreachable_smt_with_contract_stmt_assign : Valid (Unreachable) -[wp] [CFG] Goal unreachable_smt_with_contract_stmt_exit_ok : Valid (Unreachable) -[wp] [CFG] Goal unreachable_smt_with_contract_stmt_post_ok : Valid (Unreachable) -[wp] [CFG] Goal unreachable_smt_with_contract_stmt_pre_ok : Valid (Unreachable) +[wp] [CFG] Goal unreachable_smt_with_contract_assigns : Valid (Unreachable) +[wp] [CFG] Goal unreachable_smt_with_contract_exits_ok : Valid (Unreachable) +[wp] [CFG] Goal unreachable_smt_with_contract_ensures_ok : Valid (Unreachable) +[wp] [CFG] Goal unreachable_smt_with_contract_requires_ok : Valid (Unreachable) [wp] [CFG] Goal unreachable_smt_with_contract_assert_ok : Valid (Unreachable) -[wp] [CFG] Goal unreachable_smt_with_contract_call_f_with_precond_pre_ok : Valid (Unreachable) +[wp] [CFG] Goal unreachable_smt_with_contract_call_f_with_precond_requires_ok : Valid (Unreachable) [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function cfg_domination_problem diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts0708.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts0708.res.oracle index c189064e79fbeb2b9833a83ddfde2be4c9997dc3..7c13800bcbd80cc30eb3e33e45c258442803897a 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts0708.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts0708.res.oracle @@ -4,7 +4,7 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled -[wp] [Alt-Ergo] Goal typed_f_post_A : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_A : Valid [wp] Proved goals: 1 / 1 Qed: 0 Alt-Ergo: 1 @@ -15,8 +15,8 @@ f - 1 (4..16) 1 100% ------------------------------------------------------------- [wp] Running WP plugin... [wp] 2 goals scheduled -[wp] [Alt-Ergo] Goal typed_f_post_A : Valid -[wp] [Alt-Ergo] Goal typed_f_post_B : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_A : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_B : Valid [wp] Proved goals: 2 / 2 Qed: 0 Alt-Ergo: 2 diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts0843.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts0843.res.oracle index 9afec415109fccc41ffb7759ee0c7a09d4b1c559..a0f8a4094b891dde4708856b9d9314693778c2d0 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts0843.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts0843.res.oracle @@ -4,10 +4,10 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 4 goals scheduled -[wp] [Qed] Goal typed_f3_assign : Valid -[wp] [Alt-Ergo] Goal typed_g3_assign_exit : Valid -[wp] [Alt-Ergo] Goal typed_g3_assign_normal : Valid -[wp] [Qed] Goal typed_g3_call_f3_pre : Valid +[wp] [Qed] Goal typed_f3_assigns : Valid +[wp] [Alt-Ergo] Goal typed_g3_assigns_exit : Valid +[wp] [Alt-Ergo] Goal typed_g3_assigns_normal : Valid +[wp] [Qed] Goal typed_g3_call_f3_requires : Valid [wp] Proved goals: 4 / 4 Qed: 2 Alt-Ergo: 2 diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts788.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts788.res.oracle index 494a0a1dc78a5b0ae770c8b252fcbd76acfff6d2..a85d715c3e10b2255d810a9265e8cc28f6b25a69 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts788.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts788.res.oracle @@ -4,9 +4,9 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 3 goals scheduled -[wp] [Qed] Goal typed_ref_main_post_I0 : Valid -[wp] [Alt-Ergo] Goal typed_ref_main_post_I1 : Valid -[wp] [Alt-Ergo] Goal typed_ref_main_post_I2 : Valid +[wp] [Qed] Goal typed_ref_main_ensures_I0 : Valid +[wp] [Alt-Ergo] Goal typed_ref_main_ensures_I1 : Valid +[wp] [Alt-Ergo] Goal typed_ref_main_ensures_I2 : Valid [wp] Proved goals: 3 / 3 Qed: 1 Alt-Ergo: 2 diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1360.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1360.res.oracle index df7117a225383f6a525440c1c97ddeceae063236..286ecc0a8dee3fb7dba30c53a896e206bf001fc9 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1360.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1360.res.oracle @@ -5,16 +5,16 @@ [rte] annotating function foo_correct [rte] annotating function foo_wrong [wp] 10 goals scheduled -[wp] [Qed] Goal typed_foo_correct_post : Valid +[wp] [Qed] Goal typed_foo_correct_ensures : Valid [wp] [Alt-Ergo] Goal typed_foo_correct_assert_rte_mem_access : Valid [wp] [Qed] Goal typed_foo_correct_assert_rte_mem_access_2 : Valid [wp] [Qed] Goal typed_foo_correct_assert_rte_mem_access_3 : Valid -[wp] [Qed] Goal typed_foo_correct_assign : Valid -[wp] [Qed] Goal typed_foo_wrong_post : Valid +[wp] [Qed] Goal typed_foo_correct_assigns : Valid +[wp] [Qed] Goal typed_foo_wrong_ensures : Valid [wp] [Qed] Goal typed_foo_wrong_assert_rte_mem_access : Valid [wp] [Qed] Goal typed_foo_wrong_assert_rte_mem_access_2 : Valid [wp] [Alt-Ergo] Goal typed_foo_wrong_assert_rte_mem_access_3 : Unknown -[wp] [Qed] Goal typed_foo_wrong_assign : Valid +[wp] [Qed] Goal typed_foo_wrong_assigns : Valid [wp] Proved goals: 9 / 10 Qed: 8 Alt-Ergo: 1 (unknown: 1) diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1462.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1462.res.oracle index e0d6ae4d84a66b2865261f2e280f083a463279b9..fcbb90261d3d8c3ab690bfc37fec3a81edc9ac22 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1462.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1462.res.oracle @@ -4,19 +4,19 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 13 goals scheduled -[wp] [Qed] Goal typed_local_loop_inv_preserved : Valid -[wp] [Qed] Goal typed_local_loop_inv_established : Valid -[wp] [Qed] Goal typed_local_loop_assign_part1 : Valid -[wp] [Qed] Goal typed_local_loop_assign_part2 : Valid +[wp] [Qed] Goal typed_local_loop_invariant_preserved : Valid +[wp] [Qed] Goal typed_local_loop_invariant_established : Valid +[wp] [Qed] Goal typed_local_loop_assigns_part1 : Valid +[wp] [Qed] Goal typed_local_loop_assigns_part2 : Valid [wp] [Alt-Ergo] Goal typed_wrong_assert_for_value : Valid -[wp] [Alt-Ergo] Goal typed_wrong_loop_inv_A_KO_preserved : Unknown -[wp] [Qed] Goal typed_wrong_loop_inv_A_KO_established : Valid -[wp] [Qed] Goal typed_wrong_loop_inv_B_preserved : Valid -[wp] [Qed] Goal typed_wrong_loop_inv_B_established : Valid -[wp] [Qed] Goal typed_wrong_loop_inv_C_preserved : Valid -[wp] [Qed] Goal typed_wrong_loop_inv_C_established : Valid +[wp] [Alt-Ergo] Goal typed_wrong_loop_invariant_A_KO_preserved : Unknown +[wp] [Qed] Goal typed_wrong_loop_invariant_A_KO_established : Valid +[wp] [Qed] Goal typed_wrong_loop_invariant_B_preserved : Valid +[wp] [Qed] Goal typed_wrong_loop_invariant_B_established : Valid +[wp] [Qed] Goal typed_wrong_loop_invariant_C_preserved : Valid +[wp] [Qed] Goal typed_wrong_loop_invariant_C_established : Valid [wp] [Alt-Ergo] Goal typed_wrong_assert_consequence_of_false_invariant : Valid -[wp] [Qed] Goal typed_wrong_loop_assign : Valid +[wp] [Qed] Goal typed_wrong_loop_assigns : Valid [wp] Proved goals: 12 / 13 Qed: 10 Alt-Ergo: 2 (unknown: 1) diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1586.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1586.res.oracle index c6dc535715192dd6d8dc57aa4755b27c88ab9854..2dd381f40d3f750773b19857a69fc1372df87e55 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1586.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1586.res.oracle @@ -4,8 +4,8 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 4 goals scheduled -[wp] [Qed] Goal typed_compute_bizarre_Bizarre_post_TRANS : Valid -[wp] [Qed] Goal typed_compute_normal_Normal_post_TRANS : Valid +[wp] [Qed] Goal typed_compute_bizarre_Bizarre_ensures_TRANS : Valid +[wp] [Qed] Goal typed_compute_normal_Normal_ensures_TRANS : Valid [wp] [Alt-Ergo] Goal typed_main_bizarre_KO_assert_FALSE : Unknown [wp] [Alt-Ergo] Goal typed_main_normal_KO_assert_FALSE : Unknown [wp] Proved goals: 2 / 4 diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1588.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1588.res.oracle index 21d7b22fe7f1119d4e75af13d3481dcbe3c01424..6a9e1f868ab48a70637f17c7d4da18ed230d449f 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1588.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1588.res.oracle @@ -8,8 +8,8 @@ [wp] tests/wp_bts/bts_1588.i:5: Warning: Missing assigns clause (assigns 'everything' instead) [wp] 3 goals scheduled -[wp] [Qed] Goal typed_f_loop_inv_l1_2_preserved : Valid -[wp] [Qed] Goal typed_f_loop_inv_l1_2_established : Valid +[wp] [Qed] Goal typed_f_loop_invariant_l1_2_preserved : Valid +[wp] [Qed] Goal typed_f_loop_invariant_l1_2_established : Valid [wp] [Qed] Goal typed_f_assert_a1 : Valid [wp] Proved goals: 3 / 3 Qed: 3 diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1601.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1601.res.oracle index cbeaaa512abdc92f2b4dd7e7eeaf7142b02da934..8ab82c08dc1961b269d2d78d86397a7c496ce66f 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1601.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1601.res.oracle @@ -11,12 +11,12 @@ [wp] [Qed] Goal typed_foo_assert_5 : Valid [wp] [Qed] Goal typed_foo_assert_6 : Valid [wp] [Qed] Goal typed_foo_assert_7 : Valid -[wp] [Qed] Goal typed_foo_basic_post : Valid +[wp] [Qed] Goal typed_foo_basic_ensures : Valid [wp] Proved goals: 8 / 8 Qed: 7 Alt-Ergo: 1 [wp] Report 'tests/wp_bts/bts_1601.c.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -foo 7 1 (12..24) 8 100% +foo 7 1 (16..28) 8 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1828.0.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1828.0.res.oracle index daac899dba8e1ebd61023923a86bb93f77d98a22..d9d788c7c7b07fb0911308c1b3170d9051a90d17 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1828.0.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1828.0.res.oracle @@ -4,9 +4,9 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 6 goals scheduled -[wp] [Alt-Ergo] Goal typed_global_frame_post_sep_iff_ref : Unknown -[wp] [Alt-Ergo] Goal typed_global_frame_post_one_iff_ref : Unknown -[wp] [Qed] Goal typed_global_frame_post_zero_always : Valid +[wp] [Alt-Ergo] Goal typed_global_frame_ensures_sep_iff_ref : Unknown +[wp] [Alt-Ergo] Goal typed_global_frame_ensures_one_iff_ref : Unknown +[wp] [Qed] Goal typed_global_frame_ensures_zero_always : Valid [wp] [Qed] Goal typed_global_frame_assert_ok : Valid [wp] [Qed] Goal typed_global_frame_assert_ok_2 : Valid [wp] [Alt-Ergo] Goal typed_local_frame_assert_ok : Valid @@ -16,7 +16,7 @@ [wp] Report 'tests/wp_bts/bts_1828.i.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -local_frame - 1 (1..12) 1 100% +local_frame - 1 (8..20) 1 100% global_frame 3 - 5 60.0% ------------------------------------------------------------- [wp] Warning: Memory model hypotheses for function 'global_frame': diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1828.1.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1828.1.res.oracle index 9bfc329b04f3bceac5f7cb718e76edf85fb4f0f3..c751f5eeda12d3bbc8a6df3537a65426a0f122a0 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1828.1.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1828.1.res.oracle @@ -4,9 +4,9 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 6 goals scheduled -[wp] [Qed] Goal typed_ref_global_frame_post_sep_iff_ref : Valid -[wp] [Qed] Goal typed_ref_global_frame_post_one_iff_ref : Valid -[wp] [Qed] Goal typed_ref_global_frame_post_zero_always : Valid +[wp] [Qed] Goal typed_ref_global_frame_ensures_sep_iff_ref : Valid +[wp] [Qed] Goal typed_ref_global_frame_ensures_one_iff_ref : Valid +[wp] [Qed] Goal typed_ref_global_frame_ensures_zero_always : Valid [wp] [Qed] Goal typed_ref_global_frame_assert_ok : Valid [wp] [Qed] Goal typed_ref_global_frame_assert_ok_2 : Valid [wp] [Alt-Ergo] Goal typed_ref_local_frame_assert_ok : Valid @@ -16,7 +16,7 @@ [wp] Report 'tests/wp_bts/bts_1828.i.1.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -local_frame - 1 (1..12) 1 100% +local_frame - 1 (8..20) 1 100% global_frame 5 - 5 100% ------------------------------------------------------------- [wp] Warning: Memory model hypotheses for function 'global_frame': diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_2079.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_2079.res.oracle index 3ba5702535af18f419b1d86a6f840deb6f64bae9..1677f2005a81d60cebb275c80788ae36d70017ed 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_2079.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_2079.res.oracle @@ -4,8 +4,8 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 2 goals scheduled -[wp] [Qed] Goal typed_main_post_Eval_P : Valid -[wp] [Qed] Goal typed_main_post_Eval_Q : Valid +[wp] [Qed] Goal typed_main_ensures_Eval_P : Valid +[wp] [Qed] Goal typed_main_ensures_Eval_Q : Valid [wp] Proved goals: 2 / 2 Qed: 2 [wp] Report 'tests/wp_bts/bts_2079.i.0.report.json' diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_2159.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_2159.res.oracle index def33bf37ab2f28dc3fb8cc0bddbc7c8e5ba022a..5957c25a9913e5dc7ea2f26f7e16a3c8b80cb32d 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_2159.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_2159.res.oracle @@ -4,7 +4,7 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled -[wp] [Alt-Ergo] Goal typed_job_post : Valid +[wp] [Alt-Ergo] Goal typed_job_ensures : Valid [wp] Proved goals: 1 / 1 Qed: 0 Alt-Ergo: 1 diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/ergo_typecheck.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/ergo_typecheck.res.oracle index 32b111fa7242d905d8a2a8cdd63379dc734744a5..adbf79dec6e616503039969d0cb93e2a77983207 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/ergo_typecheck.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/ergo_typecheck.res.oracle @@ -4,14 +4,14 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 8 goals scheduled -[wp] [Qed] Goal typed_f_post_var_divded : Valid -[wp] [Qed] Goal typed_f_post_var_inline : Valid -[wp] [Qed] Goal typed_f_post_var_unit0 : Valid -[wp] [Qed] Goal typed_f_post_var_unit1 : Valid -[wp] [Qed] Goal typed_f_post_var_unit2 : Valid -[wp] [Qed] Goal typed_f_post_var_unit3 : Valid -[wp] [Qed] Goal typed_f_post_var_unit4 : Valid -[wp] [Qed] Goal typed_f_assign : Valid +[wp] [Qed] Goal typed_f_ensures_var_divded : Valid +[wp] [Qed] Goal typed_f_ensures_var_inline : Valid +[wp] [Qed] Goal typed_f_ensures_var_unit0 : Valid +[wp] [Qed] Goal typed_f_ensures_var_unit1 : Valid +[wp] [Qed] Goal typed_f_ensures_var_unit2 : Valid +[wp] [Qed] Goal typed_f_ensures_var_unit3 : Valid +[wp] [Qed] Goal typed_f_ensures_var_unit4 : Valid +[wp] [Qed] Goal typed_f_assigns : Valid [wp] Proved goals: 8 / 8 Qed: 8 [wp] Report 'tests/wp_bts/ergo_typecheck.i.0.report.json' diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_198.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_198.res.oracle index 0b7a9377868233e596dab18cd5b9f6fb1fa21559..e99621a4bbbab527db5d28c33f75b1b83ec2b54e 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_198.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_198.res.oracle @@ -10,5 +10,5 @@ [wp] Report 'tests/wp_bts/issue_198.i.0.report.json' ------------------------------------------------------------- Axiomatics WP Alt-Ergo Total Success -Lemma - 1 (1..12) 1 100% +Lemma - 1 (4..16) 1 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_453.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_453.res.oracle index 9eebd963d56bcb00ccab07c4510bfb82d656a283..ac1e7341c077c06f0af0001fcadce668af855ad1 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_453.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_453.res.oracle @@ -4,12 +4,12 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 6 goals scheduled -[wp] [Qed] Goal typed_f1_loop_assign : Valid -[wp] [Qed] Goal typed_f1_stmt_post_Sincr : Valid -[wp] [Qed] Goal typed_f1_stmt_assign : Valid -[wp] [Qed] Goal typed_f2_loop_assign : Valid -[wp] [Qed] Goal typed_f2_stmt_post_Sincr : Valid -[wp] [Qed] Goal typed_f2_stmt_assign : Valid +[wp] [Qed] Goal typed_f1_loop_assigns : Valid +[wp] [Qed] Goal typed_f1_ensures_Sincr : Valid +[wp] [Qed] Goal typed_f1_assigns : Valid +[wp] [Qed] Goal typed_f2_loop_assigns : Valid +[wp] [Qed] Goal typed_f2_ensures_Sincr : Valid +[wp] [Qed] Goal typed_f2_assigns : Valid [wp] Proved goals: 6 / 6 Qed: 6 [wp] Report 'tests/wp_bts/issue_453.i.0.report.json' diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_494.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_494.res.oracle index 8289108ae0e286572f4685dbe161f6edfaf59610..88a873c857cfc22dfeccbc23a480d184dae469b5 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_494.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_494.res.oracle @@ -4,7 +4,7 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 3 goals scheduled -[wp] [Alt-Ergo] Goal typed_f_post : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures : Valid [wp] [Alt-Ergo] Goal typed_job_ko_fixed_assert_Wrong : Unknown [wp] [Alt-Ergo] Goal typed_job_ko_success_assert_Wrong : Unknown [wp] Proved goals: 1 / 3 diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_508.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_508.res.oracle index 45cd077d06209cf8c051250cd592ff5154d9d7cd..e91fa5af17342cd08086ab3298ca3811c62d36f5 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_508.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_508.res.oracle @@ -4,9 +4,9 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 3 goals scheduled -[wp] [Alt-Ergo] Goal typed_add_assign_part1 : Valid -[wp] [Qed] Goal typed_add_assign_part2 : Valid -[wp] [Qed] Goal typed_add_assign_part3 : Valid +[wp] [Alt-Ergo] Goal typed_add_assigns_part1 : Valid +[wp] [Qed] Goal typed_add_assigns_part2 : Valid +[wp] [Qed] Goal typed_add_assigns_part3 : Valid [wp] Proved goals: 3 / 3 Qed: 2 Alt-Ergo: 1 diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/nupw-bcl-bts1120.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/nupw-bcl-bts1120.res.oracle index 5d5d798ea5d9b1883dab371915dc5181911db479..1588ce4deb13e41cba58c14064dd7b84d43979a9 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/nupw-bcl-bts1120.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/nupw-bcl-bts1120.res.oracle @@ -2,22 +2,22 @@ [kernel] Parsing tests/wp_bts/nupw-bcl-bts1120.i (no preprocessing) [wp] Running WP plugin... [wp] Loading driver 'share/wp.driver' -[wp] [CFG] Goal unreachable_smt_with_contract_stmt_assign : Valid (Unreachable) -[wp] [CFG] Goal unreachable_smt_with_contract_stmt_exit_ok : Valid (Unreachable) -[wp] [CFG] Goal unreachable_smt_with_contract_stmt_post_ok : Valid (Unreachable) -[wp] [CFG] Goal unreachable_smt_with_contract_stmt_pre_ok : Valid (Unreachable) +[wp] [CFG] Goal unreachable_smt_with_contract_assigns : Valid (Unreachable) +[wp] [CFG] Goal unreachable_smt_with_contract_exits_ok : Valid (Unreachable) +[wp] [CFG] Goal unreachable_smt_with_contract_ensures_ok : Valid (Unreachable) +[wp] [CFG] Goal unreachable_smt_with_contract_requires_ok : Valid (Unreachable) [wp] [CFG] Goal unreachable_smt_with_contract_assert_ok : Valid (Unreachable) -[wp] [CFG] Goal unreachable_smt_with_contract_call_f_with_precond_pre_ok : Valid (Unreachable) +[wp] [CFG] Goal unreachable_smt_with_contract_call_f_with_precond_requires_ok : Valid (Unreachable) [wp] Warning: Missing RTE guards [wp] 8 goals scheduled -[wp] [Qed] Goal typed_g_exit_ok : Valid -[wp] [Qed] Goal typed_g_loop_assign : Valid -[wp] [Qed] Goal typed_g_assign_exit : Valid -[wp] [Qed] Goal typed_g_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_g_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_g_assign_normal_part3 : Valid -[wp] [Qed] Goal typed_unreachable_smt_with_contract_post_ok : Valid -[wp] [Qed] Goal typed_unreachable_smt_with_contract_call_f_with_precond_pre_ok_2 : Valid +[wp] [Qed] Goal typed_g_exits_ok : Valid +[wp] [Qed] Goal typed_g_loop_assigns : Valid +[wp] [Qed] Goal typed_g_assigns_exit : Valid +[wp] [Qed] Goal typed_g_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_g_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_g_assigns_normal_part3 : Valid +[wp] [Qed] Goal typed_unreachable_smt_with_contract_ensures_ok_2 : Valid +[wp] [Qed] Goal typed_unreachable_smt_with_contract_call_f_with_precond_requires_ok : Valid [wp] Proved goals: 8 / 8 Qed: 8 [wp] Report 'tests/wp_bts/nupw-bcl-bts1120.i.0.report.json' diff --git a/src/plugins/wp/tests/wp_gallery/binary-multiplication-without-overflow.c b/src/plugins/wp/tests/wp_gallery/binary-multiplication-without-overflow.c index 3b2f455462b87e1a1583e00411d232de30245661..c1946eee14500d6db0d7df208a37e2855406e974 100644 --- a/src/plugins/wp/tests/wp_gallery/binary-multiplication-without-overflow.c +++ b/src/plugins/wp/tests/wp_gallery/binary-multiplication-without-overflow.c @@ -3,30 +3,29 @@ */ /* run.config_qualif - OPT: -warn-unsigned-overflow -wp-prop=-lack -then -warn-unsigned-overflow -wp-rte -wp -wp-prop=-lack + OPT: -wp-prover why3:alt-ergo -warn-unsigned-overflow -wp-prop=-lack -then -warn-unsigned-overflow -wp-rte -wp -wp-prop=-lack */ typedef unsigned uint32_t ; typedef unsigned long long uint64_t ; /*@ axiomatic mult { - @ lemma sizeof_uint32_t: ok: sizeof(uint32_t) == 4; // 4 bytes: 32 bits - @ lemma sizeof_uint64_t: ok: sizeof(uint64_t) == 8; // 8 bytes: 64 bits - @ - @ lemma ax1: lack: \forall integer x, y; 0<=x && 0< y ==> 0 <= x <= x*y; - @ lemma ax2: lack: \forall integer x, y; 0<=x && 0<=y ==> 0 <= 2*x*(y/2) <= x*y; + + @ lemma sizeof_ok: ok: sizeof(uint64_t) == 2 * sizeof(uint32_t); + + @ lemma ax1: lack: \forall integer x, y; 0<x && 0<y ==> 0 <= 2*x*(y/2) <= x*y; @ } @ */ //@ ensures product: \result == a*b; uint64_t BinaryMultiplication (uint32_t a, uint32_t b) { - //@ assert a1: ok: deductible: a*b <= 18446744073709551615; // deductible from type size + //@ assert a1: ok: deductible: a*b <= 18446744073709551615; // deductible from size of C types uint64_t r=0; uint64_t x=a; if (b != 0) { /*@ loop assigns ok: r, x, b; - @ loop invariant inv1: lack: r+x*b == \at(a*b, LoopEntry); - @ loop invariant inv2: ok: deductible: 2*x*(b/2) <= 18446744073709551615; // deductible from inv1, ax2, ax1, a1 and x>=0, b>0, r>=0 + @ loop invariant inv1: ok: r+x*b == \at(a*b, LoopEntry); + @ loop invariant inv2: ok: deductible: 2*x*(b/2) <= 18446744073709551615; // deductible from inv1, ax1, a1 and x>=0, b>0, r>=0 @ loop variant ok: b ; @*/ while (1) { diff --git a/src/plugins/wp/tests/wp_gallery/binary-multiplication-without-overflow.c.0.report.json b/src/plugins/wp/tests/wp_gallery/binary-multiplication-without-overflow.c.0.report.json index 6e041751ae90f16c4e4ac1a37c7c29d34b40f54a..fd14edb93a62ed85f22868b68e6d12c0ab84415b 100644 --- a/src/plugins/wp/tests/wp_gallery/binary-multiplication-without-overflow.c.0.report.json +++ b/src/plugins/wp/tests/wp_gallery/binary-multiplication-without-overflow.c.0.report.json @@ -1,89 +1,72 @@ -{ "wp:global": { "alt-ergo": { "total": 10, "valid": 10, "rank": 16 }, +{ "wp:global": { "why3:alt-ergo": { "total": 11, "valid": 11 }, "qed": { "total": 3, "valid": 3 }, - "wp:main": { "total": 13, "valid": 13, "rank": 16 } }, - "wp:axiomatics": { "mult": { "lemma_sizeof_uint64_t_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "lemma_sizeof_uint32_t_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "wp:section": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } } } }, + "wp:main": { "total": 14, "valid": 14 } }, + "wp:axiomatics": { "mult": { "lemma_sizeof_ok_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "wp:section": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } } } }, "wp:functions": { "BinaryMultiplication": { "BinaryMultiplication_assert_rte_unsigned_overflow_4": - { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 6 }, + { "why3:alt-ergo": { "total": 1, + "valid": 1 }, "wp:main": { "total": 1, - "valid": 1, - "rank": 6 } }, + "valid": 1 } }, "BinaryMultiplication_assert_rte_unsigned_overflow_3": - { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 6 }, + { "why3:alt-ergo": { "total": 1, + "valid": 1 }, "wp:main": { "total": 1, - "valid": 1, - "rank": 6 } }, + "valid": 1 } }, "BinaryMultiplication_assert_rte_unsigned_overflow_2": - { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 10 }, + { "why3:alt-ergo": { "total": 1, + "valid": 1 }, "wp:main": { "total": 1, - "valid": 1, - "rank": 10 } }, + "valid": 1 } }, "BinaryMultiplication_assert_rte_unsigned_overflow": - { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 5 }, + { "why3:alt-ergo": { "total": 1, + "valid": 1 }, "wp:main": { "total": 1, - "valid": 1, - "rank": 5 } }, - "BinaryMultiplication_loop_inv_inv2_ok_deductible": - { "alt-ergo": { "total": 2, - "valid": 2, - "rank": 10 }, + "valid": 1 } }, + "BinaryMultiplication_loop_invariant_inv2_ok_deductible": + { "why3:alt-ergo": { "total": 2, + "valid": 2 }, "wp:main": { "total": 2, - "valid": 2, - "rank": 10 } }, + "valid": 2 } }, + "BinaryMultiplication_loop_invariant_inv1_ok": + { "why3:alt-ergo": { "total": 1, + "valid": 1 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2 } }, "BinaryMultiplication_assert_a1_ok_deductible": - { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 3 }, + { "why3:alt-ergo": { "total": 1, + "valid": 1 }, "wp:main": { "total": 1, - "valid": 1, - "rank": 3 } }, - "BinaryMultiplication_loop_term": - { "alt-ergo": { "total": 2, - "valid": 2, - "rank": 8 }, + "valid": 1 } }, + "BinaryMultiplication_loop_variant": + { "why3:alt-ergo": { "total": 2, + "valid": 2 }, "wp:main": { "total": 2, - "valid": 2, - "rank": 8 } }, - "BinaryMultiplication_loop_assign": + "valid": 2 } }, + "BinaryMultiplication_loop_assigns": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "BinaryMultiplication_post_product": - { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 16 }, + "BinaryMultiplication_ensures_product": + { "why3:alt-ergo": { "total": 1, + "valid": 1 }, "wp:main": { "total": 1, - "valid": 1, - "rank": 16 } }, - "wp:section": { "alt-ergo": - { "total": 10, - "valid": 10, - "rank": 16 }, + "valid": 1 } }, + "wp:section": { "why3:alt-ergo": + { "total": 11, + "valid": 11 }, "qed": - { "total": 1, - "valid": 1 }, + { "total": 2, + "valid": 2 }, "wp:main": - { "total": 11, - "valid": 11, - "rank": 16 } } } } } + { "total": 13, + "valid": 13 } } } } } diff --git a/src/plugins/wp/tests/wp_gallery/binary-multiplication.c b/src/plugins/wp/tests/wp_gallery/binary-multiplication.c index 08906aa5f7371a840eb06784a350d35311a40360..11732fd2cf5d647e279f21c7898b93f5d3fa6d7e 100644 --- a/src/plugins/wp/tests/wp_gallery/binary-multiplication.c +++ b/src/plugins/wp/tests/wp_gallery/binary-multiplication.c @@ -3,34 +3,33 @@ */ /* run.config_qualif - OPT: -wp-prop=-lack -then -wp-rte -wp -wp-prop=-lack + OPT: -wp-prover why3:alt-ergo -wp-prop=-lack -then -wp-rte -wp -wp-prop=-lack */ typedef unsigned uint32_t ; typedef unsigned long long uint64_t ; /*@ axiomatic mult { - @ lemma sizeof_uint32_t: ok: sizeof(uint32_t) == 4; // 4 bytes: 32 bits - @ lemma sizeof_uint64_t: ok: sizeof(uint64_t) == 8; // 8 bytes: 64 bits - @ - @ lemma ax1: lack: \forall integer x, y; 0<=x && 0< y ==> 0 <= x <= x*y; - @ lemma ax2: lack: \forall integer x, y; 0<=x && 0<=y ==> 0 <= 2*x*(y/2) <= x*y; - @ lemma ax3: lack: \forall integer x, y; (uint64_t)(x * ((uint64_t)y)) == (uint64_t)(x*y) ; - @ lemma ax4: lack: \forall integer x, y; (uint64_t)(x + ((uint64_t)y)) == (uint64_t)(x+y) ; - @ lemma ax5: ok: \forall integer x, y; (uint64_t)(((uint64_t)x) * y) == (uint64_t)(x*y) ; - @ lemma ax6: ok: \forall integer x, y; (uint64_t)(((uint64_t)x) + y) == (uint64_t)(x+y) ; + @ lemma sizeof_ok: ok: sizeof(uint64_t) == 2*sizeof(uint32_t); + + @ lemma ax1: lack: \forall integer x, y; 0<x && 0<y ==> 0 <= 2*x*(y/2) <= x*y; + + @ lemma ax2: lack: \forall integer x, y; (uint64_t)(x * ((uint64_t)y)) == (uint64_t)(x*y) ; + @ lemma ax3: lack: \forall integer x, y; (uint64_t)(x + ((uint64_t)y)) == (uint64_t)(x+y) ; + @ lemma ax4: ok: \forall integer x, y; (uint64_t)(((uint64_t)x) * y) == (uint64_t)(x*y) ; + @ lemma ax5: ok: \forall integer x, y; (uint64_t)(((uint64_t)x) + y) == (uint64_t)(x+y) ; @ } @ */ //@ ensures product: \result == a*b; uint64_t BinaryMultiplication (uint32_t a, uint32_t b) { - //@ assert a1: ok: deductible: a*b <= 18446744073709551615; // deductible from type size + //@ assert a1: ok: deductible: a*b <= 18446744073709551615; // deductible from size of C types uint64_t r=0; uint64_t x=a; if (b != 0) { /*@ loop assigns r, x, b; - @ loop invariant inv1: lack: r+x*b == \at(a*b, LoopEntry); - @ loop invariant inv2: lack: r+x == (uint64_t)(r+x); + @ loop invariant inv1: ok: r+x*b == \at(a*b, LoopEntry); + @ loop invariant inv2: ok: deductible: 2*x*(b/2) <= 18446744073709551615; // deductible from inv1, ax1, a1 and x>=0, b>0, r>=0 @ loop variant ok: b ; @*/ while (1) { diff --git a/src/plugins/wp/tests/wp_gallery/binary-multiplication.c.0.report.json b/src/plugins/wp/tests/wp_gallery/binary-multiplication.c.0.report.json index 5ea485d2a0af12d325a0cb524608845346664671..1323c0ee776d77f1effe6fb3a814c5a81632a111 100644 --- a/src/plugins/wp/tests/wp_gallery/binary-multiplication.c.0.report.json +++ b/src/plugins/wp/tests/wp_gallery/binary-multiplication.c.0.report.json @@ -1,84 +1,72 @@ -{ "wp:global": { "alt-ergo": { "total": 8, "valid": 8, "rank": 34 }, +{ "wp:global": { "why3:alt-ergo": { "total": 11, "valid": 11 }, "qed": { "total": 3, "valid": 3 }, - "wp:main": { "total": 11, "valid": 11, "rank": 34 } }, - "wp:axiomatics": { "mult": { "lemma_sizeof_uint64_t_ok": { "qed": { "total": 1, + "wp:main": { "total": 14, "valid": 14 } }, + "wp:axiomatics": { "mult": { "lemma_sizeof_ok_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "lemma_ax5_ok": { "why3:alt-ergo": { "total": 1, "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "lemma_sizeof_uint32_t_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "lemma_ax6_ok": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 1 }, "wp:main": { "total": 1, - "valid": 1, - "rank": 1 } }, - "lemma_ax5_ok": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 1 }, + "valid": 1 } }, + "lemma_ax4_ok": { "why3:alt-ergo": { "total": 1, + "valid": 1 }, "wp:main": { "total": 1, - "valid": 1, - "rank": 1 } }, - "wp:section": { "alt-ergo": { "total": 2, - "valid": 2, - "rank": 1 }, - "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 4, - "valid": 4, - "rank": 1 } } } }, + "valid": 1 } }, + "wp:section": { "why3:alt-ergo": { "total": 2, + "valid": 2 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 3, + "valid": 3 } } } }, "wp:functions": { "BinaryMultiplication": { "BinaryMultiplication_assert_a3_ok": - { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 14 }, + { "why3:alt-ergo": { "total": 1, + "valid": 1 }, "wp:main": { "total": 1, - "valid": 1, - "rank": 14 } }, + "valid": 1 } }, "BinaryMultiplication_assert_a2_ok": - { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 12 }, + { "why3:alt-ergo": { "total": 1, + "valid": 1 }, "wp:main": { "total": 1, - "valid": 1, - "rank": 12 } }, + "valid": 1 } }, + "BinaryMultiplication_loop_invariant_inv2_ok_deductible": + { "why3:alt-ergo": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, + "BinaryMultiplication_loop_invariant_inv1_ok": + { "why3:alt-ergo": { "total": 1, + "valid": 1 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2 } }, "BinaryMultiplication_assert_a1_ok_deductible": - { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 3 }, + { "why3:alt-ergo": { "total": 1, + "valid": 1 }, "wp:main": { "total": 1, - "valid": 1, - "rank": 3 } }, - "BinaryMultiplication_loop_term": - { "alt-ergo": { "total": 2, - "valid": 2, - "rank": 20 }, + "valid": 1 } }, + "BinaryMultiplication_loop_variant": + { "why3:alt-ergo": { "total": 2, + "valid": 2 }, "wp:main": { "total": 2, - "valid": 2, - "rank": 20 } }, - "BinaryMultiplication_loop_assign": + "valid": 2 } }, + "BinaryMultiplication_loop_assigns": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "BinaryMultiplication_post_product": - { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 34 }, + "BinaryMultiplication_ensures_product": + { "why3:alt-ergo": { "total": 1, + "valid": 1 }, "wp:main": { "total": 1, - "valid": 1, - "rank": 34 } }, - "wp:section": { "alt-ergo": - { "total": 6, - "valid": 6, - "rank": 34 }, + "valid": 1 } }, + "wp:section": { "why3:alt-ergo": + { "total": 9, + "valid": 9 }, "qed": - { "total": 1, - "valid": 1 }, + { "total": 2, + "valid": 2 }, "wp:main": - { "total": 7, - "valid": 7, - "rank": 34 } } } } } + { "total": 11, + "valid": 11 } } } } } diff --git a/src/plugins/wp/tests/wp_gallery/frama_c_exo1_solved.c.0.report.json b/src/plugins/wp/tests/wp_gallery/frama_c_exo1_solved.c.0.report.json index 35328b8f662304169588f86edc22b36e39809b3c..0296ba8fb132318ca314eafccff82c1685359d9e 100644 --- a/src/plugins/wp/tests/wp_gallery/frama_c_exo1_solved.c.0.report.json +++ b/src/plugins/wp/tests/wp_gallery/frama_c_exo1_solved.c.0.report.json @@ -1,6 +1,6 @@ -{ "wp:global": { "alt-ergo": { "total": 9, "valid": 9, "rank": 31 }, +{ "wp:global": { "alt-ergo": { "total": 9, "valid": 9, "rank": 32 }, "qed": { "total": 6, "valid": 6 }, - "wp:main": { "total": 15, "valid": 15, "rank": 31 } }, + "wp:main": { "total": 15, "valid": 15, "rank": 32 } }, "wp:functions": { "exo1": { "exo1_assert_rte_signed_overflow_3": { "alt-ergo": { "total": 1, "valid": 1, @@ -41,51 +41,52 @@ { "total": 1, "valid": 1, "rank": 3 } }, - "exo1_loop_inv_2": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 31 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 31 } }, - "exo1_loop_inv": { "alt-ergo": { "total": 1, + "exo1_loop_invariant_2": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 32 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 32 } }, + "exo1_loop_invariant": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 10 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 10 } }, + "exo1_loop_variant": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, + "exo1_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "exo1_loop_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "exo1_ensures_2": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 8 }, + "wp:main": { "total": 1, "valid": 1, - "rank": 10 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 10 } }, - "exo1_loop_term": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, - "exo1_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "exo1_loop_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "exo1_post_2": { "alt-ergo": { "total": 1, + "rank": 8 } }, + "exo1_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 5 }, + "wp:main": { "total": 1, "valid": 1, - "rank": 7 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 7 } }, - "exo1_post": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 4 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 4 } }, + "rank": 5 } }, "wp:section": { "alt-ergo": { "total": 9, "valid": 9, - "rank": 31 }, + "rank": 32 }, "qed": { "total": 6, "valid": 6 }, "wp:main": { "total": 15, "valid": 15, - "rank": 31 } } } } } + "rank": 32 } } } } } diff --git a/src/plugins/wp/tests/wp_gallery/frama_c_exo2_solved.c.0.report.json b/src/plugins/wp/tests/wp_gallery/frama_c_exo2_solved.c.0.report.json index 7250532e2b57e0d0d2feadb78e0c413848eebc50..993bf347380d1f8f1b29ab1e163e76a2265c44b9 100644 --- a/src/plugins/wp/tests/wp_gallery/frama_c_exo2_solved.c.0.report.json +++ b/src/plugins/wp/tests/wp_gallery/frama_c_exo2_solved.c.0.report.json @@ -1,6 +1,6 @@ -{ "wp:global": { "alt-ergo": { "total": 14, "valid": 14, "rank": 37 }, +{ "wp:global": { "alt-ergo": { "total": 14, "valid": 14, "rank": 38 }, "qed": { "total": 9, "valid": 9 }, - "wp:main": { "total": 23, "valid": 23, "rank": 37 } }, + "wp:main": { "total": 23, "valid": 23, "rank": 38 } }, "wp:functions": { "max_subarray": { "max_subarray_assert_rte_mem_access": { "alt-ergo": { "total": 1, "valid": 1, @@ -8,116 +8,101 @@ "wp:main": { "total": 1, "valid": 1, "rank": 26 } }, - "max_subarray_loop_inv_8": { "alt-ergo": - { "total": 2, - "valid": 2, - "rank": 37 }, - "wp:main": - { "total": 2, - "valid": 2, - "rank": 37 } }, - "max_subarray_loop_inv_7": { "alt-ergo": - { "total": 2, - "valid": 2, - "rank": 26 }, - "wp:main": - { "total": 2, - "valid": 2, - "rank": 26 } }, - "max_subarray_loop_inv_6": { "alt-ergo": - { "total": 2, - "valid": 2, - "rank": 13 }, - "wp:main": - { "total": 2, - "valid": 2, - "rank": 13 } }, - "max_subarray_loop_inv_5": { "alt-ergo": - { "total": 2, - "valid": 2, - "rank": 13 }, - "wp:main": - { "total": 2, - "valid": 2, - "rank": 13 } }, - "max_subarray_loop_inv_4": { "qed": + "max_subarray_loop_invariant_8": + { "alt-ergo": { "total": 2, + "valid": 2, + "rank": 38 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 38 } }, + "max_subarray_loop_invariant_7": + { "alt-ergo": { "total": 2, + "valid": 2, + "rank": 27 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 27 } }, + "max_subarray_loop_invariant_6": + { "alt-ergo": { "total": 2, + "valid": 2, + "rank": 14 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 14 } }, + "max_subarray_loop_invariant_5": + { "alt-ergo": { "total": 2, + "valid": 2, + "rank": 14 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 14 } }, + "max_subarray_loop_invariant_4": + { "qed": { "total": 2, "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, + "max_subarray_loop_invariant_3": + { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 12 }, + "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 12 } }, + "max_subarray_loop_invariant_2": + { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 15 }, + "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 15 } }, + "max_subarray_loop_invariant": + { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 9 }, + "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 9 } }, + "max_subarray_loop_variant": { "qed": { "total": 2, "valid": 2 }, - "wp:main": + "wp:main": { "total": 2, "valid": 2 } }, - "max_subarray_loop_inv_3": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 11 }, - "qed": + "max_subarray_assigns": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "max_subarray_loop_assigns": { "qed": { "total": 1, "valid": 1 }, - "wp:main": - { "total": 2, - "valid": 2, - "rank": 11 } }, - "max_subarray_loop_inv_2": { "alt-ergo": + "wp:main": { "total": 1, - "valid": 1, - "rank": 14 }, - "qed": + "valid": 1 } }, + "max_subarray_ensures_2": { "alt-ergo": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 2, - "valid": 2, - "rank": 14 } }, - "max_subarray_loop_inv": { "alt-ergo": - { "total": 1, "valid": 1, - "rank": 8 }, - "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 2, - "valid": 2, - "rank": 8 } }, - "max_subarray_loop_term": { "qed": - { "total": 2, - "valid": 2 }, + "rank": 20 }, "wp:main": - { "total": 2, - "valid": 2 } }, - "max_subarray_assign": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "max_subarray_loop_assign": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "max_subarray_post_2": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 20 }, - "wp:main": - { "total": 1, - "valid": 1, - "rank": 20 } }, - "max_subarray_post": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 8 }, - "wp:main": - { "total": 1, - "valid": 1, - "rank": 8 } }, + "valid": 1, + "rank": 20 } }, + "max_subarray_ensures": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 9 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 9 } }, "wp:section": { "alt-ergo": { "total": 14, "valid": 14, - "rank": 37 }, + "rank": 38 }, "qed": { "total": 9, "valid": 9 }, "wp:main": { "total": 23, "valid": 23, - "rank": 37 } } } } } + "rank": 38 } } } } } diff --git a/src/plugins/wp/tests/wp_gallery/frama_c_exo3_solved.old.c.0.report.json b/src/plugins/wp/tests/wp_gallery/frama_c_exo3_solved.old.c.0.report.json index a83c2c21e3ba443f38ae38fd4a100f39486dc8b0..b7940a83d5ccde38dfd58269ad683b0360911e29 100644 --- a/src/plugins/wp/tests/wp_gallery/frama_c_exo3_solved.old.c.0.report.json +++ b/src/plugins/wp/tests/wp_gallery/frama_c_exo3_solved.old.c.0.report.json @@ -83,11 +83,11 @@ "equal_elements_assert_2": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 45 }, + "rank": 46 }, "wp:main": { "total": 1, "valid": 1, - "rank": 45 } }, + "rank": 46 } }, "equal_elements_assert": { "alt-ergo": { "total": 1, "valid": 1, @@ -96,14 +96,14 @@ { "total": 1, "valid": 1, "rank": 32 } }, - "equal_elements_loop_inv_10": + "equal_elements_loop_invariant_10": { "alt-ergo": { "total": 2, "valid": 2, "rank": 51 }, "wp:main": { "total": 2, "valid": 2, "rank": 51 } }, - "equal_elements_loop_inv_9": + "equal_elements_loop_invariant_9": { "alt-ergo": { "total": 1, "valid": 1, "rank": 43 }, @@ -111,22 +111,22 @@ "wp:main": { "total": 2, "valid": 2, "rank": 43 } }, - "equal_elements_loop_inv_8": + "equal_elements_loop_invariant_8": { "alt-ergo": { "total": 2, "valid": 2, "rank": 38 }, "wp:main": { "total": 2, "valid": 2, "rank": 38 } }, - "equal_elements_loop_inv_7": + "equal_elements_loop_invariant_7": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 21 }, + "rank": 22 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 2, "valid": 2, - "rank": 21 } }, - "equal_elements_loop_inv_6": + "rank": 22 } }, + "equal_elements_loop_invariant_6": { "alt-ergo": { "total": 1, "valid": 1, "rank": 50 }, @@ -134,7 +134,7 @@ "wp:main": { "total": 2, "valid": 2, "rank": 50 } }, - "equal_elements_loop_inv_5": + "equal_elements_loop_invariant_5": { "alt-ergo": { "total": 1, "valid": 1, "rank": 56 }, @@ -142,83 +142,78 @@ "wp:main": { "total": 2, "valid": 2, "rank": 56 } }, - "equal_elements_loop_inv_4": + "equal_elements_loop_invariant_4": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } }, - "equal_elements_loop_inv_3": + "equal_elements_loop_invariant_3": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 8 }, + "rank": 9 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 2, "valid": 2, - "rank": 8 } }, - "equal_elements_loop_inv_2": + "rank": 9 } }, + "equal_elements_loop_invariant_2": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 18 }, + "rank": 19 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 2, "valid": 2, - "rank": 18 } }, - "equal_elements_loop_inv": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 4 }, - "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 2, - "valid": 2, - "rank": 4 } }, - "equal_elements_loop_term_2": + "rank": 19 } }, + "equal_elements_loop_invariant": + { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 5 }, + "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 5 } }, + "equal_elements_loop_variant_2": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } }, - "equal_elements_loop_term": { "qed": - { "total": 2, - "valid": 2 }, - "wp:main": - { "total": 2, - "valid": 2 } }, - "equal_elements_assign": { "qed": + "equal_elements_loop_variant": + { "qed": { "total": 2, "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, + "equal_elements_assigns": { "qed": { "total": 3, "valid": 3 }, - "wp:main": + "wp:main": { "total": 3, "valid": 3 } }, - "equal_elements_loop_assign_2": + "equal_elements_loop_assigns_2": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "equal_elements_loop_assign": + "equal_elements_loop_assigns": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "equal_elements_post_3": { "alt-ergo": + "equal_elements_ensures_3": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 23 }, - "wp:main": + "rank": 24 }, + "wp:main": { "total": 1, "valid": 1, - "rank": 23 } }, - "equal_elements_post_2": { "alt-ergo": + "rank": 24 } }, + "equal_elements_ensures_2": { "alt-ergo": { "total": 1, "valid": 1, "rank": 32 }, - "wp:main": + "wp:main": { "total": 1, "valid": 1, "rank": 32 } }, - "equal_elements_post": { "alt-ergo": - { "total": 1, + "equal_elements_ensures": { "alt-ergo": + { "total": 1, "valid": 1, "rank": 28 }, - "wp:main": - { "total": 1, + "wp:main": + { "total": 1, "valid": 1, "rank": 28 } }, "wp:section": { "alt-ergo": { "total": 21, diff --git a/src/plugins/wp/tests/wp_gallery/frama_c_exo3_solved.old.v2.c.0.report.json b/src/plugins/wp/tests/wp_gallery/frama_c_exo3_solved.old.v2.c.0.report.json index faf2646774a9fb497970774b004dab29bd512597..862d85527133d13b445534d58184c0857b573160 100644 --- a/src/plugins/wp/tests/wp_gallery/frama_c_exo3_solved.old.v2.c.0.report.json +++ b/src/plugins/wp/tests/wp_gallery/frama_c_exo3_solved.old.v2.c.0.report.json @@ -1,6 +1,6 @@ -{ "wp:global": { "alt-ergo": { "total": 23, "valid": 23, "rank": 38 }, +{ "wp:global": { "alt-ergo": { "total": 23, "valid": 23, "rank": 39 }, "qed": { "total": 28, "valid": 28 }, - "wp:main": { "total": 51, "valid": 51, "rank": 38 } }, + "wp:main": { "total": 51, "valid": 51, "rank": 39 } }, "wp:functions": { "equal_elements": { "equal_elements_assert_rte_signed_overflow_2": { "alt-ergo": { "total": 1, "valid": 1, @@ -80,35 +80,35 @@ { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "equal_elements_loop_inv_v2_sound2": + "equal_elements_loop_invariant_v2_sound2": { "alt-ergo": { "total": 2, "valid": 2, - "rank": 36 }, + "rank": 37 }, "wp:main": { "total": 2, "valid": 2, - "rank": 36 } }, - "equal_elements_loop_inv_v1_sound2": + "rank": 37 } }, + "equal_elements_loop_invariant_v1_sound2": { "alt-ergo": { "total": 2, "valid": 2, - "rank": 20 }, + "rank": 22 }, "wp:main": { "total": 2, "valid": 2, - "rank": 20 } }, - "equal_elements_loop_inv_seen_sound2": + "rank": 22 } }, + "equal_elements_loop_invariant_seen_sound2": { "alt-ergo": { "total": 2, "valid": 2, "rank": 32 }, "wp:main": { "total": 2, "valid": 2, "rank": 32 } }, - "equal_elements_loop_inv_seen_sound1": + "equal_elements_loop_invariant_seen_sound1": { "alt-ergo": { "total": 2, "valid": 2, - "rank": 38 }, + "rank": 39 }, "wp:main": { "total": 2, "valid": 2, - "rank": 38 } }, - "equal_elements_loop_inv_v1_v2_diff": + "rank": 39 } }, + "equal_elements_loop_invariant_v1_v2_diff": { "alt-ergo": { "total": 1, "valid": 1, "rank": 15 }, @@ -116,7 +116,7 @@ "wp:main": { "total": 2, "valid": 2, "rank": 15 } }, - "equal_elements_loop_inv_v2_sound1": + "equal_elements_loop_invariant_v2_sound1": { "alt-ergo": { "total": 1, "valid": 1, "rank": 32 }, @@ -124,26 +124,26 @@ "wp:main": { "total": 2, "valid": 2, "rank": 32 } }, - "equal_elements_loop_inv_v1_sound1": + "equal_elements_loop_invariant_v1_sound1": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 24 }, + "rank": 25 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 2, "valid": 2, - "rank": 24 } }, - "equal_elements_loop_inv_v1_first": + "rank": 25 } }, + "equal_elements_loop_invariant_v1_first": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } }, - "equal_elements_loop_inv_bound": + "equal_elements_loop_invariant_bound": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 10 }, + "rank": 11 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 2, "valid": 2, - "rank": 10 } }, + "rank": 11 } }, "equal_elements_assert_set_at_1": { "alt-ergo": { "total": 1, "valid": 1, @@ -151,7 +151,7 @@ "wp:main": { "total": 1, "valid": 1, "rank": 7 } }, - "equal_elements_loop_inv_set_at_0": + "equal_elements_loop_invariant_set_at_0": { "alt-ergo": { "total": 1, "valid": 1, "rank": 10 }, @@ -159,67 +159,62 @@ "wp:main": { "total": 2, "valid": 2, "rank": 10 } }, - "equal_elements_loop_inv": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 7 }, - "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 2, - "valid": 2, - "rank": 7 } }, - "equal_elements_loop_term_2": + "equal_elements_loop_invariant": + { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 7 }, + "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 7 } }, + "equal_elements_loop_variant_2": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } }, - "equal_elements_loop_term": { "qed": - { "total": 2, - "valid": 2 }, - "wp:main": - { "total": 2, - "valid": 2 } }, - "equal_elements_assign": { "qed": + "equal_elements_loop_variant": + { "qed": { "total": 2, "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, + "equal_elements_assigns": { "qed": { "total": 3, "valid": 3 }, - "wp:main": + "wp:main": { "total": 3, "valid": 3 } }, - "equal_elements_loop_assign_2": + "equal_elements_loop_assigns_2": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "equal_elements_loop_assign": + "equal_elements_loop_assigns": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "equal_elements_post_v1_v2_diff": + "equal_elements_ensures_v1_v2_diff": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 11 }, + "rank": 12 }, "wp:main": { "total": 1, "valid": 1, - "rank": 11 } }, - "equal_elements_post_v2_good": + "rank": 12 } }, + "equal_elements_ensures_v2_good": { "alt-ergo": { "total": 1, "valid": 1, "rank": 25 }, "wp:main": { "total": 1, "valid": 1, "rank": 25 } }, - "equal_elements_post_v1_good": + "equal_elements_ensures_v1_good": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 13 }, + "rank": 14 }, "wp:main": { "total": 1, "valid": 1, - "rank": 13 } }, + "rank": 14 } }, "wp:section": { "alt-ergo": { "total": 23, "valid": 23, - "rank": 38 }, + "rank": 39 }, "qed": { "total": 28, "valid": 28 }, "wp:main": { "total": 51, "valid": 51, - "rank": 38 } } } } } + "rank": 39 } } } } } diff --git a/src/plugins/wp/tests/wp_gallery/frama_c_exo3_solved.simplified.c.0.report.json b/src/plugins/wp/tests/wp_gallery/frama_c_exo3_solved.simplified.c.0.report.json index 980ed8a65818b5a813533a5d28ba6546c4d7f9e1..3d5440b7b470cca3e5fdd813dcb47a16db43fa96 100644 --- a/src/plugins/wp/tests/wp_gallery/frama_c_exo3_solved.simplified.c.0.report.json +++ b/src/plugins/wp/tests/wp_gallery/frama_c_exo3_solved.simplified.c.0.report.json @@ -77,82 +77,88 @@ "wp:main": { "total": 1, "valid": 1 } }, - "pair_loop_inv_6": { "alt-ergo": { "total": 2, - "valid": 2, - "rank": 17 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 17 } }, - "pair_loop_inv_5": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 16 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 16 } }, - "pair_loop_inv_4": { "alt-ergo": { "total": 2, - "valid": 2, - "rank": 17 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 17 } }, - "pair_loop_inv_3": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 6 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 6 } }, - "pair_loop_inv_2": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 5 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 5 } }, - "pair_loop_inv": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 4 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 4 } }, - "pair_loop_term_2": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, - "pair_loop_term": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, - "pair_assign": { "qed": { "total": 4, - "valid": 4 }, - "wp:main": { "total": 4, - "valid": 4 } }, - "pair_loop_assign_2": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "pair_loop_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "pair_has_pair_post": { "alt-ergo": { "total": 1, + "pair_loop_invariant_6": { "alt-ergo": + { "total": 2, + "valid": 2, + "rank": 17 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 17 } }, + "pair_loop_invariant_5": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 17 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 17 } }, + "pair_loop_invariant_4": { "alt-ergo": + { "total": 2, + "valid": 2, + "rank": 17 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 17 } }, + "pair_loop_invariant_3": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 6 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 6 } }, + "pair_loop_invariant_2": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 5 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 5 } }, + "pair_loop_invariant": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 22 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 22 } }, - "pair_no_pair_post": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 15 }, + "rank": 4 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 4 } }, + "pair_loop_variant_2": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, + "pair_loop_variant": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, + "pair_assigns": { "qed": { "total": 4, + "valid": 4 }, + "wp:main": { "total": 4, + "valid": 4 } }, + "pair_loop_assigns_2": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "pair_loop_assigns": { "qed": { "total": 1, + "valid": 1 }, "wp:main": { "total": 1, - "valid": 1, - "rank": 15 } }, + "valid": 1 } }, + "pair_has_pair_ensures": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 22 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 22 } }, + "pair_no_pair_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 16 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 16 } }, "wp:section": { "alt-ergo": { "total": 15, "valid": 15, "rank": 22 }, diff --git a/src/plugins/wp/tests/wp_gallery/frama_c_hashtbl_solved.c.0.report.json b/src/plugins/wp/tests/wp_gallery/frama_c_hashtbl_solved.c.0.report.json index 0efdbfb59cd974c0adeee48a35a8aff5257e2987..d8f60814f9c19800a8cc2cdf8ff7f90a526ab71b 100644 --- a/src/plugins/wp/tests/wp_gallery/frama_c_hashtbl_solved.c.0.report.json +++ b/src/plugins/wp/tests/wp_gallery/frama_c_hashtbl_solved.c.0.report.json @@ -28,57 +28,61 @@ "rank": 23 }, "wp:main": { "total": 1, "valid": 1, "rank": 23 } }, - "eq_string_loop_inv_2": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 9 }, - "qed": { "total": 1, + "eq_string_loop_invariant_2": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 10 }, + "qed": + { "total": 1, "valid": 1 }, - "wp:main": - { "total": 2, - "valid": 2, - "rank": 9 } }, - "eq_string_loop_inv": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 5 }, - "qed": { "total": 1, + "wp:main": + { "total": 2, + "valid": 2, + "rank": 10 } }, + "eq_string_loop_invariant": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 6 }, + "qed": + { "total": 1, "valid": 1 }, - "wp:main": - { "total": 2, - "valid": 2, - "rank": 5 } }, - "eq_string_loop_term": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": - { "total": 2, - "valid": 2 } }, - "eq_string_assign": { "qed": { "total": 4, - "valid": 4 }, - "wp:main": { "total": 4, - "valid": 4 } }, - "eq_string_loop_assign": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "eq_string_not_eq_post": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 13 }, - "wp:main": - { "total": 1, - "valid": 1, - "rank": 13 } }, - "eq_string_eq_post": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 11 }, + "wp:main": + { "total": 2, + "valid": 2, + "rank": 6 } }, + "eq_string_loop_variant": { "qed": + { "total": 2, + "valid": 2 }, + "wp:main": + { "total": 2, + "valid": 2 } }, + "eq_string_assigns": { "qed": { "total": 4, + "valid": 4 }, "wp:main": - { "total": 1, - "valid": 1, - "rank": 11 } }, + { "total": 4, + "valid": 4 } }, + "eq_string_loop_assigns": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "eq_string_not_eq_ensures": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 13 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 13 } }, + "eq_string_eq_ensures": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 12 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 12 } }, "wp:section": { "alt-ergo": { "total": 7, "valid": 7, "rank": 23 }, @@ -109,26 +113,26 @@ { "total": 1, "valid": 1, "rank": 18 } }, - "hash_loop_inv": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 4 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 4 } }, - "hash_loop_term": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, - "hash_assign": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, - "hash_loop_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "hash_loop_invariant": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 4 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 4 } }, + "hash_loop_variant": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, + "hash_assigns": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, + "hash_loop_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 3, "valid": 3, "rank": 18 }, @@ -145,14 +149,14 @@ { "total": 1, "valid": 1, "rank": 8 } }, - "size_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "size_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "size_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "size_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, "rank": 8 }, @@ -197,50 +201,51 @@ { "total": 1, "valid": 1, "rank": 16 } }, - "init_loop_inv_2": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 8 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 8 } }, - "init_loop_inv": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 4 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 4 } }, - "init_loop_term": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, - "init_assign": { "alt-ergo": { "total": 1, + "init_loop_invariant_2": { "alt-ergo": + { "total": 1, "valid": 1, - "rank": 11 }, - "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 3, - "valid": 3, - "rank": 11 } }, - "init_loop_assign": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, - "init_post_2": { "alt-ergo": { "total": 1, + "rank": 9 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 9 } }, + "init_loop_invariant": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 4 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 4 } }, + "init_loop_variant": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, + "init_assigns": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 12 }, + "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 3, + "valid": 3, + "rank": 12 } }, + "init_loop_assigns": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, + "init_ensures_2": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 8 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 8 } }, + "init_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 18 }, + "wp:main": { "total": 1, "valid": 1, - "rank": 7 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 7 } }, - "init_post": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 18 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 18 } }, + "rank": 18 } }, "wp:section": { "alt-ergo": { "total": 8, "valid": 8, "rank": 31 }, @@ -249,9 +254,10 @@ "wp:main": { "total": 18, "valid": 18, "rank": 31 } } }, - "add": { "specialization_hash_pre_at_add_stmt_42": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, + "add": { "hash_requires": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "add_disjoint_full_nominal": { "alt-ergo": { "total": 1, "valid": 1, @@ -376,66 +382,66 @@ { "total": 1, "valid": 1, "rank": 16 } }, - "add_nominal_assign": { "alt-ergo": { "total": 2, - "valid": 2, - "rank": 21 }, - "qed": { "total": 8, - "valid": 8 }, - "wp:main": { "total": 10, - "valid": 10, - "rank": 21 } }, - "add_full_assign": { "alt-ergo": { "total": 3, - "valid": 3, - "rank": 19 }, - "qed": { "total": 7, - "valid": 7 }, - "wp:main": { "total": 10, - "valid": 10, - "rank": 19 } }, - "add_assign": { "alt-ergo": { "total": 2, - "valid": 2, - "rank": 20 }, - "qed": { "total": 8, - "valid": 8 }, - "wp:main": { "total": 10, - "valid": 10, - "rank": 20 } }, - "add_full_post": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 16 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 16 } }, - "add_nominal_post_5": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 45 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 45 } }, - "add_nominal_post_4": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 23 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 23 } }, - "add_nominal_post_3": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 32 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 32 } }, - "add_nominal_post_2": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 35 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 35 } }, - "add_nominal_post": { "alt-ergo": { "total": 1, + "add_nominal_assigns": { "alt-ergo": { "total": 2, + "valid": 2, + "rank": 21 }, + "qed": { "total": 8, + "valid": 8 }, + "wp:main": { "total": 10, + "valid": 10, + "rank": 21 } }, + "add_full_assigns": { "alt-ergo": { "total": 3, + "valid": 3, + "rank": 19 }, + "qed": { "total": 7, + "valid": 7 }, + "wp:main": { "total": 10, + "valid": 10, + "rank": 19 } }, + "add_assigns": { "alt-ergo": { "total": 2, + "valid": 2, + "rank": 21 }, + "qed": { "total": 8, + "valid": 8 }, + "wp:main": { "total": 10, + "valid": 10, + "rank": 21 } }, + "add_full_ensures": { "alt-ergo": { "total": 1, "valid": 1, "rank": 16 }, "wp:main": { "total": 1, "valid": 1, "rank": 16 } }, + "add_nominal_ensures_5": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 45 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 45 } }, + "add_nominal_ensures_4": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 24 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 24 } }, + "add_nominal_ensures_3": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 33 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 33 } }, + "add_nominal_ensures_2": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 35 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 35 } }, + "add_nominal_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 16 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 16 } }, "wp:section": { "alt-ergo": { "total": 24, "valid": 24, "rank": 45 }, @@ -444,20 +450,24 @@ "wp:main": { "total": 54, "valid": 54, "rank": 45 } } }, - "mem_binding": { "specialization_eq_string_pre_at_mem_binding_stmt_63_2": - { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 27 }, - "wp:main": { "total": 1, "valid": 1, - "rank": 27 } }, - "specialization_eq_string_pre_at_mem_binding_stmt_63": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "specialization_hash_pre_at_mem_binding_stmt_55": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "mem_binding": { "eq_string_requires_2": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 27 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 27 } }, + "eq_string_requires": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "hash_requires_2": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "mem_binding_disjoint_not_found_found": { "alt-ergo": { "total": 1, "valid": 1, @@ -467,9 +477,9 @@ "mem_binding_complete_not_found_found": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 18 }, + "rank": 19 }, "wp:main": { "total": 1, "valid": 1, - "rank": 18 } }, + "rank": 19 } }, "mem_binding_assert_rte_signed_overflow": { "alt-ergo": { "total": 1, "valid": 1, @@ -540,56 +550,51 @@ "rank": 18 }, "wp:main": { "total": 1, "valid": 1, "rank": 18 } }, - "mem_binding_loop_inv_2": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 30 }, - "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 2, + "mem_binding_loop_invariant_2": + { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 31 }, + "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 2, "valid": 2, + "rank": 31 } }, + "mem_binding_loop_invariant": { "alt-ergo": + { "total": 2, "valid": 2, - "rank": 30 } }, - "mem_binding_loop_inv": { "alt-ergo": - { "total": 2, - "valid": 2, - "rank": 16 }, - "wp:main": - { "total": 2, - "valid": 2, - "rank": 16 } }, - "mem_binding_loop_term": { "qed": - { "total": 2, + "rank": 16 }, + "wp:main": + { "total": 2, + "valid": 2, + "rank": 16 } }, + "mem_binding_loop_variant": { "qed": + { "total": 2, "valid": 2 }, - "wp:main": - { "total": 2, + "wp:main": + { "total": 2, "valid": 2 } }, - "mem_binding_assign": { "qed": { "total": 11, - "valid": 11 }, - "wp:main": - { "total": 11, - "valid": 11 } }, - "mem_binding_loop_assign": { "qed": + "mem_binding_assigns": { "qed": + { "total": 11, + "valid": 11 }, + "wp:main": + { "total": 11, + "valid": 11 } }, + "mem_binding_loop_assigns": { "qed": { "total": 2, "valid": 2 }, - "wp:main": + "wp:main": { "total": 2, "valid": 2 } }, - "mem_binding_not_found_post": { "alt-ergo": + "mem_binding_not_found_ensures": + { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 33 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 33 } }, + "mem_binding_found_ensures": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 33 }, + "rank": 25 }, "wp:main": { "total": 1, - "valid": 1, - "rank": 33 } }, - "mem_binding_found_post": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 25 }, - "wp:main": - { "total": 1, "valid": 1, "rank": 25 } }, "wp:section": { "alt-ergo": { "total": 15, diff --git a/src/plugins/wp/tests/wp_gallery/loop-statement.c.0.report.json b/src/plugins/wp/tests/wp_gallery/loop-statement.c.0.report.json index 9de36f06f2317a3e97249529bc9d9467c084fbcd..e5e6355b5298cca1ed29dedf64ed513b9657913a 100644 --- a/src/plugins/wp/tests/wp_gallery/loop-statement.c.0.report.json +++ b/src/plugins/wp/tests/wp_gallery/loop-statement.c.0.report.json @@ -13,47 +13,49 @@ "wp:main": { "total": 1, "valid": 1, "rank": 31 } } } }, - "wp:functions": { "loop_statement": { "loop_statement_loop_inv_Iloop": + "wp:functions": { "loop_statement": { "loop_statement_loop_invariant_Iloop": { "alt-ergo": { "total": 2, "valid": 2, "rank": 16 }, "wp:main": { "total": 2, "valid": 2, "rank": 16 } }, - "loop_statement_assign": { "qed": + "loop_statement_assigns_2": { "qed": { "total": 4, "valid": 4 }, - "wp:main": + "wp:main": { "total": 4, "valid": 4 } }, - "loop_statement_stmt_assign": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "loop_statement_loop_assign": + "loop_statement_assigns": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "loop_statement_loop_assigns": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } }, - "loop_statement_stmt_post_Sbody": + "loop_statement_ensures_Sbody": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "loop_statement_stmt_pre_Scond": + "loop_statement_requires_Scond": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "loop_statement_stmt_pre_Rinv": + "loop_statement_requires_Rinv": { "alt-ergo": { "total": 1, "valid": 1, "rank": 20 }, "wp:main": { "total": 1, "valid": 1, "rank": 20 } }, - "loop_statement_post_Sloop": + "loop_statement_ensures_Sloop": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "loop_statement_post_Scond": + "loop_statement_ensures_Scond": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, diff --git a/src/plugins/wp/tests/wp_gallery/oracle/binary-multiplication-without-overflow.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle/binary-multiplication-without-overflow.res.oracle index a9c881e3400da1b7777942e5a5014b0d86060399..1274212b3de4edfa6b92d981a76d07bae8da56e8 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle/binary-multiplication-without-overflow.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle/binary-multiplication-without-overflow.res.oracle @@ -4,19 +4,17 @@ [wp] Loading driver 'share/wp.driver' [rte] annotating function BinaryMultiplication [wp] Goal typed_lemma_ax1_lack : not tried -[wp] Goal typed_lemma_ax2_lack : not tried -[wp] Goal typed_lemma_sizeof_uint32_t_ok : trivial -[wp] Goal typed_lemma_sizeof_uint64_t_ok : trivial -[wp] Goal typed_BinaryMultiplication_post_product : not tried +[wp] Goal typed_lemma_sizeof_ok_ok : trivial +[wp] Goal typed_BinaryMultiplication_ensures_product : not tried [wp] Goal typed_BinaryMultiplication_assert_a1_ok_deductible : not tried -[wp] Goal typed_BinaryMultiplication_loop_inv_inv1_lack_preserved : not tried -[wp] Goal typed_BinaryMultiplication_loop_inv_inv1_lack_established : not tried -[wp] Goal typed_BinaryMultiplication_loop_inv_inv2_ok_deductible_preserved : not tried -[wp] Goal typed_BinaryMultiplication_loop_inv_inv2_ok_deductible_established : not tried +[wp] Goal typed_BinaryMultiplication_loop_invariant_inv1_ok_preserved : not tried +[wp] Goal typed_BinaryMultiplication_loop_invariant_inv1_ok_established : not tried +[wp] Goal typed_BinaryMultiplication_loop_invariant_inv2_ok_deductible_preserved : not tried +[wp] Goal typed_BinaryMultiplication_loop_invariant_inv2_ok_deductible_established : not tried [wp] Goal typed_BinaryMultiplication_assert_rte_unsigned_overflow : not tried [wp] Goal typed_BinaryMultiplication_assert_rte_unsigned_overflow_2 : not tried [wp] Goal typed_BinaryMultiplication_assert_rte_unsigned_overflow_3 : not tried [wp] Goal typed_BinaryMultiplication_assert_rte_unsigned_overflow_4 : not tried -[wp] Goal typed_BinaryMultiplication_loop_assign : trivial -[wp] Goal typed_BinaryMultiplication_loop_term_decrease : not tried -[wp] Goal typed_BinaryMultiplication_loop_term_positive : not tried +[wp] Goal typed_BinaryMultiplication_loop_assigns : trivial +[wp] Goal typed_BinaryMultiplication_loop_variant_decrease : not tried +[wp] Goal typed_BinaryMultiplication_loop_variant_positive : not tried diff --git a/src/plugins/wp/tests/wp_gallery/oracle/binary-multiplication.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle/binary-multiplication.res.oracle index 7fd3bb8ff05a49b5acc35acebb185ea38f58a533..6473cd6ed5f76aec602b64c92c388b3f294a6c93 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle/binary-multiplication.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle/binary-multiplication.res.oracle @@ -6,19 +6,17 @@ [wp] Goal typed_lemma_ax1_lack : not tried [wp] Goal typed_lemma_ax2_lack : not tried [wp] Goal typed_lemma_ax3_lack : not tried -[wp] Goal typed_lemma_ax4_lack : not tried +[wp] Goal typed_lemma_ax4_ok : not tried [wp] Goal typed_lemma_ax5_ok : not tried -[wp] Goal typed_lemma_ax6_ok : not tried -[wp] Goal typed_lemma_sizeof_uint32_t_ok : trivial -[wp] Goal typed_lemma_sizeof_uint64_t_ok : trivial -[wp] Goal typed_BinaryMultiplication_post_product : not tried +[wp] Goal typed_lemma_sizeof_ok_ok : trivial +[wp] Goal typed_BinaryMultiplication_ensures_product : not tried [wp] Goal typed_BinaryMultiplication_assert_a1_ok_deductible : not tried -[wp] Goal typed_BinaryMultiplication_loop_inv_inv1_lack_preserved : not tried -[wp] Goal typed_BinaryMultiplication_loop_inv_inv1_lack_established : not tried -[wp] Goal typed_BinaryMultiplication_loop_inv_inv2_lack_preserved : not tried -[wp] Goal typed_BinaryMultiplication_loop_inv_inv2_lack_established : not tried +[wp] Goal typed_BinaryMultiplication_loop_invariant_inv1_ok_preserved : not tried +[wp] Goal typed_BinaryMultiplication_loop_invariant_inv1_ok_established : not tried +[wp] Goal typed_BinaryMultiplication_loop_invariant_inv2_ok_deductible_preserved : not tried +[wp] Goal typed_BinaryMultiplication_loop_invariant_inv2_ok_deductible_established : not tried [wp] Goal typed_BinaryMultiplication_assert_a2_ok : not tried [wp] Goal typed_BinaryMultiplication_assert_a3_ok : not tried -[wp] Goal typed_BinaryMultiplication_loop_assign : trivial -[wp] Goal typed_BinaryMultiplication_loop_term_decrease : not tried -[wp] Goal typed_BinaryMultiplication_loop_term_positive : not tried +[wp] Goal typed_BinaryMultiplication_loop_assigns : trivial +[wp] Goal typed_BinaryMultiplication_loop_variant_decrease : not tried +[wp] Goal typed_BinaryMultiplication_loop_variant_positive : not tried diff --git a/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo1_solved.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo1_solved.res.oracle index 43de8f0e4f5d0ee51d194883c2fccd4b1de93318..388a5387f67843dbacafd4aad8d4615860dbde18 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo1_solved.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo1_solved.res.oracle @@ -3,18 +3,18 @@ [wp] Running WP plugin... [wp] Loading driver 'share/wp.driver' [rte] annotating function exo1 -[wp] Goal typed_exo1_post : not tried -[wp] Goal typed_exo1_post_2 : not tried +[wp] Goal typed_exo1_ensures : not tried +[wp] Goal typed_exo1_ensures_2 : not tried [wp] Goal typed_exo1_assert_rte_signed_overflow : not tried -[wp] Goal typed_exo1_loop_inv_preserved : not tried -[wp] Goal typed_exo1_loop_inv_established : not tried -[wp] Goal typed_exo1_loop_inv_2_preserved : not tried -[wp] Goal typed_exo1_loop_inv_2_established : not tried +[wp] Goal typed_exo1_loop_invariant_preserved : not tried +[wp] Goal typed_exo1_loop_invariant_established : not tried +[wp] Goal typed_exo1_loop_invariant_2_preserved : not tried +[wp] Goal typed_exo1_loop_invariant_2_established : not tried [wp] Goal typed_exo1_assert_rte_mem_access : not tried [wp] Goal typed_exo1_assert_rte_mem_access_2 : not tried [wp] Goal typed_exo1_assert_rte_signed_overflow_2 : not tried [wp] Goal typed_exo1_assert_rte_signed_overflow_3 : not tried -[wp] Goal typed_exo1_loop_assign : trivial -[wp] Goal typed_exo1_assign : not tried -[wp] Goal typed_exo1_loop_term_decrease : not tried -[wp] Goal typed_exo1_loop_term_positive : not tried +[wp] Goal typed_exo1_loop_assigns : trivial +[wp] Goal typed_exo1_assigns : not tried +[wp] Goal typed_exo1_loop_variant_decrease : not tried +[wp] Goal typed_exo1_loop_variant_positive : not tried diff --git a/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo2_solved.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo2_solved.res.oracle index eafea03cce000bed408fac65ef413143b057a335..01cfab82cf38c1afd040a1dda9d285e2ab0317ab 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo2_solved.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo2_solved.res.oracle @@ -3,26 +3,26 @@ [wp] Running WP plugin... [wp] Loading driver 'share/wp.driver' [rte] annotating function max_subarray -[wp] Goal typed_max_subarray_post : not tried -[wp] Goal typed_max_subarray_post_2 : not tried -[wp] Goal typed_max_subarray_loop_inv_preserved : not tried -[wp] Goal typed_max_subarray_loop_inv_established : not tried -[wp] Goal typed_max_subarray_loop_inv_2_preserved : not tried -[wp] Goal typed_max_subarray_loop_inv_2_established : not tried -[wp] Goal typed_max_subarray_loop_inv_3_preserved : not tried -[wp] Goal typed_max_subarray_loop_inv_3_established : not tried -[wp] Goal typed_max_subarray_loop_inv_4_preserved : not tried -[wp] Goal typed_max_subarray_loop_inv_4_established : not tried -[wp] Goal typed_max_subarray_loop_inv_5_preserved : not tried -[wp] Goal typed_max_subarray_loop_inv_5_established : not tried -[wp] Goal typed_max_subarray_loop_inv_6_preserved : not tried -[wp] Goal typed_max_subarray_loop_inv_6_established : not tried -[wp] Goal typed_max_subarray_loop_inv_7_preserved : not tried -[wp] Goal typed_max_subarray_loop_inv_7_established : not tried -[wp] Goal typed_max_subarray_loop_inv_8_preserved : not tried -[wp] Goal typed_max_subarray_loop_inv_8_established : not tried +[wp] Goal typed_max_subarray_ensures : not tried +[wp] Goal typed_max_subarray_ensures_2 : not tried +[wp] Goal typed_max_subarray_loop_invariant_preserved : not tried +[wp] Goal typed_max_subarray_loop_invariant_established : not tried +[wp] Goal typed_max_subarray_loop_invariant_2_preserved : not tried +[wp] Goal typed_max_subarray_loop_invariant_2_established : not tried +[wp] Goal typed_max_subarray_loop_invariant_3_preserved : not tried +[wp] Goal typed_max_subarray_loop_invariant_3_established : not tried +[wp] Goal typed_max_subarray_loop_invariant_4_preserved : not tried +[wp] Goal typed_max_subarray_loop_invariant_4_established : not tried +[wp] Goal typed_max_subarray_loop_invariant_5_preserved : not tried +[wp] Goal typed_max_subarray_loop_invariant_5_established : not tried +[wp] Goal typed_max_subarray_loop_invariant_6_preserved : not tried +[wp] Goal typed_max_subarray_loop_invariant_6_established : not tried +[wp] Goal typed_max_subarray_loop_invariant_7_preserved : not tried +[wp] Goal typed_max_subarray_loop_invariant_7_established : not tried +[wp] Goal typed_max_subarray_loop_invariant_8_preserved : not tried +[wp] Goal typed_max_subarray_loop_invariant_8_established : not tried [wp] Goal typed_max_subarray_assert_rte_mem_access : not tried -[wp] Goal typed_max_subarray_loop_assign : trivial -[wp] Goal typed_max_subarray_assign : not tried -[wp] Goal typed_max_subarray_loop_term_decrease : not tried -[wp] Goal typed_max_subarray_loop_term_positive : not tried +[wp] Goal typed_max_subarray_loop_assigns : trivial +[wp] Goal typed_max_subarray_assigns : not tried +[wp] Goal typed_max_subarray_loop_variant_decrease : not tried +[wp] Goal typed_max_subarray_loop_variant_positive : not tried diff --git a/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.old.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.old.res.oracle index 6f7ae4b7e7cc5def01cb8ec771f88e5db660f898..d0d68abc9caadab4d4002d9a8bd206d5e529a233 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.old.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.old.res.oracle @@ -3,34 +3,34 @@ [wp] Running WP plugin... [wp] Loading driver 'share/wp.driver' [rte] annotating function equal_elements -[wp] Goal typed_ref_equal_elements_post : not tried -[wp] Goal typed_ref_equal_elements_post_2 : not tried -[wp] Goal typed_ref_equal_elements_post_3 : not tried +[wp] Goal typed_ref_equal_elements_ensures : not tried +[wp] Goal typed_ref_equal_elements_ensures_2 : not tried +[wp] Goal typed_ref_equal_elements_ensures_3 : not tried [wp] Goal typed_ref_equal_elements_assert_rte_mem_access : trivial [wp] Goal typed_ref_equal_elements_assert_rte_mem_access_2 : trivial -[wp] Goal typed_ref_equal_elements_loop_inv_preserved : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_established : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_2_preserved : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_2_established : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_preserved : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_established : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_2_preserved : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_2_established : not tried [wp] Goal typed_ref_equal_elements_assert_rte_index_bound : not tried [wp] Goal typed_ref_equal_elements_assert_rte_index_bound_2 : not tried [wp] Goal typed_ref_equal_elements_assert_rte_signed_overflow : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_3_preserved : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_3_established : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_4_preserved : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_4_established : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_5_preserved : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_5_established : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_6_preserved : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_6_established : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_7_preserved : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_7_established : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_8_preserved : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_8_established : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_9_preserved : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_9_established : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_10_preserved : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_10_established : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_3_preserved : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_3_established : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_4_preserved : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_4_established : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_5_preserved : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_5_established : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_6_preserved : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_6_established : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_7_preserved : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_7_established : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_8_preserved : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_8_established : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_9_preserved : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_9_established : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_10_preserved : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_10_established : not tried [wp] Goal typed_ref_equal_elements_assert_rte_mem_access_3 : not tried [wp] Goal typed_ref_equal_elements_assert_rte_index_bound_3 : not tried [wp] Goal typed_ref_equal_elements_assert_rte_index_bound_4 : not tried @@ -44,15 +44,15 @@ [wp] Goal typed_ref_equal_elements_assert_rte_index_bound_6 : not tried [wp] Goal typed_ref_equal_elements_assert_2 : not tried [wp] Goal typed_ref_equal_elements_assert_rte_signed_overflow_2 : not tried -[wp] Goal typed_ref_equal_elements_loop_assign : trivial -[wp] Goal typed_ref_equal_elements_loop_assign_2 : trivial -[wp] Goal typed_ref_equal_elements_assign_part1 : trivial -[wp] Goal typed_ref_equal_elements_assign_part2 : not tried -[wp] Goal typed_ref_equal_elements_assign_part3 : not tried -[wp] Goal typed_ref_equal_elements_loop_term_decrease : not tried -[wp] Goal typed_ref_equal_elements_loop_term_positive : not tried -[wp] Goal typed_ref_equal_elements_loop_term_2_decrease : not tried -[wp] Goal typed_ref_equal_elements_loop_term_2_positive : not tried +[wp] Goal typed_ref_equal_elements_loop_assigns : trivial +[wp] Goal typed_ref_equal_elements_loop_assigns_2 : trivial +[wp] Goal typed_ref_equal_elements_assigns_part1 : trivial +[wp] Goal typed_ref_equal_elements_assigns_part2 : not tried +[wp] Goal typed_ref_equal_elements_assigns_part3 : not tried +[wp] Goal typed_ref_equal_elements_loop_variant_decrease : not tried +[wp] Goal typed_ref_equal_elements_loop_variant_positive : not tried +[wp] Goal typed_ref_equal_elements_loop_variant_2_decrease : not tried +[wp] Goal typed_ref_equal_elements_loop_variant_2_positive : not tried [wp] Warning: Memory model hypotheses for function 'equal_elements': /*@ behavior typed_ref: diff --git a/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.old.v2.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.old.v2.res.oracle index cb8edd308b62fcdf4334ea512d87749bc39e176f..8b40acb3f436b766feb9fef4bb8d7b960945d098 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.old.v2.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.old.v2.res.oracle @@ -3,37 +3,37 @@ [wp] Running WP plugin... [wp] Loading driver 'share/wp.driver' [rte] annotating function equal_elements -[wp] Goal typed_ref_equal_elements_post_v1_good : not tried -[wp] Goal typed_ref_equal_elements_post_v2_good : not tried -[wp] Goal typed_ref_equal_elements_post_v1_v2_diff : not tried +[wp] Goal typed_ref_equal_elements_ensures_v1_good : not tried +[wp] Goal typed_ref_equal_elements_ensures_v2_good : not tried +[wp] Goal typed_ref_equal_elements_ensures_v1_v2_diff : not tried [wp] Goal typed_ref_equal_elements_assert_rte_mem_access : trivial [wp] Goal typed_ref_equal_elements_assert_rte_mem_access_2 : trivial -[wp] Goal typed_ref_equal_elements_loop_inv_preserved : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_established : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_set_at_0_preserved : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_set_at_0_established : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_preserved : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_established : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_set_at_0_preserved : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_set_at_0_established : not tried [wp] Goal typed_ref_equal_elements_assert_rte_index_bound : not tried [wp] Goal typed_ref_equal_elements_assert_rte_index_bound_2 : not tried [wp] Goal typed_ref_equal_elements_assert_set_at_1 : not tried [wp] Goal typed_ref_equal_elements_assert_rte_signed_overflow : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_bound_preserved : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_bound_established : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_seen_sound1_preserved : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_seen_sound1_established : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_seen_sound2_preserved : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_seen_sound2_established : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_v1_first_preserved : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_v1_first_established : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_v1_sound1_preserved : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_v1_sound1_established : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_v1_sound2_preserved : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_v1_sound2_established : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_v1_v2_diff_preserved : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_v1_v2_diff_established : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_v2_sound1_preserved : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_v2_sound1_established : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_v2_sound2_preserved : not tried -[wp] Goal typed_ref_equal_elements_loop_inv_v2_sound2_established : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_bound_preserved : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_bound_established : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_seen_sound1_preserved : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_seen_sound1_established : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_seen_sound2_preserved : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_seen_sound2_established : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_v1_first_preserved : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_v1_first_established : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_v1_sound1_preserved : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_v1_sound1_established : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_v1_sound2_preserved : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_v1_sound2_established : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_v1_v2_diff_preserved : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_v1_v2_diff_established : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_v2_sound1_preserved : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_v2_sound1_established : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_v2_sound2_preserved : not tried +[wp] Goal typed_ref_equal_elements_loop_invariant_v2_sound2_established : not tried [wp] Goal typed_ref_equal_elements_assert_rte_mem_access_3 : not tried [wp] Goal typed_ref_equal_elements_assert_rte_index_bound_3 : not tried [wp] Goal typed_ref_equal_elements_assert_rte_index_bound_4 : not tried @@ -45,15 +45,15 @@ [wp] Goal typed_ref_equal_elements_assert_rte_index_bound_5 : not tried [wp] Goal typed_ref_equal_elements_assert_rte_index_bound_6 : not tried [wp] Goal typed_ref_equal_elements_assert_rte_signed_overflow_2 : not tried -[wp] Goal typed_ref_equal_elements_loop_assign : trivial -[wp] Goal typed_ref_equal_elements_loop_assign_2 : trivial -[wp] Goal typed_ref_equal_elements_assign_part1 : trivial -[wp] Goal typed_ref_equal_elements_assign_part2 : not tried -[wp] Goal typed_ref_equal_elements_assign_part3 : not tried -[wp] Goal typed_ref_equal_elements_loop_term_decrease : not tried -[wp] Goal typed_ref_equal_elements_loop_term_positive : not tried -[wp] Goal typed_ref_equal_elements_loop_term_2_decrease : not tried -[wp] Goal typed_ref_equal_elements_loop_term_2_positive : not tried +[wp] Goal typed_ref_equal_elements_loop_assigns : trivial +[wp] Goal typed_ref_equal_elements_loop_assigns_2 : trivial +[wp] Goal typed_ref_equal_elements_assigns_part1 : trivial +[wp] Goal typed_ref_equal_elements_assigns_part2 : not tried +[wp] Goal typed_ref_equal_elements_assigns_part3 : not tried +[wp] Goal typed_ref_equal_elements_loop_variant_decrease : not tried +[wp] Goal typed_ref_equal_elements_loop_variant_positive : not tried +[wp] Goal typed_ref_equal_elements_loop_variant_2_decrease : not tried +[wp] Goal typed_ref_equal_elements_loop_variant_2_positive : not tried [wp] Warning: Memory model hypotheses for function 'equal_elements': /*@ behavior typed_ref: diff --git a/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.simplified.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.simplified.res.oracle index c580a3411d9bb5e4717da9ec3f938b4b2c9798f0..d19091020e7771f01268a28a7d9a158e21d88c20 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.simplified.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.simplified.res.oracle @@ -5,36 +5,36 @@ [rte] annotating function pair [wp] Goal typed_pair_complete_has_pair_no_pair : trivial [wp] Goal typed_pair_disjoint_has_pair_no_pair : trivial -[wp] Goal typed_pair_loop_inv_preserved : not tried -[wp] Goal typed_pair_loop_inv_established : not tried -[wp] Goal typed_pair_loop_inv_2_preserved : not tried -[wp] Goal typed_pair_loop_inv_2_established : not tried +[wp] Goal typed_pair_loop_invariant_preserved : not tried +[wp] Goal typed_pair_loop_invariant_established : not tried +[wp] Goal typed_pair_loop_invariant_2_preserved : not tried +[wp] Goal typed_pair_loop_invariant_2_established : not tried [wp] Goal typed_pair_assert_rte_index_bound : not tried [wp] Goal typed_pair_assert_rte_index_bound_2 : not tried [wp] Goal typed_pair_assert_rte_signed_overflow : not tried -[wp] Goal typed_pair_loop_inv_3_preserved : not tried -[wp] Goal typed_pair_loop_inv_3_established : not tried -[wp] Goal typed_pair_loop_inv_4_preserved : not tried -[wp] Goal typed_pair_loop_inv_4_established : not tried -[wp] Goal typed_pair_loop_inv_5_preserved : not tried -[wp] Goal typed_pair_loop_inv_5_established : not tried -[wp] Goal typed_pair_loop_inv_6_preserved : not tried -[wp] Goal typed_pair_loop_inv_6_established : not tried +[wp] Goal typed_pair_loop_invariant_3_preserved : not tried +[wp] Goal typed_pair_loop_invariant_3_established : not tried +[wp] Goal typed_pair_loop_invariant_4_preserved : not tried +[wp] Goal typed_pair_loop_invariant_4_established : not tried +[wp] Goal typed_pair_loop_invariant_5_preserved : not tried +[wp] Goal typed_pair_loop_invariant_5_established : not tried +[wp] Goal typed_pair_loop_invariant_6_preserved : not tried +[wp] Goal typed_pair_loop_invariant_6_established : not tried [wp] Goal typed_pair_assert_rte_mem_access : not tried [wp] Goal typed_pair_assert_rte_index_bound_3 : not tried [wp] Goal typed_pair_assert_rte_index_bound_4 : not tried [wp] Goal typed_pair_assert_rte_index_bound_5 : not tried [wp] Goal typed_pair_assert_rte_index_bound_6 : not tried [wp] Goal typed_pair_assert_rte_signed_overflow_2 : not tried -[wp] Goal typed_pair_loop_assign : trivial -[wp] Goal typed_pair_loop_assign_2 : trivial -[wp] Goal typed_pair_assign_part1 : not tried -[wp] Goal typed_pair_assign_part2 : not tried -[wp] Goal typed_pair_assign_part3 : not tried -[wp] Goal typed_pair_assign_part4 : not tried -[wp] Goal typed_pair_loop_term_decrease : not tried -[wp] Goal typed_pair_loop_term_positive : not tried -[wp] Goal typed_pair_loop_term_2_decrease : not tried -[wp] Goal typed_pair_loop_term_2_positive : not tried -[wp] Goal typed_pair_has_pair_post : not tried -[wp] Goal typed_pair_no_pair_post : not tried +[wp] Goal typed_pair_loop_assigns : trivial +[wp] Goal typed_pair_loop_assigns_2 : trivial +[wp] Goal typed_pair_assigns_part1 : not tried +[wp] Goal typed_pair_assigns_part2 : not tried +[wp] Goal typed_pair_assigns_part3 : not tried +[wp] Goal typed_pair_assigns_part4 : not tried +[wp] Goal typed_pair_loop_variant_decrease : not tried +[wp] Goal typed_pair_loop_variant_positive : not tried +[wp] Goal typed_pair_loop_variant_2_decrease : not tried +[wp] Goal typed_pair_loop_variant_2_positive : not tried +[wp] Goal typed_pair_has_pair_ensures : not tried +[wp] Goal typed_pair_no_pair_ensures : not tried diff --git a/src/plugins/wp/tests/wp_gallery/oracle/frama_c_hashtbl_solved.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle/frama_c_hashtbl_solved.res.oracle index 858d5fb5abcd6833d1bd5df3a470b6fd41b7b9b9..00a8df49e163c00104c97b7203e10f9e6f4accfa 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle/frama_c_hashtbl_solved.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle/frama_c_hashtbl_solved.res.oracle @@ -26,96 +26,96 @@ [wp] Goal typed_add_assert_rte_mem_access_6 : not tried [wp] Goal typed_add_assert_rte_mem_access_7 : not tried [wp] Goal typed_add_assert_rte_signed_overflow_2 : not tried -[wp] Goal typed_add_assign_exit : trivial -[wp] Goal typed_add_assign_normal_part1 : trivial -[wp] Goal typed_add_assign_normal_part2 : not tried -[wp] Goal typed_add_assign_normal_part3 : not tried -[wp] Goal typed_add_assign_normal_part4 : not tried -[wp] Goal typed_add_assign_normal_part5 : not tried -[wp] Goal typed_add_assign_normal_part6 : not tried -[wp] Goal typed_add_assign_normal_part7 : not tried -[wp] Goal typed_add_assign_normal_part8 : not tried -[wp] Goal typed_add_assign_normal_part9 : not tried -[wp] Goal typed_add_call_hash_pre : not tried -[wp] Goal typed_add_full_post : not tried -[wp] Goal typed_add_full_assign_exit : trivial -[wp] Goal typed_add_full_assign_normal_part1 : trivial -[wp] Goal typed_add_full_assign_normal_part2 : not tried -[wp] Goal typed_add_full_assign_normal_part3 : not tried -[wp] Goal typed_add_full_assign_normal_part4 : not tried -[wp] Goal typed_add_full_assign_normal_part5 : not tried -[wp] Goal typed_add_full_assign_normal_part6 : not tried -[wp] Goal typed_add_full_assign_normal_part7 : not tried -[wp] Goal typed_add_full_assign_normal_part8 : not tried -[wp] Goal typed_add_full_assign_normal_part9 : not tried -[wp] Goal typed_add_nominal_post : not tried -[wp] Goal typed_add_nominal_post_2 : not tried -[wp] Goal typed_add_nominal_post_3 : not tried -[wp] Goal typed_add_nominal_post_4 : not tried -[wp] Goal typed_add_nominal_post_5 : not tried -[wp] Goal typed_add_nominal_assign_exit : trivial -[wp] Goal typed_add_nominal_assign_normal_part1 : trivial -[wp] Goal typed_add_nominal_assign_normal_part2 : not tried -[wp] Goal typed_add_nominal_assign_normal_part3 : not tried -[wp] Goal typed_add_nominal_assign_normal_part4 : not tried -[wp] Goal typed_add_nominal_assign_normal_part5 : not tried -[wp] Goal typed_add_nominal_assign_normal_part6 : not tried -[wp] Goal typed_add_nominal_assign_normal_part7 : not tried -[wp] Goal typed_add_nominal_assign_normal_part8 : not tried -[wp] Goal typed_add_nominal_assign_normal_part9 : not tried +[wp] Goal typed_add_assigns_exit : trivial +[wp] Goal typed_add_assigns_normal_part1 : trivial +[wp] Goal typed_add_assigns_normal_part2 : not tried +[wp] Goal typed_add_assigns_normal_part3 : not tried +[wp] Goal typed_add_assigns_normal_part4 : not tried +[wp] Goal typed_add_assigns_normal_part5 : not tried +[wp] Goal typed_add_assigns_normal_part6 : not tried +[wp] Goal typed_add_assigns_normal_part7 : not tried +[wp] Goal typed_add_assigns_normal_part8 : not tried +[wp] Goal typed_add_assigns_normal_part9 : not tried +[wp] Goal typed_add_call_hash_requires : not tried +[wp] Goal typed_add_full_ensures : not tried +[wp] Goal typed_add_full_assigns_exit : trivial +[wp] Goal typed_add_full_assigns_normal_part1 : trivial +[wp] Goal typed_add_full_assigns_normal_part2 : not tried +[wp] Goal typed_add_full_assigns_normal_part3 : not tried +[wp] Goal typed_add_full_assigns_normal_part4 : not tried +[wp] Goal typed_add_full_assigns_normal_part5 : not tried +[wp] Goal typed_add_full_assigns_normal_part6 : not tried +[wp] Goal typed_add_full_assigns_normal_part7 : not tried +[wp] Goal typed_add_full_assigns_normal_part8 : not tried +[wp] Goal typed_add_full_assigns_normal_part9 : not tried +[wp] Goal typed_add_nominal_ensures : not tried +[wp] Goal typed_add_nominal_ensures_2 : not tried +[wp] Goal typed_add_nominal_ensures_3 : not tried +[wp] Goal typed_add_nominal_ensures_4 : not tried +[wp] Goal typed_add_nominal_ensures_5 : not tried +[wp] Goal typed_add_nominal_assigns_exit : trivial +[wp] Goal typed_add_nominal_assigns_normal_part1 : trivial +[wp] Goal typed_add_nominal_assigns_normal_part2 : not tried +[wp] Goal typed_add_nominal_assigns_normal_part3 : not tried +[wp] Goal typed_add_nominal_assigns_normal_part4 : not tried +[wp] Goal typed_add_nominal_assigns_normal_part5 : not tried +[wp] Goal typed_add_nominal_assigns_normal_part6 : not tried +[wp] Goal typed_add_nominal_assigns_normal_part7 : not tried +[wp] Goal typed_add_nominal_assigns_normal_part8 : not tried +[wp] Goal typed_add_nominal_assigns_normal_part9 : not tried [wp] Goal typed_eq_string_complete_not_eq_eq : trivial [wp] Goal typed_eq_string_disjoint_not_eq_eq : trivial -[wp] Goal typed_eq_string_loop_inv_preserved : not tried -[wp] Goal typed_eq_string_loop_inv_established : not tried -[wp] Goal typed_eq_string_loop_inv_2_preserved : not tried -[wp] Goal typed_eq_string_loop_inv_2_established : not tried +[wp] Goal typed_eq_string_loop_invariant_preserved : not tried +[wp] Goal typed_eq_string_loop_invariant_established : not tried +[wp] Goal typed_eq_string_loop_invariant_2_preserved : not tried +[wp] Goal typed_eq_string_loop_invariant_2_established : not tried [wp] Goal typed_eq_string_assert_rte_mem_access : not tried [wp] Goal typed_eq_string_assert_rte_mem_access_2 : not tried [wp] Goal typed_eq_string_assert_rte_signed_overflow : not tried -[wp] Goal typed_eq_string_loop_assign : trivial -[wp] Goal typed_eq_string_assign_part1 : not tried -[wp] Goal typed_eq_string_assign_part2 : not tried -[wp] Goal typed_eq_string_assign_part3 : not tried -[wp] Goal typed_eq_string_assign_part4 : not tried -[wp] Goal typed_eq_string_loop_term_decrease : not tried -[wp] Goal typed_eq_string_loop_term_positive : not tried -[wp] Goal typed_eq_string_eq_post : not tried -[wp] Goal typed_eq_string_not_eq_post : not tried -[wp] Goal typed_hash_post_left_unproved : not tried -[wp] Goal typed_hash_loop_inv_preserved : not tried -[wp] Goal typed_hash_loop_inv_established : not tried +[wp] Goal typed_eq_string_loop_assigns : trivial +[wp] Goal typed_eq_string_assigns_part1 : not tried +[wp] Goal typed_eq_string_assigns_part2 : not tried +[wp] Goal typed_eq_string_assigns_part3 : not tried +[wp] Goal typed_eq_string_assigns_part4 : not tried +[wp] Goal typed_eq_string_loop_variant_decrease : not tried +[wp] Goal typed_eq_string_loop_variant_positive : not tried +[wp] Goal typed_eq_string_eq_ensures : not tried +[wp] Goal typed_eq_string_not_eq_ensures : not tried +[wp] Goal typed_hash_ensures_left_unproved : not tried +[wp] Goal typed_hash_loop_invariant_preserved : not tried +[wp] Goal typed_hash_loop_invariant_established : not tried [wp] Goal typed_hash_assert_rte_mem_access : not tried [wp] Goal typed_hash_assert_rte_mem_access_2 : not tried [wp] Goal typed_hash_assert_rte_signed_overflow : not tried -[wp] Goal typed_hash_loop_assign : trivial -[wp] Goal typed_hash_assign_part1 : not tried -[wp] Goal typed_hash_assign_part2 : not tried -[wp] Goal typed_hash_loop_term_decrease : not tried -[wp] Goal typed_hash_loop_term_positive : not tried -[wp] Goal typed_init_post : not tried -[wp] Goal typed_init_post_2 : not tried +[wp] Goal typed_hash_loop_assigns : trivial +[wp] Goal typed_hash_assigns_part1 : not tried +[wp] Goal typed_hash_assigns_part2 : not tried +[wp] Goal typed_hash_loop_variant_decrease : not tried +[wp] Goal typed_hash_loop_variant_positive : not tried +[wp] Goal typed_init_ensures : not tried +[wp] Goal typed_init_ensures_2 : not tried [wp] Goal typed_init_assert_rte_mem_access : not tried -[wp] Goal typed_init_loop_inv_preserved : not tried -[wp] Goal typed_init_loop_inv_established : not tried -[wp] Goal typed_init_loop_inv_2_preserved : not tried -[wp] Goal typed_init_loop_inv_2_established : not tried +[wp] Goal typed_init_loop_invariant_preserved : not tried +[wp] Goal typed_init_loop_invariant_established : not tried +[wp] Goal typed_init_loop_invariant_2_preserved : not tried +[wp] Goal typed_init_loop_invariant_2_established : not tried [wp] Goal typed_init_assert_rte_index_bound : not tried [wp] Goal typed_init_assert_rte_index_bound_2 : not tried [wp] Goal typed_init_assert_rte_mem_access_2 : not tried [wp] Goal typed_init_assert_rte_signed_overflow : not tried -[wp] Goal typed_init_loop_assign_part1 : trivial -[wp] Goal typed_init_loop_assign_part2 : not tried -[wp] Goal typed_init_assign_part1 : not tried -[wp] Goal typed_init_assign_part2 : not tried -[wp] Goal typed_init_assign_part3 : not tried -[wp] Goal typed_init_loop_term_decrease : not tried -[wp] Goal typed_init_loop_term_positive : not tried +[wp] Goal typed_init_loop_assigns_part1 : trivial +[wp] Goal typed_init_loop_assigns_part2 : not tried +[wp] Goal typed_init_assigns_part1 : not tried +[wp] Goal typed_init_assigns_part2 : not tried +[wp] Goal typed_init_assigns_part3 : not tried +[wp] Goal typed_init_loop_variant_decrease : not tried +[wp] Goal typed_init_loop_variant_positive : not tried [wp] Goal typed_mem_binding_complete_not_found_found : not tried [wp] Goal typed_mem_binding_disjoint_not_found_found : not tried -[wp] Goal typed_mem_binding_loop_inv_preserved : not tried -[wp] Goal typed_mem_binding_loop_inv_established : not tried -[wp] Goal typed_mem_binding_loop_inv_2_preserved : not tried -[wp] Goal typed_mem_binding_loop_inv_2_established : not tried +[wp] Goal typed_mem_binding_loop_invariant_preserved : not tried +[wp] Goal typed_mem_binding_loop_invariant_established : not tried +[wp] Goal typed_mem_binding_loop_invariant_2_preserved : not tried +[wp] Goal typed_mem_binding_loop_invariant_2_established : not tried [wp] Goal typed_mem_binding_assert_rte_index_bound : not tried [wp] Goal typed_mem_binding_assert_rte_index_bound_2 : not tried [wp] Goal typed_mem_binding_assert_rte_mem_access : not tried @@ -130,26 +130,26 @@ [wp] Goal typed_mem_binding_assert_rte_index_bound_10 : not tried [wp] Goal typed_mem_binding_assert_rte_mem_access_3 : not tried [wp] Goal typed_mem_binding_assert_rte_signed_overflow : not tried -[wp] Goal typed_mem_binding_loop_assign_part1 : trivial -[wp] Goal typed_mem_binding_loop_assign_part2 : not tried -[wp] Goal typed_mem_binding_assign_exit_part1 : trivial -[wp] Goal typed_mem_binding_assign_exit_part2 : not tried -[wp] Goal typed_mem_binding_assign_exit_part3 : not tried -[wp] Goal typed_mem_binding_assign_exit_part4 : not tried -[wp] Goal typed_mem_binding_assign_normal_part1 : trivial -[wp] Goal typed_mem_binding_assign_normal_part2 : not tried -[wp] Goal typed_mem_binding_assign_normal_part3 : not tried -[wp] Goal typed_mem_binding_assign_normal_part4 : not tried -[wp] Goal typed_mem_binding_assign_normal_part5 : not tried -[wp] Goal typed_mem_binding_assign_normal_part6 : not tried -[wp] Goal typed_mem_binding_assign_normal_part7 : not tried -[wp] Goal typed_mem_binding_loop_term_decrease : not tried -[wp] Goal typed_mem_binding_loop_term_positive : not tried -[wp] Goal typed_mem_binding_call_hash_pre : not tried -[wp] Goal typed_mem_binding_call_eq_string_pre : not tried -[wp] Goal typed_mem_binding_call_eq_string_pre_2 : not tried -[wp] Goal typed_mem_binding_found_post : not tried -[wp] Goal typed_mem_binding_not_found_post : not tried -[wp] Goal typed_size_post : not tried +[wp] Goal typed_mem_binding_loop_assigns_part1 : trivial +[wp] Goal typed_mem_binding_loop_assigns_part2 : not tried +[wp] Goal typed_mem_binding_assigns_exit_part1 : trivial +[wp] Goal typed_mem_binding_assigns_exit_part2 : not tried +[wp] Goal typed_mem_binding_assigns_exit_part3 : not tried +[wp] Goal typed_mem_binding_assigns_exit_part4 : not tried +[wp] Goal typed_mem_binding_assigns_normal_part1 : trivial +[wp] Goal typed_mem_binding_assigns_normal_part2 : not tried +[wp] Goal typed_mem_binding_assigns_normal_part3 : not tried +[wp] Goal typed_mem_binding_assigns_normal_part4 : not tried +[wp] Goal typed_mem_binding_assigns_normal_part5 : not tried +[wp] Goal typed_mem_binding_assigns_normal_part6 : not tried +[wp] Goal typed_mem_binding_assigns_normal_part7 : not tried +[wp] Goal typed_mem_binding_loop_variant_decrease : not tried +[wp] Goal typed_mem_binding_loop_variant_positive : not tried +[wp] Goal typed_mem_binding_call_hash_requires : not tried +[wp] Goal typed_mem_binding_call_eq_string_requires : not tried +[wp] Goal typed_mem_binding_call_eq_string_requires_2 : not tried +[wp] Goal typed_mem_binding_found_ensures : not tried +[wp] Goal typed_mem_binding_not_found_ensures : not tried +[wp] Goal typed_size_ensures : not tried [wp] Goal typed_size_assert_rte_mem_access : not tried -[wp] Goal typed_size_assign : not tried +[wp] Goal typed_size_assigns : not tried diff --git a/src/plugins/wp/tests/wp_gallery/oracle/loop-statement.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle/loop-statement.res.oracle index 5b5e59d368048c9ece0eede0c84e73dfe835037a..52b5a0ec02f3a5baff3c2969562156e94d7035b8 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle/loop-statement.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle/loop-statement.res.oracle @@ -4,17 +4,17 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] Goal typed_lemma_Lb : not tried -[wp] Goal typed_loop_statement_post_Scond : not tried -[wp] Goal typed_loop_statement_post_Sloop : not tried -[wp] Goal typed_loop_statement_loop_inv_Iloop_preserved : not tried -[wp] Goal typed_loop_statement_loop_inv_Iloop_established : not tried -[wp] Goal typed_loop_statement_loop_assign_part1 : trivial -[wp] Goal typed_loop_statement_loop_assign_part2 : not tried -[wp] Goal typed_loop_statement_assign_exit_part1 : trivial -[wp] Goal typed_loop_statement_assign_exit_part2 : not tried -[wp] Goal typed_loop_statement_assign_normal_part1 : trivial -[wp] Goal typed_loop_statement_assign_normal_part2 : not tried -[wp] Goal typed_loop_statement_stmt_pre_Rinv : not tried -[wp] Goal typed_loop_statement_stmt_pre_Scond : not tried -[wp] Goal typed_loop_statement_stmt_post_Sbody : not tried -[wp] Goal typed_loop_statement_stmt_assign : trivial +[wp] Goal typed_loop_statement_ensures_Scond : not tried +[wp] Goal typed_loop_statement_ensures_Sloop : not tried +[wp] Goal typed_loop_statement_loop_invariant_Iloop_preserved : not tried +[wp] Goal typed_loop_statement_loop_invariant_Iloop_established : not tried +[wp] Goal typed_loop_statement_loop_assigns_part1 : trivial +[wp] Goal typed_loop_statement_loop_assigns_part2 : not tried +[wp] Goal typed_loop_statement_assigns_2_exit_part1 : trivial +[wp] Goal typed_loop_statement_assigns_2_exit_part2 : not tried +[wp] Goal typed_loop_statement_assigns_2_normal_part1 : trivial +[wp] Goal typed_loop_statement_assigns_2_normal_part2 : not tried +[wp] Goal typed_loop_statement_requires_Rinv : not tried +[wp] Goal typed_loop_statement_requires_Scond : not tried +[wp] Goal typed_loop_statement_ensures_Sbody : not tried +[wp] Goal typed_loop_statement_assigns : trivial diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication-without-overflow.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication-without-overflow.res.oracle index 90daf4367f29931b21f53b977b681d9b4bf0fa37..54c0e393099c80318ef0b908639542e56799eef3 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication-without-overflow.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication-without-overflow.res.oracle @@ -3,51 +3,53 @@ [wp] Running WP plugin... [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards -[wp] 9 goals scheduled -[wp] [Qed] Goal typed_lemma_sizeof_uint32_t_ok : Valid -[wp] [Qed] Goal typed_lemma_sizeof_uint64_t_ok : Valid -[wp] [Alt-Ergo] Goal typed_BinaryMultiplication_post_product : Valid -[wp] [Alt-Ergo] Goal typed_BinaryMultiplication_assert_a1_ok_deductible : Valid -[wp] [Alt-Ergo] Goal typed_BinaryMultiplication_loop_inv_inv2_ok_deductible_preserved : Valid -[wp] [Alt-Ergo] Goal typed_BinaryMultiplication_loop_inv_inv2_ok_deductible_established : Valid -[wp] [Qed] Goal typed_BinaryMultiplication_loop_assign : Valid -[wp] [Alt-Ergo] Goal typed_BinaryMultiplication_loop_term_decrease : Valid -[wp] [Alt-Ergo] Goal typed_BinaryMultiplication_loop_term_positive : Valid -[wp] Proved goals: 9 / 9 +[wp] 10 goals scheduled +[wp] [Qed] Goal typed_lemma_sizeof_ok_ok : Valid +[wp] [alt-ergo] Goal typed_BinaryMultiplication_ensures_product : Valid +[wp] [alt-ergo] Goal typed_BinaryMultiplication_assert_a1_ok_deductible : Valid +[wp] [alt-ergo] Goal typed_BinaryMultiplication_loop_invariant_inv1_ok_preserved : Valid +[wp] [Qed] Goal typed_BinaryMultiplication_loop_invariant_inv1_ok_established : Valid +[wp] [alt-ergo] Goal typed_BinaryMultiplication_loop_invariant_inv2_ok_deductible_preserved : Valid +[wp] [alt-ergo] Goal typed_BinaryMultiplication_loop_invariant_inv2_ok_deductible_established : Valid +[wp] [Qed] Goal typed_BinaryMultiplication_loop_assigns : Valid +[wp] [alt-ergo] Goal typed_BinaryMultiplication_loop_variant_decrease : Valid +[wp] [alt-ergo] Goal typed_BinaryMultiplication_loop_variant_positive : Valid +[wp] Proved goals: 10 / 10 Qed: 3 - Alt-Ergo: 6 + alt-ergo: 7 [wp] Report 'tests/wp_gallery/binary-multiplication-without-overflow.c.0.report.json' ------------------------------------------------------------- Axiomatics WP Alt-Ergo Total Success -Axiomatic mult 2 - 2 100% +Axiomatic mult 1 - 1 100% ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -BinaryMultiplication 1 6 (56..80) 7 100% +BinaryMultiplication 2 - 9 100% ------------------------------------------------------------- [wp] Running WP plugin... [rte] annotating function BinaryMultiplication -[wp] 13 goals scheduled -[wp] [Qed] Goal typed_lemma_sizeof_uint32_t_ok : Valid -[wp] [Qed] Goal typed_lemma_sizeof_uint64_t_ok : Valid -[wp] [Alt-Ergo] Goal typed_BinaryMultiplication_post_product : Valid -[wp] [Alt-Ergo] Goal typed_BinaryMultiplication_assert_a1_ok_deductible : Valid -[wp] [Alt-Ergo] Goal typed_BinaryMultiplication_loop_inv_inv2_ok_deductible_preserved : Valid -[wp] [Alt-Ergo] Goal typed_BinaryMultiplication_loop_inv_inv2_ok_deductible_established : Valid -[wp] [Alt-Ergo] Goal typed_BinaryMultiplication_assert_rte_unsigned_overflow : Valid -[wp] [Alt-Ergo] Goal typed_BinaryMultiplication_assert_rte_unsigned_overflow_2 : Valid -[wp] [Alt-Ergo] Goal typed_BinaryMultiplication_assert_rte_unsigned_overflow_3 : Valid -[wp] [Alt-Ergo] Goal typed_BinaryMultiplication_assert_rte_unsigned_overflow_4 : Valid -[wp] [Qed] Goal typed_BinaryMultiplication_loop_assign : Valid -[wp] [Alt-Ergo] Goal typed_BinaryMultiplication_loop_term_decrease : Valid -[wp] [Alt-Ergo] Goal typed_BinaryMultiplication_loop_term_positive : Valid -[wp] Proved goals: 10 / 13 +[wp] 14 goals scheduled +[wp] [Qed] Goal typed_lemma_sizeof_ok_ok : Valid +[wp] [alt-ergo] Goal typed_BinaryMultiplication_ensures_product : Valid +[wp] [alt-ergo] Goal typed_BinaryMultiplication_assert_a1_ok_deductible : Valid +[wp] [alt-ergo] Goal typed_BinaryMultiplication_loop_invariant_inv1_ok_preserved : Valid +[wp] [Qed] Goal typed_BinaryMultiplication_loop_invariant_inv1_ok_established : Valid +[wp] [alt-ergo] Goal typed_BinaryMultiplication_loop_invariant_inv2_ok_deductible_preserved : Valid +[wp] [alt-ergo] Goal typed_BinaryMultiplication_loop_invariant_inv2_ok_deductible_established : Valid +[wp] [alt-ergo] Goal typed_BinaryMultiplication_assert_rte_unsigned_overflow : Valid +[wp] [alt-ergo] Goal typed_BinaryMultiplication_assert_rte_unsigned_overflow_2 : Valid +[wp] [alt-ergo] Goal typed_BinaryMultiplication_assert_rte_unsigned_overflow_3 : Valid +[wp] [alt-ergo] Goal typed_BinaryMultiplication_assert_rte_unsigned_overflow_4 : Valid +[wp] [Qed] Goal typed_BinaryMultiplication_loop_assigns : Valid +[wp] [alt-ergo] Goal typed_BinaryMultiplication_loop_variant_decrease : Valid +[wp] [alt-ergo] Goal typed_BinaryMultiplication_loop_variant_positive : Valid +[wp] Proved goals: 11 / 14 Qed: 0 - Alt-Ergo: 10 + alt-ergo: 11 [wp] Report 'tests/wp_gallery/binary-multiplication-without-overflow.c.0.report.json' ------------------------------------------------------------- Axiomatics WP Alt-Ergo Total Success -Axiomatic mult 2 - 2 100% +Axiomatic mult 1 - 1 100% ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -BinaryMultiplication 1 10 (56..80) 11 100% +BinaryMultiplication 2 - 13 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication.res.oracle index eece2d7e9c0f602a2df9c25328eebbd3a0cd4b01..dd5a5577e64cd94e04a81eac8f0df4277d82c64b 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication.res.oracle @@ -3,51 +3,57 @@ [wp] Running WP plugin... [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards -[wp] 11 goals scheduled -[wp] [Alt-Ergo] Goal typed_lemma_ax5_ok : Valid -[wp] [Alt-Ergo] Goal typed_lemma_ax6_ok : Valid -[wp] [Qed] Goal typed_lemma_sizeof_uint32_t_ok : Valid -[wp] [Qed] Goal typed_lemma_sizeof_uint64_t_ok : Valid -[wp] [Alt-Ergo] Goal typed_BinaryMultiplication_post_product : Valid -[wp] [Alt-Ergo] Goal typed_BinaryMultiplication_assert_a1_ok_deductible : Valid -[wp] [Alt-Ergo] Goal typed_BinaryMultiplication_assert_a2_ok : Valid -[wp] [Alt-Ergo] Goal typed_BinaryMultiplication_assert_a3_ok : Valid -[wp] [Qed] Goal typed_BinaryMultiplication_loop_assign : Valid -[wp] [Alt-Ergo] Goal typed_BinaryMultiplication_loop_term_decrease : Valid -[wp] [Alt-Ergo] Goal typed_BinaryMultiplication_loop_term_positive : Valid -[wp] Proved goals: 11 / 11 +[wp] 14 goals scheduled +[wp] [alt-ergo] Goal typed_lemma_ax4_ok : Valid +[wp] [alt-ergo] Goal typed_lemma_ax5_ok : Valid +[wp] [Qed] Goal typed_lemma_sizeof_ok_ok : Valid +[wp] [alt-ergo] Goal typed_BinaryMultiplication_ensures_product : Valid +[wp] [alt-ergo] Goal typed_BinaryMultiplication_assert_a1_ok_deductible : Valid +[wp] [alt-ergo] Goal typed_BinaryMultiplication_loop_invariant_inv1_ok_preserved : Valid +[wp] [Qed] Goal typed_BinaryMultiplication_loop_invariant_inv1_ok_established : Valid +[wp] [alt-ergo] Goal typed_BinaryMultiplication_loop_invariant_inv2_ok_deductible_preserved : Valid +[wp] [alt-ergo] Goal typed_BinaryMultiplication_loop_invariant_inv2_ok_deductible_established : Valid +[wp] [alt-ergo] Goal typed_BinaryMultiplication_assert_a2_ok : Valid +[wp] [alt-ergo] Goal typed_BinaryMultiplication_assert_a3_ok : Valid +[wp] [Qed] Goal typed_BinaryMultiplication_loop_assigns : Valid +[wp] [alt-ergo] Goal typed_BinaryMultiplication_loop_variant_decrease : Valid +[wp] [alt-ergo] Goal typed_BinaryMultiplication_loop_variant_positive : Valid +[wp] Proved goals: 14 / 14 Qed: 3 - Alt-Ergo: 8 + alt-ergo: 11 [wp] Report 'tests/wp_gallery/binary-multiplication.c.0.report.json' ------------------------------------------------------------- Axiomatics WP Alt-Ergo Total Success -Axiomatic mult 2 2 (1..12) 4 100% +Axiomatic mult 1 - 3 100% ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -BinaryMultiplication 1 6 (208..256) 7 100% +BinaryMultiplication 2 - 11 100% ------------------------------------------------------------- [wp] Running WP plugin... [rte] annotating function BinaryMultiplication -[wp] 11 goals scheduled -[wp] [Alt-Ergo] Goal typed_lemma_ax5_ok : Valid -[wp] [Alt-Ergo] Goal typed_lemma_ax6_ok : Valid -[wp] [Qed] Goal typed_lemma_sizeof_uint32_t_ok : Valid -[wp] [Qed] Goal typed_lemma_sizeof_uint64_t_ok : Valid -[wp] [Alt-Ergo] Goal typed_BinaryMultiplication_post_product : Valid -[wp] [Alt-Ergo] Goal typed_BinaryMultiplication_assert_a1_ok_deductible : Valid -[wp] [Alt-Ergo] Goal typed_BinaryMultiplication_assert_a2_ok : Valid -[wp] [Alt-Ergo] Goal typed_BinaryMultiplication_assert_a3_ok : Valid -[wp] [Qed] Goal typed_BinaryMultiplication_loop_assign : Valid -[wp] [Alt-Ergo] Goal typed_BinaryMultiplication_loop_term_decrease : Valid -[wp] [Alt-Ergo] Goal typed_BinaryMultiplication_loop_term_positive : Valid -[wp] Proved goals: 8 / 11 +[wp] 14 goals scheduled +[wp] [alt-ergo] Goal typed_lemma_ax4_ok : Valid +[wp] [alt-ergo] Goal typed_lemma_ax5_ok : Valid +[wp] [Qed] Goal typed_lemma_sizeof_ok_ok : Valid +[wp] [alt-ergo] Goal typed_BinaryMultiplication_ensures_product : Valid +[wp] [alt-ergo] Goal typed_BinaryMultiplication_assert_a1_ok_deductible : Valid +[wp] [alt-ergo] Goal typed_BinaryMultiplication_loop_invariant_inv1_ok_preserved : Valid +[wp] [Qed] Goal typed_BinaryMultiplication_loop_invariant_inv1_ok_established : Valid +[wp] [alt-ergo] Goal typed_BinaryMultiplication_loop_invariant_inv2_ok_deductible_preserved : Valid +[wp] [alt-ergo] Goal typed_BinaryMultiplication_loop_invariant_inv2_ok_deductible_established : Valid +[wp] [alt-ergo] Goal typed_BinaryMultiplication_assert_a2_ok : Valid +[wp] [alt-ergo] Goal typed_BinaryMultiplication_assert_a3_ok : Valid +[wp] [Qed] Goal typed_BinaryMultiplication_loop_assigns : Valid +[wp] [alt-ergo] Goal typed_BinaryMultiplication_loop_variant_decrease : Valid +[wp] [alt-ergo] Goal typed_BinaryMultiplication_loop_variant_positive : Valid +[wp] Proved goals: 11 / 14 Qed: 0 - Alt-Ergo: 8 + alt-ergo: 11 [wp] Report 'tests/wp_gallery/binary-multiplication.c.0.report.json' ------------------------------------------------------------- Axiomatics WP Alt-Ergo Total Success -Axiomatic mult 2 2 (1..12) 4 100% +Axiomatic mult 1 - 3 100% ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -BinaryMultiplication 1 6 (208..256) 7 100% +BinaryMultiplication 2 - 11 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo1_solved.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo1_solved.res.oracle index 18a6191913b029b426e431a9887fffd983c768cb..ce30257121484b2aec47784e9ff25785521a9566 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo1_solved.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo1_solved.res.oracle @@ -4,47 +4,47 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 10 goals scheduled -[wp] [Alt-Ergo] Goal typed_exo1_post : Valid -[wp] [Alt-Ergo] Goal typed_exo1_post_2 : Valid -[wp] [Alt-Ergo] Goal typed_exo1_loop_inv_preserved : Valid -[wp] [Qed] Goal typed_exo1_loop_inv_established : Valid -[wp] [Alt-Ergo] Goal typed_exo1_loop_inv_2_preserved : Valid -[wp] [Qed] Goal typed_exo1_loop_inv_2_established : Valid -[wp] [Qed] Goal typed_exo1_loop_assign : Valid -[wp] [Qed] Goal typed_exo1_assign : Valid -[wp] [Qed] Goal typed_exo1_loop_term_decrease : Valid -[wp] [Qed] Goal typed_exo1_loop_term_positive : Valid +[wp] [Alt-Ergo] Goal typed_exo1_ensures : Valid +[wp] [Alt-Ergo] Goal typed_exo1_ensures_2 : Valid +[wp] [Alt-Ergo] Goal typed_exo1_loop_invariant_preserved : Valid +[wp] [Qed] Goal typed_exo1_loop_invariant_established : Valid +[wp] [Alt-Ergo] Goal typed_exo1_loop_invariant_2_preserved : Valid +[wp] [Qed] Goal typed_exo1_loop_invariant_2_established : Valid +[wp] [Qed] Goal typed_exo1_loop_assigns : Valid +[wp] [Qed] Goal typed_exo1_assigns : Valid +[wp] [Qed] Goal typed_exo1_loop_variant_decrease : Valid +[wp] [Qed] Goal typed_exo1_loop_variant_positive : Valid [wp] Proved goals: 10 / 10 Qed: 6 Alt-Ergo: 4 [wp] Report 'tests/wp_gallery/frama_c_exo1_solved.c.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -exo1 6 4 (176..200) 10 100% +exo1 6 4 (176..224) 10 100% ------------------------------------------------------------- [wp] Running WP plugin... [rte] annotating function exo1 [wp] 15 goals scheduled -[wp] [Alt-Ergo] Goal typed_exo1_post : Valid -[wp] [Alt-Ergo] Goal typed_exo1_post_2 : Valid +[wp] [Alt-Ergo] Goal typed_exo1_ensures : Valid +[wp] [Alt-Ergo] Goal typed_exo1_ensures_2 : Valid [wp] [Alt-Ergo] Goal typed_exo1_assert_rte_signed_overflow : Valid -[wp] [Alt-Ergo] Goal typed_exo1_loop_inv_preserved : Valid -[wp] [Qed] Goal typed_exo1_loop_inv_established : Valid -[wp] [Alt-Ergo] Goal typed_exo1_loop_inv_2_preserved : Valid -[wp] [Qed] Goal typed_exo1_loop_inv_2_established : Valid +[wp] [Alt-Ergo] Goal typed_exo1_loop_invariant_preserved : Valid +[wp] [Qed] Goal typed_exo1_loop_invariant_established : Valid +[wp] [Alt-Ergo] Goal typed_exo1_loop_invariant_2_preserved : Valid +[wp] [Qed] Goal typed_exo1_loop_invariant_2_established : Valid [wp] [Alt-Ergo] Goal typed_exo1_assert_rte_mem_access : Valid [wp] [Alt-Ergo] Goal typed_exo1_assert_rte_mem_access_2 : Valid [wp] [Alt-Ergo] Goal typed_exo1_assert_rte_signed_overflow_2 : Valid [wp] [Alt-Ergo] Goal typed_exo1_assert_rte_signed_overflow_3 : Valid -[wp] [Qed] Goal typed_exo1_loop_assign : Valid -[wp] [Qed] Goal typed_exo1_assign : Valid -[wp] [Qed] Goal typed_exo1_loop_term_decrease : Valid -[wp] [Qed] Goal typed_exo1_loop_term_positive : Valid +[wp] [Qed] Goal typed_exo1_loop_assigns : Valid +[wp] [Qed] Goal typed_exo1_assigns : Valid +[wp] [Qed] Goal typed_exo1_loop_variant_decrease : Valid +[wp] [Qed] Goal typed_exo1_loop_variant_positive : Valid [wp] Proved goals: 9 / 15 Qed: 0 Alt-Ergo: 9 [wp] Report 'tests/wp_gallery/frama_c_exo1_solved.c.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -exo1 6 9 (176..200) 15 100% +exo1 6 9 (176..224) 15 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo2_solved.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo2_solved.res.oracle index 41e2e2c8dbcf9809137d9471457e976477730fa3..f2115310be12c73ff806d20a362e3eeabfcb6637 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo2_solved.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo2_solved.res.oracle @@ -4,67 +4,67 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 22 goals scheduled -[wp] [Alt-Ergo] Goal typed_max_subarray_post : Valid -[wp] [Alt-Ergo] Goal typed_max_subarray_post_2 : Valid -[wp] [Alt-Ergo] Goal typed_max_subarray_loop_inv_preserved : Valid -[wp] [Qed] Goal typed_max_subarray_loop_inv_established : Valid -[wp] [Alt-Ergo] Goal typed_max_subarray_loop_inv_2_preserved : Valid -[wp] [Qed] Goal typed_max_subarray_loop_inv_2_established : Valid -[wp] [Alt-Ergo] Goal typed_max_subarray_loop_inv_3_preserved : Valid -[wp] [Qed] Goal typed_max_subarray_loop_inv_3_established : Valid -[wp] [Qed] Goal typed_max_subarray_loop_inv_4_preserved : Valid -[wp] [Qed] Goal typed_max_subarray_loop_inv_4_established : Valid -[wp] [Alt-Ergo] Goal typed_max_subarray_loop_inv_5_preserved : Valid -[wp] [Alt-Ergo] Goal typed_max_subarray_loop_inv_5_established : Valid -[wp] [Alt-Ergo] Goal typed_max_subarray_loop_inv_6_preserved : Valid -[wp] [Alt-Ergo] Goal typed_max_subarray_loop_inv_6_established : Valid -[wp] [Alt-Ergo] Goal typed_max_subarray_loop_inv_7_preserved : Valid -[wp] [Alt-Ergo] Goal typed_max_subarray_loop_inv_7_established : Valid -[wp] [Alt-Ergo] Goal typed_max_subarray_loop_inv_8_preserved : Valid -[wp] [Alt-Ergo] Goal typed_max_subarray_loop_inv_8_established : Valid -[wp] [Qed] Goal typed_max_subarray_loop_assign : Valid -[wp] [Qed] Goal typed_max_subarray_assign : Valid -[wp] [Qed] Goal typed_max_subarray_loop_term_decrease : Valid -[wp] [Qed] Goal typed_max_subarray_loop_term_positive : Valid +[wp] [Alt-Ergo] Goal typed_max_subarray_ensures : Valid +[wp] [Alt-Ergo] Goal typed_max_subarray_ensures_2 : Valid +[wp] [Alt-Ergo] Goal typed_max_subarray_loop_invariant_preserved : Valid +[wp] [Qed] Goal typed_max_subarray_loop_invariant_established : Valid +[wp] [Alt-Ergo] Goal typed_max_subarray_loop_invariant_2_preserved : Valid +[wp] [Qed] Goal typed_max_subarray_loop_invariant_2_established : Valid +[wp] [Alt-Ergo] Goal typed_max_subarray_loop_invariant_3_preserved : Valid +[wp] [Qed] Goal typed_max_subarray_loop_invariant_3_established : Valid +[wp] [Qed] Goal typed_max_subarray_loop_invariant_4_preserved : Valid +[wp] [Qed] Goal typed_max_subarray_loop_invariant_4_established : Valid +[wp] [Alt-Ergo] Goal typed_max_subarray_loop_invariant_5_preserved : Valid +[wp] [Alt-Ergo] Goal typed_max_subarray_loop_invariant_5_established : Valid +[wp] [Alt-Ergo] Goal typed_max_subarray_loop_invariant_6_preserved : Valid +[wp] [Alt-Ergo] Goal typed_max_subarray_loop_invariant_6_established : Valid +[wp] [Alt-Ergo] Goal typed_max_subarray_loop_invariant_7_preserved : Valid +[wp] [Alt-Ergo] Goal typed_max_subarray_loop_invariant_7_established : Valid +[wp] [Alt-Ergo] Goal typed_max_subarray_loop_invariant_8_preserved : Valid +[wp] [Alt-Ergo] Goal typed_max_subarray_loop_invariant_8_established : Valid +[wp] [Qed] Goal typed_max_subarray_loop_assigns : Valid +[wp] [Qed] Goal typed_max_subarray_assigns : Valid +[wp] [Qed] Goal typed_max_subarray_loop_variant_decrease : Valid +[wp] [Qed] Goal typed_max_subarray_loop_variant_positive : Valid [wp] Proved goals: 22 / 22 Qed: 9 Alt-Ergo: 13 [wp] Report 'tests/wp_gallery/frama_c_exo2_solved.c.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -max_subarray 9 13 (256..304) 22 100% +max_subarray 9 13 (272..320) 22 100% ------------------------------------------------------------- [wp] Running WP plugin... [rte] annotating function max_subarray [wp] 23 goals scheduled -[wp] [Alt-Ergo] Goal typed_max_subarray_post : Valid -[wp] [Alt-Ergo] Goal typed_max_subarray_post_2 : Valid -[wp] [Alt-Ergo] Goal typed_max_subarray_loop_inv_preserved : Valid -[wp] [Qed] Goal typed_max_subarray_loop_inv_established : Valid -[wp] [Alt-Ergo] Goal typed_max_subarray_loop_inv_2_preserved : Valid -[wp] [Qed] Goal typed_max_subarray_loop_inv_2_established : Valid -[wp] [Alt-Ergo] Goal typed_max_subarray_loop_inv_3_preserved : Valid -[wp] [Qed] Goal typed_max_subarray_loop_inv_3_established : Valid -[wp] [Qed] Goal typed_max_subarray_loop_inv_4_preserved : Valid -[wp] [Qed] Goal typed_max_subarray_loop_inv_4_established : Valid -[wp] [Alt-Ergo] Goal typed_max_subarray_loop_inv_5_preserved : Valid -[wp] [Alt-Ergo] Goal typed_max_subarray_loop_inv_5_established : Valid -[wp] [Alt-Ergo] Goal typed_max_subarray_loop_inv_6_preserved : Valid -[wp] [Alt-Ergo] Goal typed_max_subarray_loop_inv_6_established : Valid -[wp] [Alt-Ergo] Goal typed_max_subarray_loop_inv_7_preserved : Valid -[wp] [Alt-Ergo] Goal typed_max_subarray_loop_inv_7_established : Valid -[wp] [Alt-Ergo] Goal typed_max_subarray_loop_inv_8_preserved : Valid -[wp] [Alt-Ergo] Goal typed_max_subarray_loop_inv_8_established : Valid +[wp] [Alt-Ergo] Goal typed_max_subarray_ensures : Valid +[wp] [Alt-Ergo] Goal typed_max_subarray_ensures_2 : Valid +[wp] [Alt-Ergo] Goal typed_max_subarray_loop_invariant_preserved : Valid +[wp] [Qed] Goal typed_max_subarray_loop_invariant_established : Valid +[wp] [Alt-Ergo] Goal typed_max_subarray_loop_invariant_2_preserved : Valid +[wp] [Qed] Goal typed_max_subarray_loop_invariant_2_established : Valid +[wp] [Alt-Ergo] Goal typed_max_subarray_loop_invariant_3_preserved : Valid +[wp] [Qed] Goal typed_max_subarray_loop_invariant_3_established : Valid +[wp] [Qed] Goal typed_max_subarray_loop_invariant_4_preserved : Valid +[wp] [Qed] Goal typed_max_subarray_loop_invariant_4_established : Valid +[wp] [Alt-Ergo] Goal typed_max_subarray_loop_invariant_5_preserved : Valid +[wp] [Alt-Ergo] Goal typed_max_subarray_loop_invariant_5_established : Valid +[wp] [Alt-Ergo] Goal typed_max_subarray_loop_invariant_6_preserved : Valid +[wp] [Alt-Ergo] Goal typed_max_subarray_loop_invariant_6_established : Valid +[wp] [Alt-Ergo] Goal typed_max_subarray_loop_invariant_7_preserved : Valid +[wp] [Alt-Ergo] Goal typed_max_subarray_loop_invariant_7_established : Valid +[wp] [Alt-Ergo] Goal typed_max_subarray_loop_invariant_8_preserved : Valid +[wp] [Alt-Ergo] Goal typed_max_subarray_loop_invariant_8_established : Valid [wp] [Alt-Ergo] Goal typed_max_subarray_assert_rte_mem_access : Valid -[wp] [Qed] Goal typed_max_subarray_loop_assign : Valid -[wp] [Qed] Goal typed_max_subarray_assign : Valid -[wp] [Qed] Goal typed_max_subarray_loop_term_decrease : Valid -[wp] [Qed] Goal typed_max_subarray_loop_term_positive : Valid +[wp] [Qed] Goal typed_max_subarray_loop_assigns : Valid +[wp] [Qed] Goal typed_max_subarray_assigns : Valid +[wp] [Qed] Goal typed_max_subarray_loop_variant_decrease : Valid +[wp] [Qed] Goal typed_max_subarray_loop_variant_positive : Valid [wp] Proved goals: 14 / 23 Qed: 0 Alt-Ergo: 14 [wp] Report 'tests/wp_gallery/frama_c_exo2_solved.c.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -max_subarray 9 14 (256..304) 23 100% +max_subarray 9 14 (272..320) 23 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.res.oracle index 4f585ac10bd9c239defe67670e5d4bfebc4a8efa..1ff95155e5ec31109591b89fd9b36878a684d65c 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.res.oracle @@ -4,40 +4,40 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 34 goals scheduled -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_post : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_post_2 : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_post_3 : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_2_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_2_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_3_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_3_established : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_4_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_4_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_5_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_5_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_6_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_6_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_7_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_7_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_8_preserved : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_8_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_9_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_9_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_10_preserved : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_10_established : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_ensures : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_ensures_2 : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_ensures_3 : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_preserved : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_established : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_2_preserved : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_2_established : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_3_preserved : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_3_established : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_4_preserved : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_4_established : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_5_preserved : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_5_established : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_6_preserved : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_6_established : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_7_preserved : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_7_established : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_8_preserved : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_8_established : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_9_preserved : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_9_established : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_10_preserved : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_10_established : Valid [wp] [Alt-Ergo] Goal typed_ref_equal_elements_assert : Valid [wp] [Alt-Ergo] Goal typed_ref_equal_elements_assert_2 : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_assign : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_assign_2 : Valid -[wp] [Qed] Goal typed_ref_equal_elements_assign_part1 : Valid -[wp] [Qed] Goal typed_ref_equal_elements_assign_part2 : Valid -[wp] [Qed] Goal typed_ref_equal_elements_assign_part3 : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_term_decrease : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_term_positive : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_term_2_decrease : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_term_2_positive : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_assigns : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_assigns_2 : Valid +[wp] [Qed] Goal typed_ref_equal_elements_assigns_part1 : Valid +[wp] [Qed] Goal typed_ref_equal_elements_assigns_part2 : Valid +[wp] [Qed] Goal typed_ref_equal_elements_assigns_part3 : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_variant_decrease : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_variant_positive : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_variant_2_decrease : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_variant_2_positive : Valid [wp] Proved goals: 34 / 34 Qed: 18 Alt-Ergo: 16 @@ -57,34 +57,34 @@ equal_elements 18 16 (672..768) 34 100% [wp] Running WP plugin... [rte] annotating function equal_elements [wp] 50 goals scheduled -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_post : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_post_2 : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_post_3 : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_ensures : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_ensures_2 : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_ensures_3 : Valid [wp] [Qed] Goal typed_ref_equal_elements_assert_rte_mem_access : Valid [wp] [Qed] Goal typed_ref_equal_elements_assert_rte_mem_access_2 : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_2_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_2_established : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_preserved : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_established : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_2_preserved : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_2_established : Valid [wp] [Qed] Goal typed_ref_equal_elements_assert_rte_index_bound : Valid [wp] [Qed] Goal typed_ref_equal_elements_assert_rte_index_bound_2 : Valid [wp] [Alt-Ergo] Goal typed_ref_equal_elements_assert_rte_signed_overflow : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_3_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_3_established : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_4_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_4_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_5_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_5_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_6_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_6_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_7_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_7_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_8_preserved : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_8_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_9_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_9_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_10_preserved : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_10_established : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_3_preserved : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_3_established : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_4_preserved : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_4_established : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_5_preserved : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_5_established : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_6_preserved : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_6_established : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_7_preserved : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_7_established : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_8_preserved : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_8_established : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_9_preserved : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_9_established : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_10_preserved : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_10_established : Valid [wp] [Alt-Ergo] Goal typed_ref_equal_elements_assert_rte_mem_access_3 : Valid [wp] [Alt-Ergo] Goal typed_ref_equal_elements_assert_rte_index_bound_3 : Valid [wp] [Alt-Ergo] Goal typed_ref_equal_elements_assert_rte_index_bound_4 : Valid @@ -98,15 +98,15 @@ equal_elements 18 16 (672..768) 34 100% [wp] [Qed] Goal typed_ref_equal_elements_assert_rte_index_bound_6 : Valid [wp] [Alt-Ergo] Goal typed_ref_equal_elements_assert_2 : Valid [wp] [Alt-Ergo] Goal typed_ref_equal_elements_assert_rte_signed_overflow_2 : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_assign : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_assign_2 : Valid -[wp] [Qed] Goal typed_ref_equal_elements_assign_part1 : Valid -[wp] [Qed] Goal typed_ref_equal_elements_assign_part2 : Valid -[wp] [Qed] Goal typed_ref_equal_elements_assign_part3 : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_term_decrease : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_term_positive : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_term_2_decrease : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_term_2_positive : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_assigns : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_assigns_2 : Valid +[wp] [Qed] Goal typed_ref_equal_elements_assigns_part1 : Valid +[wp] [Qed] Goal typed_ref_equal_elements_assigns_part2 : Valid +[wp] [Qed] Goal typed_ref_equal_elements_assigns_part3 : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_variant_decrease : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_variant_positive : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_variant_2_decrease : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_variant_2_positive : Valid [wp] Proved goals: 32 / 50 Qed: 11 Alt-Ergo: 21 diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.res.oracle index ae82b12cf62368d6acd8de25ce308e5079c54ebb..6de56a443e7b37ed645b49c6286cfd31314cc2ed 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.res.oracle @@ -4,48 +4,48 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 35 goals scheduled -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_post_v1_good : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_post_v2_good : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_post_v1_v2_diff : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_set_at_0_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_set_at_0_established : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_ensures_v1_good : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_ensures_v2_good : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_ensures_v1_v2_diff : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_preserved : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_established : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_set_at_0_preserved : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_set_at_0_established : Valid [wp] [Alt-Ergo] Goal typed_ref_equal_elements_assert_set_at_1 : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_bound_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_bound_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_seen_sound1_preserved : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_seen_sound1_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_seen_sound2_preserved : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_seen_sound2_established : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_v1_first_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_v1_first_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_v1_sound1_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_v1_sound1_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_v1_sound2_preserved : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_v1_sound2_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_v1_v2_diff_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_v1_v2_diff_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_v2_sound1_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_v2_sound1_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_v2_sound2_preserved : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_v2_sound2_established : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_assign : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_assign_2 : Valid -[wp] [Qed] Goal typed_ref_equal_elements_assign_part1 : Valid -[wp] [Qed] Goal typed_ref_equal_elements_assign_part2 : Valid -[wp] [Qed] Goal typed_ref_equal_elements_assign_part3 : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_term_decrease : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_term_positive : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_term_2_decrease : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_term_2_positive : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_bound_preserved : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_bound_established : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_seen_sound1_preserved : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_seen_sound1_established : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_seen_sound2_preserved : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_seen_sound2_established : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_v1_first_preserved : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_v1_first_established : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_v1_sound1_preserved : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_v1_sound1_established : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_v1_sound2_preserved : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_v1_sound2_established : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_v1_v2_diff_preserved : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_v1_v2_diff_established : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_v2_sound1_preserved : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_v2_sound1_established : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_v2_sound2_preserved : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_v2_sound2_established : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_assigns : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_assigns_2 : Valid +[wp] [Qed] Goal typed_ref_equal_elements_assigns_part1 : Valid +[wp] [Qed] Goal typed_ref_equal_elements_assigns_part2 : Valid +[wp] [Qed] Goal typed_ref_equal_elements_assigns_part3 : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_variant_decrease : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_variant_positive : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_variant_2_decrease : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_variant_2_positive : Valid [wp] Proved goals: 35 / 35 Qed: 17 Alt-Ergo: 18 [wp] Report 'tests/wp_gallery/frama_c_exo3_solved.old.v2.c.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -equal_elements 17 18 (272..320) 35 100% +equal_elements 17 18 (288..336) 35 100% ------------------------------------------------------------- [wp] Warning: Memory model hypotheses for function 'equal_elements': /*@ @@ -58,37 +58,37 @@ equal_elements 17 18 (272..320) 35 100% [wp] Running WP plugin... [rte] annotating function equal_elements [wp] 51 goals scheduled -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_post_v1_good : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_post_v2_good : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_post_v1_v2_diff : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_ensures_v1_good : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_ensures_v2_good : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_ensures_v1_v2_diff : Valid [wp] [Qed] Goal typed_ref_equal_elements_assert_rte_mem_access : Valid [wp] [Qed] Goal typed_ref_equal_elements_assert_rte_mem_access_2 : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_set_at_0_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_set_at_0_established : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_preserved : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_established : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_set_at_0_preserved : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_set_at_0_established : Valid [wp] [Qed] Goal typed_ref_equal_elements_assert_rte_index_bound : Valid [wp] [Qed] Goal typed_ref_equal_elements_assert_rte_index_bound_2 : Valid [wp] [Alt-Ergo] Goal typed_ref_equal_elements_assert_set_at_1 : Valid [wp] [Alt-Ergo] Goal typed_ref_equal_elements_assert_rte_signed_overflow : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_bound_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_bound_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_seen_sound1_preserved : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_seen_sound1_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_seen_sound2_preserved : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_seen_sound2_established : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_v1_first_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_v1_first_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_v1_sound1_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_v1_sound1_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_v1_sound2_preserved : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_v1_sound2_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_v1_v2_diff_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_v1_v2_diff_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_v2_sound1_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_inv_v2_sound1_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_v2_sound2_preserved : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_inv_v2_sound2_established : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_bound_preserved : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_bound_established : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_seen_sound1_preserved : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_seen_sound1_established : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_seen_sound2_preserved : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_seen_sound2_established : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_v1_first_preserved : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_v1_first_established : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_v1_sound1_preserved : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_v1_sound1_established : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_v1_sound2_preserved : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_v1_sound2_established : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_v1_v2_diff_preserved : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_v1_v2_diff_established : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_v2_sound1_preserved : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_v2_sound1_established : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_v2_sound2_preserved : Valid +[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_v2_sound2_established : Valid [wp] [Alt-Ergo] Goal typed_ref_equal_elements_assert_rte_mem_access_3 : Valid [wp] [Alt-Ergo] Goal typed_ref_equal_elements_assert_rte_index_bound_3 : Valid [wp] [Alt-Ergo] Goal typed_ref_equal_elements_assert_rte_index_bound_4 : Valid @@ -100,22 +100,22 @@ equal_elements 17 18 (272..320) 35 100% [wp] [Qed] Goal typed_ref_equal_elements_assert_rte_index_bound_5 : Valid [wp] [Qed] Goal typed_ref_equal_elements_assert_rte_index_bound_6 : Valid [wp] [Alt-Ergo] Goal typed_ref_equal_elements_assert_rte_signed_overflow_2 : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_assign : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_assign_2 : Valid -[wp] [Qed] Goal typed_ref_equal_elements_assign_part1 : Valid -[wp] [Qed] Goal typed_ref_equal_elements_assign_part2 : Valid -[wp] [Qed] Goal typed_ref_equal_elements_assign_part3 : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_term_decrease : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_term_positive : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_term_2_decrease : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_term_2_positive : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_assigns : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_assigns_2 : Valid +[wp] [Qed] Goal typed_ref_equal_elements_assigns_part1 : Valid +[wp] [Qed] Goal typed_ref_equal_elements_assigns_part2 : Valid +[wp] [Qed] Goal typed_ref_equal_elements_assigns_part3 : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_variant_decrease : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_variant_positive : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_variant_2_decrease : Valid +[wp] [Qed] Goal typed_ref_equal_elements_loop_variant_2_positive : Valid [wp] Proved goals: 34 / 51 Qed: 11 Alt-Ergo: 23 [wp] Report 'tests/wp_gallery/frama_c_exo3_solved.old.v2.c.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -equal_elements 28 23 (272..320) 51 100% +equal_elements 28 23 (288..336) 51 100% ------------------------------------------------------------- [wp] Warning: Memory model hypotheses for function 'equal_elements': /*@ diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.simplified.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.simplified.res.oracle index eb2c20378e2742333db4d15f36ba2c14221399c3..8abf274c23d8b98c9a657d251645fee49e57786a 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.simplified.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.simplified.res.oracle @@ -6,30 +6,30 @@ [wp] 26 goals scheduled [wp] [Qed] Goal typed_pair_complete_has_pair_no_pair : Valid [wp] [Qed] Goal typed_pair_disjoint_has_pair_no_pair : Valid -[wp] [Alt-Ergo] Goal typed_pair_loop_inv_preserved : Valid -[wp] [Qed] Goal typed_pair_loop_inv_established : Valid -[wp] [Alt-Ergo] Goal typed_pair_loop_inv_2_preserved : Valid -[wp] [Qed] Goal typed_pair_loop_inv_2_established : Valid -[wp] [Alt-Ergo] Goal typed_pair_loop_inv_3_preserved : Valid -[wp] [Qed] Goal typed_pair_loop_inv_3_established : Valid -[wp] [Alt-Ergo] Goal typed_pair_loop_inv_4_preserved : Valid -[wp] [Alt-Ergo] Goal typed_pair_loop_inv_4_established : Valid -[wp] [Alt-Ergo] Goal typed_pair_loop_inv_5_preserved : Valid -[wp] [Qed] Goal typed_pair_loop_inv_5_established : Valid -[wp] [Alt-Ergo] Goal typed_pair_loop_inv_6_preserved : Valid -[wp] [Alt-Ergo] Goal typed_pair_loop_inv_6_established : Valid -[wp] [Qed] Goal typed_pair_loop_assign : Valid -[wp] [Qed] Goal typed_pair_loop_assign_2 : Valid -[wp] [Qed] Goal typed_pair_assign_part1 : Valid -[wp] [Qed] Goal typed_pair_assign_part2 : Valid -[wp] [Qed] Goal typed_pair_assign_part3 : Valid -[wp] [Qed] Goal typed_pair_assign_part4 : Valid -[wp] [Qed] Goal typed_pair_loop_term_decrease : Valid -[wp] [Qed] Goal typed_pair_loop_term_positive : Valid -[wp] [Qed] Goal typed_pair_loop_term_2_decrease : Valid -[wp] [Qed] Goal typed_pair_loop_term_2_positive : Valid -[wp] [Alt-Ergo] Goal typed_pair_has_pair_post : Valid -[wp] [Alt-Ergo] Goal typed_pair_no_pair_post : Valid +[wp] [Alt-Ergo] Goal typed_pair_loop_invariant_preserved : Valid +[wp] [Qed] Goal typed_pair_loop_invariant_established : Valid +[wp] [Alt-Ergo] Goal typed_pair_loop_invariant_2_preserved : Valid +[wp] [Qed] Goal typed_pair_loop_invariant_2_established : Valid +[wp] [Alt-Ergo] Goal typed_pair_loop_invariant_3_preserved : Valid +[wp] [Qed] Goal typed_pair_loop_invariant_3_established : Valid +[wp] [Alt-Ergo] Goal typed_pair_loop_invariant_4_preserved : Valid +[wp] [Alt-Ergo] Goal typed_pair_loop_invariant_4_established : Valid +[wp] [Alt-Ergo] Goal typed_pair_loop_invariant_5_preserved : Valid +[wp] [Qed] Goal typed_pair_loop_invariant_5_established : Valid +[wp] [Alt-Ergo] Goal typed_pair_loop_invariant_6_preserved : Valid +[wp] [Alt-Ergo] Goal typed_pair_loop_invariant_6_established : Valid +[wp] [Qed] Goal typed_pair_loop_assigns : Valid +[wp] [Qed] Goal typed_pair_loop_assigns_2 : Valid +[wp] [Qed] Goal typed_pair_assigns_part1 : Valid +[wp] [Qed] Goal typed_pair_assigns_part2 : Valid +[wp] [Qed] Goal typed_pair_assigns_part3 : Valid +[wp] [Qed] Goal typed_pair_assigns_part4 : Valid +[wp] [Qed] Goal typed_pair_loop_variant_decrease : Valid +[wp] [Qed] Goal typed_pair_loop_variant_positive : Valid +[wp] [Qed] Goal typed_pair_loop_variant_2_decrease : Valid +[wp] [Qed] Goal typed_pair_loop_variant_2_positive : Valid +[wp] [Alt-Ergo] Goal typed_pair_has_pair_ensures : Valid +[wp] [Alt-Ergo] Goal typed_pair_no_pair_ensures : Valid [wp] Proved goals: 26 / 26 Qed: 16 Alt-Ergo: 10 @@ -43,39 +43,39 @@ pair 16 10 (104..128) 26 100% [wp] 35 goals scheduled [wp] [Qed] Goal typed_pair_complete_has_pair_no_pair : Valid [wp] [Qed] Goal typed_pair_disjoint_has_pair_no_pair : Valid -[wp] [Alt-Ergo] Goal typed_pair_loop_inv_preserved : Valid -[wp] [Qed] Goal typed_pair_loop_inv_established : Valid -[wp] [Alt-Ergo] Goal typed_pair_loop_inv_2_preserved : Valid -[wp] [Qed] Goal typed_pair_loop_inv_2_established : Valid +[wp] [Alt-Ergo] Goal typed_pair_loop_invariant_preserved : Valid +[wp] [Qed] Goal typed_pair_loop_invariant_established : Valid +[wp] [Alt-Ergo] Goal typed_pair_loop_invariant_2_preserved : Valid +[wp] [Qed] Goal typed_pair_loop_invariant_2_established : Valid [wp] [Qed] Goal typed_pair_assert_rte_index_bound : Valid [wp] [Qed] Goal typed_pair_assert_rte_index_bound_2 : Valid [wp] [Alt-Ergo] Goal typed_pair_assert_rte_signed_overflow : Valid -[wp] [Alt-Ergo] Goal typed_pair_loop_inv_3_preserved : Valid -[wp] [Qed] Goal typed_pair_loop_inv_3_established : Valid -[wp] [Alt-Ergo] Goal typed_pair_loop_inv_4_preserved : Valid -[wp] [Alt-Ergo] Goal typed_pair_loop_inv_4_established : Valid -[wp] [Alt-Ergo] Goal typed_pair_loop_inv_5_preserved : Valid -[wp] [Qed] Goal typed_pair_loop_inv_5_established : Valid -[wp] [Alt-Ergo] Goal typed_pair_loop_inv_6_preserved : Valid -[wp] [Alt-Ergo] Goal typed_pair_loop_inv_6_established : Valid +[wp] [Alt-Ergo] Goal typed_pair_loop_invariant_3_preserved : Valid +[wp] [Qed] Goal typed_pair_loop_invariant_3_established : Valid +[wp] [Alt-Ergo] Goal typed_pair_loop_invariant_4_preserved : Valid +[wp] [Alt-Ergo] Goal typed_pair_loop_invariant_4_established : Valid +[wp] [Alt-Ergo] Goal typed_pair_loop_invariant_5_preserved : Valid +[wp] [Qed] Goal typed_pair_loop_invariant_5_established : Valid +[wp] [Alt-Ergo] Goal typed_pair_loop_invariant_6_preserved : Valid +[wp] [Alt-Ergo] Goal typed_pair_loop_invariant_6_established : Valid [wp] [Alt-Ergo] Goal typed_pair_assert_rte_mem_access : Valid [wp] [Alt-Ergo] Goal typed_pair_assert_rte_index_bound_3 : Valid [wp] [Alt-Ergo] Goal typed_pair_assert_rte_index_bound_4 : Valid [wp] [Qed] Goal typed_pair_assert_rte_index_bound_5 : Valid [wp] [Qed] Goal typed_pair_assert_rte_index_bound_6 : Valid [wp] [Alt-Ergo] Goal typed_pair_assert_rte_signed_overflow_2 : Valid -[wp] [Qed] Goal typed_pair_loop_assign : Valid -[wp] [Qed] Goal typed_pair_loop_assign_2 : Valid -[wp] [Qed] Goal typed_pair_assign_part1 : Valid -[wp] [Qed] Goal typed_pair_assign_part2 : Valid -[wp] [Qed] Goal typed_pair_assign_part3 : Valid -[wp] [Qed] Goal typed_pair_assign_part4 : Valid -[wp] [Qed] Goal typed_pair_loop_term_decrease : Valid -[wp] [Qed] Goal typed_pair_loop_term_positive : Valid -[wp] [Qed] Goal typed_pair_loop_term_2_decrease : Valid -[wp] [Qed] Goal typed_pair_loop_term_2_positive : Valid -[wp] [Alt-Ergo] Goal typed_pair_has_pair_post : Valid -[wp] [Alt-Ergo] Goal typed_pair_no_pair_post : Valid +[wp] [Qed] Goal typed_pair_loop_assigns : Valid +[wp] [Qed] Goal typed_pair_loop_assigns_2 : Valid +[wp] [Qed] Goal typed_pair_assigns_part1 : Valid +[wp] [Qed] Goal typed_pair_assigns_part2 : Valid +[wp] [Qed] Goal typed_pair_assigns_part3 : Valid +[wp] [Qed] Goal typed_pair_assigns_part4 : Valid +[wp] [Qed] Goal typed_pair_loop_variant_decrease : Valid +[wp] [Qed] Goal typed_pair_loop_variant_positive : Valid +[wp] [Qed] Goal typed_pair_loop_variant_2_decrease : Valid +[wp] [Qed] Goal typed_pair_loop_variant_2_positive : Valid +[wp] [Alt-Ergo] Goal typed_pair_has_pair_ensures : Valid +[wp] [Alt-Ergo] Goal typed_pair_no_pair_ensures : Valid [wp] Proved goals: 19 / 35 Qed: 4 Alt-Ergo: 15 diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.res.oracle index 6fecd32f1cd6c95f9a64aa720bae5c699968fbd6..10e32d116c68418a93daaafd59a6a14c5a1030c4 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.res.oracle @@ -7,106 +7,106 @@ [wp] 102 goals scheduled [wp] [Alt-Ergo] Goal typed_add_complete_full_nominal : Valid [wp] [Alt-Ergo] Goal typed_add_disjoint_full_nominal : Valid -[wp] [Qed] Goal typed_add_assign_exit : Valid -[wp] [Qed] Goal typed_add_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_add_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_add_assign_normal_part3 : Valid -[wp] [Qed] Goal typed_add_assign_normal_part4 : Valid -[wp] [Qed] Goal typed_add_assign_normal_part5 : Valid -[wp] [Alt-Ergo] Goal typed_add_assign_normal_part6 : Valid -[wp] [Alt-Ergo] Goal typed_add_assign_normal_part7 : Valid -[wp] [Qed] Goal typed_add_assign_normal_part8 : Valid -[wp] [Qed] Goal typed_add_assign_normal_part9 : Valid -[wp] [Qed] Goal typed_add_call_hash_pre : Valid -[wp] [Alt-Ergo] Goal typed_add_full_post : Valid -[wp] [Qed] Goal typed_add_full_assign_exit : Valid -[wp] [Qed] Goal typed_add_full_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_add_full_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_add_full_assign_normal_part3 : Valid -[wp] [Qed] Goal typed_add_full_assign_normal_part4 : Valid -[wp] [Qed] Goal typed_add_full_assign_normal_part5 : Valid -[wp] [Alt-Ergo] Goal typed_add_full_assign_normal_part6 : Valid -[wp] [Alt-Ergo] Goal typed_add_full_assign_normal_part7 : Valid -[wp] [Alt-Ergo] Goal typed_add_full_assign_normal_part8 : Valid -[wp] [Qed] Goal typed_add_full_assign_normal_part9 : Valid -[wp] [Alt-Ergo] Goal typed_add_nominal_post : Valid -[wp] [Alt-Ergo] Goal typed_add_nominal_post_2 : Valid -[wp] [Alt-Ergo] Goal typed_add_nominal_post_3 : Valid -[wp] [Alt-Ergo] Goal typed_add_nominal_post_4 : Valid -[wp] [Alt-Ergo] Goal typed_add_nominal_post_5 : Valid -[wp] [Qed] Goal typed_add_nominal_assign_exit : Valid -[wp] [Qed] Goal typed_add_nominal_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_add_nominal_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_add_nominal_assign_normal_part3 : Valid -[wp] [Qed] Goal typed_add_nominal_assign_normal_part4 : Valid -[wp] [Qed] Goal typed_add_nominal_assign_normal_part5 : Valid -[wp] [Alt-Ergo] Goal typed_add_nominal_assign_normal_part6 : Valid -[wp] [Alt-Ergo] Goal typed_add_nominal_assign_normal_part7 : Valid -[wp] [Qed] Goal typed_add_nominal_assign_normal_part8 : Valid -[wp] [Qed] Goal typed_add_nominal_assign_normal_part9 : Valid +[wp] [Qed] Goal typed_add_assigns_exit : Valid +[wp] [Qed] Goal typed_add_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_add_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_add_assigns_normal_part3 : Valid +[wp] [Qed] Goal typed_add_assigns_normal_part4 : Valid +[wp] [Qed] Goal typed_add_assigns_normal_part5 : Valid +[wp] [Alt-Ergo] Goal typed_add_assigns_normal_part6 : Valid +[wp] [Alt-Ergo] Goal typed_add_assigns_normal_part7 : Valid +[wp] [Qed] Goal typed_add_assigns_normal_part8 : Valid +[wp] [Qed] Goal typed_add_assigns_normal_part9 : Valid +[wp] [Qed] Goal typed_add_call_hash_requires : Valid +[wp] [Alt-Ergo] Goal typed_add_full_ensures : Valid +[wp] [Qed] Goal typed_add_full_assigns_exit : Valid +[wp] [Qed] Goal typed_add_full_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_add_full_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_add_full_assigns_normal_part3 : Valid +[wp] [Qed] Goal typed_add_full_assigns_normal_part4 : Valid +[wp] [Qed] Goal typed_add_full_assigns_normal_part5 : Valid +[wp] [Alt-Ergo] Goal typed_add_full_assigns_normal_part6 : Valid +[wp] [Alt-Ergo] Goal typed_add_full_assigns_normal_part7 : Valid +[wp] [Alt-Ergo] Goal typed_add_full_assigns_normal_part8 : Valid +[wp] [Qed] Goal typed_add_full_assigns_normal_part9 : Valid +[wp] [Alt-Ergo] Goal typed_add_nominal_ensures : Valid +[wp] [Alt-Ergo] Goal typed_add_nominal_ensures_2 : Valid +[wp] [Alt-Ergo] Goal typed_add_nominal_ensures_3 : Valid +[wp] [Alt-Ergo] Goal typed_add_nominal_ensures_4 : Valid +[wp] [Alt-Ergo] Goal typed_add_nominal_ensures_5 : Valid +[wp] [Qed] Goal typed_add_nominal_assigns_exit : Valid +[wp] [Qed] Goal typed_add_nominal_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_add_nominal_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_add_nominal_assigns_normal_part3 : Valid +[wp] [Qed] Goal typed_add_nominal_assigns_normal_part4 : Valid +[wp] [Qed] Goal typed_add_nominal_assigns_normal_part5 : Valid +[wp] [Alt-Ergo] Goal typed_add_nominal_assigns_normal_part6 : Valid +[wp] [Alt-Ergo] Goal typed_add_nominal_assigns_normal_part7 : Valid +[wp] [Qed] Goal typed_add_nominal_assigns_normal_part8 : Valid +[wp] [Qed] Goal typed_add_nominal_assigns_normal_part9 : Valid [wp] [Qed] Goal typed_eq_string_complete_not_eq_eq : Valid [wp] [Qed] Goal typed_eq_string_disjoint_not_eq_eq : Valid -[wp] [Alt-Ergo] Goal typed_eq_string_loop_inv_preserved : Valid -[wp] [Qed] Goal typed_eq_string_loop_inv_established : Valid -[wp] [Alt-Ergo] Goal typed_eq_string_loop_inv_2_preserved : Valid -[wp] [Qed] Goal typed_eq_string_loop_inv_2_established : Valid -[wp] [Qed] Goal typed_eq_string_loop_assign : Valid -[wp] [Qed] Goal typed_eq_string_assign_part1 : Valid -[wp] [Qed] Goal typed_eq_string_assign_part2 : Valid -[wp] [Qed] Goal typed_eq_string_assign_part3 : Valid -[wp] [Qed] Goal typed_eq_string_assign_part4 : Valid -[wp] [Qed] Goal typed_eq_string_loop_term_decrease : Valid -[wp] [Qed] Goal typed_eq_string_loop_term_positive : Valid -[wp] [Alt-Ergo] Goal typed_eq_string_eq_post : Valid -[wp] [Alt-Ergo] Goal typed_eq_string_not_eq_post : Valid -[wp] [Alt-Ergo] Goal typed_hash_loop_inv_preserved : Valid -[wp] [Qed] Goal typed_hash_loop_inv_established : Valid -[wp] [Qed] Goal typed_hash_loop_assign : Valid -[wp] [Qed] Goal typed_hash_assign_part1 : Valid -[wp] [Qed] Goal typed_hash_assign_part2 : Valid -[wp] [Qed] Goal typed_hash_loop_term_decrease : Valid -[wp] [Qed] Goal typed_hash_loop_term_positive : Valid -[wp] [Alt-Ergo] Goal typed_init_post : Valid -[wp] [Alt-Ergo] Goal typed_init_post_2 : Valid -[wp] [Alt-Ergo] Goal typed_init_loop_inv_preserved : Valid -[wp] [Qed] Goal typed_init_loop_inv_established : Valid -[wp] [Alt-Ergo] Goal typed_init_loop_inv_2_preserved : Valid -[wp] [Qed] Goal typed_init_loop_inv_2_established : Valid -[wp] [Qed] Goal typed_init_loop_assign_part1 : Valid -[wp] [Qed] Goal typed_init_loop_assign_part2 : Valid -[wp] [Qed] Goal typed_init_assign_part1 : Valid -[wp] [Qed] Goal typed_init_assign_part2 : Valid -[wp] [Alt-Ergo] Goal typed_init_assign_part3 : Valid -[wp] [Qed] Goal typed_init_loop_term_decrease : Valid -[wp] [Qed] Goal typed_init_loop_term_positive : Valid +[wp] [Alt-Ergo] Goal typed_eq_string_loop_invariant_preserved : Valid +[wp] [Qed] Goal typed_eq_string_loop_invariant_established : Valid +[wp] [Alt-Ergo] Goal typed_eq_string_loop_invariant_2_preserved : Valid +[wp] [Qed] Goal typed_eq_string_loop_invariant_2_established : Valid +[wp] [Qed] Goal typed_eq_string_loop_assigns : Valid +[wp] [Qed] Goal typed_eq_string_assigns_part1 : Valid +[wp] [Qed] Goal typed_eq_string_assigns_part2 : Valid +[wp] [Qed] Goal typed_eq_string_assigns_part3 : Valid +[wp] [Qed] Goal typed_eq_string_assigns_part4 : Valid +[wp] [Qed] Goal typed_eq_string_loop_variant_decrease : Valid +[wp] [Qed] Goal typed_eq_string_loop_variant_positive : Valid +[wp] [Alt-Ergo] Goal typed_eq_string_eq_ensures : Valid +[wp] [Alt-Ergo] Goal typed_eq_string_not_eq_ensures : Valid +[wp] [Alt-Ergo] Goal typed_hash_loop_invariant_preserved : Valid +[wp] [Qed] Goal typed_hash_loop_invariant_established : Valid +[wp] [Qed] Goal typed_hash_loop_assigns : Valid +[wp] [Qed] Goal typed_hash_assigns_part1 : Valid +[wp] [Qed] Goal typed_hash_assigns_part2 : Valid +[wp] [Qed] Goal typed_hash_loop_variant_decrease : Valid +[wp] [Qed] Goal typed_hash_loop_variant_positive : Valid +[wp] [Alt-Ergo] Goal typed_init_ensures : Valid +[wp] [Alt-Ergo] Goal typed_init_ensures_2 : Valid +[wp] [Alt-Ergo] Goal typed_init_loop_invariant_preserved : Valid +[wp] [Qed] Goal typed_init_loop_invariant_established : Valid +[wp] [Alt-Ergo] Goal typed_init_loop_invariant_2_preserved : Valid +[wp] [Qed] Goal typed_init_loop_invariant_2_established : Valid +[wp] [Qed] Goal typed_init_loop_assigns_part1 : Valid +[wp] [Qed] Goal typed_init_loop_assigns_part2 : Valid +[wp] [Qed] Goal typed_init_assigns_part1 : Valid +[wp] [Qed] Goal typed_init_assigns_part2 : Valid +[wp] [Alt-Ergo] Goal typed_init_assigns_part3 : Valid +[wp] [Qed] Goal typed_init_loop_variant_decrease : Valid +[wp] [Qed] Goal typed_init_loop_variant_positive : Valid [wp] [Alt-Ergo] Goal typed_mem_binding_complete_not_found_found : Valid [wp] [Alt-Ergo] Goal typed_mem_binding_disjoint_not_found_found : Valid -[wp] [Alt-Ergo] Goal typed_mem_binding_loop_inv_preserved : Valid -[wp] [Alt-Ergo] Goal typed_mem_binding_loop_inv_established : Valid -[wp] [Alt-Ergo] Goal typed_mem_binding_loop_inv_2_preserved : Valid -[wp] [Qed] Goal typed_mem_binding_loop_inv_2_established : Valid -[wp] [Qed] Goal typed_mem_binding_loop_assign_part1 : Valid -[wp] [Qed] Goal typed_mem_binding_loop_assign_part2 : Valid -[wp] [Qed] Goal typed_mem_binding_assign_exit_part1 : Valid -[wp] [Qed] Goal typed_mem_binding_assign_exit_part2 : Valid -[wp] [Qed] Goal typed_mem_binding_assign_exit_part3 : Valid -[wp] [Qed] Goal typed_mem_binding_assign_exit_part4 : Valid -[wp] [Qed] Goal typed_mem_binding_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_mem_binding_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_mem_binding_assign_normal_part3 : Valid -[wp] [Qed] Goal typed_mem_binding_assign_normal_part4 : Valid -[wp] [Qed] Goal typed_mem_binding_assign_normal_part5 : Valid -[wp] [Qed] Goal typed_mem_binding_assign_normal_part6 : Valid -[wp] [Qed] Goal typed_mem_binding_assign_normal_part7 : Valid -[wp] [Qed] Goal typed_mem_binding_loop_term_decrease : Valid -[wp] [Qed] Goal typed_mem_binding_loop_term_positive : Valid -[wp] [Qed] Goal typed_mem_binding_call_hash_pre : Valid -[wp] [Qed] Goal typed_mem_binding_call_eq_string_pre : Valid -[wp] [Alt-Ergo] Goal typed_mem_binding_call_eq_string_pre_2 : Valid -[wp] [Alt-Ergo] Goal typed_mem_binding_found_post : Valid -[wp] [Alt-Ergo] Goal typed_mem_binding_not_found_post : Valid -[wp] [Qed] Goal typed_size_post : Valid -[wp] [Qed] Goal typed_size_assign : Valid +[wp] [Alt-Ergo] Goal typed_mem_binding_loop_invariant_preserved : Valid +[wp] [Alt-Ergo] Goal typed_mem_binding_loop_invariant_established : Valid +[wp] [Alt-Ergo] Goal typed_mem_binding_loop_invariant_2_preserved : Valid +[wp] [Qed] Goal typed_mem_binding_loop_invariant_2_established : Valid +[wp] [Qed] Goal typed_mem_binding_loop_assigns_part1 : Valid +[wp] [Qed] Goal typed_mem_binding_loop_assigns_part2 : Valid +[wp] [Qed] Goal typed_mem_binding_assigns_exit_part1 : Valid +[wp] [Qed] Goal typed_mem_binding_assigns_exit_part2 : Valid +[wp] [Qed] Goal typed_mem_binding_assigns_exit_part3 : Valid +[wp] [Qed] Goal typed_mem_binding_assigns_exit_part4 : Valid +[wp] [Qed] Goal typed_mem_binding_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_mem_binding_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_mem_binding_assigns_normal_part3 : Valid +[wp] [Qed] Goal typed_mem_binding_assigns_normal_part4 : Valid +[wp] [Qed] Goal typed_mem_binding_assigns_normal_part5 : Valid +[wp] [Qed] Goal typed_mem_binding_assigns_normal_part6 : Valid +[wp] [Qed] Goal typed_mem_binding_assigns_normal_part7 : Valid +[wp] [Qed] Goal typed_mem_binding_loop_variant_decrease : Valid +[wp] [Qed] Goal typed_mem_binding_loop_variant_positive : Valid +[wp] [Qed] Goal typed_mem_binding_call_hash_requires : Valid +[wp] [Qed] Goal typed_mem_binding_call_eq_string_requires : Valid +[wp] [Alt-Ergo] Goal typed_mem_binding_call_eq_string_requires_2 : Valid +[wp] [Alt-Ergo] Goal typed_mem_binding_found_ensures : Valid +[wp] [Alt-Ergo] Goal typed_mem_binding_not_found_ensures : Valid +[wp] [Qed] Goal typed_size_ensures : Valid +[wp] [Qed] Goal typed_size_assigns : Valid [wp] Proved goals: 102 / 102 Qed: 69 Alt-Ergo: 33 @@ -145,95 +145,95 @@ mem_binding 18 8 (192..240) 26 100% [wp] [Alt-Ergo] Goal typed_add_assert_rte_mem_access_6 : Valid [wp] [Alt-Ergo] Goal typed_add_assert_rte_mem_access_7 : Valid [wp] [Alt-Ergo] Goal typed_add_assert_rte_signed_overflow_2 : Valid -[wp] [Qed] Goal typed_add_assign_exit : Valid -[wp] [Qed] Goal typed_add_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_add_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_add_assign_normal_part3 : Valid -[wp] [Qed] Goal typed_add_assign_normal_part4 : Valid -[wp] [Qed] Goal typed_add_assign_normal_part5 : Valid -[wp] [Alt-Ergo] Goal typed_add_assign_normal_part6 : Valid -[wp] [Alt-Ergo] Goal typed_add_assign_normal_part7 : Valid -[wp] [Qed] Goal typed_add_assign_normal_part8 : Valid -[wp] [Qed] Goal typed_add_assign_normal_part9 : Valid -[wp] [Qed] Goal typed_add_call_hash_pre : Valid -[wp] [Alt-Ergo] Goal typed_add_full_post : Valid -[wp] [Qed] Goal typed_add_full_assign_exit : Valid -[wp] [Qed] Goal typed_add_full_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_add_full_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_add_full_assign_normal_part3 : Valid -[wp] [Qed] Goal typed_add_full_assign_normal_part4 : Valid -[wp] [Qed] Goal typed_add_full_assign_normal_part5 : Valid -[wp] [Alt-Ergo] Goal typed_add_full_assign_normal_part6 : Valid -[wp] [Alt-Ergo] Goal typed_add_full_assign_normal_part7 : Valid -[wp] [Alt-Ergo] Goal typed_add_full_assign_normal_part8 : Valid -[wp] [Qed] Goal typed_add_full_assign_normal_part9 : Valid -[wp] [Alt-Ergo] Goal typed_add_nominal_post : Valid -[wp] [Alt-Ergo] Goal typed_add_nominal_post_2 : Valid -[wp] [Alt-Ergo] Goal typed_add_nominal_post_3 : Valid -[wp] [Alt-Ergo] Goal typed_add_nominal_post_4 : Valid -[wp] [Alt-Ergo] Goal typed_add_nominal_post_5 : Valid -[wp] [Qed] Goal typed_add_nominal_assign_exit : Valid -[wp] [Qed] Goal typed_add_nominal_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_add_nominal_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_add_nominal_assign_normal_part3 : Valid -[wp] [Qed] Goal typed_add_nominal_assign_normal_part4 : Valid -[wp] [Qed] Goal typed_add_nominal_assign_normal_part5 : Valid -[wp] [Alt-Ergo] Goal typed_add_nominal_assign_normal_part6 : Valid -[wp] [Alt-Ergo] Goal typed_add_nominal_assign_normal_part7 : Valid -[wp] [Qed] Goal typed_add_nominal_assign_normal_part8 : Valid -[wp] [Qed] Goal typed_add_nominal_assign_normal_part9 : Valid +[wp] [Qed] Goal typed_add_assigns_exit : Valid +[wp] [Qed] Goal typed_add_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_add_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_add_assigns_normal_part3 : Valid +[wp] [Qed] Goal typed_add_assigns_normal_part4 : Valid +[wp] [Qed] Goal typed_add_assigns_normal_part5 : Valid +[wp] [Alt-Ergo] Goal typed_add_assigns_normal_part6 : Valid +[wp] [Alt-Ergo] Goal typed_add_assigns_normal_part7 : Valid +[wp] [Qed] Goal typed_add_assigns_normal_part8 : Valid +[wp] [Qed] Goal typed_add_assigns_normal_part9 : Valid +[wp] [Qed] Goal typed_add_call_hash_requires : Valid +[wp] [Alt-Ergo] Goal typed_add_full_ensures : Valid +[wp] [Qed] Goal typed_add_full_assigns_exit : Valid +[wp] [Qed] Goal typed_add_full_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_add_full_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_add_full_assigns_normal_part3 : Valid +[wp] [Qed] Goal typed_add_full_assigns_normal_part4 : Valid +[wp] [Qed] Goal typed_add_full_assigns_normal_part5 : Valid +[wp] [Alt-Ergo] Goal typed_add_full_assigns_normal_part6 : Valid +[wp] [Alt-Ergo] Goal typed_add_full_assigns_normal_part7 : Valid +[wp] [Alt-Ergo] Goal typed_add_full_assigns_normal_part8 : Valid +[wp] [Qed] Goal typed_add_full_assigns_normal_part9 : Valid +[wp] [Alt-Ergo] Goal typed_add_nominal_ensures : Valid +[wp] [Alt-Ergo] Goal typed_add_nominal_ensures_2 : Valid +[wp] [Alt-Ergo] Goal typed_add_nominal_ensures_3 : Valid +[wp] [Alt-Ergo] Goal typed_add_nominal_ensures_4 : Valid +[wp] [Alt-Ergo] Goal typed_add_nominal_ensures_5 : Valid +[wp] [Qed] Goal typed_add_nominal_assigns_exit : Valid +[wp] [Qed] Goal typed_add_nominal_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_add_nominal_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_add_nominal_assigns_normal_part3 : Valid +[wp] [Qed] Goal typed_add_nominal_assigns_normal_part4 : Valid +[wp] [Qed] Goal typed_add_nominal_assigns_normal_part5 : Valid +[wp] [Alt-Ergo] Goal typed_add_nominal_assigns_normal_part6 : Valid +[wp] [Alt-Ergo] Goal typed_add_nominal_assigns_normal_part7 : Valid +[wp] [Qed] Goal typed_add_nominal_assigns_normal_part8 : Valid +[wp] [Qed] Goal typed_add_nominal_assigns_normal_part9 : Valid [wp] [Qed] Goal typed_eq_string_complete_not_eq_eq : Valid [wp] [Qed] Goal typed_eq_string_disjoint_not_eq_eq : Valid -[wp] [Alt-Ergo] Goal typed_eq_string_loop_inv_preserved : Valid -[wp] [Qed] Goal typed_eq_string_loop_inv_established : Valid -[wp] [Alt-Ergo] Goal typed_eq_string_loop_inv_2_preserved : Valid -[wp] [Qed] Goal typed_eq_string_loop_inv_2_established : Valid +[wp] [Alt-Ergo] Goal typed_eq_string_loop_invariant_preserved : Valid +[wp] [Qed] Goal typed_eq_string_loop_invariant_established : Valid +[wp] [Alt-Ergo] Goal typed_eq_string_loop_invariant_2_preserved : Valid +[wp] [Qed] Goal typed_eq_string_loop_invariant_2_established : Valid [wp] [Alt-Ergo] Goal typed_eq_string_assert_rte_mem_access : Valid [wp] [Alt-Ergo] Goal typed_eq_string_assert_rte_mem_access_2 : Valid [wp] [Alt-Ergo] Goal typed_eq_string_assert_rte_signed_overflow : Valid -[wp] [Qed] Goal typed_eq_string_loop_assign : Valid -[wp] [Qed] Goal typed_eq_string_assign_part1 : Valid -[wp] [Qed] Goal typed_eq_string_assign_part2 : Valid -[wp] [Qed] Goal typed_eq_string_assign_part3 : Valid -[wp] [Qed] Goal typed_eq_string_assign_part4 : Valid -[wp] [Qed] Goal typed_eq_string_loop_term_decrease : Valid -[wp] [Qed] Goal typed_eq_string_loop_term_positive : Valid -[wp] [Alt-Ergo] Goal typed_eq_string_eq_post : Valid -[wp] [Alt-Ergo] Goal typed_eq_string_not_eq_post : Valid -[wp] [Alt-Ergo] Goal typed_hash_loop_inv_preserved : Valid -[wp] [Qed] Goal typed_hash_loop_inv_established : Valid +[wp] [Qed] Goal typed_eq_string_loop_assigns : Valid +[wp] [Qed] Goal typed_eq_string_assigns_part1 : Valid +[wp] [Qed] Goal typed_eq_string_assigns_part2 : Valid +[wp] [Qed] Goal typed_eq_string_assigns_part3 : Valid +[wp] [Qed] Goal typed_eq_string_assigns_part4 : Valid +[wp] [Qed] Goal typed_eq_string_loop_variant_decrease : Valid +[wp] [Qed] Goal typed_eq_string_loop_variant_positive : Valid +[wp] [Alt-Ergo] Goal typed_eq_string_eq_ensures : Valid +[wp] [Alt-Ergo] Goal typed_eq_string_not_eq_ensures : Valid +[wp] [Alt-Ergo] Goal typed_hash_loop_invariant_preserved : Valid +[wp] [Qed] Goal typed_hash_loop_invariant_established : Valid [wp] [Alt-Ergo] Goal typed_hash_assert_rte_mem_access : Valid [wp] [Qed] Goal typed_hash_assert_rte_mem_access_2 : Valid [wp] [Alt-Ergo] Goal typed_hash_assert_rte_signed_overflow : Valid -[wp] [Qed] Goal typed_hash_loop_assign : Valid -[wp] [Qed] Goal typed_hash_assign_part1 : Valid -[wp] [Qed] Goal typed_hash_assign_part2 : Valid -[wp] [Qed] Goal typed_hash_loop_term_decrease : Valid -[wp] [Qed] Goal typed_hash_loop_term_positive : Valid -[wp] [Alt-Ergo] Goal typed_init_post : Valid -[wp] [Alt-Ergo] Goal typed_init_post_2 : Valid +[wp] [Qed] Goal typed_hash_loop_assigns : Valid +[wp] [Qed] Goal typed_hash_assigns_part1 : Valid +[wp] [Qed] Goal typed_hash_assigns_part2 : Valid +[wp] [Qed] Goal typed_hash_loop_variant_decrease : Valid +[wp] [Qed] Goal typed_hash_loop_variant_positive : Valid +[wp] [Alt-Ergo] Goal typed_init_ensures : Valid +[wp] [Alt-Ergo] Goal typed_init_ensures_2 : Valid [wp] [Alt-Ergo] Goal typed_init_assert_rte_mem_access : Valid -[wp] [Alt-Ergo] Goal typed_init_loop_inv_preserved : Valid -[wp] [Qed] Goal typed_init_loop_inv_established : Valid -[wp] [Alt-Ergo] Goal typed_init_loop_inv_2_preserved : Valid -[wp] [Qed] Goal typed_init_loop_inv_2_established : Valid +[wp] [Alt-Ergo] Goal typed_init_loop_invariant_preserved : Valid +[wp] [Qed] Goal typed_init_loop_invariant_established : Valid +[wp] [Alt-Ergo] Goal typed_init_loop_invariant_2_preserved : Valid +[wp] [Qed] Goal typed_init_loop_invariant_2_established : Valid [wp] [Qed] Goal typed_init_assert_rte_index_bound : Valid [wp] [Qed] Goal typed_init_assert_rte_index_bound_2 : Valid [wp] [Alt-Ergo] Goal typed_init_assert_rte_mem_access_2 : Valid [wp] [Alt-Ergo] Goal typed_init_assert_rte_signed_overflow : Valid -[wp] [Qed] Goal typed_init_loop_assign_part1 : Valid -[wp] [Qed] Goal typed_init_loop_assign_part2 : Valid -[wp] [Qed] Goal typed_init_assign_part1 : Valid -[wp] [Qed] Goal typed_init_assign_part2 : Valid -[wp] [Alt-Ergo] Goal typed_init_assign_part3 : Valid -[wp] [Qed] Goal typed_init_loop_term_decrease : Valid -[wp] [Qed] Goal typed_init_loop_term_positive : Valid +[wp] [Qed] Goal typed_init_loop_assigns_part1 : Valid +[wp] [Qed] Goal typed_init_loop_assigns_part2 : Valid +[wp] [Qed] Goal typed_init_assigns_part1 : Valid +[wp] [Qed] Goal typed_init_assigns_part2 : Valid +[wp] [Alt-Ergo] Goal typed_init_assigns_part3 : Valid +[wp] [Qed] Goal typed_init_loop_variant_decrease : Valid +[wp] [Qed] Goal typed_init_loop_variant_positive : Valid [wp] [Alt-Ergo] Goal typed_mem_binding_complete_not_found_found : Valid [wp] [Alt-Ergo] Goal typed_mem_binding_disjoint_not_found_found : Valid -[wp] [Alt-Ergo] Goal typed_mem_binding_loop_inv_preserved : Valid -[wp] [Alt-Ergo] Goal typed_mem_binding_loop_inv_established : Valid -[wp] [Alt-Ergo] Goal typed_mem_binding_loop_inv_2_preserved : Valid -[wp] [Qed] Goal typed_mem_binding_loop_inv_2_established : Valid +[wp] [Alt-Ergo] Goal typed_mem_binding_loop_invariant_preserved : Valid +[wp] [Alt-Ergo] Goal typed_mem_binding_loop_invariant_established : Valid +[wp] [Alt-Ergo] Goal typed_mem_binding_loop_invariant_2_preserved : Valid +[wp] [Qed] Goal typed_mem_binding_loop_invariant_2_established : Valid [wp] [Alt-Ergo] Goal typed_mem_binding_assert_rte_index_bound : Valid [wp] [Alt-Ergo] Goal typed_mem_binding_assert_rte_index_bound_2 : Valid [wp] [Alt-Ergo] Goal typed_mem_binding_assert_rte_mem_access : Valid @@ -248,29 +248,29 @@ mem_binding 18 8 (192..240) 26 100% [wp] [Qed] Goal typed_mem_binding_assert_rte_index_bound_10 : Valid [wp] [Alt-Ergo] Goal typed_mem_binding_assert_rte_mem_access_3 : Valid [wp] [Alt-Ergo] Goal typed_mem_binding_assert_rte_signed_overflow : Valid -[wp] [Qed] Goal typed_mem_binding_loop_assign_part1 : Valid -[wp] [Qed] Goal typed_mem_binding_loop_assign_part2 : Valid -[wp] [Qed] Goal typed_mem_binding_assign_exit_part1 : Valid -[wp] [Qed] Goal typed_mem_binding_assign_exit_part2 : Valid -[wp] [Qed] Goal typed_mem_binding_assign_exit_part3 : Valid -[wp] [Qed] Goal typed_mem_binding_assign_exit_part4 : Valid -[wp] [Qed] Goal typed_mem_binding_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_mem_binding_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_mem_binding_assign_normal_part3 : Valid -[wp] [Qed] Goal typed_mem_binding_assign_normal_part4 : Valid -[wp] [Qed] Goal typed_mem_binding_assign_normal_part5 : Valid -[wp] [Qed] Goal typed_mem_binding_assign_normal_part6 : Valid -[wp] [Qed] Goal typed_mem_binding_assign_normal_part7 : Valid -[wp] [Qed] Goal typed_mem_binding_loop_term_decrease : Valid -[wp] [Qed] Goal typed_mem_binding_loop_term_positive : Valid -[wp] [Qed] Goal typed_mem_binding_call_hash_pre : Valid -[wp] [Qed] Goal typed_mem_binding_call_eq_string_pre : Valid -[wp] [Alt-Ergo] Goal typed_mem_binding_call_eq_string_pre_2 : Valid -[wp] [Alt-Ergo] Goal typed_mem_binding_found_post : Valid -[wp] [Alt-Ergo] Goal typed_mem_binding_not_found_post : Valid -[wp] [Qed] Goal typed_size_post : Valid +[wp] [Qed] Goal typed_mem_binding_loop_assigns_part1 : Valid +[wp] [Qed] Goal typed_mem_binding_loop_assigns_part2 : Valid +[wp] [Qed] Goal typed_mem_binding_assigns_exit_part1 : Valid +[wp] [Qed] Goal typed_mem_binding_assigns_exit_part2 : Valid +[wp] [Qed] Goal typed_mem_binding_assigns_exit_part3 : Valid +[wp] [Qed] Goal typed_mem_binding_assigns_exit_part4 : Valid +[wp] [Qed] Goal typed_mem_binding_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_mem_binding_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_mem_binding_assigns_normal_part3 : Valid +[wp] [Qed] Goal typed_mem_binding_assigns_normal_part4 : Valid +[wp] [Qed] Goal typed_mem_binding_assigns_normal_part5 : Valid +[wp] [Qed] Goal typed_mem_binding_assigns_normal_part6 : Valid +[wp] [Qed] Goal typed_mem_binding_assigns_normal_part7 : Valid +[wp] [Qed] Goal typed_mem_binding_loop_variant_decrease : Valid +[wp] [Qed] Goal typed_mem_binding_loop_variant_positive : Valid +[wp] [Qed] Goal typed_mem_binding_call_hash_requires : Valid +[wp] [Qed] Goal typed_mem_binding_call_eq_string_requires : Valid +[wp] [Alt-Ergo] Goal typed_mem_binding_call_eq_string_requires_2 : Valid +[wp] [Alt-Ergo] Goal typed_mem_binding_found_ensures : Valid +[wp] [Alt-Ergo] Goal typed_mem_binding_not_found_ensures : Valid +[wp] [Qed] Goal typed_size_ensures : Valid [wp] [Alt-Ergo] Goal typed_size_assert_rte_mem_access : Valid -[wp] [Qed] Goal typed_size_assign : Valid +[wp] [Qed] Goal typed_size_assigns : Valid [wp] Proved goals: 74 / 143 Qed: 16 Alt-Ergo: 58 diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/loop-statement.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle_qualif/loop-statement.res.oracle index 3115cf8cb4745cf898196236e88078d64baeec3a..26816b946bcc170a939be8353db3629ba7f9c343 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/loop-statement.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/loop-statement.res.oracle @@ -5,20 +5,20 @@ [wp] Warning: Missing RTE guards [wp] 15 goals scheduled [wp] [Alt-Ergo] Goal typed_lemma_Lb : Valid -[wp] [Qed] Goal typed_loop_statement_post_Scond : Valid -[wp] [Qed] Goal typed_loop_statement_post_Sloop : Valid -[wp] [Alt-Ergo] Goal typed_loop_statement_loop_inv_Iloop_preserved : Valid -[wp] [Alt-Ergo] Goal typed_loop_statement_loop_inv_Iloop_established : Valid -[wp] [Qed] Goal typed_loop_statement_loop_assign_part1 : Valid -[wp] [Qed] Goal typed_loop_statement_loop_assign_part2 : Valid -[wp] [Qed] Goal typed_loop_statement_assign_exit_part1 : Valid -[wp] [Qed] Goal typed_loop_statement_assign_exit_part2 : Valid -[wp] [Qed] Goal typed_loop_statement_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_loop_statement_assign_normal_part2 : Valid -[wp] [Alt-Ergo] Goal typed_loop_statement_stmt_pre_Rinv : Valid -[wp] [Qed] Goal typed_loop_statement_stmt_pre_Scond : Valid -[wp] [Qed] Goal typed_loop_statement_stmt_post_Sbody : Valid -[wp] [Qed] Goal typed_loop_statement_stmt_assign : Valid +[wp] [Qed] Goal typed_loop_statement_ensures_Scond : Valid +[wp] [Qed] Goal typed_loop_statement_ensures_Sloop : Valid +[wp] [Alt-Ergo] Goal typed_loop_statement_loop_invariant_Iloop_preserved : Valid +[wp] [Alt-Ergo] Goal typed_loop_statement_loop_invariant_Iloop_established : Valid +[wp] [Qed] Goal typed_loop_statement_loop_assigns_part1 : Valid +[wp] [Qed] Goal typed_loop_statement_loop_assigns_part2 : Valid +[wp] [Qed] Goal typed_loop_statement_assigns_2_exit_part1 : Valid +[wp] [Qed] Goal typed_loop_statement_assigns_2_exit_part2 : Valid +[wp] [Qed] Goal typed_loop_statement_assigns_2_normal_part1 : Valid +[wp] [Qed] Goal typed_loop_statement_assigns_2_normal_part2 : Valid +[wp] [Alt-Ergo] Goal typed_loop_statement_requires_Rinv : Valid +[wp] [Qed] Goal typed_loop_statement_requires_Scond : Valid +[wp] [Qed] Goal typed_loop_statement_ensures_Sbody : Valid +[wp] [Qed] Goal typed_loop_statement_assigns : Valid [wp] Proved goals: 15 / 15 Qed: 11 Alt-Ergo: 4 diff --git a/src/plugins/wp/tests/wp_hoare/byref.i.0.report.json b/src/plugins/wp/tests/wp_hoare/byref.i.0.report.json index a7a3f8fa494867151bce0d02eaf63fa6c56f223b..ca2beb3fcb1d5d4fafbf0a16c23afcebbdd94fb3 100644 --- a/src/plugins/wp/tests/wp_hoare/byref.i.0.report.json +++ b/src/plugins/wp/tests/wp_hoare/byref.i.0.report.json @@ -1,20 +1,22 @@ { "wp:global": { "alt-ergo": { "total": 1, "unknown": 1 }, "qed": { "total": 11, "valid": 11 }, "wp:main": { "total": 12, "valid": 11, "unknown": 1 } }, - "wp:functions": { "f": { "f_assign": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, + "wp:functions": { "f": { "f_assigns": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } } }, - "wrong_without_ref": { "specialization_f_pre_at_wrong_without_ref_stmt_4": - { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "wrong_without_ref_post": + "wrong_without_ref": { "f_requires": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, + "wrong_without_ref_ensures": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, @@ -28,46 +30,50 @@ { "total": 2, "valid": 1, "unknown": 1 } } }, - "pointer": { "specialization_f_pre_at_pointer_stmt_8": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "pointer_post": { "qed": { "total": 1, + "pointer": { "f_requires_2": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, + "pointer_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } } }, - "local": { "specialization_f_pre_at_local_stmt_12": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "local_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "local": { "f_requires_3": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "local_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } } }, - "formal": { "specialization_f_pre_at_formal_stmt_16": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "formal_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "formal": { "f_requires_4": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "formal_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } } }, - "global": { "specialization_f_pre_at_global_stmt_20": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "global_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "global": { "f_requires_5": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "global_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, diff --git a/src/plugins/wp/tests/wp_hoare/byref.i.1.report.json b/src/plugins/wp/tests/wp_hoare/byref.i.1.report.json index 59457803d9be0263fd583785326743b516a5993f..dae2cb882d8a0824f51d63d5a0db103b114041b4 100644 --- a/src/plugins/wp/tests/wp_hoare/byref.i.1.report.json +++ b/src/plugins/wp/tests/wp_hoare/byref.i.1.report.json @@ -1,19 +1,20 @@ { "wp:global": { "qed": { "total": 12, "valid": 12 }, "wp:main": { "total": 12, "valid": 12 } }, - "wp:functions": { "f": { "f_assign": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, + "wp:functions": { "f": { "f_assigns": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } } }, - "wrong_without_ref": { "specialization_f_pre_at_wrong_without_ref_stmt_4": - { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "wrong_without_ref_post": + "wrong_without_ref": { "f_requires": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "wrong_without_ref_ensures": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, @@ -23,46 +24,50 @@ "wp:main": { "total": 2, "valid": 2 } } }, - "pointer": { "specialization_f_pre_at_pointer_stmt_8": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "pointer_post": { "qed": { "total": 1, + "pointer": { "f_requires_2": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, + "pointer_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } } }, - "local": { "specialization_f_pre_at_local_stmt_12": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "local_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "local": { "f_requires_3": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "local_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } } }, - "formal": { "specialization_f_pre_at_formal_stmt_16": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "formal_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "formal": { "f_requires_4": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "formal_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } } }, - "global": { "specialization_f_pre_at_global_stmt_20": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "global_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "global": { "f_requires_5": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "global_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, diff --git a/src/plugins/wp/tests/wp_hoare/dispatch_var.i.0.report.json b/src/plugins/wp/tests/wp_hoare/dispatch_var.i.0.report.json index 90636e9b45b12301d8f6b619fae7dbd2db95c8bc..9354117a174bb82e9a53c4982f073ec6553a896e 100644 --- a/src/plugins/wp/tests/wp_hoare/dispatch_var.i.0.report.json +++ b/src/plugins/wp/tests/wp_hoare/dispatch_var.i.0.report.json @@ -1,95 +1,94 @@ { "wp:global": { "qed": { "total": 78, "valid": 78 }, "wp:main": { "total": 78, "valid": 78 } }, - "wp:functions": { "call_ref_ctr": { "call_ref_ctr_assign": { "qed": - { "total": 3, - "valid": 3 }, - "wp:main": - { "total": 3, - "valid": 3 } }, - "call_ref_ctr_post_Ref_r1": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "wp:functions": { "call_ref_ctr": { "call_ref_ctr_assigns": { "qed": + { "total": 3, + "valid": 3 }, + "wp:main": + { "total": 3, + "valid": 3 } }, + "call_ref_ctr_ensures_Ref_r1": + { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 4, "valid": 4 }, "wp:main": { "total": 4, "valid": 4 } } }, - "call_ref_ctr2": { "call_ref_ctr2_assign": { "qed": - { "total": 7, + "call_ref_ctr2": { "call_ref_ctr2_assigns": { "qed": + { "total": 7, "valid": 7 }, - "wp:main": - { "total": 7, + "wp:main": + { "total": 7, "valid": 7 } }, - "call_ref_ctr2_post_Mem_n1": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "call_ref_ctr2_ensures_Mem_n1": + { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 8, "valid": 8 }, "wp:main": { "total": 8, "valid": 8 } } }, - "ref_bd": { "ref_bd_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "ref_bd_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "ref_bd": { "ref_bd_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "ref_bd_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } } }, - "call_ref_bd": { "call_ref_bd_assign": { "qed": { "total": 3, - "valid": 3 }, - "wp:main": - { "total": 3, - "valid": 3 } }, - "call_ref_bd_post_Ref_r2": { "qed": + "call_ref_bd": { "call_ref_bd_assigns": { "qed": + { "total": 3, + "valid": 3 }, + "wp:main": + { "total": 3, + "valid": 3 } }, + "call_ref_bd_ensures_Ref_r2": { "qed": { "total": 1, "valid": 1 }, - "wp:main": + "wp:main": { "total": 1, "valid": 1 } }, "wp:section": { "qed": { "total": 4, "valid": 4 }, "wp:main": { "total": 4, "valid": 4 } } }, - "call_ref_bd2": { "call_ref_bd2_assign": { "qed": - { "total": 7, - "valid": 7 }, - "wp:main": - { "total": 7, - "valid": 7 } }, - "call_ref_bd2_post_Mem_n2": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "call_ref_bd2": { "call_ref_bd2_assigns": { "qed": + { "total": 7, + "valid": 7 }, + "wp:main": + { "total": 7, + "valid": 7 } }, + "call_ref_bd2_ensures_Mem_n2": + { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 8, "valid": 8 }, "wp:main": { "total": 8, "valid": 8 } } }, - "call_ref_valid": { "specialization_ref_valid_pre_at_call_ref_valid_stmt_35": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "specialization_ref_valid_pre_at_call_ref_valid_stmt_34": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "call_ref_valid_assign": { "qed": + "call_ref_valid": { "ref_valid_requires_2": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "ref_valid_requires": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "call_ref_valid_assigns": { "qed": { "total": 8, "valid": 8 }, - "wp:main": + "wp:main": { "total": 8, "valid": 8 } }, - "call_ref_valid_post_R7_N4": + "call_ref_valid_ensures_R7_N4": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, @@ -97,25 +96,27 @@ "valid": 11 }, "wp:main": { "total": 11, "valid": 11 } } }, - "no_ref_bd": { "no_ref_bd_assign": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, - "no_ref_bd_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "no_ref_bd": { "no_ref_bd_assigns": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": + { "total": 2, + "valid": 2 } }, + "no_ref_bd_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 3, "valid": 3 }, "wp:main": { "total": 3, "valid": 3 } } }, - "call_no_ref_bd": { "call_no_ref_bd_assign": { "qed": + "call_no_ref_bd": { "call_no_ref_bd_assigns": { "qed": { "total": 8, "valid": 8 }, - "wp:main": + "wp:main": { "total": 8, "valid": 8 } }, - "call_no_ref_bd_post_Mem_n5_nr6": + "call_no_ref_bd_ensures_Mem_n5_nr6": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, @@ -123,23 +124,24 @@ "valid": 9 }, "wp:main": { "total": 9, "valid": 9 } } }, - "call_ref_ctr_nr": { "specialization_ref_ctr_nr_pre_at_call_ref_ctr_nr_stmt_57": - { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "call_ref_ctr_nr_assign": { "qed": + "call_ref_ctr_nr": { "ref_ctr_nr_requires": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "call_ref_ctr_nr_assigns": { "qed": { "total": 7, "valid": 7 }, "wp:main": { "total": 7, "valid": 7 } }, - "call_ref_ctr_nr_post_R_R_R_2": + "call_ref_ctr_nr_ensures_R_R_R_2": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "call_ref_ctr_nr_post_R_R_R": + "call_ref_ctr_nr_ensures_R_R_R": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, @@ -148,12 +150,12 @@ "valid": 10 }, "wp:main": { "total": 10, "valid": 10 } } }, - "call_ref_ctr_nstars": { "call_ref_ctr_nstars_assign": + "call_ref_ctr_nstars": { "call_ref_ctr_nstars_assigns": { "qed": { "total": 5, "valid": 5 }, "wp:main": { "total": 5, "valid": 5 } }, - "call_ref_ctr_nstars_post": + "call_ref_ctr_nstars_ensures": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, @@ -163,35 +165,37 @@ "wp:main": { "total": 6, "valid": 6 } } }, - "call_two_ref": { "call_two_ref_assign": { "qed": - { "total": 6, - "valid": 6 }, - "wp:main": - { "total": 6, - "valid": 6 } }, - "call_two_ref_post": { "qed": { "total": 1, + "call_two_ref": { "call_two_ref_assigns": { "qed": + { "total": 6, + "valid": 6 }, + "wp:main": + { "total": 6, + "valid": 6 } }, + "call_two_ref_ensures": { "qed": + { "total": 1, "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 7, "valid": 7 }, "wp:main": { "total": 7, "valid": 7 } } }, - "g": { "g_assign": { "qed": { "total": 3, "valid": 3 }, - "wp:main": { "total": 3, - "valid": 3 } }, - "g_post": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, + "g": { "g_assigns": { "qed": { "total": 3, "valid": 3 }, + "wp:main": { "total": 3, + "valid": 3 } }, + "g_ensures": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 4, "valid": 4 }, "wp:main": { "total": 4, "valid": 4 } } }, - "array_in_struct_param": { "array_in_struct_param_assign": + "array_in_struct_param": { "array_in_struct_param_assigns": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "array_in_struct_param_post_Pload2": + "array_in_struct_param_ensures_Pload2": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, diff --git a/src/plugins/wp/tests/wp_hoare/dispatch_var2.i.0.report.json b/src/plugins/wp/tests/wp_hoare/dispatch_var2.i.0.report.json index 3114d267431c447b8ade2a3b9670d8382ff923d7..94f2026a9e3162f83d877b905ec4a1bd61b39d0c 100644 --- a/src/plugins/wp/tests/wp_hoare/dispatch_var2.i.0.report.json +++ b/src/plugins/wp/tests/wp_hoare/dispatch_var2.i.0.report.json @@ -1,120 +1,133 @@ { "wp:global": { "qed": { "total": 34, "valid": 34 }, "wp:main": { "total": 34, "valid": 34 } }, - "wp:functions": { "reset": { "reset_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "reset_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "reset": { "reset_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "reset_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } } }, - "incr": { "incr_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "incr_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "incr": { "incr_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "incr_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } } }, - "load": { "load_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "load_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "load": { "load_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "load_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } } }, - "call_global": { "specialization_load_pre_at_call_global_stmt_11": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "specialization_reset_pre_at_call_global_stmt_10": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "call_global_assign": { "qed": { "total": 3, - "valid": 3 }, - "wp:main": - { "total": 3, - "valid": 3 } }, - "call_global_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "call_global": { "load_requires": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "reset_requires": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "call_global_assigns": { "qed": + { "total": 3, + "valid": 3 }, + "wp:main": + { "total": 3, + "valid": 3 } }, + "call_global_ensures": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 6, "valid": 6 }, "wp:main": { "total": 6, "valid": 6 } } }, - "call_param": { "specialization_load_pre_at_call_param_stmt_15": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "specialization_reset_pre_at_call_param_stmt_14": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "call_param_assign": { "qed": { "total": 5, - "valid": 5 }, - "wp:main": - { "total": 5, - "valid": 5 } }, - "call_param_post": { "qed": { "total": 1, + "call_param": { "load_requires_2": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, + "reset_requires_2": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "call_param_assigns": { "qed": { "total": 5, + "valid": 5 }, + "wp:main": + { "total": 5, + "valid": 5 } }, + "call_param_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 8, "valid": 8 }, "wp:main": { "total": 8, "valid": 8 } } }, - "call_local": { "specialization_load_pre_at_call_local_stmt_19": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "specialization_reset_pre_at_call_local_stmt_18": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "call_local_assign": { "qed": { "total": 5, - "valid": 5 }, - "wp:main": - { "total": 5, - "valid": 5 } }, - "call_local_post": { "qed": { "total": 1, + "call_local": { "load_requires_3": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, + "reset_requires_3": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "call_local_assigns": { "qed": { "total": 5, + "valid": 5 }, + "wp:main": + { "total": 5, + "valid": 5 } }, + "call_local_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 8, "valid": 8 }, "wp:main": { "total": 8, "valid": 8 } } }, - "call_param_ref": { "specialization_load_pre_at_call_param_ref_stmt_23": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "specialization_reset_pre_at_call_param_ref_stmt_22": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "call_param_ref_assign": { "qed": + "call_param_ref": { "load_requires_4": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "reset_requires_4": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "call_param_ref_assigns": { "qed": { "total": 3, "valid": 3 }, - "wp:main": + "wp:main": { "total": 3, "valid": 3 } }, - "call_param_ref_post": { "qed": - { "total": 1, + "call_param_ref_ensures": { "qed": + { "total": 1, "valid": 1 }, - "wp:main": - { "total": 1, + "wp:main": + { "total": 1, "valid": 1 } }, "wp:section": { "qed": { "total": 6, "valid": 6 }, diff --git a/src/plugins/wp/tests/wp_hoare/dispatch_var2.i.1.report.json b/src/plugins/wp/tests/wp_hoare/dispatch_var2.i.1.report.json index 3114d267431c447b8ade2a3b9670d8382ff923d7..94f2026a9e3162f83d877b905ec4a1bd61b39d0c 100644 --- a/src/plugins/wp/tests/wp_hoare/dispatch_var2.i.1.report.json +++ b/src/plugins/wp/tests/wp_hoare/dispatch_var2.i.1.report.json @@ -1,120 +1,133 @@ { "wp:global": { "qed": { "total": 34, "valid": 34 }, "wp:main": { "total": 34, "valid": 34 } }, - "wp:functions": { "reset": { "reset_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "reset_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "reset": { "reset_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "reset_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } } }, - "incr": { "incr_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "incr_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "incr": { "incr_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "incr_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } } }, - "load": { "load_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "load_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "load": { "load_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "load_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } } }, - "call_global": { "specialization_load_pre_at_call_global_stmt_11": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "specialization_reset_pre_at_call_global_stmt_10": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "call_global_assign": { "qed": { "total": 3, - "valid": 3 }, - "wp:main": - { "total": 3, - "valid": 3 } }, - "call_global_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "call_global": { "load_requires": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "reset_requires": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "call_global_assigns": { "qed": + { "total": 3, + "valid": 3 }, + "wp:main": + { "total": 3, + "valid": 3 } }, + "call_global_ensures": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 6, "valid": 6 }, "wp:main": { "total": 6, "valid": 6 } } }, - "call_param": { "specialization_load_pre_at_call_param_stmt_15": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "specialization_reset_pre_at_call_param_stmt_14": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "call_param_assign": { "qed": { "total": 5, - "valid": 5 }, - "wp:main": - { "total": 5, - "valid": 5 } }, - "call_param_post": { "qed": { "total": 1, + "call_param": { "load_requires_2": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, + "reset_requires_2": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "call_param_assigns": { "qed": { "total": 5, + "valid": 5 }, + "wp:main": + { "total": 5, + "valid": 5 } }, + "call_param_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 8, "valid": 8 }, "wp:main": { "total": 8, "valid": 8 } } }, - "call_local": { "specialization_load_pre_at_call_local_stmt_19": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "specialization_reset_pre_at_call_local_stmt_18": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "call_local_assign": { "qed": { "total": 5, - "valid": 5 }, - "wp:main": - { "total": 5, - "valid": 5 } }, - "call_local_post": { "qed": { "total": 1, + "call_local": { "load_requires_3": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, + "reset_requires_3": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "call_local_assigns": { "qed": { "total": 5, + "valid": 5 }, + "wp:main": + { "total": 5, + "valid": 5 } }, + "call_local_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 8, "valid": 8 }, "wp:main": { "total": 8, "valid": 8 } } }, - "call_param_ref": { "specialization_load_pre_at_call_param_ref_stmt_23": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "specialization_reset_pre_at_call_param_ref_stmt_22": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "call_param_ref_assign": { "qed": + "call_param_ref": { "load_requires_4": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "reset_requires_4": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "call_param_ref_assigns": { "qed": { "total": 3, "valid": 3 }, - "wp:main": + "wp:main": { "total": 3, "valid": 3 } }, - "call_param_ref_post": { "qed": - { "total": 1, + "call_param_ref_ensures": { "qed": + { "total": 1, "valid": 1 }, - "wp:main": - { "total": 1, + "wp:main": + { "total": 1, "valid": 1 } }, "wp:section": { "qed": { "total": 6, "valid": 6 }, diff --git a/src/plugins/wp/tests/wp_hoare/isHoare.i.0.report.json b/src/plugins/wp/tests/wp_hoare/isHoare.i.0.report.json index e871e1e248100ceb7b7c8494701ee38faf3f01a5..0455cf705ec214e88499f4c30723f07b92edb11a 100644 --- a/src/plugins/wp/tests/wp_hoare/isHoare.i.0.report.json +++ b/src/plugins/wp/tests/wp_hoare/isHoare.i.0.report.json @@ -1,6 +1,6 @@ { "wp:global": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "wp:functions": { "cmp_invalid_addr_as_int": { "cmp_invalid_addr_as_int_post_ok": + "wp:functions": { "cmp_invalid_addr_as_int": { "cmp_invalid_addr_as_int_ensures_ok": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, diff --git a/src/plugins/wp/tests/wp_hoare/logicarr.i.0.report.json b/src/plugins/wp/tests/wp_hoare/logicarr.i.0.report.json index d0320c3b7a513fffbbf48233832fa50de01c3f17..1b506f1c00b11fc3342a972f785d4472d9702fd8 100644 --- a/src/plugins/wp/tests/wp_hoare/logicarr.i.0.report.json +++ b/src/plugins/wp/tests/wp_hoare/logicarr.i.0.report.json @@ -1,23 +1,23 @@ { "wp:global": { "alt-ergo": { "total": 3, "valid": 3, "rank": 17 }, "wp:main": { "total": 3, "valid": 3, "rank": 17 } }, - "wp:functions": { "job": { "job_post_DUM": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 17 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 17 } }, - "job_post_ARR": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 17 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 17 } }, - "job_post_PTR": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 15 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 15 } }, + "wp:functions": { "job": { "job_ensures_DUM": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 17 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 17 } }, + "job_ensures_ARR": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 17 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 17 } }, + "job_ensures_PTR": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 16 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 16 } }, "wp:section": { "alt-ergo": { "total": 3, "valid": 3, "rank": 17 }, diff --git a/src/plugins/wp/tests/wp_hoare/logicref.i.0.report.json b/src/plugins/wp/tests/wp_hoare/logicref.i.0.report.json index 4156f842cc6d45e448fab3db26b60c6ae073de6c..d145ce7d5dae7345d0301367c7b0ed318d11138e 100644 --- a/src/plugins/wp/tests/wp_hoare/logicref.i.0.report.json +++ b/src/plugins/wp/tests/wp_hoare/logicref.i.0.report.json @@ -1,36 +1,39 @@ -{ "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 20 }, +{ "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 21 }, "qed": { "total": 4, "valid": 4 }, - "wp:main": { "total": 5, "valid": 5, "rank": 20 } }, + "wp:main": { "total": 5, "valid": 5, "rank": 21 } }, "wp:functions": { "fvrange_n": { "fvrange_n_assert": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 20 }, + "rank": 21 }, "wp:main": { "total": 1, "valid": 1, - "rank": 20 } }, - "fvrange_n_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "fvrange_n_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "rank": 21 } }, + "fvrange_n_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "fvrange_n_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 20 }, + "rank": 21 }, "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 3, "valid": 3, - "rank": 20 } } }, - "gcd": { "gcd_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "gcd_post": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "rank": 21 } } }, + "gcd": { "gcd_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "gcd_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, diff --git a/src/plugins/wp/tests/wp_hoare/logicref_simple.i.0.report.json b/src/plugins/wp/tests/wp_hoare/logicref_simple.i.0.report.json index b221a03eb88df353b473d8299230198a0e56f976..cf9352bbb5ffd0fb2e0b4746fb4fe2bd1154126b 100644 --- a/src/plugins/wp/tests/wp_hoare/logicref_simple.i.0.report.json +++ b/src/plugins/wp/tests/wp_hoare/logicref_simple.i.0.report.json @@ -1,16 +1,16 @@ -{ "wp:global": { "alt-ergo": { "total": 4, "valid": 4, "rank": 7 }, +{ "wp:global": { "alt-ergo": { "total": 4, "valid": 4, "rank": 8 }, "qed": { "total": 5, "valid": 5 }, - "wp:main": { "total": 9, "valid": 9, "rank": 7 } }, - "wp:functions": { "fsimple": { "fsimple_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "fsimple_post": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 3 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 3 } }, + "wp:main": { "total": 9, "valid": 9, "rank": 8 } }, + "wp:functions": { "fsimple": { "fsimple_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "fsimple_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 3 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 3 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, "rank": 3 }, @@ -19,46 +19,49 @@ "wp:main": { "total": 2, "valid": 2, "rank": 3 } } }, - "fsimple_array": { "fsimple_array_assign": { "qed": - { "total": 1, + "fsimple_array": { "fsimple_array_assigns": { "qed": + { "total": 1, "valid": 1 }, - "wp:main": - { "total": 1, + "wp:main": + { "total": 1, "valid": 1 } }, - "fsimple_array_post": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 7 }, - "wp:main": - { "total": 1, - "valid": 1, - "rank": 7 } }, + "fsimple_array_ensures": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 8 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 8 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 7 }, + "rank": 8 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 2, "valid": 2, - "rank": 7 } } }, - "ftwo_star": { "ftwo_star_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "ftwo_star_post": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 3 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 3 } }, + "rank": 8 } } }, + "ftwo_star": { "ftwo_star_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "ftwo_star_ensures": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 4 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 4 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 2, "valid": 2, - "rank": 3 } } }, + "rank": 4 } } }, "fvpositive": { "fvpositive_assert_OK": { "alt-ergo": { "total": 1, "valid": 1, @@ -67,15 +70,16 @@ { "total": 1, "valid": 1, "rank": 2 } }, - "fvpositive_assign": { "qed": { "total": 1, + "fvpositive_assigns": { "qed": { "total": 1, "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "fvpositive_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "fvpositive_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, "rank": 2 }, diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/byref.0.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/byref.0.res.oracle index 7cd3266acecc64c7cca9ffe807c6fe06c3bca170..bfdcf78517ee881e901469d2e70c43bc0d3b37db 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/byref.0.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/byref.0.res.oracle @@ -4,18 +4,18 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 12 goals scheduled -[wp] [Qed] Goal typed_f_post : Valid -[wp] [Qed] Goal typed_f_assign : Valid -[wp] [Qed] Goal typed_formal_post : Valid -[wp] [Qed] Goal typed_formal_call_f_pre : Valid -[wp] [Qed] Goal typed_global_post : Valid -[wp] [Qed] Goal typed_global_call_f_pre : Valid -[wp] [Qed] Goal typed_local_post : Valid -[wp] [Qed] Goal typed_local_call_f_pre : Valid -[wp] [Qed] Goal typed_pointer_post : Valid -[wp] [Qed] Goal typed_pointer_call_f_pre : Valid -[wp] [Qed] Goal typed_wrong_without_ref_post : Valid -[wp] [Alt-Ergo] Goal typed_wrong_without_ref_call_f_pre : Unknown +[wp] [Qed] Goal typed_f_ensures : Valid +[wp] [Qed] Goal typed_f_assigns : Valid +[wp] [Qed] Goal typed_formal_ensures : Valid +[wp] [Qed] Goal typed_formal_call_f_requires : Valid +[wp] [Qed] Goal typed_global_ensures : Valid +[wp] [Qed] Goal typed_global_call_f_requires : Valid +[wp] [Qed] Goal typed_local_ensures : Valid +[wp] [Qed] Goal typed_local_call_f_requires : Valid +[wp] [Qed] Goal typed_pointer_ensures : Valid +[wp] [Qed] Goal typed_pointer_call_f_requires : Valid +[wp] [Qed] Goal typed_wrong_without_ref_ensures : Valid +[wp] [Alt-Ergo] Goal typed_wrong_without_ref_call_f_requires : Unknown [wp] Proved goals: 11 / 12 Qed: 11 Alt-Ergo: 0 (unknown: 1) diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/byref.1.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/byref.1.res.oracle index d324a299b64cf870ec61e6691c6ca8100df09f67..f6c7d899a1f37a9561682e1ec34d18b4ef2cbde9 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/byref.1.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/byref.1.res.oracle @@ -4,18 +4,18 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 12 goals scheduled -[wp] [Qed] Goal typed_ref_f_post : Valid -[wp] [Qed] Goal typed_ref_f_assign : Valid -[wp] [Qed] Goal typed_ref_formal_post : Valid -[wp] [Qed] Goal typed_ref_formal_call_f_pre : Valid -[wp] [Qed] Goal typed_ref_global_post : Valid -[wp] [Qed] Goal typed_ref_global_call_f_pre : Valid -[wp] [Qed] Goal typed_ref_local_post : Valid -[wp] [Qed] Goal typed_ref_local_call_f_pre : Valid -[wp] [Qed] Goal typed_ref_pointer_post : Valid -[wp] [Qed] Goal typed_ref_pointer_call_f_pre : Valid -[wp] [Qed] Goal typed_ref_wrong_without_ref_post : Valid -[wp] [Qed] Goal typed_ref_wrong_without_ref_call_f_pre : Valid +[wp] [Qed] Goal typed_ref_f_ensures : Valid +[wp] [Qed] Goal typed_ref_f_assigns : Valid +[wp] [Qed] Goal typed_ref_formal_ensures : Valid +[wp] [Qed] Goal typed_ref_formal_call_f_requires : Valid +[wp] [Qed] Goal typed_ref_global_ensures : Valid +[wp] [Qed] Goal typed_ref_global_call_f_requires : Valid +[wp] [Qed] Goal typed_ref_local_ensures : Valid +[wp] [Qed] Goal typed_ref_local_call_f_requires : Valid +[wp] [Qed] Goal typed_ref_pointer_ensures : Valid +[wp] [Qed] Goal typed_ref_pointer_call_f_requires : Valid +[wp] [Qed] Goal typed_ref_wrong_without_ref_ensures : Valid +[wp] [Qed] Goal typed_ref_wrong_without_ref_call_f_requires : Valid [wp] Proved goals: 12 / 12 Qed: 12 [wp] Report 'tests/wp_hoare/byref.i.1.report.json' diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var.res.oracle index 1e532b7bfe9437d223ff5d0716ee81b6ad65add2..9f3c90d052e8a448ea99c80edf454c9ae947581f 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var.res.oracle @@ -4,84 +4,84 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 78 goals scheduled -[wp] [Qed] Goal typed_ref_array_in_struct_param_post_Pload2 : Valid -[wp] [Qed] Goal typed_ref_array_in_struct_param_assign : Valid -[wp] [Qed] Goal typed_ref_call_no_ref_bd_post_Mem_n5_nr6 : Valid -[wp] [Qed] Goal typed_ref_call_no_ref_bd_assign_exit_part1 : Valid -[wp] [Qed] Goal typed_ref_call_no_ref_bd_assign_exit_part2 : Valid -[wp] [Qed] Goal typed_ref_call_no_ref_bd_assign_exit_part3 : Valid -[wp] [Qed] Goal typed_ref_call_no_ref_bd_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_ref_call_no_ref_bd_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_ref_call_no_ref_bd_assign_normal_part3 : Valid -[wp] [Qed] Goal typed_ref_call_no_ref_bd_assign_normal_part4 : Valid -[wp] [Qed] Goal typed_ref_call_no_ref_bd_assign_normal_part5 : Valid -[wp] [Qed] Goal typed_ref_call_ref_bd_post_Ref_r2 : Valid -[wp] [Qed] Goal typed_ref_call_ref_bd_assign_exit : Valid -[wp] [Qed] Goal typed_ref_call_ref_bd_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_ref_call_ref_bd_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_ref_call_ref_bd2_post_Mem_n2 : Valid -[wp] [Qed] Goal typed_ref_call_ref_bd2_assign_exit_part1 : Valid -[wp] [Qed] Goal typed_ref_call_ref_bd2_assign_exit_part2 : Valid -[wp] [Qed] Goal typed_ref_call_ref_bd2_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_ref_call_ref_bd2_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_ref_call_ref_bd2_assign_normal_part3 : Valid -[wp] [Qed] Goal typed_ref_call_ref_bd2_assign_normal_part4 : Valid -[wp] [Qed] Goal typed_ref_call_ref_bd2_assign_normal_part5 : Valid -[wp] [Qed] Goal typed_ref_call_ref_ctr_post_Ref_r1 : Valid -[wp] [Qed] Goal typed_ref_call_ref_ctr_assign_exit : Valid -[wp] [Qed] Goal typed_ref_call_ref_ctr_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_ref_call_ref_ctr_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_ref_call_ref_ctr2_post_Mem_n1 : Valid -[wp] [Qed] Goal typed_ref_call_ref_ctr2_assign_exit_part1 : Valid -[wp] [Qed] Goal typed_ref_call_ref_ctr2_assign_exit_part2 : Valid -[wp] [Qed] Goal typed_ref_call_ref_ctr2_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_ref_call_ref_ctr2_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_ref_call_ref_ctr2_assign_normal_part3 : Valid -[wp] [Qed] Goal typed_ref_call_ref_ctr2_assign_normal_part4 : Valid -[wp] [Qed] Goal typed_ref_call_ref_ctr2_assign_normal_part5 : Valid -[wp] [Qed] Goal typed_ref_call_ref_ctr_nr_post_R_R_R : Valid -[wp] [Qed] Goal typed_ref_call_ref_ctr_nr_post_R_R_R_2 : Valid -[wp] [Qed] Goal typed_ref_call_ref_ctr_nr_assign_exit_part1 : Valid -[wp] [Qed] Goal typed_ref_call_ref_ctr_nr_assign_exit_part2 : Valid -[wp] [Qed] Goal typed_ref_call_ref_ctr_nr_assign_exit_part3 : Valid -[wp] [Qed] Goal typed_ref_call_ref_ctr_nr_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_ref_call_ref_ctr_nr_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_ref_call_ref_ctr_nr_assign_normal_part3 : Valid -[wp] [Qed] Goal typed_ref_call_ref_ctr_nr_assign_normal_part4 : Valid -[wp] [Qed] Goal typed_ref_call_ref_ctr_nr_call_ref_ctr_nr_pre : Valid -[wp] [Qed] Goal typed_ref_call_ref_ctr_nstars_post : Valid -[wp] [Qed] Goal typed_ref_call_ref_ctr_nstars_assign_exit_part1 : Valid -[wp] [Qed] Goal typed_ref_call_ref_ctr_nstars_assign_exit_part2 : Valid -[wp] [Qed] Goal typed_ref_call_ref_ctr_nstars_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_ref_call_ref_ctr_nstars_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_ref_call_ref_ctr_nstars_assign_normal_part3 : Valid -[wp] [Qed] Goal typed_ref_call_ref_valid_post_R7_N4 : Valid -[wp] [Qed] Goal typed_ref_call_ref_valid_assign_exit_part1 : Valid -[wp] [Qed] Goal typed_ref_call_ref_valid_assign_exit_part2 : Valid -[wp] [Qed] Goal typed_ref_call_ref_valid_assign_exit_part3 : Valid -[wp] [Qed] Goal typed_ref_call_ref_valid_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_ref_call_ref_valid_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_ref_call_ref_valid_assign_normal_part3 : Valid -[wp] [Qed] Goal typed_ref_call_ref_valid_assign_normal_part4 : Valid -[wp] [Qed] Goal typed_ref_call_ref_valid_assign_normal_part5 : Valid -[wp] [Qed] Goal typed_ref_call_ref_valid_call_ref_valid_pre : Valid -[wp] [Qed] Goal typed_ref_call_ref_valid_call_ref_valid_pre_2 : Valid -[wp] [Qed] Goal typed_ref_call_two_ref_post : Valid -[wp] [Qed] Goal typed_ref_call_two_ref_assign_exit_part1 : Valid -[wp] [Qed] Goal typed_ref_call_two_ref_assign_exit_part2 : Valid -[wp] [Qed] Goal typed_ref_call_two_ref_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_ref_call_two_ref_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_ref_call_two_ref_assign_normal_part3 : Valid -[wp] [Qed] Goal typed_ref_call_two_ref_assign_normal_part4 : Valid -[wp] [Qed] Goal typed_ref_g_post : Valid -[wp] [Qed] Goal typed_ref_g_assign_exit : Valid -[wp] [Qed] Goal typed_ref_g_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_ref_g_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_ref_no_ref_bd_post : Valid -[wp] [Qed] Goal typed_ref_no_ref_bd_assign_part1 : Valid -[wp] [Qed] Goal typed_ref_no_ref_bd_assign_part2 : Valid -[wp] [Qed] Goal typed_ref_ref_bd_post : Valid -[wp] [Qed] Goal typed_ref_ref_bd_assign : Valid +[wp] [Qed] Goal typed_ref_array_in_struct_param_ensures_Pload2 : Valid +[wp] [Qed] Goal typed_ref_array_in_struct_param_assigns : Valid +[wp] [Qed] Goal typed_ref_call_no_ref_bd_ensures_Mem_n5_nr6 : Valid +[wp] [Qed] Goal typed_ref_call_no_ref_bd_assigns_exit_part1 : Valid +[wp] [Qed] Goal typed_ref_call_no_ref_bd_assigns_exit_part2 : Valid +[wp] [Qed] Goal typed_ref_call_no_ref_bd_assigns_exit_part3 : Valid +[wp] [Qed] Goal typed_ref_call_no_ref_bd_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_ref_call_no_ref_bd_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_ref_call_no_ref_bd_assigns_normal_part3 : Valid +[wp] [Qed] Goal typed_ref_call_no_ref_bd_assigns_normal_part4 : Valid +[wp] [Qed] Goal typed_ref_call_no_ref_bd_assigns_normal_part5 : Valid +[wp] [Qed] Goal typed_ref_call_ref_bd_ensures_Ref_r2 : Valid +[wp] [Qed] Goal typed_ref_call_ref_bd_assigns_exit : Valid +[wp] [Qed] Goal typed_ref_call_ref_bd_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_ref_call_ref_bd_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_ref_call_ref_bd2_ensures_Mem_n2 : Valid +[wp] [Qed] Goal typed_ref_call_ref_bd2_assigns_exit_part1 : Valid +[wp] [Qed] Goal typed_ref_call_ref_bd2_assigns_exit_part2 : Valid +[wp] [Qed] Goal typed_ref_call_ref_bd2_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_ref_call_ref_bd2_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_ref_call_ref_bd2_assigns_normal_part3 : Valid +[wp] [Qed] Goal typed_ref_call_ref_bd2_assigns_normal_part4 : Valid +[wp] [Qed] Goal typed_ref_call_ref_bd2_assigns_normal_part5 : Valid +[wp] [Qed] Goal typed_ref_call_ref_ctr_ensures_Ref_r1 : Valid +[wp] [Qed] Goal typed_ref_call_ref_ctr_assigns_exit : Valid +[wp] [Qed] Goal typed_ref_call_ref_ctr_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_ref_call_ref_ctr_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_ref_call_ref_ctr2_ensures_Mem_n1 : Valid +[wp] [Qed] Goal typed_ref_call_ref_ctr2_assigns_exit_part1 : Valid +[wp] [Qed] Goal typed_ref_call_ref_ctr2_assigns_exit_part2 : Valid +[wp] [Qed] Goal typed_ref_call_ref_ctr2_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_ref_call_ref_ctr2_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_ref_call_ref_ctr2_assigns_normal_part3 : Valid +[wp] [Qed] Goal typed_ref_call_ref_ctr2_assigns_normal_part4 : Valid +[wp] [Qed] Goal typed_ref_call_ref_ctr2_assigns_normal_part5 : Valid +[wp] [Qed] Goal typed_ref_call_ref_ctr_nr_ensures_R_R_R : Valid +[wp] [Qed] Goal typed_ref_call_ref_ctr_nr_ensures_R_R_R_2 : Valid +[wp] [Qed] Goal typed_ref_call_ref_ctr_nr_assigns_exit_part1 : Valid +[wp] [Qed] Goal typed_ref_call_ref_ctr_nr_assigns_exit_part2 : Valid +[wp] [Qed] Goal typed_ref_call_ref_ctr_nr_assigns_exit_part3 : Valid +[wp] [Qed] Goal typed_ref_call_ref_ctr_nr_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_ref_call_ref_ctr_nr_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_ref_call_ref_ctr_nr_assigns_normal_part3 : Valid +[wp] [Qed] Goal typed_ref_call_ref_ctr_nr_assigns_normal_part4 : Valid +[wp] [Qed] Goal typed_ref_call_ref_ctr_nr_call_ref_ctr_nr_requires : Valid +[wp] [Qed] Goal typed_ref_call_ref_ctr_nstars_ensures : Valid +[wp] [Qed] Goal typed_ref_call_ref_ctr_nstars_assigns_exit_part1 : Valid +[wp] [Qed] Goal typed_ref_call_ref_ctr_nstars_assigns_exit_part2 : Valid +[wp] [Qed] Goal typed_ref_call_ref_ctr_nstars_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_ref_call_ref_ctr_nstars_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_ref_call_ref_ctr_nstars_assigns_normal_part3 : Valid +[wp] [Qed] Goal typed_ref_call_ref_valid_ensures_R7_N4 : Valid +[wp] [Qed] Goal typed_ref_call_ref_valid_assigns_exit_part1 : Valid +[wp] [Qed] Goal typed_ref_call_ref_valid_assigns_exit_part2 : Valid +[wp] [Qed] Goal typed_ref_call_ref_valid_assigns_exit_part3 : Valid +[wp] [Qed] Goal typed_ref_call_ref_valid_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_ref_call_ref_valid_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_ref_call_ref_valid_assigns_normal_part3 : Valid +[wp] [Qed] Goal typed_ref_call_ref_valid_assigns_normal_part4 : Valid +[wp] [Qed] Goal typed_ref_call_ref_valid_assigns_normal_part5 : Valid +[wp] [Qed] Goal typed_ref_call_ref_valid_call_ref_valid_requires : Valid +[wp] [Qed] Goal typed_ref_call_ref_valid_call_ref_valid_requires : Valid +[wp] [Qed] Goal typed_ref_call_two_ref_ensures : Valid +[wp] [Qed] Goal typed_ref_call_two_ref_assigns_exit_part1 : Valid +[wp] [Qed] Goal typed_ref_call_two_ref_assigns_exit_part2 : Valid +[wp] [Qed] Goal typed_ref_call_two_ref_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_ref_call_two_ref_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_ref_call_two_ref_assigns_normal_part3 : Valid +[wp] [Qed] Goal typed_ref_call_two_ref_assigns_normal_part4 : Valid +[wp] [Qed] Goal typed_ref_g_ensures : Valid +[wp] [Qed] Goal typed_ref_g_assigns_exit : Valid +[wp] [Qed] Goal typed_ref_g_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_ref_g_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_ref_no_ref_bd_ensures : Valid +[wp] [Qed] Goal typed_ref_no_ref_bd_assigns_part1 : Valid +[wp] [Qed] Goal typed_ref_no_ref_bd_assigns_part2 : Valid +[wp] [Qed] Goal typed_ref_ref_bd_ensures : Valid +[wp] [Qed] Goal typed_ref_ref_bd_assigns : Valid [wp] Proved goals: 78 / 78 Qed: 78 [wp] Report 'tests/wp_hoare/dispatch_var.i.0.report.json' diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var2.0.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var2.0.res.oracle index f777eb27ac129e93f851517de4b9bb6bbbf5de7d..d0dfe75fac52c9efcdae60e06be6da8e14e485d0 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var2.0.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var2.0.res.oracle @@ -4,40 +4,40 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 34 goals scheduled -[wp] [Qed] Goal typed_ref_call_global_post : Valid -[wp] [Qed] Goal typed_ref_call_global_assign_exit : Valid -[wp] [Qed] Goal typed_ref_call_global_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_ref_call_global_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_ref_call_global_call_reset_pre : Valid -[wp] [Qed] Goal typed_ref_call_global_call_load_pre : Valid -[wp] [Qed] Goal typed_ref_call_local_post : Valid -[wp] [Qed] Goal typed_ref_call_local_assign_exit_part1 : Valid -[wp] [Qed] Goal typed_ref_call_local_assign_exit_part2 : Valid -[wp] [Qed] Goal typed_ref_call_local_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_ref_call_local_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_ref_call_local_assign_normal_part3 : Valid -[wp] [Qed] Goal typed_ref_call_local_call_reset_pre : Valid -[wp] [Qed] Goal typed_ref_call_local_call_load_pre : Valid -[wp] [Qed] Goal typed_ref_call_param_post : Valid -[wp] [Qed] Goal typed_ref_call_param_assign_exit_part1 : Valid -[wp] [Qed] Goal typed_ref_call_param_assign_exit_part2 : Valid -[wp] [Qed] Goal typed_ref_call_param_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_ref_call_param_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_ref_call_param_assign_normal_part3 : Valid -[wp] [Qed] Goal typed_ref_call_param_call_reset_pre : Valid -[wp] [Qed] Goal typed_ref_call_param_call_load_pre : Valid -[wp] [Qed] Goal typed_ref_call_param_ref_post : Valid -[wp] [Qed] Goal typed_ref_call_param_ref_assign_exit : Valid -[wp] [Qed] Goal typed_ref_call_param_ref_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_ref_call_param_ref_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_ref_call_param_ref_call_reset_pre : Valid -[wp] [Qed] Goal typed_ref_call_param_ref_call_load_pre : Valid -[wp] [Qed] Goal typed_ref_incr_post : Valid -[wp] [Qed] Goal typed_ref_incr_assign : Valid -[wp] [Qed] Goal typed_ref_load_post : Valid -[wp] [Qed] Goal typed_ref_load_assign : Valid -[wp] [Qed] Goal typed_ref_reset_post : Valid -[wp] [Qed] Goal typed_ref_reset_assign : Valid +[wp] [Qed] Goal typed_ref_call_global_ensures : Valid +[wp] [Qed] Goal typed_ref_call_global_assigns_exit : Valid +[wp] [Qed] Goal typed_ref_call_global_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_ref_call_global_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_ref_call_global_call_reset_requires : Valid +[wp] [Qed] Goal typed_ref_call_global_call_load_requires : Valid +[wp] [Qed] Goal typed_ref_call_local_ensures : Valid +[wp] [Qed] Goal typed_ref_call_local_assigns_exit_part1 : Valid +[wp] [Qed] Goal typed_ref_call_local_assigns_exit_part2 : Valid +[wp] [Qed] Goal typed_ref_call_local_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_ref_call_local_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_ref_call_local_assigns_normal_part3 : Valid +[wp] [Qed] Goal typed_ref_call_local_call_reset_requires : Valid +[wp] [Qed] Goal typed_ref_call_local_call_load_requires : Valid +[wp] [Qed] Goal typed_ref_call_param_ensures : Valid +[wp] [Qed] Goal typed_ref_call_param_assigns_exit_part1 : Valid +[wp] [Qed] Goal typed_ref_call_param_assigns_exit_part2 : Valid +[wp] [Qed] Goal typed_ref_call_param_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_ref_call_param_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_ref_call_param_assigns_normal_part3 : Valid +[wp] [Qed] Goal typed_ref_call_param_call_reset_requires : Valid +[wp] [Qed] Goal typed_ref_call_param_call_load_requires : Valid +[wp] [Qed] Goal typed_ref_call_param_ref_ensures : Valid +[wp] [Qed] Goal typed_ref_call_param_ref_assigns_exit : Valid +[wp] [Qed] Goal typed_ref_call_param_ref_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_ref_call_param_ref_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_ref_call_param_ref_call_reset_requires : Valid +[wp] [Qed] Goal typed_ref_call_param_ref_call_load_requires : Valid +[wp] [Qed] Goal typed_ref_incr_ensures : Valid +[wp] [Qed] Goal typed_ref_incr_assigns : Valid +[wp] [Qed] Goal typed_ref_load_ensures : Valid +[wp] [Qed] Goal typed_ref_load_assigns : Valid +[wp] [Qed] Goal typed_ref_reset_ensures : Valid +[wp] [Qed] Goal typed_ref_reset_assigns : Valid [wp] Proved goals: 34 / 34 Qed: 34 [wp] Report 'tests/wp_hoare/dispatch_var2.i.0.report.json' diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var2.1.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var2.1.res.oracle index d388c3c99107c31cbfd7fec2c111e21e28d144ca..a161e9ffe1ac8e3a7b642b9b709488ac42de314d 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var2.1.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var2.1.res.oracle @@ -4,40 +4,40 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 34 goals scheduled -[wp] [Qed] Goal typed_ref_call_global_post : Valid -[wp] [Qed] Goal typed_ref_call_global_assign_exit : Valid -[wp] [Qed] Goal typed_ref_call_global_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_ref_call_global_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_ref_call_global_call_reset_pre : Valid -[wp] [Qed] Goal typed_ref_call_global_call_load_pre : Valid -[wp] [Qed] Goal typed_ref_call_local_post : Valid -[wp] [Qed] Goal typed_ref_call_local_assign_exit_part1 : Valid -[wp] [Qed] Goal typed_ref_call_local_assign_exit_part2 : Valid -[wp] [Qed] Goal typed_ref_call_local_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_ref_call_local_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_ref_call_local_assign_normal_part3 : Valid -[wp] [Qed] Goal typed_ref_call_local_call_reset_pre : Valid -[wp] [Qed] Goal typed_ref_call_local_call_load_pre : Valid -[wp] [Qed] Goal typed_ref_call_param_post : Valid -[wp] [Qed] Goal typed_ref_call_param_assign_exit_part1 : Valid -[wp] [Qed] Goal typed_ref_call_param_assign_exit_part2 : Valid -[wp] [Qed] Goal typed_ref_call_param_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_ref_call_param_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_ref_call_param_assign_normal_part3 : Valid -[wp] [Qed] Goal typed_ref_call_param_call_reset_pre : Valid -[wp] [Qed] Goal typed_ref_call_param_call_load_pre : Valid -[wp] [Qed] Goal typed_ref_call_param_ref_post : Valid -[wp] [Qed] Goal typed_ref_call_param_ref_assign_exit : Valid -[wp] [Qed] Goal typed_ref_call_param_ref_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_ref_call_param_ref_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_ref_call_param_ref_call_reset_pre : Valid -[wp] [Qed] Goal typed_ref_call_param_ref_call_load_pre : Valid -[wp] [Qed] Goal typed_ref_incr_post : Valid -[wp] [Qed] Goal typed_ref_incr_assign : Valid -[wp] [Qed] Goal typed_ref_load_post : Valid -[wp] [Qed] Goal typed_ref_load_assign : Valid -[wp] [Qed] Goal typed_ref_reset_post : Valid -[wp] [Qed] Goal typed_ref_reset_assign : Valid +[wp] [Qed] Goal typed_ref_call_global_ensures : Valid +[wp] [Qed] Goal typed_ref_call_global_assigns_exit : Valid +[wp] [Qed] Goal typed_ref_call_global_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_ref_call_global_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_ref_call_global_call_reset_requires : Valid +[wp] [Qed] Goal typed_ref_call_global_call_load_requires : Valid +[wp] [Qed] Goal typed_ref_call_local_ensures : Valid +[wp] [Qed] Goal typed_ref_call_local_assigns_exit_part1 : Valid +[wp] [Qed] Goal typed_ref_call_local_assigns_exit_part2 : Valid +[wp] [Qed] Goal typed_ref_call_local_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_ref_call_local_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_ref_call_local_assigns_normal_part3 : Valid +[wp] [Qed] Goal typed_ref_call_local_call_reset_requires : Valid +[wp] [Qed] Goal typed_ref_call_local_call_load_requires : Valid +[wp] [Qed] Goal typed_ref_call_param_ensures : Valid +[wp] [Qed] Goal typed_ref_call_param_assigns_exit_part1 : Valid +[wp] [Qed] Goal typed_ref_call_param_assigns_exit_part2 : Valid +[wp] [Qed] Goal typed_ref_call_param_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_ref_call_param_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_ref_call_param_assigns_normal_part3 : Valid +[wp] [Qed] Goal typed_ref_call_param_call_reset_requires : Valid +[wp] [Qed] Goal typed_ref_call_param_call_load_requires : Valid +[wp] [Qed] Goal typed_ref_call_param_ref_ensures : Valid +[wp] [Qed] Goal typed_ref_call_param_ref_assigns_exit : Valid +[wp] [Qed] Goal typed_ref_call_param_ref_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_ref_call_param_ref_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_ref_call_param_ref_call_reset_requires : Valid +[wp] [Qed] Goal typed_ref_call_param_ref_call_load_requires : Valid +[wp] [Qed] Goal typed_ref_incr_ensures : Valid +[wp] [Qed] Goal typed_ref_incr_assigns : Valid +[wp] [Qed] Goal typed_ref_load_ensures : Valid +[wp] [Qed] Goal typed_ref_load_assigns : Valid +[wp] [Qed] Goal typed_ref_reset_ensures : Valid +[wp] [Qed] Goal typed_ref_reset_assigns : Valid [wp] Proved goals: 34 / 34 Qed: 34 [wp] Report 'tests/wp_hoare/dispatch_var2.i.1.report.json' diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/isHoare.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/isHoare.res.oracle index f4ee4d53421d203dc19631f8b4c574d829c5da19..9a06ba323da0f3b3a58310313fea680ea1ea3bcd 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/isHoare.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/isHoare.res.oracle @@ -4,7 +4,7 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled -[wp] [Qed] Goal typed_ref_cmp_invalid_addr_as_int_post_ok : Valid +[wp] [Qed] Goal typed_ref_cmp_invalid_addr_as_int_ensures_ok : Valid [wp] Proved goals: 1 / 1 Qed: 1 [wp] Report 'tests/wp_hoare/isHoare.i.0.report.json' diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/logicarr.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/logicarr.res.oracle index 0e64daa2ac2a55d7310daf78bff3e2d73a5df040..47e4dd7697ad9feb12aac921891fdf9f55510036 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/logicarr.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/logicarr.res.oracle @@ -4,9 +4,9 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 3 goals scheduled -[wp] [Alt-Ergo] Goal typed_job_post_PTR : Valid -[wp] [Alt-Ergo] Goal typed_job_post_ARR : Valid -[wp] [Alt-Ergo] Goal typed_job_post_DUM : Valid +[wp] [Alt-Ergo] Goal typed_job_ensures_PTR : Valid +[wp] [Alt-Ergo] Goal typed_job_ensures_ARR : Valid +[wp] [Alt-Ergo] Goal typed_job_ensures_DUM : Valid [wp] Proved goals: 3 / 3 Qed: 0 Alt-Ergo: 3 diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/logicref.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/logicref.res.oracle index 5f5fa6ead779b5faa9fa7f2b37a9fd75f2d61308..f2a287c6cab427d1267d03d387c447b8b77e2a90 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/logicref.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/logicref.res.oracle @@ -4,17 +4,17 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 5 goals scheduled -[wp] [Qed] Goal typed_ref_fvrange_n_post : Valid +[wp] [Qed] Goal typed_ref_fvrange_n_ensures : Valid [wp] [Alt-Ergo] Goal typed_ref_fvrange_n_assert : Valid -[wp] [Qed] Goal typed_ref_fvrange_n_assign : Valid -[wp] [Qed] Goal typed_ref_gcd_post : Valid -[wp] [Qed] Goal typed_ref_gcd_assign : Valid +[wp] [Qed] Goal typed_ref_fvrange_n_assigns : Valid +[wp] [Qed] Goal typed_ref_gcd_ensures : Valid +[wp] [Qed] Goal typed_ref_gcd_assigns : Valid [wp] Proved goals: 5 / 5 Qed: 4 Alt-Ergo: 1 [wp] Report 'tests/wp_hoare/logicref.i.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -fvrange_n 2 1 (88..112) 3 100% +fvrange_n 2 1 (96..120) 3 100% gcd 2 - 2 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/logicref_simple.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/logicref_simple.res.oracle index 8955595fa0c36e6103c862b053d39934e2ab00bc..8233499c143b401b5d27b82a69923b76ad01c976 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/logicref_simple.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/logicref_simple.res.oracle @@ -4,15 +4,15 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 9 goals scheduled -[wp] [Alt-Ergo] Goal typed_ref_fsimple_post : Valid -[wp] [Qed] Goal typed_ref_fsimple_assign : Valid -[wp] [Alt-Ergo] Goal typed_ref_fsimple_array_post : Valid -[wp] [Qed] Goal typed_ref_fsimple_array_assign : Valid -[wp] [Alt-Ergo] Goal typed_ref_ftwo_star_post : Valid -[wp] [Qed] Goal typed_ref_ftwo_star_assign : Valid -[wp] [Qed] Goal typed_ref_fvpositive_post : Valid +[wp] [Alt-Ergo] Goal typed_ref_fsimple_ensures : Valid +[wp] [Qed] Goal typed_ref_fsimple_assigns : Valid +[wp] [Alt-Ergo] Goal typed_ref_fsimple_array_ensures : Valid +[wp] [Qed] Goal typed_ref_fsimple_array_assigns : Valid +[wp] [Alt-Ergo] Goal typed_ref_ftwo_star_ensures : Valid +[wp] [Qed] Goal typed_ref_ftwo_star_assigns : Valid +[wp] [Qed] Goal typed_ref_fvpositive_ensures : Valid [wp] [Alt-Ergo] Goal typed_ref_fvpositive_assert_OK : Valid -[wp] [Qed] Goal typed_ref_fvpositive_assign : Valid +[wp] [Qed] Goal typed_ref_fvpositive_assigns : Valid [wp] Proved goals: 9 / 9 Qed: 5 Alt-Ergo: 4 @@ -20,7 +20,7 @@ ------------------------------------------------------------- Functions WP Alt-Ergo Total Success fsimple 1 1 (8..20) 2 100% -fsimple_array 1 1 (24..36) 2 100% -ftwo_star 1 1 (8..20) 2 100% +fsimple_array 1 1 (28..40) 2 100% +ftwo_star 1 1 (12..24) 2 100% fvpositive 2 1 (4..16) 3 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference.res.oracle index d94ce8d9aa90fa1378fcb30e3345a47651344896..c33ec4bf50b7ab3be30245accec6b646e6b73cf1 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference.res.oracle @@ -4,29 +4,29 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 23 goals scheduled -[wp] [Qed] Goal typed_ref_call_f2_post : Valid -[wp] [Qed] Goal typed_ref_call_f2_assign_exit_part1 : Valid -[wp] [Qed] Goal typed_ref_call_f2_assign_exit_part2 : Valid -[wp] [Alt-Ergo] Goal typed_ref_call_f2_assign_exit_part3 : Unknown -[wp] [Qed] Goal typed_ref_call_f2_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_ref_call_f2_assign_normal_part2 : Valid -[wp] [Alt-Ergo] Goal typed_ref_call_f2_assign_normal_part3 : Unknown -[wp] [Qed] Goal typed_ref_call_f2_assign_normal_part4 : Valid -[wp] [Qed] Goal typed_ref_call_f2_call_f2_pre : Valid -[wp] [Qed] Goal typed_ref_call_global_post : Valid -[wp] [Qed] Goal typed_ref_call_global_assign_exit : Valid -[wp] [Qed] Goal typed_ref_call_global_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_ref_call_global_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_ref_call_global_call_f_pre : Valid -[wp] [Qed] Goal typed_ref_g_post : Valid -[wp] [Qed] Goal typed_ref_g_assign_exit_part1 : Valid -[wp] [Qed] Goal typed_ref_g_assign_exit_part2 : Valid -[wp] [Qed] Goal typed_ref_g_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_ref_g_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_ref_g_assign_normal_part3 : Valid -[wp] [Qed] Goal typed_ref_g_call_f_pre : Valid -[wp] [Qed] Goal typed_ref_write_post : Valid -[wp] [Qed] Goal typed_ref_write_assign : Valid +[wp] [Qed] Goal typed_ref_call_f2_ensures : Valid +[wp] [Qed] Goal typed_ref_call_f2_assigns_exit_part1 : Valid +[wp] [Qed] Goal typed_ref_call_f2_assigns_exit_part2 : Valid +[wp] [Alt-Ergo] Goal typed_ref_call_f2_assigns_exit_part3 : Unknown +[wp] [Qed] Goal typed_ref_call_f2_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_ref_call_f2_assigns_normal_part2 : Valid +[wp] [Alt-Ergo] Goal typed_ref_call_f2_assigns_normal_part3 : Unknown +[wp] [Qed] Goal typed_ref_call_f2_assigns_normal_part4 : Valid +[wp] [Qed] Goal typed_ref_call_f2_call_f2_requires : Valid +[wp] [Qed] Goal typed_ref_call_global_ensures : Valid +[wp] [Qed] Goal typed_ref_call_global_assigns_exit : Valid +[wp] [Qed] Goal typed_ref_call_global_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_ref_call_global_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_ref_call_global_call_f_requires : Valid +[wp] [Qed] Goal typed_ref_g_ensures : Valid +[wp] [Qed] Goal typed_ref_g_assigns_exit_part1 : Valid +[wp] [Qed] Goal typed_ref_g_assigns_exit_part2 : Valid +[wp] [Qed] Goal typed_ref_g_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_ref_g_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_ref_g_assigns_normal_part3 : Valid +[wp] [Qed] Goal typed_ref_g_call_f_requires : Valid +[wp] [Qed] Goal typed_ref_write_ensures : Valid +[wp] [Qed] Goal typed_ref_write_assigns : Valid [wp] Proved goals: 21 / 23 Qed: 21 Alt-Ergo: 0 (unknown: 2) diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_and_struct.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_and_struct.res.oracle index 3726ef5b31be6035baae6da3fcebe61045f937f9..67424143d7c240bb97b18c1e09e9776d83c403c7 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_and_struct.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_and_struct.res.oracle @@ -4,38 +4,38 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 32 goals scheduled -[wp] [Qed] Goal typed_ref_call_array_in_struct_param_post_Pload2 : Valid -[wp] [Qed] Goal typed_ref_call_array_in_struct_param_post_Pload3 : Valid -[wp] [Qed] Goal typed_ref_call_array_in_struct_param_assign_exit : Valid -[wp] [Qed] Goal typed_ref_call_array_in_struct_param_assign_normal : Valid -[wp] [Qed] Goal typed_ref_call_array_in_struct_param_call_load_5_pre : Valid -[wp] [Alt-Ergo] Goal typed_ref_call_on_array_in_struct_global_post_Pload : Valid -[wp] [Qed] Goal typed_ref_call_on_array_in_struct_global_assign_exit : Valid -[wp] [Qed] Goal typed_ref_call_on_array_in_struct_global_assign_normal : Valid -[wp] [Qed] Goal typed_ref_call_on_array_in_struct_global_call_load_5_pre : Valid -[wp] [Qed] Goal typed_ref_call_reset_post : Valid -[wp] [Qed] Goal typed_ref_call_reset_assign_exit : Valid -[wp] [Qed] Goal typed_ref_call_reset_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_ref_call_reset_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_ref_call_reset_call_reset_pre : Valid -[wp] [Alt-Ergo] Goal typed_ref_call_reset_1_5_post_Presset_mat : Valid -[wp] [Qed] Goal typed_ref_call_reset_1_5_assign_exit : Valid -[wp] [Qed] Goal typed_ref_call_reset_1_5_assign_normal : Valid -[wp] [Qed] Goal typed_ref_call_reset_1_5_call_reset_1_5_pre : Valid -[wp] [Alt-Ergo] Goal typed_ref_call_reset_5_post_Preset_5 : Valid -[wp] [Qed] Goal typed_ref_call_reset_5_assign_exit : Valid -[wp] [Qed] Goal typed_ref_call_reset_5_assign_normal : Valid -[wp] [Qed] Goal typed_ref_call_reset_5_call_reset_5_pre : Valid -[wp] [Alt-Ergo] Goal typed_ref_call_reset_5_dim2_post_Presset_mat : Valid -[wp] [Qed] Goal typed_ref_call_reset_5_dim2_assign_exit : Valid -[wp] [Qed] Goal typed_ref_call_reset_5_dim2_assign_normal : Valid -[wp] [Qed] Goal typed_ref_call_reset_5_dim2_call_reset_5_pre : Valid -[wp] [Alt-Ergo] Goal typed_ref_call_reset_5_tps_post_Preset_5_tps : Valid -[wp] [Qed] Goal typed_ref_call_reset_5_tps_assign_exit : Valid -[wp] [Qed] Goal typed_ref_call_reset_5_tps_assign_normal : Valid -[wp] [Qed] Goal typed_ref_call_reset_5_tps_call_reset_5_pre : Valid -[wp] [Qed] Goal typed_ref_reset_post : Valid -[wp] [Qed] Goal typed_ref_reset_assign : Valid +[wp] [Qed] Goal typed_ref_call_array_in_struct_param_ensures_Pload2 : Valid +[wp] [Qed] Goal typed_ref_call_array_in_struct_param_ensures_Pload3 : Valid +[wp] [Qed] Goal typed_ref_call_array_in_struct_param_assigns_exit : Valid +[wp] [Qed] Goal typed_ref_call_array_in_struct_param_assigns_normal : Valid +[wp] [Qed] Goal typed_ref_call_array_in_struct_param_call_load_5_requires : Valid +[wp] [Alt-Ergo] Goal typed_ref_call_on_array_in_struct_global_ensures_Pload : Valid +[wp] [Qed] Goal typed_ref_call_on_array_in_struct_global_assigns_exit : Valid +[wp] [Qed] Goal typed_ref_call_on_array_in_struct_global_assigns_normal : Valid +[wp] [Qed] Goal typed_ref_call_on_array_in_struct_global_call_load_5_requires : Valid +[wp] [Qed] Goal typed_ref_call_reset_ensures : Valid +[wp] [Qed] Goal typed_ref_call_reset_assigns_exit : Valid +[wp] [Qed] Goal typed_ref_call_reset_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_ref_call_reset_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_ref_call_reset_call_reset_requires : Valid +[wp] [Alt-Ergo] Goal typed_ref_call_reset_1_5_ensures_Presset_mat : Valid +[wp] [Qed] Goal typed_ref_call_reset_1_5_assigns_exit : Valid +[wp] [Qed] Goal typed_ref_call_reset_1_5_assigns_normal : Valid +[wp] [Qed] Goal typed_ref_call_reset_1_5_call_reset_1_5_requires : Valid +[wp] [Alt-Ergo] Goal typed_ref_call_reset_5_ensures_Preset_5 : Valid +[wp] [Qed] Goal typed_ref_call_reset_5_assigns_exit : Valid +[wp] [Qed] Goal typed_ref_call_reset_5_assigns_normal : Valid +[wp] [Qed] Goal typed_ref_call_reset_5_call_reset_5_requires : Valid +[wp] [Alt-Ergo] Goal typed_ref_call_reset_5_dim2_ensures_Presset_mat : Valid +[wp] [Qed] Goal typed_ref_call_reset_5_dim2_assigns_exit : Valid +[wp] [Qed] Goal typed_ref_call_reset_5_dim2_assigns_normal : Valid +[wp] [Qed] Goal typed_ref_call_reset_5_dim2_call_reset_5_requires : Valid +[wp] [Alt-Ergo] Goal typed_ref_call_reset_5_tps_ensures_Preset_5_tps : Valid +[wp] [Qed] Goal typed_ref_call_reset_5_tps_assigns_exit : Valid +[wp] [Qed] Goal typed_ref_call_reset_5_tps_assigns_normal : Valid +[wp] [Qed] Goal typed_ref_call_reset_5_tps_call_reset_5_requires : Valid +[wp] [Qed] Goal typed_ref_reset_ensures : Valid +[wp] [Qed] Goal typed_ref_reset_assigns : Valid [wp] Proved goals: 32 / 32 Qed: 27 Alt-Ergo: 5 diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_array.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_array.res.oracle index 39470242b57424fd4870ac9069708ed7ee0c11f8..9b452f762f81e2e35b836d347646f75c95a9b113 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_array.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_array.res.oracle @@ -4,42 +4,42 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 36 goals scheduled -[wp] [Alt-Ergo] Goal typed_ref_add_1_5_post : Valid -[wp] [Qed] Goal typed_ref_add_1_5_assign_exit : Valid -[wp] [Qed] Goal typed_ref_add_1_5_assign_normal : Valid -[wp] [Qed] Goal typed_ref_add_1_5_call_add_5_pre : Valid -[wp] [Alt-Ergo] Goal typed_ref_calls_on_array_dim_1_post_Pload : Valid -[wp] [Alt-Ergo] Goal typed_ref_calls_on_array_dim_1_post_Preset : Valid -[wp] [Alt-Ergo] Goal typed_ref_calls_on_array_dim_1_post_Padd : Valid -[wp] [Qed] Goal typed_ref_calls_on_array_dim_1_assign_exit : Valid -[wp] [Qed] Goal typed_ref_calls_on_array_dim_1_assign_normal : Valid -[wp] [Qed] Goal typed_ref_calls_on_array_dim_1_call_load_5_pre : Valid -[wp] [Qed] Goal typed_ref_calls_on_array_dim_1_call_reset_5_pre : Valid -[wp] [Qed] Goal typed_ref_calls_on_array_dim_1_call_add_5_pre : Valid -[wp] [Alt-Ergo] Goal typed_ref_calls_on_array_dim_2_post_Pload : Valid -[wp] [Alt-Ergo] Goal typed_ref_calls_on_array_dim_2_post_Preset : Valid -[wp] [Alt-Ergo] Goal typed_ref_calls_on_array_dim_2_post_Padd : Valid -[wp] [Qed] Goal typed_ref_calls_on_array_dim_2_assign_exit : Valid -[wp] [Qed] Goal typed_ref_calls_on_array_dim_2_assign_normal : Valid -[wp] [Qed] Goal typed_ref_calls_on_array_dim_2_call_load_1_5_pre : Valid -[wp] [Qed] Goal typed_ref_calls_on_array_dim_2_call_reset_1_5_pre : Valid -[wp] [Qed] Goal typed_ref_calls_on_array_dim_2_call_add_1_5_pre : Valid -[wp] [Alt-Ergo] Goal typed_ref_calls_on_array_dim_2_to_1_post_Pload : Valid -[wp] [Alt-Ergo] Goal typed_ref_calls_on_array_dim_2_to_1_post_Preset : Valid -[wp] [Alt-Ergo] Goal typed_ref_calls_on_array_dim_2_to_1_post_Padd : Valid -[wp] [Qed] Goal typed_ref_calls_on_array_dim_2_to_1_assign_exit : Valid -[wp] [Qed] Goal typed_ref_calls_on_array_dim_2_to_1_assign_normal : Valid -[wp] [Qed] Goal typed_ref_calls_on_array_dim_2_to_1_call_load_5_pre : Valid -[wp] [Qed] Goal typed_ref_calls_on_array_dim_2_to_1_call_reset_5_pre : Valid -[wp] [Qed] Goal typed_ref_calls_on_array_dim_2_to_1_call_add_5_pre : Valid -[wp] [Alt-Ergo] Goal typed_ref_load_1_5_post : Valid -[wp] [Qed] Goal typed_ref_load_1_5_assign_exit : Valid -[wp] [Qed] Goal typed_ref_load_1_5_assign_normal : Valid -[wp] [Qed] Goal typed_ref_load_1_5_call_load_5_pre : Valid -[wp] [Alt-Ergo] Goal typed_ref_reset_1_5_post : Valid -[wp] [Qed] Goal typed_ref_reset_1_5_assign_exit : Valid -[wp] [Qed] Goal typed_ref_reset_1_5_assign_normal : Valid -[wp] [Qed] Goal typed_ref_reset_1_5_call_reset_5_pre : Valid +[wp] [Alt-Ergo] Goal typed_ref_add_1_5_ensures : Valid +[wp] [Qed] Goal typed_ref_add_1_5_assigns_exit : Valid +[wp] [Qed] Goal typed_ref_add_1_5_assigns_normal : Valid +[wp] [Qed] Goal typed_ref_add_1_5_call_add_5_requires : Valid +[wp] [Alt-Ergo] Goal typed_ref_calls_on_array_dim_1_ensures_Pload : Valid +[wp] [Alt-Ergo] Goal typed_ref_calls_on_array_dim_1_ensures_Preset : Valid +[wp] [Alt-Ergo] Goal typed_ref_calls_on_array_dim_1_ensures_Padd : Valid +[wp] [Qed] Goal typed_ref_calls_on_array_dim_1_assigns_exit : Valid +[wp] [Qed] Goal typed_ref_calls_on_array_dim_1_assigns_normal : Valid +[wp] [Qed] Goal typed_ref_calls_on_array_dim_1_call_load_5_requires : Valid +[wp] [Qed] Goal typed_ref_calls_on_array_dim_1_call_reset_5_requires : Valid +[wp] [Qed] Goal typed_ref_calls_on_array_dim_1_call_add_5_requires : Valid +[wp] [Alt-Ergo] Goal typed_ref_calls_on_array_dim_2_ensures_Pload : Valid +[wp] [Alt-Ergo] Goal typed_ref_calls_on_array_dim_2_ensures_Preset : Valid +[wp] [Alt-Ergo] Goal typed_ref_calls_on_array_dim_2_ensures_Padd : Valid +[wp] [Qed] Goal typed_ref_calls_on_array_dim_2_assigns_exit : Valid +[wp] [Qed] Goal typed_ref_calls_on_array_dim_2_assigns_normal : Valid +[wp] [Qed] Goal typed_ref_calls_on_array_dim_2_call_load_1_5_requires : Valid +[wp] [Qed] Goal typed_ref_calls_on_array_dim_2_call_reset_1_5_requires : Valid +[wp] [Qed] Goal typed_ref_calls_on_array_dim_2_call_add_1_5_requires : Valid +[wp] [Alt-Ergo] Goal typed_ref_calls_on_array_dim_2_to_1_ensures_Pload : Valid +[wp] [Alt-Ergo] Goal typed_ref_calls_on_array_dim_2_to_1_ensures_Preset : Valid +[wp] [Alt-Ergo] Goal typed_ref_calls_on_array_dim_2_to_1_ensures_Padd : Valid +[wp] [Qed] Goal typed_ref_calls_on_array_dim_2_to_1_assigns_exit : Valid +[wp] [Qed] Goal typed_ref_calls_on_array_dim_2_to_1_assigns_normal : Valid +[wp] [Qed] Goal typed_ref_calls_on_array_dim_2_to_1_call_load_5_requires : Valid +[wp] [Qed] Goal typed_ref_calls_on_array_dim_2_to_1_call_reset_5_requires : Valid +[wp] [Qed] Goal typed_ref_calls_on_array_dim_2_to_1_call_add_5_requires : Valid +[wp] [Alt-Ergo] Goal typed_ref_load_1_5_ensures : Valid +[wp] [Qed] Goal typed_ref_load_1_5_assigns_exit : Valid +[wp] [Qed] Goal typed_ref_load_1_5_assigns_normal : Valid +[wp] [Qed] Goal typed_ref_load_1_5_call_load_5_requires : Valid +[wp] [Alt-Ergo] Goal typed_ref_reset_1_5_ensures : Valid +[wp] [Qed] Goal typed_ref_reset_1_5_assigns_exit : Valid +[wp] [Qed] Goal typed_ref_reset_1_5_assigns_normal : Valid +[wp] [Qed] Goal typed_ref_reset_1_5_call_reset_5_requires : Valid [wp] Proved goals: 36 / 36 Qed: 24 Alt-Ergo: 12 diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_array_simple.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_array_simple.res.oracle index 8c86a8bb1b80125182c189f52444839a002ba361..bcc5f4a414b76a056d92bef7d68d196490e655cc 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_array_simple.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_array_simple.res.oracle @@ -4,9 +4,9 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 3 goals scheduled -[wp] [Qed] Goal typed_ref_call_f1_post : Valid -[wp] [Qed] Goal typed_ref_call_f2_post : Valid -[wp] [Qed] Goal typed_ref_call_f3_post : Valid +[wp] [Qed] Goal typed_ref_call_f1_ensures : Valid +[wp] [Qed] Goal typed_ref_call_f2_ensures : Valid +[wp] [Qed] Goal typed_ref_call_f3_ensures : Valid [wp] Proved goals: 3 / 3 Qed: 3 [wp] Report 'tests/wp_hoare/reference_array_simple.i.0.report.json' diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/refguards.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/refguards.res.oracle index 9de80150645392fb22ad29543132c435288683d7..07afbfc11d90ae4148f52336769ac7e05eea9240 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/refguards.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/refguards.res.oracle @@ -4,15 +4,15 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 9 goals scheduled -[wp] [Qed] Goal typed_ref_f_post : Valid -[wp] [Alt-Ergo] Goal typed_ref_g_post : Valid -[wp] [Qed] Goal typed_ref_h_post : Valid -[wp] [Qed] Goal typed_ref_s_post : Valid -[wp] [Qed] Goal typed_ref_s_post_2 : Valid -[wp] [Qed] Goal typed_ref_s_post_3 : Valid -[wp] [Qed] Goal typed_ref_s_post_4 : Valid -[wp] [Qed] Goal typed_ref_s_post_5 : Valid -[wp] [Alt-Ergo] Goal typed_ref_s_post_KO : Unknown +[wp] [Qed] Goal typed_ref_f_ensures : Valid +[wp] [Alt-Ergo] Goal typed_ref_g_ensures : Valid +[wp] [Qed] Goal typed_ref_h_ensures : Valid +[wp] [Qed] Goal typed_ref_s_ensures : Valid +[wp] [Qed] Goal typed_ref_s_ensures_2 : Valid +[wp] [Qed] Goal typed_ref_s_ensures_3 : Valid +[wp] [Qed] Goal typed_ref_s_ensures_4 : Valid +[wp] [Qed] Goal typed_ref_s_ensures_5 : Valid +[wp] [Alt-Ergo] Goal typed_ref_s_ensures_KO : Unknown [wp] Proved goals: 8 / 9 Qed: 7 Alt-Ergo: 1 (unknown: 1) @@ -20,7 +20,7 @@ ------------------------------------------------------------- Functions WP Alt-Ergo Total Success f 1 - 1 100% -g - 1 (8..20) 1 100% +g - 1 (12..24) 1 100% h 1 - 1 100% s 5 - 6 83.3% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_hoare/reference.i.0.report.json b/src/plugins/wp/tests/wp_hoare/reference.i.0.report.json index 231def588235a60e73a1cce5db0a4fc4fedeb3c4..ed8e2217b49af5a7d61dfad0b45457b1af1b44de 100644 --- a/src/plugins/wp/tests/wp_hoare/reference.i.0.report.json +++ b/src/plugins/wp/tests/wp_hoare/reference.i.0.report.json @@ -1,34 +1,33 @@ { "wp:global": { "alt-ergo": { "total": 2, "unknown": 2 }, "qed": { "total": 21, "valid": 21 }, "wp:main": { "total": 23, "valid": 21, "unknown": 2 } }, - "wp:functions": { "g": { "specialization_f_pre_at_g_stmt_2": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "g_assign": { "qed": { "total": 5, "valid": 5 }, - "wp:main": { "total": 5, - "valid": 5 } }, - "g_post": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, + "wp:functions": { "g": { "f_requires": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "g_assigns": { "qed": { "total": 5, "valid": 5 }, + "wp:main": { "total": 5, + "valid": 5 } }, + "g_ensures": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 7, "valid": 7 }, "wp:main": { "total": 7, "valid": 7 } } }, - "call_f2": { "specialization_f2_pre_at_call_f2_stmt_7": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "call_f2_assign": { "alt-ergo": { "total": 2, - "unknown": 2 }, - "qed": { "total": 5, - "valid": 5 }, - "wp:main": { "total": 7, - "valid": 5, - "unknown": 2 } }, - "call_f2_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "call_f2": { "f2_requires": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "call_f2_assigns": { "alt-ergo": { "total": 2, + "unknown": 2 }, + "qed": { "total": 5, + "valid": 5 }, + "wp:main": { "total": 7, + "valid": 5, + "unknown": 2 } }, + "call_f2_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 2, "unknown": 2 }, "qed": { "total": 7, @@ -36,32 +35,34 @@ "wp:main": { "total": 9, "valid": 7, "unknown": 2 } } }, - "call_global": { "specialization_f_pre_at_call_global_stmt_10": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "call_global_assign": { "qed": { "total": 3, - "valid": 3 }, - "wp:main": - { "total": 3, - "valid": 3 } }, - "call_global_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "call_global": { "f_requires_2": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "call_global_assigns": { "qed": + { "total": 3, + "valid": 3 }, + "wp:main": + { "total": 3, + "valid": 3 } }, + "call_global_ensures": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 5, "valid": 5 }, "wp:main": { "total": 5, "valid": 5 } } }, - "write": { "write_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "write_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "write": { "write_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "write_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, diff --git a/src/plugins/wp/tests/wp_hoare/reference_and_struct.i.0.report.json b/src/plugins/wp/tests/wp_hoare/reference_and_struct.i.0.report.json index c0d973f42303dd00e7f376e03e406681ad1b2c3f..11e6e2f6c10926d5cc561994ff53fffd24d4730d 100644 --- a/src/plugins/wp/tests/wp_hoare/reference_and_struct.i.0.report.json +++ b/src/plugins/wp/tests/wp_hoare/reference_and_struct.i.0.report.json @@ -1,52 +1,54 @@ { "wp:global": { "alt-ergo": { "total": 5, "valid": 5, "rank": 5 }, "qed": { "total": 27, "valid": 27 }, "wp:main": { "total": 32, "valid": 32, "rank": 5 } }, - "wp:functions": { "reset": { "reset_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "reset_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "reset": { "reset_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "reset_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } } }, - "call_reset": { "specialization_reset_pre_at_call_reset_stmt_4": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "call_reset_assign": { "qed": { "total": 3, - "valid": 3 }, - "wp:main": - { "total": 3, - "valid": 3 } }, - "call_reset_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, + "call_reset": { "reset_requires": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, + "call_reset_assigns": { "qed": { "total": 3, + "valid": 3 }, + "wp:main": + { "total": 3, + "valid": 3 } }, + "call_reset_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 5, "valid": 5 }, "wp:main": { "total": 5, "valid": 5 } } }, - "call_reset_5": { "specialization_reset_5_pre_at_call_reset_5_stmt_8": - { "qed": { "total": 1, "valid": 1 }, + "call_reset_5": { "reset_5_requires": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "call_reset_5_assigns": { "qed": + { "total": 2, + "valid": 2 }, + "wp:main": + { "total": 2, + "valid": 2 } }, + "call_reset_5_ensures_Preset_5": + { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 1 }, "wp:main": { "total": 1, - "valid": 1 } }, - "call_reset_5_assign": { "qed": - { "total": 2, - "valid": 2 }, - "wp:main": - { "total": 2, - "valid": 2 } }, - "call_reset_5_post_Preset_5": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 1 }, - "wp:main": - { "total": 1, - "valid": 1, - "rank": 1 } }, + "valid": 1, + "rank": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, "rank": 1 }, @@ -55,17 +57,18 @@ "wp:main": { "total": 4, "valid": 4, "rank": 1 } } }, - "call_reset_5_tps": { "specialization_reset_5_pre_at_call_reset_5_tps_stmt_11": - { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "call_reset_5_tps_assign": + "call_reset_5_tps": { "reset_5_requires_2": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "call_reset_5_tps_assigns": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } }, - "call_reset_5_tps_post_Preset_5_tps": + "call_reset_5_tps_ensures_Preset_5_tps": { "alt-ergo": { "total": 1, "valid": 1, "rank": 5 }, @@ -82,17 +85,19 @@ { "total": 4, "valid": 4, "rank": 5 } } }, - "call_reset_1_5": { "specialization_reset_1_5_pre_at_call_reset_1_5_stmt_14": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "call_reset_1_5_assign": { "qed": + "call_reset_1_5": { "reset_1_5_requires": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "call_reset_1_5_assigns": { "qed": { "total": 2, "valid": 2 }, - "wp:main": + "wp:main": { "total": 2, "valid": 2 } }, - "call_reset_1_5_post_Presset_mat": + "call_reset_1_5_ensures_Presset_mat": { "alt-ergo": { "total": 1, "valid": 1, "rank": 1 }, @@ -107,17 +112,18 @@ "wp:main": { "total": 4, "valid": 4, "rank": 1 } } }, - "call_reset_5_dim2": { "specialization_reset_5_pre_at_call_reset_5_dim2_stmt_17": - { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "call_reset_5_dim2_assign": + "call_reset_5_dim2": { "reset_5_requires_3": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "call_reset_5_dim2_assigns": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } }, - "call_reset_5_dim2_post_Presset_mat": + "call_reset_5_dim2_ensures_Presset_mat": { "alt-ergo": { "total": 1, "valid": 1, "rank": 1 }, @@ -134,19 +140,19 @@ { "total": 4, "valid": 4, "rank": 1 } } }, - "call_on_array_in_struct_global": { "specialization_load_5_pre_at_call_on_array_in_struct_global_stmt_20": + "call_on_array_in_struct_global": { "load_5_requires": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "call_on_array_in_struct_global_assign": + "call_on_array_in_struct_global_assigns": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } }, - "call_on_array_in_struct_global_post_Pload": + "call_on_array_in_struct_global_ensures_Pload": { "alt-ergo": { "total": 1, "valid": 1, @@ -166,22 +172,22 @@ { "total": 4, "valid": 4, "rank": 2 } } }, - "call_array_in_struct_param": { "specialization_load_5_pre_at_call_array_in_struct_param_stmt_23": + "call_array_in_struct_param": { "load_5_requires_2": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "call_array_in_struct_param_assign": + "call_array_in_struct_param_assigns": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } }, - "call_array_in_struct_param_post_Pload3": + "call_array_in_struct_param_ensures_Pload3": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "call_array_in_struct_param_post_Pload2": + "call_array_in_struct_param_ensures_Pload2": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, diff --git a/src/plugins/wp/tests/wp_hoare/reference_array.i.0.report.json b/src/plugins/wp/tests/wp_hoare/reference_array.i.0.report.json index f08df5e1a234c84644e65d9e64b2b661987a969f..afc36a6dd83fa10a701a7381c560cb30d233ecdc 100644 --- a/src/plugins/wp/tests/wp_hoare/reference_array.i.0.report.json +++ b/src/plugins/wp/tests/wp_hoare/reference_array.i.0.report.json @@ -1,19 +1,23 @@ { "wp:global": { "alt-ergo": { "total": 12, "valid": 12, "rank": 5 }, "qed": { "total": 24, "valid": 24 }, "wp:main": { "total": 36, "valid": 36, "rank": 5 } }, - "wp:functions": { "reset_1_5": { "specialization_reset_5_pre_at_reset_1_5_stmt_1": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "reset_1_5_assign": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, - "reset_1_5_post": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 5 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 5 } }, + "wp:functions": { "reset_1_5": { "reset_5_requires": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "reset_1_5_assigns": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": + { "total": 2, + "valid": 2 } }, + "reset_1_5_ensures": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 5 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 5 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, "rank": 5 }, @@ -22,19 +26,20 @@ "wp:main": { "total": 4, "valid": 4, "rank": 5 } } }, - "load_1_5": { "specialization_load_5_pre_at_load_1_5_stmt_4": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "load_1_5_assign": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, + "load_1_5": { "load_5_requires": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "load_1_5_assigns": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, "valid": 2 } }, - "load_1_5_post": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 4 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 4 } }, + "load_1_5_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 4 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 4 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, "rank": 4 }, @@ -43,19 +48,20 @@ "wp:main": { "total": 4, "valid": 4, "rank": 4 } } }, - "add_1_5": { "specialization_add_5_pre_at_add_1_5_stmt_7": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "add_1_5_assign": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, - "add_1_5_post": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 4 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 4 } }, + "add_1_5": { "add_5_requires": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "add_1_5_assigns": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, + "add_1_5_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 4 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 4 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, "rank": 4 }, @@ -64,41 +70,44 @@ "wp:main": { "total": 4, "valid": 4, "rank": 4 } } }, - "calls_on_array_dim_1": { "specialization_add_5_pre_at_calls_on_array_dim_1_stmt_12": - { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "specialization_reset_5_pre_at_calls_on_array_dim_1_stmt_11": - { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "specialization_load_5_pre_at_calls_on_array_dim_1_stmt_10": - { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "calls_on_array_dim_1_assign": + "calls_on_array_dim_1": { "add_5_requires_2": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "reset_5_requires_2": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "load_5_requires_2": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "calls_on_array_dim_1_assigns": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } }, - "calls_on_array_dim_1_post_Padd": + "calls_on_array_dim_1_ensures_Padd": { "alt-ergo": { "total": 1, "valid": 1, "rank": 3 }, "wp:main": { "total": 1, "valid": 1, "rank": 3 } }, - "calls_on_array_dim_1_post_Preset": + "calls_on_array_dim_1_ensures_Preset": { "alt-ergo": { "total": 1, "valid": 1, "rank": 1 }, "wp:main": { "total": 1, "valid": 1, "rank": 1 } }, - "calls_on_array_dim_1_post_Pload": + "calls_on_array_dim_1_ensures_Pload": { "alt-ergo": { "total": 1, "valid": 1, "rank": 1 }, @@ -116,41 +125,41 @@ { "total": 8, "valid": 8, "rank": 3 } } }, - "calls_on_array_dim_2_to_1": { "specialization_add_5_pre_at_calls_on_array_dim_2_to_1_stmt_17": + "calls_on_array_dim_2_to_1": { "add_5_requires_3": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "specialization_reset_5_pre_at_calls_on_array_dim_2_to_1_stmt_16": + "reset_5_requires_3": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "specialization_load_5_pre_at_calls_on_array_dim_2_to_1_stmt_15": + "load_5_requires_3": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "calls_on_array_dim_2_to_1_assign": + "calls_on_array_dim_2_to_1_assigns": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } }, - "calls_on_array_dim_2_to_1_post_Padd": + "calls_on_array_dim_2_to_1_ensures_Padd": { "alt-ergo": { "total": 1, "valid": 1, "rank": 3 }, "wp:main": { "total": 1, "valid": 1, "rank": 3 } }, - "calls_on_array_dim_2_to_1_post_Preset": + "calls_on_array_dim_2_to_1_ensures_Preset": { "alt-ergo": { "total": 1, "valid": 1, "rank": 2 }, "wp:main": { "total": 1, "valid": 1, "rank": 2 } }, - "calls_on_array_dim_2_to_1_post_Pload": + "calls_on_array_dim_2_to_1_ensures_Pload": { "alt-ergo": { "total": 1, "valid": 1, "rank": 2 }, @@ -168,41 +177,44 @@ { "total": 8, "valid": 8, "rank": 3 } } }, - "calls_on_array_dim_2": { "specialization_add_1_5_pre_at_calls_on_array_dim_2_stmt_22": - { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "specialization_reset_1_5_pre_at_calls_on_array_dim_2_stmt_21": - { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "specialization_load_1_5_pre_at_calls_on_array_dim_2_stmt_20": - { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "calls_on_array_dim_2_assign": + "calls_on_array_dim_2": { "add_1_5_requires": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "reset_1_5_requires": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "load_1_5_requires": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "calls_on_array_dim_2_assigns": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } }, - "calls_on_array_dim_2_post_Padd": + "calls_on_array_dim_2_ensures_Padd": { "alt-ergo": { "total": 1, "valid": 1, "rank": 2 }, "wp:main": { "total": 1, "valid": 1, "rank": 2 } }, - "calls_on_array_dim_2_post_Preset": + "calls_on_array_dim_2_ensures_Preset": { "alt-ergo": { "total": 1, "valid": 1, "rank": 1 }, "wp:main": { "total": 1, "valid": 1, "rank": 1 } }, - "calls_on_array_dim_2_post_Pload": + "calls_on_array_dim_2_ensures_Pload": { "alt-ergo": { "total": 1, "valid": 1, "rank": 1 }, diff --git a/src/plugins/wp/tests/wp_hoare/reference_array_simple.i.0.report.json b/src/plugins/wp/tests/wp_hoare/reference_array_simple.i.0.report.json index d0cb543fa661ca129665804fc149c1e6fa7028d8..141e4abc28d6c2dd4cb136fb06f3a734b4a33a0d 100644 --- a/src/plugins/wp/tests/wp_hoare/reference_array_simple.i.0.report.json +++ b/src/plugins/wp/tests/wp_hoare/reference_array_simple.i.0.report.json @@ -1,25 +1,25 @@ { "wp:global": { "qed": { "total": 3, "valid": 3 }, "wp:main": { "total": 3, "valid": 3 } }, - "wp:functions": { "call_f1": { "call_f1_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "call_f1": { "call_f1_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "call_f2": { "call_f2_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "call_f2": { "call_f2_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "call_f3": { "call_f3_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "call_f3": { "call_f3_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, diff --git a/src/plugins/wp/tests/wp_hoare/refguards.i.0.report.json b/src/plugins/wp/tests/wp_hoare/refguards.i.0.report.json index 88f4779426b0fa72d0eea82493ed95404b7457fd..02d281f75bfcfef691acc66dd7f28ed4b95baee6 100644 --- a/src/plugins/wp/tests/wp_hoare/refguards.i.0.report.json +++ b/src/plugins/wp/tests/wp_hoare/refguards.i.0.report.json @@ -1,46 +1,51 @@ { "wp:global": { "alt-ergo": { "total": 2, "valid": 1, "unknown": 1, - "rank": 3 }, + "rank": 4 }, "qed": { "total": 7, "valid": 7 }, "wp:main": { "total": 9, "valid": 8, "unknown": 1, - "rank": 3 } }, - "wp:functions": { "f": { "f_post": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, + "rank": 4 } }, + "wp:functions": { "f": { "f_ensures": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "g": { "g_post": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, - "wp:main": { "total": 1, "valid": 1, - "rank": 3 } }, + "g": { "g_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 4 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 4 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "wp:main": { "total": 1, "valid": 1, - "rank": 3 } } }, - "h": { "h_post": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, + "rank": 4 } } }, + "h": { "h_ensures": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "s": { "s_post_KO": { "alt-ergo": { "total": 1, - "unknown": 1 }, + "s": { "s_ensures_KO": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, + "s_ensures_5": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "s_ensures_4": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "s_ensures_3": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "s_ensures_2": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "s_ensures": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, - "unknown": 1 } }, - "s_post_5": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "s_post_4": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "s_post_3": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "s_post_2": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "s_post": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "qed": { "total": 5, "valid": 5 }, diff --git a/src/plugins/wp/tests/wp_manual/manual.i.0.report.json b/src/plugins/wp/tests/wp_manual/manual.i.0.report.json index 62c79a858389498c09fa6c359bb4ade661400b99..56d70788f4a0e66431a39e3c53a69b41dfa3637e 100644 --- a/src/plugins/wp/tests/wp_manual/manual.i.0.report.json +++ b/src/plugins/wp/tests/wp_manual/manual.i.0.report.json @@ -1,21 +1,21 @@ -{ "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 3 }, +{ "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 4 }, "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 2, "valid": 2, "rank": 3 } }, - "wp:functions": { "swap": { "swap_post_B": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "swap_post_A": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 3 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 3 } }, + "wp:main": { "total": 2, "valid": 2, "rank": 4 } }, + "wp:functions": { "swap": { "swap_ensures_B": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "swap_ensures_A": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 4 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 4 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 2, "valid": 2, - "rank": 3 } } } } } + "rank": 4 } } } } } diff --git a/src/plugins/wp/tests/wp_manual/manual.i.1.report.json b/src/plugins/wp/tests/wp_manual/manual.i.1.report.json index efbb2d39bc1807b27fa1d09c7e0b1499dd5c8579..46e1782afb0298f8138bb4284be77678fd69093c 100644 --- a/src/plugins/wp/tests/wp_manual/manual.i.1.report.json +++ b/src/plugins/wp/tests/wp_manual/manual.i.1.report.json @@ -29,20 +29,20 @@ { "total": 1, "valid": 1, "rank": 4 } }, - "swap_assign": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, - "swap_post_B": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "swap_post_A": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 5 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 5 } }, + "swap_assigns": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, + "swap_ensures_B": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "swap_ensures_A": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 5 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 5 } }, "wp:section": { "alt-ergo": { "total": 3, "valid": 3, "rank": 5 }, diff --git a/src/plugins/wp/tests/wp_manual/manual.i.2.report.json b/src/plugins/wp/tests/wp_manual/manual.i.2.report.json index efbb2d39bc1807b27fa1d09c7e0b1499dd5c8579..46e1782afb0298f8138bb4284be77678fd69093c 100644 --- a/src/plugins/wp/tests/wp_manual/manual.i.2.report.json +++ b/src/plugins/wp/tests/wp_manual/manual.i.2.report.json @@ -29,20 +29,20 @@ { "total": 1, "valid": 1, "rank": 4 } }, - "swap_assign": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, - "swap_post_B": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "swap_post_A": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 5 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 5 } }, + "swap_assigns": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, + "swap_ensures_B": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "swap_ensures_A": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 5 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 5 } }, "wp:section": { "alt-ergo": { "total": 3, "valid": 3, "rank": 5 }, diff --git a/src/plugins/wp/tests/wp_manual/oracle_qualif/manual.0.res.oracle b/src/plugins/wp/tests/wp_manual/oracle_qualif/manual.0.res.oracle index 544488b6ffeabfb22b20a9f6edf1ee77a916fe5e..86b06c6e37c50d57f64e004b89391ceee3552108 100644 --- a/src/plugins/wp/tests/wp_manual/oracle_qualif/manual.0.res.oracle +++ b/src/plugins/wp/tests/wp_manual/oracle_qualif/manual.0.res.oracle @@ -6,13 +6,13 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 2 goals scheduled -[wp] [Alt-Ergo] Goal typed_swap_post_A : Valid -[wp] [Qed] Goal typed_swap_post_B : Valid +[wp] [Alt-Ergo] Goal typed_swap_ensures_A : Valid +[wp] [Qed] Goal typed_swap_ensures_B : Valid [wp] Proved goals: 2 / 2 Qed: 1 Alt-Ergo: 1 [wp] Report 'tests/wp_manual/manual.i.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -swap 1 1 (8..20) 2 100% +swap 1 1 (12..24) 2 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_manual/oracle_qualif/manual.1.res.oracle b/src/plugins/wp/tests/wp_manual/oracle_qualif/manual.1.res.oracle index ce53f53550afbe73654e48a60ffee65575721761..7380ed072cd7b881d8ce63f92d4a61f2d6980a1d 100644 --- a/src/plugins/wp/tests/wp_manual/oracle_qualif/manual.1.res.oracle +++ b/src/plugins/wp/tests/wp_manual/oracle_qualif/manual.1.res.oracle @@ -6,14 +6,14 @@ [wp] Loading driver 'share/wp.driver' [rte] annotating function swap [wp] 8 goals scheduled -[wp] [Alt-Ergo] Goal typed_swap_post_A : Valid -[wp] [Qed] Goal typed_swap_post_B : Valid +[wp] [Alt-Ergo] Goal typed_swap_ensures_A : Valid +[wp] [Qed] Goal typed_swap_ensures_B : Valid [wp] [Alt-Ergo] Goal typed_swap_assert_rte_mem_access : Valid [wp] [Qed] Goal typed_swap_assert_rte_mem_access_2 : Valid [wp] [Alt-Ergo] Goal typed_swap_assert_rte_mem_access_3 : Valid [wp] [Qed] Goal typed_swap_assert_rte_mem_access_4 : Valid -[wp] [Qed] Goal typed_swap_assign_part1 : Valid -[wp] [Qed] Goal typed_swap_assign_part2 : Valid +[wp] [Qed] Goal typed_swap_assigns_part1 : Valid +[wp] [Qed] Goal typed_swap_assigns_part2 : Valid [wp] Proved goals: 8 / 8 Qed: 5 Alt-Ergo: 3 diff --git a/src/plugins/wp/tests/wp_plugin/abs.i.0.report.json b/src/plugins/wp/tests/wp_plugin/abs.i.0.report.json index d49378e2cfe226f518e0b7ab11465a8d7c7b9ef6..a80a2d1beca3dd9464d3a58c09fde1529bcb255b 100644 --- a/src/plugins/wp/tests/wp_plugin/abs.i.0.report.json +++ b/src/plugins/wp/tests/wp_plugin/abs.i.0.report.json @@ -1,11 +1,11 @@ { "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 2 }, "wp:main": { "total": 1, "valid": 1, "rank": 2 } }, - "wp:functions": { "abs": { "abs_post": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 2 } }, + "wp:functions": { "abs": { "abs_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 2 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, "rank": 2 }, diff --git a/src/plugins/wp/tests/wp_plugin/abs.i.1.report.json b/src/plugins/wp/tests/wp_plugin/abs.i.1.report.json index 27343d990c515b76cc77f026eb2a7de2885e4c86..615d8ae63ebf4d3fccadd739c10ae1950a5e07e3 100644 --- a/src/plugins/wp/tests/wp_plugin/abs.i.1.report.json +++ b/src/plugins/wp/tests/wp_plugin/abs.i.1.report.json @@ -1,8 +1,9 @@ { "wp:global": { "coq": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "wp:functions": { "abs": { "abs_post": { "coq": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "abs": { "abs_ensures": { "coq": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "coq": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, diff --git a/src/plugins/wp/tests/wp_plugin/abs.i.2.report.json b/src/plugins/wp/tests/wp_plugin/abs.i.2.report.json index fed0840ce12d0b93fe41b8992c82069801a6d03e..5944569879bbc4a26e7e36baafcebf4d3ad9fd30 100644 --- a/src/plugins/wp/tests/wp_plugin/abs.i.2.report.json +++ b/src/plugins/wp/tests/wp_plugin/abs.i.2.report.json @@ -1,9 +1,9 @@ { "wp:global": { "why3:alt-ergo": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "wp:functions": { "abs": { "abs_post": { "why3:alt-ergo": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "abs": { "abs_ensures": { "why3:alt-ergo": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "why3:alt-ergo": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, diff --git a/src/plugins/wp/tests/wp_plugin/abs.script b/src/plugins/wp/tests/wp_plugin/abs.script index d00a1a3f2935dad4ea4579e27314b7dc2ab20ed6..9cd057bc899e0c3eb3e7285df7c5edf7f9e736f5 100644 --- a/src/plugins/wp/tests/wp_plugin/abs.script +++ b/src/plugins/wp/tests/wp_plugin/abs.script @@ -1,6 +1,6 @@ (* Generated by Frama-C WP *) -Goal typed_abs_abs_post. +Goal typed_abs_abs_ensures. Hint abs,default,property. Proof. intro n. intros. subst. diff --git a/src/plugins/wp/tests/wp_plugin/asm.i.0.report.json b/src/plugins/wp/tests/wp_plugin/asm.i.0.report.json index b9104446f42b30ae70b732be612bf00fc2e61fd1..f12a169da4eebf3f8cc384e0249786c3c213bd82 100644 --- a/src/plugins/wp/tests/wp_plugin/asm.i.0.report.json +++ b/src/plugins/wp/tests/wp_plugin/asm.i.0.report.json @@ -9,10 +9,10 @@ "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "main_stmt_assign": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, + "main_assigns": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 2, "unknown": 2 }, "qed": { "total": 1, diff --git a/src/plugins/wp/tests/wp_plugin/bool.i.0.report.json b/src/plugins/wp/tests/wp_plugin/bool.i.0.report.json index 54525d65b41036b914ebf2d11d08d60d63f7adcd..ed33644f6dfc6d57962bddc5fa958e5a0d8773b3 100644 --- a/src/plugins/wp/tests/wp_plugin/bool.i.0.report.json +++ b/src/plugins/wp/tests/wp_plugin/bool.i.0.report.json @@ -3,28 +3,28 @@ "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 7, "valid": 3, "unknown": 4, "rank": 2 } }, - "wp:functions": { "job": { "job_post": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, + "wp:functions": { "job": { "job_ensures": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } } }, - "bor_bool": { "bor_bool_false_post": { "alt-ergo": - { "total": 1, - "unknown": 1 }, - "wp:main": - { "total": 1, - "unknown": 1 } }, - "bor_bool_true_post": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": - { "total": 1, - "valid": 1, - "rank": 2 } }, + "bor_bool": { "bor_bool_false_ensures": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, + "bor_bool_true_ensures": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 2 } }, "wp:section": { "alt-ergo": { "total": 2, "valid": 1, "unknown": 1, @@ -33,17 +33,18 @@ "valid": 1, "unknown": 1, "rank": 2 } } }, - "band_bool": { "band_bool_false_post": { "alt-ergo": - { "total": 1, - "unknown": 1 }, - "wp:main": - { "total": 1, - "unknown": 1 } }, - "band_bool_true_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "band_bool": { "band_bool_false_ensures": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, + "band_bool_true_ensures": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "qed": { "total": 1, @@ -51,17 +52,18 @@ "wp:main": { "total": 2, "valid": 1, "unknown": 1 } } }, - "bxor_bool": { "bxor_bool_false_post": { "alt-ergo": - { "total": 1, - "unknown": 1 }, - "wp:main": - { "total": 1, - "unknown": 1 } }, - "bxor_bool_true_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "bxor_bool": { "bxor_bool_false_ensures": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, + "bxor_bool_true_ensures": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "qed": { "total": 1, diff --git a/src/plugins/wp/tests/wp_plugin/bool.i.1.report.json b/src/plugins/wp/tests/wp_plugin/bool.i.1.report.json index be8efece9311f9f62736287e7eefb1046b6b18e4..0b7598a6d212be3766522e4f696fa917f304c3ce 100644 --- a/src/plugins/wp/tests/wp_plugin/bool.i.1.report.json +++ b/src/plugins/wp/tests/wp_plugin/bool.i.1.report.json @@ -1,53 +1,54 @@ { "wp:global": { "alt-ergo": { "total": 5, "valid": 5, "rank": 6 }, "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 7, "valid": 7, "rank": 6 } }, - "wp:functions": { "job": { "job_post": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 4 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 4 } }, + "wp:functions": { "job": { "job_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 4 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 4 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, "rank": 4 }, "wp:main": { "total": 1, "valid": 1, "rank": 4 } } }, - "bor_bool": { "bor_bool_false_post": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": - { "total": 1, - "valid": 1, - "rank": 2 } }, - "bor_bool_true_post": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": - { "total": 1, - "valid": 1, - "rank": 2 } }, - "wp:section": { "alt-ergo": { "total": 2, - "valid": 2, - "rank": 2 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 2 } } }, - "band_bool": { "band_bool_false_post": { "alt-ergo": + "bor_bool": { "bor_bool_false_ensures": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 4 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 4 } }, + "bor_bool_true_ensures": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 6 }, + "rank": 2 }, "wp:main": { "total": 1, "valid": 1, - "rank": 6 } }, - "band_bool_true_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "rank": 2 } }, + "wp:section": { "alt-ergo": { "total": 2, + "valid": 2, + "rank": 4 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 4 } } }, + "band_bool": { "band_bool_false_ensures": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 6 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 6 } }, + "band_bool_true_ensures": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, "rank": 6 }, @@ -56,24 +57,25 @@ "wp:main": { "total": 2, "valid": 2, "rank": 6 } } }, - "bxor_bool": { "bxor_bool_false_post": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": - { "total": 1, - "valid": 1, - "rank": 2 } }, - "bxor_bool_true_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "bxor_bool": { "bxor_bool_false_ensures": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 3 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 3 } }, + "bxor_bool_true_ensures": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 2 }, + "rank": 3 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 2, "valid": 2, - "rank": 2 } } } } } + "rank": 3 } } } } } diff --git a/src/plugins/wp/tests/wp_plugin/combined.c b/src/plugins/wp/tests/wp_plugin/combined.c index e698ae498d812c5788580c80ab143b62567331da..33a5d1e193a283f4649865cca1511645456121ac 100644 --- a/src/plugins/wp/tests/wp_plugin/combined.c +++ b/src/plugins/wp/tests/wp_plugin/combined.c @@ -3,7 +3,8 @@ */ /* run.config_qualif - OPT: -wp-par 1 -load-script tests/wp_plugin/combined.ml + EXECNOW: @PTEST_DIR@/@PTEST_NAME@.cmxs + OPT: -wp-par 1 -load-module @PTEST_DIR@/@PTEST_NAME@ */ /* ZD : this should not be here such as it cannot be tested by all frama-c diff --git a/src/plugins/wp/tests/wp_plugin/combined.ml b/src/plugins/wp/tests/wp_plugin/combined.ml deleted file mode 100644 index 6b9da9a310774ff2577df057db2234f367d9d1b2..0000000000000000000000000000000000000000 --- a/src/plugins/wp/tests/wp_plugin/combined.ml +++ /dev/null @@ -1,22 +0,0 @@ -let main () = - Ast.compute (); - let module OLS = Datatype.List(Datatype.String) in - let module OKF = Datatype.Option(Kernel_function) in - let module OP = Datatype.Option(Property) in - Dynamic.get - ~plugin:"Wp" "wp_compute" - (Datatype.func3 OKF.ty OLS.ty OP.ty Datatype.unit) - (Some - (try Globals.Functions.find_by_name "job" - with Not_found -> assert false)) - [] - None; - let report = - Dynamic.get - ~plugin:"Report" "print" (Datatype.func Datatype.unit Datatype.unit) - in - report (); - !Db.Value.compute (); - report () - -let () = Db.Main.extend main diff --git a/src/plugins/wp/tests/wp_plugin/copy.i.0.report.json b/src/plugins/wp/tests/wp_plugin/copy.i.0.report.json index a0aeba66b5723e0d660ec68c6b67280a7e2800b8..d943dafe4f35ffaeeadcdf96fcc9080f4d7132dd 100644 --- a/src/plugins/wp/tests/wp_plugin/copy.i.0.report.json +++ b/src/plugins/wp/tests/wp_plugin/copy.i.0.report.json @@ -1,57 +1,61 @@ -{ "wp:global": { "alt-ergo": { "total": 6, "valid": 6, "rank": 38 }, +{ "wp:global": { "alt-ergo": { "total": 6, "valid": 6, "rank": 39 }, "qed": { "total": 4, "valid": 4 }, - "wp:main": { "total": 10, "valid": 10, "rank": 38 } }, + "wp:main": { "total": 10, "valid": 10, "rank": 39 } }, "wp:functions": { "copy": { "copy_assert_B": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 38 }, + "rank": 39 }, "wp:main": { "total": 1, "valid": 1, - "rank": 38 } }, + "rank": 39 } }, "copy_assert_A": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 31 }, + "rank": 32 }, "wp:main": { "total": 1, "valid": 1, - "rank": 31 } }, - "copy_loop_inv_Copy": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 7 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 7 } }, - "copy_loop_inv_Range": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 5 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 5 } }, - "copy_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "copy_loop_assign": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 22 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, + "rank": 32 } }, + "copy_loop_invariant_Copy": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 8 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 2, + "valid": 2, + "rank": 8 } }, + "copy_loop_invariant_Range": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 5 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 2, "valid": 2, - "rank": 22 } }, - "copy_post": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 5 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 5 } }, + "rank": 5 } }, + "copy_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "copy_loop_assigns": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 22 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 22 } }, + "copy_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 6 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 6 } }, "wp:section": { "alt-ergo": { "total": 6, "valid": 6, - "rank": 38 }, + "rank": 39 }, "qed": { "total": 4, "valid": 4 }, "wp:main": { "total": 10, "valid": 10, - "rank": 38 } } } } } + "rank": 39 } } } } } diff --git a/src/plugins/wp/tests/wp_plugin/dynamic.i.0.report.json b/src/plugins/wp/tests/wp_plugin/dynamic.i.0.report.json index 5bc84b3ea34cd84e44029eedc2e50d44af10ee4d..4fe7283df198bbb5837161eee37f648eecdb48e6 100644 --- a/src/plugins/wp/tests/wp_plugin/dynamic.i.0.report.json +++ b/src/plugins/wp/tests/wp_plugin/dynamic.i.0.report.json @@ -1,22 +1,22 @@ { "wp:global": { "alt-ergo": { "total": 3, "valid": 3, "rank": 14 }, "qed": { "total": 10, "valid": 10 }, "wp:main": { "total": 13, "valid": 13, "rank": 14 } }, - "wp:functions": { "call": { "specialization_f1_pre_at_call_stmt_3": - { "alt-ergo": { "total": 1, "valid": 1, - "rank": 14 }, - "wp:main": { "total": 1, "valid": 1, - "rank": 14 } }, - "call_stmt_calls_f1_f2": { "alt-ergo": - { "total": 1, + "wp:functions": { "call": { "f1_requires": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 6 }, - "wp:main": { "total": 1, + "rank": 14 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 14 } }, + "call_calls_f1_f2_s3": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 6 }, + "wp:main": { "total": 1, "valid": 1, "rank": 6 } }, - "call_post": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, + "call_ensures": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, "wp:section": { "alt-ergo": { "total": 2, "valid": 2, "rank": 14 }, @@ -25,46 +25,52 @@ "wp:main": { "total": 4, "valid": 4, "rank": 14 } } }, - "guarded_call": { "guarded_call_stmt_calls_g": { "qed": + "guarded_call": { "guarded_call_calls_g_s9": { "qed": { "total": 1, "valid": 1 }, - "wp:main": + "wp:main": { "total": 1, "valid": 1 } }, - "guarded_call_post_2": { "qed": - { "total": 2, - "valid": 2 }, - "wp:main": - { "total": 2, - "valid": 2 } }, - "guarded_call_post": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 3 }, - "qed": { "total": 1, + "guarded_call_ensures_2": { "qed": + { "total": 2, + "valid": 2 }, + "wp:main": + { "total": 2, + "valid": 2 } }, + "guarded_call_ensures": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 4 }, + "qed": + { "total": 1, "valid": 1 }, - "wp:main": - { "total": 2, - "valid": 2, - "rank": 3 } }, + "wp:main": + { "total": 2, + "valid": 2, + "rank": 4 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "qed": { "total": 4, "valid": 4 }, "wp:main": { "total": 5, "valid": 5, - "rank": 3 } } }, - "no_call": { "specialization_unreachable_g_pre_at_no_call_stmt_17": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "no_call_stmt_calls_unreachable_g": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "no_call_post": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, + "rank": 4 } } }, + "no_call": { "unreachable_g_requires": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "no_call_calls_unreachable_g_s17": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "no_call_ensures": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, "wp:section": { "qed": { "total": 4, "valid": 4 }, "wp:main": { "total": 4, diff --git a/src/plugins/wp/tests/wp_plugin/flash.c.0.report.json b/src/plugins/wp/tests/wp_plugin/flash.c.0.report.json index b60ab62c9d51f86f09e60623621ef1114d85e3af..b56ae23d547912581057352e2f5d14d84957b77e 100644 --- a/src/plugins/wp/tests/wp_plugin/flash.c.0.report.json +++ b/src/plugins/wp/tests/wp_plugin/flash.c.0.report.json @@ -1,30 +1,33 @@ { "wp:global": { "alt-ergo": { "total": 5, "unknown": 5 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 6, "valid": 1, "unknown": 5 } }, - "wp:functions": { "job": { "job_post_WriteValues": { "alt-ergo": { "total": 1, + "wp:functions": { "job": { "job_ensures_WriteValues": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, + "job_ensures_ReadValues": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, + "job_ensures_B_writes": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "job_post_ReadValues": { "alt-ergo": { "total": 1, + "job_ensures_B_reads": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, + "job_ensures_A_reads": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "job_post_B_writes": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "job_post_B_reads": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "job_post_A_reads": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "job_post_Events": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "job_ensures_Events": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 5, "unknown": 5 }, "qed": { "total": 1, diff --git a/src/plugins/wp/tests/wp_plugin/flash.c.1.report.json b/src/plugins/wp/tests/wp_plugin/flash.c.1.report.json index 12b5c0544d98610b133b1a24790be69584814694..63cb5905a73bef4a1486cafaa1d5b2366af44f2d 100644 --- a/src/plugins/wp/tests/wp_plugin/flash.c.1.report.json +++ b/src/plugins/wp/tests/wp_plugin/flash.c.1.report.json @@ -1,40 +1,43 @@ { "wp:global": { "alt-ergo": { "total": 5, "valid": 5, "rank": 20 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 6, "valid": 6, "rank": 20 } }, - "wp:functions": { "job": { "job_post_WriteValues": { "alt-ergo": { "total": 1, + "wp:functions": { "job": { "job_ensures_WriteValues": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 20 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 20 } }, + "job_ensures_ReadValues": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 20 }, + "wp:main": { "total": 1, "valid": 1, - "rank": 19 }, + "rank": 20 } }, + "job_ensures_B_writes": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 13 }, "wp:main": { "total": 1, "valid": 1, - "rank": 19 } }, - "job_post_ReadValues": { "alt-ergo": { "total": 1, + "rank": 13 } }, + "job_ensures_B_reads": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 20 }, + "rank": 19 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 19 } }, + "job_ensures_A_reads": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 19 }, "wp:main": { "total": 1, "valid": 1, - "rank": 20 } }, - "job_post_B_writes": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 12 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 12 } }, - "job_post_B_reads": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 19 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 19 } }, - "job_post_A_reads": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 19 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 19 } }, - "job_post_Events": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "rank": 19 } }, + "job_ensures_Events": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 5, "valid": 5, "rank": 20 }, diff --git a/src/plugins/wp/tests/wp_plugin/flash.c.2.report.json b/src/plugins/wp/tests/wp_plugin/flash.c.2.report.json index e2d2199289ff6b8531bc832c72433cbda0dca578..cd22f13467b2d496800380d03037041750402e62 100644 --- a/src/plugins/wp/tests/wp_plugin/flash.c.2.report.json +++ b/src/plugins/wp/tests/wp_plugin/flash.c.2.report.json @@ -1,29 +1,30 @@ { "wp:global": { "qed": { "total": 6, "valid": 6 }, "wp:main": { "total": 6, "valid": 6 } }, - "wp:functions": { "job": { "job_post_WriteValues": { "qed": { "total": 1, + "wp:functions": { "job": { "job_ensures_WriteValues": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "job_ensures_ReadValues": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "job_ensures_B_writes": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "job_post_ReadValues": { "qed": { "total": 1, + "job_ensures_B_reads": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "job_ensures_A_reads": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "job_post_B_writes": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "job_post_B_reads": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "job_post_A_reads": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "job_post_Events": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "job_ensures_Events": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 6, "valid": 6 }, "wp:main": { "total": 6, diff --git a/src/plugins/wp/tests/wp_plugin/flash.mlw b/src/plugins/wp/tests/wp_plugin/flash.mlw new file mode 100644 index 0000000000000000000000000000000000000000..0034ada0257c4ad689e61ecf2792b81f81681ff4 --- /dev/null +++ b/src/plugins/wp/tests/wp_plugin/flash.mlw @@ -0,0 +1,3 @@ +logic const : 'b -> ('a,'b) farray +axiom const_access : forall k:'a,v:'b. const(v)[k] = v + diff --git a/src/plugins/wp/tests/wp_plugin/float_format.i.0.report.json b/src/plugins/wp/tests/wp_plugin/float_format.i.0.report.json index 065d8730e68d2af1d1e0781bf374aeb17f134f0c..2a3ca74e5152ebcd6c9370afa410a213cb6b99b8 100644 --- a/src/plugins/wp/tests/wp_plugin/float_format.i.0.report.json +++ b/src/plugins/wp/tests/wp_plugin/float_format.i.0.report.json @@ -1,9 +1,9 @@ { "wp:global": { "coq": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "wp:functions": { "output": { "output_post_KO": { "coq": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, + "wp:functions": { "output": { "output_ensures_KO": { "coq": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, "wp:section": { "coq": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, diff --git a/src/plugins/wp/tests/wp_plugin/float_format.i.1.report.json b/src/plugins/wp/tests/wp_plugin/float_format.i.1.report.json index 10a449c5b8758c535d754b3b46df0f92aba67c74..1f1c00faadb72419707c193d451c8560cc4d49c8 100644 --- a/src/plugins/wp/tests/wp_plugin/float_format.i.1.report.json +++ b/src/plugins/wp/tests/wp_plugin/float_format.i.1.report.json @@ -1,9 +1,9 @@ { "wp:global": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "wp:functions": { "output": { "output_post_KO": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, + "wp:functions": { "output": { "output_ensures_KO": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, diff --git a/src/plugins/wp/tests/wp_plugin/float_format.i.2.report.json b/src/plugins/wp/tests/wp_plugin/float_format.i.2.report.json index b2ba13fe0e9545624c766a053030583f6bfa22ee..80aed7d64259207bf03ec54f0bef74316858c086 100644 --- a/src/plugins/wp/tests/wp_plugin/float_format.i.2.report.json +++ b/src/plugins/wp/tests/wp_plugin/float_format.i.2.report.json @@ -1,10 +1,10 @@ { "wp:global": { "why3:alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "wp:functions": { "output": { "output_post_KO": { "why3:alt-ergo": - { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, + "wp:functions": { "output": { "output_ensures_KO": { "why3:alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, "wp:section": { "why3:alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, diff --git a/src/plugins/wp/tests/wp_plugin/float_model.i b/src/plugins/wp/tests/wp_plugin/float_model.i new file mode 100644 index 0000000000000000000000000000000000000000..bef36ee872e1caeed67ad71211630cd9239c7e28 --- /dev/null +++ b/src/plugins/wp/tests/wp_plugin/float_model.i @@ -0,0 +1,32 @@ +/* run.config + OPT: -wp-model +real + OPT: -wp-model +float +*/ + +/* run.config_qualif + DONTRUN: +*/ + +//@ predicate P(real x); + +float FD,FF ; +double DD,DF ; + +/*@ + ensures ACSL_R: P( 2.1 ); + ensures ACSL_F: P( 2.1f ); + ensures ACSL_FR: P( (float) 2.1 ); + ensures ACSL_DR: P( (double) 2.1 ); + ensures ACSL_DF: P( (double) 2.1f ); + ensures C_FD: P( FD ); + ensures C_FF: P( FF ); + ensures C_DD: P( DD ); + ensures C_DF: P( DF ); + */ +void job(void) +{ + FD = 2.1 ; + FF = 2.1f ; + DD = 2.1 ; + DF = 2.1f ; +} diff --git a/src/plugins/wp/tests/wp_plugin/float_real.i b/src/plugins/wp/tests/wp_plugin/float_real.i new file mode 100644 index 0000000000000000000000000000000000000000..b2c011c359d13eb9e026361415888ced6235affd --- /dev/null +++ b/src/plugins/wp/tests/wp_plugin/float_real.i @@ -0,0 +1,23 @@ +/* run.config + OPT: -wp-model +real + OPT: -wp-model +float +*/ + +/* run.config_qualif + OPT: -wp-model +real + OPT: -wp-model +float +*/ + +// OK with +real, KO with +float + +/*@ + ensures \result <==> (\abs(x-y) < 1e-5) ; +*/ +static int dequal(double const x, double const y) +{ + double tmp = x-y ; + if ( tmp < 1e-5 && tmp > -1e-5 ) + return 1; + else + return 0; +} diff --git a/src/plugins/wp/tests/wp_plugin/float_real.i.0.report.json b/src/plugins/wp/tests/wp_plugin/float_real.i.0.report.json new file mode 100644 index 0000000000000000000000000000000000000000..78c912e04623b9511f9b989807c956e0e777b0ba --- /dev/null +++ b/src/plugins/wp/tests/wp_plugin/float_real.i.0.report.json @@ -0,0 +1,14 @@ +{ "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 4 }, + "wp:main": { "total": 1, "valid": 1, "rank": 4 } }, + "wp:functions": { "dequal": { "dequal_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 4 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 4 } }, + "wp:section": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 4 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 4 } } } } } diff --git a/src/plugins/wp/tests/wp_plugin/float_real.i.1.report.json b/src/plugins/wp/tests/wp_plugin/float_real.i.1.report.json new file mode 100644 index 0000000000000000000000000000000000000000..1cdc9d2ba20526f33e1d312a775df2f16f49b7a0 --- /dev/null +++ b/src/plugins/wp/tests/wp_plugin/float_real.i.1.report.json @@ -0,0 +1,10 @@ +{ "wp:global": { "alt-ergo": { "total": 1, "unknown": 1 }, + "wp:main": { "total": 1, "unknown": 1 } }, + "wp:functions": { "dequal": { "dequal_ensures": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, + "wp:section": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } } } } } diff --git a/src/plugins/wp/tests/wp_plugin/frame.i.0.report.json b/src/plugins/wp/tests/wp_plugin/frame.i.0.report.json index 239c2603e123e4b4fd49da9a364de1b66a3878a3..993d6f800871b136aa491a8594e86226bb0f56c8 100644 --- a/src/plugins/wp/tests/wp_plugin/frame.i.0.report.json +++ b/src/plugins/wp/tests/wp_plugin/frame.i.0.report.json @@ -1,14 +1,14 @@ { "wp:global": { "alt-ergo": { "total": 4, "unknown": 4 }, "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 6, "valid": 2, "unknown": 4 } }, - "wp:functions": { "local": { "local_post_KO": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "local_post_FRAMED": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "local": { "local_ensures_KO": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, + "local_ensures_FRAMED": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "qed": { "total": 1, @@ -16,10 +16,10 @@ "wp:main": { "total": 2, "valid": 1, "unknown": 1 } } }, - "global": { "global_post_KO": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, + "global": { "global_ensures_KO": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, @@ -30,10 +30,12 @@ "wp:main": { "total": 1, "valid": 1 } }, - "localref_post_KO": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, + "localref_ensures_KO": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "qed": { "total": 1, @@ -41,10 +43,10 @@ "wp:main": { "total": 2, "valid": 1, "unknown": 1 } } }, - "alias": { "alias_post_KO": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, + "alias": { "alias_ensures_KO": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, diff --git a/src/plugins/wp/tests/wp_plugin/init_const.i.0.report.json b/src/plugins/wp/tests/wp_plugin/init_const.i.0.report.json index 5bb2bdf0416fc76cc2710c45263160a27998ad0c..8a6814a1eb58c0ae9410d4affc0ba34ad072deb3 100644 --- a/src/plugins/wp/tests/wp_plugin/init_const.i.0.report.json +++ b/src/plugins/wp/tests/wp_plugin/init_const.i.0.report.json @@ -1,31 +1,33 @@ { "wp:global": { "alt-ergo": { "total": 2, "unknown": 2 }, "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 4, "valid": 2, "unknown": 2 } }, - "wp:functions": { "fA": { "fA_post_KO": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, + "wp:functions": { "fA": { "fA_ensures_KO": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } } }, - "fB": { "fB_post_OK": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "fB": { "fB_ensures_OK": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "fC": { "fC_post_KO": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, + "fC": { "fC_ensures_KO": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } } }, - "fD": { "fD_post_OK": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "fD": { "fD_ensures_OK": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } } } } diff --git a/src/plugins/wp/tests/wp_plugin/init_const_guard.i.0.report.json b/src/plugins/wp/tests/wp_plugin/init_const_guard.i.0.report.json index 36168d14b6d3bf1314aff9a747f654c2ed3e4c51..1af70a2c767b4cb06af11aa877eb5e353fadb726 100644 --- a/src/plugins/wp/tests/wp_plugin/init_const_guard.i.0.report.json +++ b/src/plugins/wp/tests/wp_plugin/init_const_guard.i.0.report.json @@ -1,26 +1,26 @@ { "wp:global": { "alt-ergo": { "total": 3, "valid": 2, "unknown": 1, - "rank": 5 }, + "rank": 6 }, "qed": { "total": 4, "valid": 4 }, "wp:main": { "total": 7, "valid": 6, "unknown": 1, - "rank": 5 } }, - "wp:functions": { "f": { "f_post_Q_NotWrite": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_Q_ReadOnly": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_Pointed_Valid": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 5 }, + "rank": 6 } }, + "wp:functions": { "f": { "f_ensures_Q_NotWrite": { "qed": { "total": 1, + "valid": 1 }, "wp:main": { "total": 1, - "valid": 1, - "rank": 5 } }, - "f_post_Const": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "valid": 1 } }, + "f_ensures_Q_ReadOnly": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_Pointed_Valid": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 5 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 5 } }, + "f_ensures_Const": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, "rank": 5 }, @@ -36,20 +36,20 @@ "unknown": 1 } }, "g_assert_Read": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 5 }, + "rank": 6 }, "wp:main": { "total": 1, "valid": 1, - "rank": 5 } }, - "g_post_P_not_Const": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "rank": 6 } }, + "g_ensures_P_not_Const": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 2, "valid": 1, "unknown": 1, - "rank": 5 }, + "rank": 6 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 3, "valid": 2, "unknown": 1, - "rank": 5 } } } } } + "rank": 6 } } } } } diff --git a/src/plugins/wp/tests/wp_plugin/init_extern.i.0.report.json b/src/plugins/wp/tests/wp_plugin/init_extern.i.0.report.json index e1653744eccdb1f9c049ad5611f36bf5e6b5ea7b..f4ea47634b8ba4c26ee71bbea25b3e575dcf5ede 100644 --- a/src/plugins/wp/tests/wp_plugin/init_extern.i.0.report.json +++ b/src/plugins/wp/tests/wp_plugin/init_extern.i.0.report.json @@ -1,17 +1,18 @@ { "wp:global": { "alt-ergo": { "total": 2, "unknown": 2 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 3, "valid": 1, "unknown": 2 } }, - "wp:functions": { "f": { "f_post_KO_2": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "f_post_KO": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "f_post_OK": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "f": { "f_ensures_KO_2": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, + "f_ensures_KO": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, + "f_ensures_OK": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 2, "unknown": 2 }, "qed": { "total": 1, "valid": 1 }, diff --git a/src/plugins/wp/tests/wp_plugin/initarr.i.0.report.json b/src/plugins/wp/tests/wp_plugin/initarr.i.0.report.json index de547fd6b4cf5a3df3246978cd16e306af11b9d1..a8c942a4d5cdfc7760f313a9bf0607cad5f558e5 100644 --- a/src/plugins/wp/tests/wp_plugin/initarr.i.0.report.json +++ b/src/plugins/wp/tests/wp_plugin/initarr.i.0.report.json @@ -1,20 +1,20 @@ -{ "wp:global": { "alt-ergo": { "total": 2, "valid": 2, "rank": 10 }, - "wp:main": { "total": 2, "valid": 2, "rank": 10 } }, - "wp:functions": { "job": { "job_post_ALT": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 7 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 7 } }, - "job_post_SEP": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 10 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 10 } }, +{ "wp:global": { "alt-ergo": { "total": 2, "valid": 2, "rank": 11 }, + "wp:main": { "total": 2, "valid": 2, "rank": 11 } }, + "wp:functions": { "job": { "job_ensures_ALT": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 8 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 8 } }, + "job_ensures_SEP": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 11 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 11 } }, "wp:section": { "alt-ergo": { "total": 2, "valid": 2, - "rank": 10 }, + "rank": 11 }, "wp:main": { "total": 2, "valid": 2, - "rank": 10 } } } } } + "rank": 11 } } } } } diff --git a/src/plugins/wp/tests/wp_plugin/injector.c.0.report.json b/src/plugins/wp/tests/wp_plugin/injector.c.0.report.json index 46f939a9b6a76b4e0fa73148789b118d834f3e4b..99b5f8d49875fb80633b93b63962ee3e3c29daab 100644 --- a/src/plugins/wp/tests/wp_plugin/injector.c.0.report.json +++ b/src/plugins/wp/tests/wp_plugin/injector.c.0.report.json @@ -1,61 +1,66 @@ { "wp:global": { "qed": { "total": 13, "valid": 13 }, "wp:main": { "total": 13, "valid": 13 } }, - "wp:functions": { "f": { "specialization_g_pre_at_f_stmt_6": { "qed": - { "total": 1, + "wp:functions": { "f": { "g_requires_2": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "g_requires": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_SUCCESS_ensures_qed_ok_4": { "qed": { "total": 1, "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "specialization_g_pre_at_f_stmt_1": { "qed": - { "total": 1, + "wp:main": + { "total": 1, + "valid": 1 } }, + "f_SUCCESS_ensures_qed_ok_3": { "qed": { "total": 1, "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "f_SUCCESS_post_qed_ok_4": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_SUCCESS_post_qed_ok_3": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_SUCCESS_post_qed_ok_2": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_SUCCESS_post_qed_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_SND_FAIL_post_qed_ok_4": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_SND_FAIL_post_qed_ok_3": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_SND_FAIL_post_qed_ok_2": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_SND_FAIL_post_qed_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_FST_FAIL_post_qed_ok_3": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_FST_FAIL_post_qed_ok_2": { "qed": { "total": 1, + "wp:main": + { "total": 1, + "valid": 1 } }, + "f_SUCCESS_ensures_qed_ok_2": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "f_SUCCESS_ensures_qed_ok": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "f_FST_FAIL_post_qed_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "f_SND_FAIL_ensures_qed_ok_4": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "f_SND_FAIL_ensures_qed_ok_3": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "f_SND_FAIL_ensures_qed_ok_2": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "f_SND_FAIL_ensures_qed_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "f_FST_FAIL_ensures_qed_ok_3": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "f_FST_FAIL_ensures_qed_ok_2": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "f_FST_FAIL_ensures_qed_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 13, "valid": 13 }, "wp:main": { "total": 13, diff --git a/src/plugins/wp/tests/wp_plugin/injector.c.1.report.json b/src/plugins/wp/tests/wp_plugin/injector.c.1.report.json index 14d1b1583505defd7ca97fdec940d474c88df079..11e14caec9175fbcf551491b247fd494e7a06f69 100644 --- a/src/plugins/wp/tests/wp_plugin/injector.c.1.report.json +++ b/src/plugins/wp/tests/wp_plugin/injector.c.1.report.json @@ -1,21 +1,21 @@ { "wp:global": { "alt-ergo": { "total": 4, "unknown": 4 }, "wp:main": { "total": 4, "unknown": 4 } }, - "wp:functions": { "f": { "f_ko_1_post_qed_ko_3": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "f_ko_1_post_qed_ko_2": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "f_ko_1_post_qed_ko": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "f_ko_post_qed_ko": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, + "wp:functions": { "f": { "f_ko_1_ensures_qed_ko_3": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, + "f_ko_1_ensures_qed_ko_2": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, + "f_ko_1_ensures_qed_ko": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, + "f_ko_ensures_qed_ko": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 4, "unknown": 4 }, "wp:main": { "total": 4, diff --git a/src/plugins/wp/tests/wp_plugin/loop.i.0.report.json b/src/plugins/wp/tests/wp_plugin/loop.i.0.report.json index 6efb013fc8c1784279234cd4dd7f896577a77ab8..90c05cb3581e0b536eaae2101da836538cada344 100644 --- a/src/plugins/wp/tests/wp_plugin/loop.i.0.report.json +++ b/src/plugins/wp/tests/wp_plugin/loop.i.0.report.json @@ -3,40 +3,43 @@ "qed": { "total": 3, "valid": 3 }, "wp:main": { "total": 9, "valid": 8, "unknown": 1, "rank": 22 } }, - "wp:functions": { "init": { "init_loop_inv_qed_ok_2": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 8 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 2, - "valid": 2, - "rank": 8 } }, - "init_loop_inv_qed_ok": { "alt-ergo": { "total": 2, + "wp:functions": { "init": { "init_loop_invariant_qed_ok_2": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 9 }, + "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 2, "valid": 2, - "rank": 5 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 5 } }, - "init_assign": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "init_loop_assign": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 22 }, - "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 3, - "valid": 3, - "rank": 22 } }, - "init_post_qed_ok": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 7 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 7 } }, + "rank": 9 } }, + "init_loop_invariant_qed_ok": { "alt-ergo": + { "total": 2, + "valid": 2, + "rank": 5 }, + "wp:main": + { "total": 2, + "valid": 2, + "rank": 5 } }, + "init_assigns": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, + "init_loop_assigns": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 22 }, + "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 3, + "valid": 3, + "rank": 22 } }, + "init_ensures_qed_ok": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 8 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 8 } }, "wp:section": { "alt-ergo": { "total": 6, "valid": 5, "unknown": 1, diff --git a/src/plugins/wp/tests/wp_plugin/loopcurrent.i.0.report.json b/src/plugins/wp/tests/wp_plugin/loopcurrent.i.0.report.json index b40be97730851728a5b6fcdaa218e34354e2ea47..a4b1808ed9992cba37a7296ea0dc3c6e31d556e3 100644 --- a/src/plugins/wp/tests/wp_plugin/loopcurrent.i.0.report.json +++ b/src/plugins/wp/tests/wp_plugin/loopcurrent.i.0.report.json @@ -1,12 +1,13 @@ { "wp:global": { "qed": { "total": 4, "valid": 4 }, "wp:main": { "total": 4, "valid": 4 } }, - "wp:functions": { "f": { "f_loop_inv_2": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, - "f_loop_inv": { "qed": { "total": 2, "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, + "wp:functions": { "f": { "f_loop_invariant_2": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, + "f_loop_invariant": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, "wp:section": { "qed": { "total": 4, "valid": 4 }, "wp:main": { "total": 4, "valid": 4 } } } } } diff --git a/src/plugins/wp/tests/wp_plugin/loopentry.i.0.report.json b/src/plugins/wp/tests/wp_plugin/loopentry.i.0.report.json index b40be97730851728a5b6fcdaa218e34354e2ea47..a4b1808ed9992cba37a7296ea0dc3c6e31d556e3 100644 --- a/src/plugins/wp/tests/wp_plugin/loopentry.i.0.report.json +++ b/src/plugins/wp/tests/wp_plugin/loopentry.i.0.report.json @@ -1,12 +1,13 @@ { "wp:global": { "qed": { "total": 4, "valid": 4 }, "wp:main": { "total": 4, "valid": 4 } }, - "wp:functions": { "f": { "f_loop_inv_2": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, - "f_loop_inv": { "qed": { "total": 2, "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, + "wp:functions": { "f": { "f_loop_invariant_2": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, + "f_loop_invariant": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, "wp:section": { "qed": { "total": 4, "valid": 4 }, "wp:main": { "total": 4, "valid": 4 } } } } } diff --git a/src/plugins/wp/tests/wp_plugin/mask.i.0.report.json b/src/plugins/wp/tests/wp_plugin/mask.i.0.report.json index c26b682a42f6d29b0f7a90feb45381e43f5542ed..b6fbb01b2b7c160c1fa6a3c1e53cb7c5cbb51084 100644 --- a/src/plugins/wp/tests/wp_plugin/mask.i.0.report.json +++ b/src/plugins/wp/tests/wp_plugin/mask.i.0.report.json @@ -1,13 +1,13 @@ { "wp:global": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } }, - "wp:functions": { "compute": { "compute_post_B": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "compute_post_A": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "compute": { "compute_ensures_B": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "compute_ensures_A": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, diff --git a/src/plugins/wp/tests/wp_plugin/oracle/combined.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/combined.res.oracle index 299e5c4b1a5a9d3ef52579e0104f2e788c80b53b..c8a980291364c79ed27ab5f1a70676174e4b91f0 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/combined.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/combined.res.oracle @@ -7,7 +7,7 @@ Function job ------------------------------------------------------------ -Goal Assertion (file tests/wp_plugin/combined.c, line 26): +Goal Assertion (file tests/wp_plugin/combined.c, line 27): Assume { Type: is_sint32(A). (* Heap *) @@ -17,7 +17,7 @@ Prove: (50 <= A) /\ (A <= 100). ------------------------------------------------------------ -Goal Preservation of Invariant (file tests/wp_plugin/combined.c, line 28): +Goal Preservation of Invariant (file tests/wp_plugin/combined.c, line 29): Assume { Type: is_sint32(A) /\ is_sint32(i) /\ is_sint32(v) /\ is_sint32(1 + i). (* Heap *) @@ -39,12 +39,12 @@ Prove: (-1) <= i. ------------------------------------------------------------ -Goal Establishment of Invariant (file tests/wp_plugin/combined.c, line 28): +Goal Establishment of Invariant (file tests/wp_plugin/combined.c, line 29): Prove: true. ------------------------------------------------------------ -Goal Preservation of Invariant (file tests/wp_plugin/combined.c, line 29): +Goal Preservation of Invariant (file tests/wp_plugin/combined.c, line 30): Let a = havoc(Mint_undef_0, Mint_0, shift_sint32(t, 0), 50). Assume { Type: is_sint32(A) /\ is_sint32(i) /\ is_sint32(v) /\ is_sint32(1 + i). @@ -68,12 +68,12 @@ Prove: P_P(a[shift_sint32(t, i) <- v][shift_sint32(t, i_1)]). ------------------------------------------------------------ -Goal Establishment of Invariant (file tests/wp_plugin/combined.c, line 29): +Goal Establishment of Invariant (file tests/wp_plugin/combined.c, line 30): Prove: true. ------------------------------------------------------------ -Goal Preservation of Invariant (file tests/wp_plugin/combined.c, line 34): +Goal Preservation of Invariant (file tests/wp_plugin/combined.c, line 35): Let x = 1 + j. Assume { Type: is_sint32(A) /\ is_sint32(i) /\ is_sint32(j) /\ is_sint32(x). @@ -98,12 +98,12 @@ Prove: A <= x. ------------------------------------------------------------ -Goal Establishment of Invariant (file tests/wp_plugin/combined.c, line 34): +Goal Establishment of Invariant (file tests/wp_plugin/combined.c, line 35): Prove: true. ------------------------------------------------------------ -Goal Assertion (file tests/wp_plugin/combined.c, line 39): +Goal Assertion (file tests/wp_plugin/combined.c, line 40): Let a = havoc(Mint_undef_1, Mint_0, shift_sint32(t, 0), 50). Assume { Type: is_sint32(A) /\ is_sint32(i_1) /\ is_sint32(j). @@ -130,36 +130,36 @@ Prove: P_P(havoc(Mint_undef_0, a, shift_sint32(t, A), 100 - A) ------------------------------------------------------------ -Goal Loop assigns (file tests/wp_plugin/combined.c, line 30) (1/3): +Goal Loop assigns (file tests/wp_plugin/combined.c, line 31) (1/3): Prove: true. ------------------------------------------------------------ -Goal Loop assigns (file tests/wp_plugin/combined.c, line 30) (2/3): -Effect at line 32 +Goal Loop assigns (file tests/wp_plugin/combined.c, line 31) (2/3): +Effect at line 33 Prove: true. ------------------------------------------------------------ -Goal Loop assigns (file tests/wp_plugin/combined.c, line 30) (3/3): -Call Result at line 32 +Goal Loop assigns (file tests/wp_plugin/combined.c, line 31) (3/3): +Call Result at line 33 Prove: true. ------------------------------------------------------------ -Goal Loop assigns (file tests/wp_plugin/combined.c, line 35) (1/3): +Goal Loop assigns (file tests/wp_plugin/combined.c, line 36) (1/3): Prove: true. ------------------------------------------------------------ -Goal Loop assigns (file tests/wp_plugin/combined.c, line 35) (2/3): -Effect at line 37 +Goal Loop assigns (file tests/wp_plugin/combined.c, line 36) (2/3): +Effect at line 38 Prove: true. ------------------------------------------------------------ -Goal Loop assigns (file tests/wp_plugin/combined.c, line 35) (3/3): -Call Result at line 37 +Goal Loop assigns (file tests/wp_plugin/combined.c, line 36) (3/3): +Call Result at line 38 Let a = shift_sint32(t, j). Assume { Type: is_sint32(A) /\ is_sint32(i) /\ is_sint32(j). diff --git a/src/plugins/wp/tests/wp_plugin/oracle/float_model.0.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/float_model.0.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..a711e372d35c558c31793e43e593b585c74d4731 --- /dev/null +++ b/src/plugins/wp/tests/wp_plugin/oracle/float_model.0.res.oracle @@ -0,0 +1,58 @@ +# frama-c -wp -wp-model 'Typed (Real)' [...] +[kernel] Parsing tests/wp_plugin/float_model.i (no preprocessing) +[kernel] tests/wp_plugin/float_model.i:10: Warning: + parsing obsolete ACSL construct 'logic declaration'. 'an axiomatic block' should be used instead. +[kernel:parser:decimal-float] tests/wp_plugin/float_model.i:28: Warning: + Floating-point constant 2.1 is not represented exactly. Will use 0x1.0cccccccccccdp1. + (warn-once: no further messages from category 'parser:decimal-float' will be emitted) +[wp] Running WP plugin... +[wp] Loading driver 'share/wp.driver' +[wp] Warning: Missing RTE guards +------------------------------------------------------------ + Function job +------------------------------------------------------------ + +Goal Post-condition 'ACSL_R' in 'job': +Prove: P_P((21.0/10)). + +------------------------------------------------------------ + +Goal Post-condition 'ACSL_F' in 'job': +Prove: P_P((21.0/10)). + +------------------------------------------------------------ + +Goal Post-condition 'ACSL_FR' in 'job': +Prove: P_P((21.0/10)). + +------------------------------------------------------------ + +Goal Post-condition 'ACSL_DR' in 'job': +Prove: P_P((21.0/10)). + +------------------------------------------------------------ + +Goal Post-condition 'ACSL_DF' in 'job': +Prove: P_P((21.0/10)). + +------------------------------------------------------------ + +Goal Post-condition 'C_FD' in 'job': +Prove: P_P((21.0/10)). + +------------------------------------------------------------ + +Goal Post-condition 'C_FF' in 'job': +Prove: P_P((21.0/10)). + +------------------------------------------------------------ + +Goal Post-condition 'C_DD' in 'job': +Prove: P_P((21.0/10)). + +------------------------------------------------------------ + +Goal Post-condition 'C_DF' in 'job': +Prove: P_P((21.0/10)). + +------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_plugin/oracle/float_model.1.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/float_model.1.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..55eefc41f89dc07ca8ef43882bed889ce252e363 --- /dev/null +++ b/src/plugins/wp/tests/wp_plugin/oracle/float_model.1.res.oracle @@ -0,0 +1,58 @@ +# frama-c -wp -wp-model 'Typed' [...] +[kernel] Parsing tests/wp_plugin/float_model.i (no preprocessing) +[kernel] tests/wp_plugin/float_model.i:10: Warning: + parsing obsolete ACSL construct 'logic declaration'. 'an axiomatic block' should be used instead. +[kernel:parser:decimal-float] tests/wp_plugin/float_model.i:28: Warning: + Floating-point constant 2.1 is not represented exactly. Will use 0x1.0cccccccccccdp1. + (warn-once: no further messages from category 'parser:decimal-float' will be emitted) +[wp] Running WP plugin... +[wp] Loading driver 'share/wp.driver' +[wp] Warning: Missing RTE guards +------------------------------------------------------------ + Function job +------------------------------------------------------------ + +Goal Post-condition 'ACSL_R' in 'job': +Prove: P_P((21.0/10)). + +------------------------------------------------------------ + +Goal Post-condition 'ACSL_F' in 'job': +Prove: P_P((4404019.0/2097152)). + +------------------------------------------------------------ + +Goal Post-condition 'ACSL_FR' in 'job': +Prove: P_P((4404019.0/2097152)). + +------------------------------------------------------------ + +Goal Post-condition 'ACSL_DR' in 'job': +Prove: P_P((4728779608739021.0/2251799813685248)). + +------------------------------------------------------------ + +Goal Post-condition 'ACSL_DF' in 'job': +Prove: P_P((4404019.0/2097152)). + +------------------------------------------------------------ + +Goal Post-condition 'C_FD' in 'job': +Prove: P_P((4404019.0/2097152)). + +------------------------------------------------------------ + +Goal Post-condition 'C_FF' in 'job': +Prove: P_P((4404019.0/2097152)). + +------------------------------------------------------------ + +Goal Post-condition 'C_DD' in 'job': +Prove: P_P((4728779608739021.0/2251799813685248)). + +------------------------------------------------------------ + +Goal Post-condition 'C_DF' in 'job': +Prove: P_P((4404019.0/2097152)). + +------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_plugin/oracle/float_real.0.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/float_real.0.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..7e9d87ee00d3dd9b55bebc69d8dca822bcc85c19 --- /dev/null +++ b/src/plugins/wp/tests/wp_plugin/oracle/float_real.0.res.oracle @@ -0,0 +1,26 @@ +# frama-c -wp -wp-model 'Typed (Real)' [...] +[kernel] Parsing tests/wp_plugin/float_real.i (no preprocessing) +[kernel:parser:decimal-float] tests/wp_plugin/float_real.i:19: Warning: + Floating-point constant 1e-5 is not represented exactly. Will use 0x1.4f8b588e368f1p-17. + (warn-once: no further messages from category 'parser:decimal-float' will be emitted) +[wp] Running WP plugin... +[wp] Loading driver 'share/wp.driver' +[wp] Warning: Missing RTE guards +------------------------------------------------------------ + Function dequal +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_plugin/float_real.i, line 14) in 'dequal': +Assume { + Type: is_sint32(dequal_0). + If x < ((1.0/100000) + y) + Then { + If y < ((1.0/100000) + x) + Then { (* Return *) Have: dequal_0 = 1. } + Else { (* Return *) Have: dequal_0 = 0. } + } + Else { (* Return *) Have: dequal_0 = 0. } +} +Prove: (abs_real(x - y) < (1.0/100000)) <-> (dequal_0 != 0). + +------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_plugin/oracle/float_real.1.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/float_real.1.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..bd279cccc874f2274d8dfb05d4b76eb7d82e8dac --- /dev/null +++ b/src/plugins/wp/tests/wp_plugin/oracle/float_real.1.res.oracle @@ -0,0 +1,28 @@ +# frama-c -wp -wp-model 'Typed' [...] +[kernel] Parsing tests/wp_plugin/float_real.i (no preprocessing) +[kernel:parser:decimal-float] tests/wp_plugin/float_real.i:19: Warning: + Floating-point constant 1e-5 is not represented exactly. Will use 0x1.4f8b588e368f1p-17. + (warn-once: no further messages from category 'parser:decimal-float' will be emitted) +[wp] Running WP plugin... +[wp] Loading driver 'share/wp.driver' +[wp] Warning: Missing RTE guards +------------------------------------------------------------ + Function dequal +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_plugin/float_real.i, line 14) in 'dequal': +Assume { + Type: is_sint32(dequal_0). + If lt_f64(add_f64(x, neg_f64(y)), + to_f64((5902958103587057.0/590295810358705651712))) + Then { + If lt_f64(to_f64((-5902958103587057.0/590295810358705651712)), + add_f64(x, neg_f64(y))) + Then { (* Return *) Have: dequal_0 = 1. } + Else { (* Return *) Have: dequal_0 = 0. } + } + Else { (* Return *) Have: dequal_0 = 0. } +} +Prove: (abs_real(of_f64(x) - of_f64(y)) < (1.0/100000)) <-> (dequal_0 != 0). + +------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_plugin/oracle/model.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/model.res.oracle index e4895b6ff2085b7d10103a85a0dbccf3fdc42cbc..020f948d3ecbda05e4fd61ae4029351442ec5c5f 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/model.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/model.res.oracle @@ -7,13 +7,13 @@ [wp] Warning: Missing RTE guards [wp] 1 goal scheduled --------------------------------------------- ---- File 'typed/f_post.ergo' +--- File 'typed/f_ensures.ergo' --------------------------------------------- (* ---------------------------------------------------------- *) (* --- Post-condition (file tests/wp_plugin/model.i, line 13) in 'f' --- *) (* ---------------------------------------------------------- *) -goal f_post: +goal f_ensures: forall i : int. forall t : (addr,int) farray. forall a : addr. @@ -59,13 +59,13 @@ Prove: P_P(x). [wp] Running WP plugin... [wp] 2 goals scheduled --------------------------------------------- ---- File 'typed_ref/f_post.ergo' +--- File 'typed_ref/f_ensures.ergo' --------------------------------------------- (* ---------------------------------------------------------- *) (* --- Post-condition (file tests/wp_plugin/model.i, line 13) in 'f' --- *) (* ---------------------------------------------------------- *) -goal f_post: +goal f_ensures: forall i : int. forall t : (addr,int) farray. forall a : addr. @@ -94,13 +94,13 @@ function shift_sint32(p:addr, k:int) : addr = shift(p, k) logic P_P : int -> prop --------------------------------------------- ---- File 'typed/f_post.ergo' +--- File 'typed/f_ensures.ergo' --------------------------------------------- (* ---------------------------------------------------------- *) (* --- Post-condition (file tests/wp_plugin/model.i, line 13) in 'f' --- *) (* ---------------------------------------------------------- *) -goal f_post: +goal f_ensures: forall i : int. forall t : (addr,int) farray. forall a : addr. diff --git a/src/plugins/wp/tests/wp_plugin/oracle/rte.0.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/rte.0.res.oracle index 62e3a1148bd59a3258e2d20b4fbc23e2892bfb13..00dfe9f2904865a995c497204fcbe1dee0d229d1 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/rte.0.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/rte.0.res.oracle @@ -18,14 +18,14 @@ Option -wp-bool-range incompatiable with RTE (ignored) [wp] tests/wp_plugin/rte.i:34: Warning: Option -wp-bool-range incompatiable with RTE (ignored) -[wp] Goal typed_job_post : not tried +[wp] Goal typed_job_ensures : not tried [wp] Goal typed_job_assert_rte_mem_access : not tried [wp] Goal typed_job_assert_rte_mem_access_2 : not tried [wp] Goal typed_job_assert_rte_signed_overflow : not tried [wp] Goal typed_job_assert_rte_signed_overflow_2 : not tried [wp] Goal typed_job_assert_rte_mem_access_3 : not tried -[wp] Goal typed_job2_post : not tried -[wp] Goal typed_job3_post : not tried +[wp] Goal typed_job2_ensures : not tried +[wp] Goal typed_job3_ensures : not tried [wp] Goal typed_job3_assert_rte_bool_value : not tried /* Generated by Frama-C */ /*@ axiomatic Obs { diff --git a/src/plugins/wp/tests/wp_plugin/oracle/rte.1.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/rte.1.res.oracle index 374febf67ef7f9ac074f99bc77cc5b7c6752ce58..6468854c8f02b824a96b9c98a8e5475e265b11d2 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/rte.1.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/rte.1.res.oracle @@ -11,12 +11,12 @@ [wp:rte] function job3: generate rte for memory access [wp:rte] function job3: generate rte for division by zero [rte] annotating function job3 -[wp] Goal typed_job_post : not tried +[wp] Goal typed_job_ensures : not tried [wp] Goal typed_job_assert_rte_mem_access : not tried [wp] Goal typed_job_assert_rte_mem_access_2 : not tried [wp] Goal typed_job_assert_rte_mem_access_3 : not tried -[wp] Goal typed_job2_post : not tried -[wp] Goal typed_job3_post : not tried +[wp] Goal typed_job2_ensures : not tried +[wp] Goal typed_job3_ensures : not tried [wp] Goal typed_job3_assert_rte_bool_value : not tried /* Generated by Frama-C */ /*@ axiomatic Obs { diff --git a/src/plugins/wp/tests/wp_plugin/oracle/rte.2.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/rte.2.res.oracle index 200d47c9730cbfcf6a813961a0d4c00ad29ae977..435bd15de2dd4548bf68167a5c121096acbf0443 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/rte.2.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/rte.2.res.oracle @@ -17,16 +17,16 @@ [wp:rte] function job3: generate rte for signed overflow [wp:rte] function job3: generate rte for unsigned overflow [rte] annotating function job3 -[wp] Goal typed_job_post : not tried +[wp] Goal typed_job_ensures : not tried [wp] Goal typed_job_assert_rte_mem_access : not tried [wp] Goal typed_job_assert_rte_mem_access_2 : not tried [wp] Goal typed_job_assert_rte_signed_overflow : not tried [wp] Goal typed_job_assert_rte_signed_overflow_2 : not tried [wp] Goal typed_job_assert_rte_mem_access_3 : not tried -[wp] Goal typed_job2_post : not tried +[wp] Goal typed_job2_ensures : not tried [wp] Goal typed_job2_assert_rte_unsigned_overflow : not tried [wp] Goal typed_job2_assert_rte_unsigned_overflow_2 : not tried -[wp] Goal typed_job3_post : not tried +[wp] Goal typed_job3_ensures : not tried [wp] Goal typed_job3_assert_rte_bool_value : not tried /* Generated by Frama-C */ /*@ axiomatic Obs { diff --git a/src/plugins/wp/tests/wp_plugin/oracle/rte.3.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/rte.3.res.oracle index 96369633975b7b27cd790672bb88d1710a4a81e2..0f7bf5b438530ec71343d9ad13f7699f140ff179 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/rte.3.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/rte.3.res.oracle @@ -17,14 +17,14 @@ [wp:rte] function job3: generate rte for division by zero [wp:rte] function job3: generate rte for signed overflow [rte] annotating function job3 -[wp] Goal typed_nat_job_post : not tried +[wp] Goal typed_nat_job_ensures : not tried [wp] Goal typed_nat_job_assert_rte_mem_access : not tried [wp] Goal typed_nat_job_assert_rte_mem_access_2 : not tried [wp] Goal typed_nat_job_assert_rte_signed_overflow : not tried [wp] Goal typed_nat_job_assert_rte_signed_overflow_2 : not tried [wp] Goal typed_nat_job_assert_rte_mem_access_3 : not tried -[wp] Goal typed_nat_job2_post : not tried -[wp] Goal typed_nat_job3_post : not tried +[wp] Goal typed_nat_job2_ensures : not tried +[wp] Goal typed_nat_job3_ensures : not tried [wp] Goal typed_nat_job3_assert_rte_bool_value : not tried /* Generated by Frama-C */ /*@ axiomatic Obs { diff --git a/src/plugins/wp/tests/wp_plugin/oracle/rte.4.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/rte.4.res.oracle index c02378921b3db46b641883a0f71d05aede70e598..f2b78e1cab7eadf8dd166e940fe39f17721e4a3c 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/rte.4.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/rte.4.res.oracle @@ -19,16 +19,16 @@ [wp:rte] function job3: generate rte for signed overflow [wp:rte] function job3: generate rte for unsigned overflow [rte] annotating function job3 -[wp] Goal typed_nat_job_post : not tried +[wp] Goal typed_nat_job_ensures : not tried [wp] Goal typed_nat_job_assert_rte_mem_access : not tried [wp] Goal typed_nat_job_assert_rte_mem_access_2 : not tried [wp] Goal typed_nat_job_assert_rte_signed_overflow : not tried [wp] Goal typed_nat_job_assert_rte_signed_overflow_2 : not tried [wp] Goal typed_nat_job_assert_rte_mem_access_3 : not tried -[wp] Goal typed_nat_job2_post : not tried +[wp] Goal typed_nat_job2_ensures : not tried [wp] Goal typed_nat_job2_assert_rte_unsigned_overflow : not tried [wp] Goal typed_nat_job2_assert_rte_unsigned_overflow_2 : not tried -[wp] Goal typed_nat_job3_post : not tried +[wp] Goal typed_nat_job3_ensures : not tried [wp] Goal typed_nat_job3_assert_rte_bool_value : not tried /* Generated by Frama-C */ /*@ axiomatic Obs { diff --git a/src/plugins/wp/tests/wp_plugin/oracle/rte.5.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/rte.5.res.oracle index cf241996746da52a0c09d24fc474eebb95833238..f171879c60095d87502ac5e2b4cfaf1d27783e91 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/rte.5.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/rte.5.res.oracle @@ -12,6 +12,6 @@ [wp:rte] function job3: missing rte for memory access [wp:rte] function job3: missing rte for division by zero [wp:rte] function job3: missing rte for signed overflow -[wp] Goal typed_nat_job_post : not tried -[wp] Goal typed_nat_job2_post : not tried -[wp] Goal typed_nat_job3_post : not tried +[wp] Goal typed_nat_job_ensures : not tried +[wp] Goal typed_nat_job2_ensures : not tried +[wp] Goal typed_nat_job3_ensures : not tried diff --git a/src/plugins/wp/tests/wp_plugin/oracle/rte.6.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/rte.6.res.oracle index 0bd8710d2eebd5cc2fd12ceb51ecd5d461707d88..892f3d6443df55894205cbbb0aefde7cd301ec57 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/rte.6.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/rte.6.res.oracle @@ -16,9 +16,9 @@ [wp:rte] function job3: generate rte for signed overflow [rte] annotating function job3 [wp] Warning: Missing RTE guards -[wp] Goal typed_nat_job_post : not tried +[wp] Goal typed_nat_job_ensures : not tried [wp] Goal typed_nat_job_assert_rte_signed_overflow : not tried [wp] Goal typed_nat_job_assert_rte_signed_overflow_2 : not tried -[wp] Goal typed_nat_job2_post : not tried -[wp] Goal typed_nat_job3_post : not tried +[wp] Goal typed_nat_job2_ensures : not tried +[wp] Goal typed_nat_job3_ensures : not tried [wp] Goal typed_nat_job3_assert_rte_bool_value : not tried diff --git a/src/plugins/wp/tests/wp_plugin/oracle/stmt.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/stmt.res.oracle index 26fb0eb1308e23b0df7b48901f24934b2563c490..9b3f58137ab19c66fa595e002fc86b4c5e998843 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/stmt.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/stmt.res.oracle @@ -2,15 +2,15 @@ [kernel] Parsing tests/wp_plugin/stmt.c (with preprocessing) [wp] Running WP plugin... [wp] Loading driver 'share/wp.driver' -[wp] [CFG] Goal f_stmt_exit : Valid (Unreachable) -[wp] [CFG] Goal g_stmt_exit : Valid (Unreachable) -[wp] [CFG] Goal g_stmt_assign : Valid (Unreachable) -[wp] [CFG] Goal g_stmt_post : Valid (Unreachable) -[wp] [CFG] Goal g_stmt_exit : Valid (Unreachable) -[wp] [CFG] Goal h_stmt_exit : Valid (Unreachable) -[wp] [CFG] Goal h_stmt_assign : Valid (Unreachable) -[wp] [CFG] Goal h_stmt_post : Valid (Unreachable) -[wp] [CFG] Goal h_stmt_exit : Valid (Unreachable) +[wp] [CFG] Goal f_exits : Valid (Unreachable) +[wp] [CFG] Goal g_exits : Valid (Unreachable) +[wp] [CFG] Goal g_assigns : Valid (Unreachable) +[wp] [CFG] Goal g_ensures : Valid (Unreachable) +[wp] [CFG] Goal g_exits : Valid (Unreachable) +[wp] [CFG] Goal h_exits : Valid (Unreachable) +[wp] [CFG] Goal h_assigns : Valid (Unreachable) +[wp] [CFG] Goal h_ensures : Valid (Unreachable) +[wp] [CFG] Goal h_exits : Valid (Unreachable) [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function f diff --git a/src/plugins/wp/tests/wp_plugin/oracle/unfold_assigns.0.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/unfold_assigns.0.res.oracle index 4d7fcca6dd0af490ee9c9e908e7e1ccda32129a1..562b4a5e1cf94fc4de3fe2fbc20a460ffff3e85b 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/unfold_assigns.0.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/unfold_assigns.0.res.oracle @@ -75,3 +75,73 @@ Call Effect at line 30 Prove: true. ------------------------------------------------------------ +------------------------------------------------------------ + Function USE_ASSIGN_UNFOLD_KO +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_plugin/unfold_assigns.i, line 48) in 'USE_ASSIGN_UNFOLD_KO': +Let a = Load_S1_S(q, Mint_0). +Let a_1 = Load_S1_S(q, havoc(Mint_undef_0, Mint_0, p, 2)). +Assume { + Type: IsS1_S(a) /\ IsS1_S(a_1). + (* Goal *) + When: separated(p, 2, q, 2). + (* Heap *) + Have: (region(p.base) <= 0) /\ (region(q.base) <= 0) /\ linked(Malloc_0). +} +Prove: EqS1_S(a_1, a). + +------------------------------------------------------------ + +Goal Assigns (file tests/wp_plugin/unfold_assigns.i, line 49) in 'USE_ASSIGN_UNFOLD_KO': +Call Effect at line 53 +Assume { + (* Goal *) + When: !invalid(Malloc_0, p, 2). + (* Heap *) + Have: (region(p.base) <= 0) /\ (region(q.base) <= 0) /\ linked(Malloc_0). +} +Prove: false. + +------------------------------------------------------------ + +Goal Assigns (file tests/wp_plugin/unfold_assigns.i, line 49) in 'USE_ASSIGN_UNFOLD_KO': +Call Effect at line 53 +Assume { + (* Goal *) + When: !invalid(Malloc_0, p, 2). + (* Heap *) + Have: (region(p.base) <= 0) /\ (region(q.base) <= 0) /\ linked(Malloc_0). +} +Prove: false. + +------------------------------------------------------------ +------------------------------------------------------------ + Function USE_ASSIGN_UNFOLD_OK +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_plugin/unfold_assigns.i, line 39) in 'USE_ASSIGN_UNFOLD_OK': +Let a = Load_S1_S(q, Mint_0). +Let a_1 = Load_S1_S(q, havoc(Mint_undef_0, Mint_0, p, 2)). +Assume { + Type: IsS1_S(a) /\ IsS1_S(a_1). + (* Goal *) + When: separated(p, 2, q, 2). + (* Heap *) + Have: (region(p.base) <= 0) /\ (region(q.base) <= 0) /\ linked(Malloc_0). +} +Prove: EqS1_S(a_1, a). + +------------------------------------------------------------ + +Goal Assigns (file tests/wp_plugin/unfold_assigns.i, line 40) in 'USE_ASSIGN_UNFOLD_OK': +Call Effect at line 44 +Prove: true. + +------------------------------------------------------------ + +Goal Assigns (file tests/wp_plugin/unfold_assigns.i, line 40) in 'USE_ASSIGN_UNFOLD_OK': +Call Effect at line 44 +Prove: true. + +------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_plugin/oracle/unfold_assigns.1.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/unfold_assigns.1.res.oracle index f4621effcb5bb8ca8d375a4465554ec20f05bb1c..b4b3786d454804de4c7b204358f23839982a9fd0 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/unfold_assigns.1.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/unfold_assigns.1.res.oracle @@ -63,3 +63,61 @@ Call Effect at line 30 Prove: true. ------------------------------------------------------------ +------------------------------------------------------------ + Function USE_ASSIGN_UNFOLD_KO +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_plugin/unfold_assigns.i, line 48) in 'USE_ASSIGN_UNFOLD_KO': +Let a = Load_S1_S(q, Mint_0). +Let a_1 = Load_S1_S(q, havoc(Mint_undef_0, Mint_0, p, 2)). +Assume { + Type: IsS1_S(a) /\ IsS1_S(a_1). + (* Goal *) + When: separated(p, 2, q, 2). + (* Heap *) + Have: (region(p.base) <= 0) /\ (region(q.base) <= 0) /\ linked(Malloc_0). +} +Prove: EqS1_S(a_1, a). + +------------------------------------------------------------ + +Goal Assigns (file tests/wp_plugin/unfold_assigns.i, line 49) in 'USE_ASSIGN_UNFOLD_KO': +Call Effect at line 53 +Prove: true. + +------------------------------------------------------------ + +Goal Assigns (file tests/wp_plugin/unfold_assigns.i, line 49) in 'USE_ASSIGN_UNFOLD_KO': +Call Effect at line 53 +Prove: true. + +------------------------------------------------------------ +------------------------------------------------------------ + Function USE_ASSIGN_UNFOLD_OK +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_plugin/unfold_assigns.i, line 39) in 'USE_ASSIGN_UNFOLD_OK': +Let a = Load_S1_S(q, Mint_0). +Let a_1 = Load_S1_S(q, havoc(Mint_undef_0, Mint_0, p, 2)). +Assume { + Type: IsS1_S(a) /\ IsS1_S(a_1). + (* Goal *) + When: separated(p, 2, q, 2). + (* Heap *) + Have: (region(p.base) <= 0) /\ (region(q.base) <= 0) /\ linked(Malloc_0). +} +Prove: EqS1_S(a_1, a). + +------------------------------------------------------------ + +Goal Assigns (file tests/wp_plugin/unfold_assigns.i, line 40) in 'USE_ASSIGN_UNFOLD_OK': +Call Effect at line 44 +Prove: true. + +------------------------------------------------------------ + +Goal Assigns (file tests/wp_plugin/unfold_assigns.i, line 40) in 'USE_ASSIGN_UNFOLD_OK': +Call Effect at line 44 +Prove: true. + +------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_plugin/oracle/unroll.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/unroll.res.oracle index 8d5a5a6770c0b497d5a7918fbe3d00673793a296..77e0cc1a55cb4eb7c18dd43d751316168bfc3385 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/unroll.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/unroll.res.oracle @@ -6,7 +6,7 @@ [wp] tests/wp_plugin/unroll.i:20: Warning: Missing assigns clause (assigns 'everything' instead) [wp] 1 goal scheduled -[wp] [Tactical] Goal typed_unrolled_loop_post_zero : Valid +[wp] [Tactical] Goal typed_unrolled_loop_ensures_zero : Valid [wp] Proved goals: 1 / 1 Qed: 0 Script: 1 diff --git a/src/plugins/wp/tests/wp_plugin/oracle/unsigned.err.oracle b/src/plugins/wp/tests/wp_plugin/oracle/unsigned.err.oracle new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/src/plugins/wp/tests/wp_plugin/oracle/unsigned.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/unsigned.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..e7238623044f48af8abeae9895e9a68e455001b3 --- /dev/null +++ b/src/plugins/wp/tests/wp_plugin/oracle/unsigned.res.oracle @@ -0,0 +1,18 @@ +# frama-c -wp [...] +[kernel] Parsing tests/wp_plugin/unsigned.i (no preprocessing) +[wp] Running WP plugin... +[wp] Loading driver 'share/wp.driver' +[wp] 1 goal scheduled +[wp] [Tactical] Goal typed_lemma_U32 : Valid +[wp] Proved goals: 1 / 1 + Qed: 0 + Script: 1 +------------------------------------------------------------ + Global +------------------------------------------------------------ + +Lemma U32: +Prove: (is_uint32 x_0) -> ((land 4294967295 x_0)=x_0) +Prover Tactical returns Valid + +------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/abs.0.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/abs.0.res.oracle index 73c826cc4aaee140fd1f5d17f2b9fb6a130f2af1..1e817d3077d7487693e557b8bf7f1a0eef442725 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/abs.0.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/abs.0.res.oracle @@ -4,7 +4,7 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled -[wp] [Alt-Ergo] Goal typed_abs_abs_post : Valid +[wp] [Alt-Ergo] Goal typed_abs_abs_ensures : Valid [wp] Proved goals: 1 / 1 Qed: 0 Alt-Ergo: 1 diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/abs.1.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/abs.1.res.oracle index 550fd580113eb35c870f99aa7b587150385abc78..da2e3b662c963251c7f6ac368a2714607b8ec0e6 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/abs.1.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/abs.1.res.oracle @@ -4,8 +4,8 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled -[wp] [Coq] Goal typed_abs_abs_post : Saved script -[wp] [Coq] Goal typed_abs_abs_post : Valid +[wp] [Coq] Goal typed_abs_abs_ensures : Saved script +[wp] [Coq] Goal typed_abs_abs_ensures : Valid [wp] Proved goals: 1 / 1 Qed: 0 Coq: 1 diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/abs.2.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/abs.2.res.oracle index 6e07f21393a348fdad690c8d460a82006f7a38a2..45650ee45adf5e7a651050fc1fe87b9707e005a0 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/abs.2.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/abs.2.res.oracle @@ -4,7 +4,7 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled -[wp] [alt-ergo] Goal typed_abs_abs_post : Valid +[wp] [alt-ergo] Goal typed_abs_abs_ensures : Valid [wp] Proved goals: 1 / 1 Qed: 0 alt-ergo: 1 diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/asm.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/asm.res.oracle index b59e4faa7521d1ba61dd5a788b4f4ad052ba83c7..07c476c9ce818006974d6ddf657ad7642b753f66 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/asm.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/asm.res.oracle @@ -6,7 +6,7 @@ [wp] 3 goals scheduled [wp] [Qed] Goal typed_main_assert_OK : Valid [wp] [Alt-Ergo] Goal typed_main_assert_KO : Unknown -[wp] [Alt-Ergo] Goal typed_main_stmt_assign : Unknown +[wp] [Alt-Ergo] Goal typed_main_assigns : Unknown [wp] Proved goals: 1 / 3 Qed: 1 Alt-Ergo: 0 (unknown: 2) diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/bool.0.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/bool.0.res.oracle index b2cf1f74ad09c98dcbaf3dd2fde40af3a49d9b03..606944d6c95ef7f41701f7baf4198e97d50990d0 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/bool.0.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/bool.0.res.oracle @@ -4,13 +4,13 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 7 goals scheduled -[wp] [Alt-Ergo] Goal typed_band_bool_false_post : Unknown -[wp] [Qed] Goal typed_band_bool_true_post : Valid -[wp] [Alt-Ergo] Goal typed_bor_bool_false_post : Unknown -[wp] [Alt-Ergo] Goal typed_bor_bool_true_post : Valid -[wp] [Alt-Ergo] Goal typed_bxor_bool_false_post : Unknown -[wp] [Qed] Goal typed_bxor_bool_true_post : Valid -[wp] [Alt-Ergo] Goal typed_job_post : Unknown +[wp] [Alt-Ergo] Goal typed_band_bool_false_ensures : Unknown +[wp] [Qed] Goal typed_band_bool_true_ensures : Valid +[wp] [Alt-Ergo] Goal typed_bor_bool_false_ensures : Unknown +[wp] [Alt-Ergo] Goal typed_bor_bool_true_ensures : Valid +[wp] [Alt-Ergo] Goal typed_bxor_bool_false_ensures : Unknown +[wp] [Qed] Goal typed_bxor_bool_true_ensures : Valid +[wp] [Alt-Ergo] Goal typed_job_ensures : Unknown [wp] Proved goals: 3 / 7 Qed: 2 Alt-Ergo: 1 (unknown: 4) diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/bool.1.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/bool.1.res.oracle index a6b16bfedbd049b2da448bce1fa5c59a00d89009..6bcbed6d8bc5e7a4504e35264367d7194cb802e2 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/bool.1.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/bool.1.res.oracle @@ -4,13 +4,13 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 7 goals scheduled -[wp] [Alt-Ergo] Goal typed_band_bool_false_post : Valid -[wp] [Qed] Goal typed_band_bool_true_post : Valid -[wp] [Alt-Ergo] Goal typed_bor_bool_false_post : Valid -[wp] [Alt-Ergo] Goal typed_bor_bool_true_post : Valid -[wp] [Alt-Ergo] Goal typed_bxor_bool_false_post : Valid -[wp] [Qed] Goal typed_bxor_bool_true_post : Valid -[wp] [Alt-Ergo] Goal typed_job_post : Valid +[wp] [Alt-Ergo] Goal typed_band_bool_false_ensures : Valid +[wp] [Qed] Goal typed_band_bool_true_ensures : Valid +[wp] [Alt-Ergo] Goal typed_bor_bool_false_ensures : Valid +[wp] [Alt-Ergo] Goal typed_bor_bool_true_ensures : Valid +[wp] [Alt-Ergo] Goal typed_bxor_bool_false_ensures : Valid +[wp] [Qed] Goal typed_bxor_bool_true_ensures : Valid +[wp] [Alt-Ergo] Goal typed_job_ensures : Valid [wp] Proved goals: 7 / 7 Qed: 2 Alt-Ergo: 5 @@ -18,7 +18,7 @@ ------------------------------------------------------------- Functions WP Alt-Ergo Total Success job - 1 (12..24) 1 100% -bor_bool - 2 (4..16) 2 100% +bor_bool - 2 (12..24) 2 100% band_bool 1 1 (20..32) 2 100% -bxor_bool 1 1 (4..16) 2 100% +bxor_bool 1 1 (8..20) 2 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/copy.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/copy.res.oracle index 1da7721953e4da02dcf419d942580116477d2c09..7f5deafd0c144b5123461d94624167bcb8bf78b4 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/copy.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/copy.res.oracle @@ -4,21 +4,21 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 10 goals scheduled -[wp] [Alt-Ergo] Goal typed_copy_post : Valid -[wp] [Alt-Ergo] Goal typed_copy_loop_inv_Copy_preserved : Valid -[wp] [Qed] Goal typed_copy_loop_inv_Copy_established : Valid -[wp] [Alt-Ergo] Goal typed_copy_loop_inv_Range_preserved : Valid -[wp] [Qed] Goal typed_copy_loop_inv_Range_established : Valid +[wp] [Alt-Ergo] Goal typed_copy_ensures : Valid +[wp] [Alt-Ergo] Goal typed_copy_loop_invariant_Copy_preserved : Valid +[wp] [Qed] Goal typed_copy_loop_invariant_Copy_established : Valid +[wp] [Alt-Ergo] Goal typed_copy_loop_invariant_Range_preserved : Valid +[wp] [Qed] Goal typed_copy_loop_invariant_Range_established : Valid [wp] [Alt-Ergo] Goal typed_copy_assert_A : Valid [wp] [Alt-Ergo] Goal typed_copy_assert_B : Valid -[wp] [Qed] Goal typed_copy_loop_assign_part1 : Valid -[wp] [Alt-Ergo] Goal typed_copy_loop_assign_part2 : Valid -[wp] [Qed] Goal typed_copy_assign : Valid +[wp] [Qed] Goal typed_copy_loop_assigns_part1 : Valid +[wp] [Alt-Ergo] Goal typed_copy_loop_assigns_part2 : Valid +[wp] [Qed] Goal typed_copy_assigns : Valid [wp] Proved goals: 10 / 10 Qed: 4 Alt-Ergo: 6 [wp] Report 'tests/wp_plugin/copy.i.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -copy 4 6 (272..320) 10 100% +copy 4 6 (288..336) 10 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/dynamic.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/dynamic.res.oracle index 56ccd9a1c6bde78f47a6ac79c3e07806204b9979..15f401314ed824e3543507ac6c947915f700648a 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/dynamic.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/dynamic.res.oracle @@ -6,19 +6,19 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 13 goals scheduled -[wp] [Alt-Ergo] Goal typed_call_stmt_calls_f1_f2 : Valid -[wp] [Qed] Goal typed_call_post_part1 : Valid -[wp] [Qed] Goal typed_call_post_part2 : Valid -[wp] [Alt-Ergo] Goal typed_call_call_f1_pre : Valid -[wp] [Qed] Goal typed_guarded_call_stmt_calls_g : Valid -[wp] [Alt-Ergo] Goal typed_guarded_call_post_part1 : Valid -[wp] [Qed] Goal typed_guarded_call_post_part2 : Valid -[wp] [Qed] Goal typed_guarded_call_post_2_part1 : Valid -[wp] [Qed] Goal typed_guarded_call_post_2_part2 : Valid -[wp] [Qed] Goal typed_no_call_stmt_calls_unreachable_g : Valid -[wp] [Qed] Goal typed_no_call_post_part1 : Valid -[wp] [Qed] Goal typed_no_call_post_part2 : Valid -[wp] [Qed] Goal typed_no_call_call_unreachable_g_pre : Valid +[wp] [Alt-Ergo] Goal typed_call_calls_f1_f2_s3 : Valid +[wp] [Qed] Goal typed_call_ensures_part1 : Valid +[wp] [Qed] Goal typed_call_ensures_part2 : Valid +[wp] [Alt-Ergo] Goal typed_call_call_f1_requires : Valid +[wp] [Qed] Goal typed_guarded_call_calls_g_s9 : Valid +[wp] [Alt-Ergo] Goal typed_guarded_call_ensures_part1 : Valid +[wp] [Qed] Goal typed_guarded_call_ensures_part2 : Valid +[wp] [Qed] Goal typed_guarded_call_ensures_2_part1 : Valid +[wp] [Qed] Goal typed_guarded_call_ensures_2_part2 : Valid +[wp] [Qed] Goal typed_no_call_calls_unreachable_g_s17 : Valid +[wp] [Qed] Goal typed_no_call_ensures_part1 : Valid +[wp] [Qed] Goal typed_no_call_ensures_part2 : Valid +[wp] [Qed] Goal typed_no_call_call_unreachable_g_requires : Valid [wp] Proved goals: 13 / 13 Qed: 10 Alt-Ergo: 3 @@ -26,7 +26,7 @@ ------------------------------------------------------------- Functions WP Alt-Ergo Total Success call 2 2 (52..64) 4 100% -guarded_call 4 1 (8..20) 5 100% +guarded_call 4 1 (12..24) 5 100% no_call 4 - 4 100% ------------------------------------------------------------- [wp] Warning: Memory model hypotheses for function 'guarded_call': diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/f.dot b/src/plugins/wp/tests/wp_plugin/oracle_qualif/f.dot index 839228da72b6c217e33f6e9d92482736bbb08ed3..9b4f1de3952bd66b028d1df4dd8ce7f4c147085a 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/f.dot +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/f.dot @@ -2,9 +2,9 @@ digraph f { rankdir = TB ; node [ style = filled, shape = box ] ; N000 [ color = red, shape = circle, label = "*" ] ; - N074 [ color=red , label="Prove f_post" ] ; + N074 [ color=red , label="Prove f_ensures" ] ; N074 -> N000 [ style=dotted ] ; - N075 [ color=red , label="Prove f_post_2" ] ; + N075 [ color=red , label="Prove f_ensures_2" ] ; N075 -> N074 [ style=dotted ] ; N076 [ label="" , shape=circle ] ; N076 -> N075 ; @@ -54,9 +54,9 @@ digraph f { N097 -> N096 ; N098 [ label="Label wp:sid8 (Stmt s8)" ] ; N098 -> N097 ; - N099 [ color=green , label="Assume f_stmt_post" ] ; + N099 [ color=green , label="Assume f_ensures_3" ] ; N099 -> N098 ; - N100 [ color=orange , label="Havoc f_stmt_assign: + N100 [ color=orange , label="Havoc f_assigns: assigns __retres;" ] ; N100 -> N099 ; N101 [ color=lightblue , label="B-in { }" ] ; diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/f_default_for_stmt_2.dot b/src/plugins/wp/tests/wp_plugin/oracle_qualif/f_default_for_stmt_2.dot index 614347c28971929363dd0c265f44c4e874f00fc4..e5347d619f1af81ecddd15d1235eea49dbb1e2b1 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/f_default_for_stmt_2.dot +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/f_default_for_stmt_2.dot @@ -42,13 +42,13 @@ digraph f { N132 -> N131 ; N133 [ label="Label wp:sid8 (Stmt s8)" ] ; N133 -> N132 ; - N134 [ color=green , label="Assume f_stmt_post" ] ; + N134 [ color=green , label="Assume f_ensures_3" ] ; N134 -> N133 ; - N135 [ color=red , label="Assigns f_stmt_assign" ] ; + N135 [ color=red , label="Assigns f_assigns" ] ; N136 [ label="" , shape=circle ] ; N136 -> N135 ; N136 -> N134 ; - N137 [ color=red , label="Prove f_stmt_post" ] ; + N137 [ color=red , label="Prove f_ensures_3" ] ; N137 -> N136 [ style=dotted ] ; N138 [ label="" , shape=circle ] ; N138 -> N137 ; diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/flash.0.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/flash.0.res.oracle index 463183dead7dac70e70770e6da7273668891eb4c..94e4b5d38162d1674edec315e1a9a287d5455566 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/flash.0.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/flash.0.res.oracle @@ -4,12 +4,12 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 6 goals scheduled -[wp] [Qed] Goal typed_job_post_Events : Valid -[wp] [Alt-Ergo] Goal typed_job_post_A_reads : Unknown -[wp] [Alt-Ergo] Goal typed_job_post_B_reads : Unknown -[wp] [Alt-Ergo] Goal typed_job_post_B_writes : Unknown -[wp] [Alt-Ergo] Goal typed_job_post_ReadValues : Unknown -[wp] [Alt-Ergo] Goal typed_job_post_WriteValues : Unknown +[wp] [Qed] Goal typed_job_ensures_Events : Valid +[wp] [Alt-Ergo] Goal typed_job_ensures_A_reads : Unknown +[wp] [Alt-Ergo] Goal typed_job_ensures_B_reads : Unknown +[wp] [Alt-Ergo] Goal typed_job_ensures_B_writes : Unknown +[wp] [Alt-Ergo] Goal typed_job_ensures_ReadValues : Unknown +[wp] [Alt-Ergo] Goal typed_job_ensures_WriteValues : Unknown [wp] Proved goals: 1 / 6 Qed: 1 Alt-Ergo: 0 (unknown: 5) diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/flash.1.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/flash.1.res.oracle index 195117fbb5e473dab77f363f433995edace86afc..0526455b58b5dc46bc8f17946d407ab15427b10b 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/flash.1.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/flash.1.res.oracle @@ -6,12 +6,12 @@ Redefinition of logic INDEX_init [wp] Warning: Missing RTE guards [wp] 6 goals scheduled -[wp] [Qed] Goal typed_flash_flash-ergo_job_post_Events : Valid -[wp] [Alt-Ergo] Goal typed_flash_flash-ergo_job_post_A_reads : Valid -[wp] [Alt-Ergo] Goal typed_flash_flash-ergo_job_post_B_reads : Valid -[wp] [Alt-Ergo] Goal typed_flash_flash-ergo_job_post_B_writes : Valid -[wp] [Alt-Ergo] Goal typed_flash_flash-ergo_job_post_ReadValues : Valid -[wp] [Alt-Ergo] Goal typed_flash_flash-ergo_job_post_WriteValues : Valid +[wp] [Qed] Goal typed_flash_flash-ergo_job_ensures_Events : Valid +[wp] [Alt-Ergo] Goal typed_flash_flash-ergo_job_ensures_A_reads : Valid +[wp] [Alt-Ergo] Goal typed_flash_flash-ergo_job_ensures_B_reads : Valid +[wp] [Alt-Ergo] Goal typed_flash_flash-ergo_job_ensures_B_writes : Valid +[wp] [Alt-Ergo] Goal typed_flash_flash-ergo_job_ensures_ReadValues : Valid +[wp] [Alt-Ergo] Goal typed_flash_flash-ergo_job_ensures_WriteValues : Valid [wp] Proved goals: 6 / 6 Qed: 1 Alt-Ergo: 5 diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/flash.2.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/flash.2.res.oracle index 9ebb3f526971847ed12410241e8a78634c96e214..93ab36295ede189b5f83413707fe2f79f5e44939 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/flash.2.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/flash.2.res.oracle @@ -4,12 +4,12 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 6 goals scheduled -[wp] [Qed] Goal typed_flash_job_post_Events : Valid -[wp] [Qed] Goal typed_flash_job_post_A_reads : Valid -[wp] [Qed] Goal typed_flash_job_post_B_reads : Valid -[wp] [Qed] Goal typed_flash_job_post_B_writes : Valid -[wp] [Qed] Goal typed_flash_job_post_ReadValues : Valid -[wp] [Qed] Goal typed_flash_job_post_WriteValues : Valid +[wp] [Qed] Goal typed_flash_job_ensures_Events : Valid +[wp] [Qed] Goal typed_flash_job_ensures_A_reads : Valid +[wp] [Qed] Goal typed_flash_job_ensures_B_reads : Valid +[wp] [Qed] Goal typed_flash_job_ensures_B_writes : Valid +[wp] [Qed] Goal typed_flash_job_ensures_ReadValues : Valid +[wp] [Qed] Goal typed_flash_job_ensures_WriteValues : Valid [wp] Proved goals: 6 / 6 Qed: 6 [wp] Report 'tests/wp_plugin/flash.c.2.report.json' diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/float_format.0.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/float_format.0.res.oracle index 7d048ababa304bb178ea39ab34550c7cab67870e..b7b96a6671885c7a7520af8435f44eae9e3e2e4a 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/float_format.0.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/float_format.0.res.oracle @@ -7,8 +7,8 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled -[wp] [Coq] Goal typed_output_post_KO : Default tactic -[wp] [Coq] Goal typed_output_post_KO : Unknown +[wp] [Coq] Goal typed_output_ensures_KO : Default tactic +[wp] [Coq] Goal typed_output_ensures_KO : Unknown [wp] Proved goals: 0 / 1 Coq: 0 (unknown: 1) [wp] Report 'tests/wp_plugin/float_format.i.0.report.json' diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/float_format.1.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/float_format.1.res.oracle index 51150b389c4802c954416c1f7b1e6e8a25c3a578..97b86f838a739b903ae5c37ab8f562360e1d342d 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/float_format.1.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/float_format.1.res.oracle @@ -7,7 +7,7 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled -[wp] [Alt-Ergo] Goal typed_output_post_KO : Step limit +[wp] [Alt-Ergo] Goal typed_output_ensures_KO : Step limit [wp] Proved goals: 0 / 1 Alt-Ergo: 0 (interrupted: 1) [wp] Report 'tests/wp_plugin/float_format.i.1.report.json' diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/float_format.2.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/float_format.2.res.oracle index fd1797d19c215be15bc8976cbeb6a2e1ca89bbbc..d5a6e2d19b65c96884d80ee6a92158063f4b2a35 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/float_format.2.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/float_format.2.res.oracle @@ -7,7 +7,7 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled -[wp] [alt-ergo] Goal typed_output_post_KO : Unknown +[wp] [alt-ergo] Goal typed_output_ensures_KO : Unknown [wp] Proved goals: 0 / 1 alt-ergo: 0 (unknown: 1) [wp] Report 'tests/wp_plugin/float_format.i.2.report.json' diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/float_real.0.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/float_real.0.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..374012968858e66f768f7d9849c4718d417c7403 --- /dev/null +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/float_real.0.res.oracle @@ -0,0 +1,18 @@ +# frama-c -wp -wp-model 'Typed (Real)' -wp-timeout 90 -wp-steps 1500 [...] +[kernel] Parsing tests/wp_plugin/float_real.i (no preprocessing) +[kernel:parser:decimal-float] tests/wp_plugin/float_real.i:19: Warning: + Floating-point constant 1e-5 is not represented exactly. Will use 0x1.4f8b588e368f1p-17. + (warn-once: no further messages from category 'parser:decimal-float' will be emitted) +[wp] Running WP plugin... +[wp] Loading driver 'share/wp.driver' +[wp] Warning: Missing RTE guards +[wp] 1 goal scheduled +[wp] [Alt-Ergo] Goal typed_real_dequal_ensures : Valid +[wp] Proved goals: 1 / 1 + Qed: 0 + Alt-Ergo: 1 +[wp] Report 'tests/wp_plugin/float_real.i.0.report.json' +------------------------------------------------------------- +Functions WP Alt-Ergo Total Success +dequal - 1 (12..24) 1 100% +------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/float_real.1.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/float_real.1.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..9d641a24aef9385bf3e0db628e475248c80f9187 --- /dev/null +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/float_real.1.res.oracle @@ -0,0 +1,17 @@ +# frama-c -wp -wp-model 'Typed' -wp-timeout 90 -wp-steps 1500 [...] +[kernel] Parsing tests/wp_plugin/float_real.i (no preprocessing) +[kernel:parser:decimal-float] tests/wp_plugin/float_real.i:19: Warning: + Floating-point constant 1e-5 is not represented exactly. Will use 0x1.4f8b588e368f1p-17. + (warn-once: no further messages from category 'parser:decimal-float' will be emitted) +[wp] Running WP plugin... +[wp] Loading driver 'share/wp.driver' +[wp] Warning: Missing RTE guards +[wp] 1 goal scheduled +[wp] [Alt-Ergo] Goal typed_dequal_ensures : Unknown +[wp] Proved goals: 0 / 1 + Alt-Ergo: 0 (unknown: 1) +[wp] Report 'tests/wp_plugin/float_real.i.1.report.json' +------------------------------------------------------------- +Functions WP Alt-Ergo Total Success +dequal - - 1 0.0% +------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/frame.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/frame.res.oracle index b8b11e348c6abdb2091e66cd7e7245c797c257bc..1ada5c75caf4987e62c791656845dd4e79966209 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/frame.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/frame.res.oracle @@ -4,11 +4,11 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 6 goals scheduled -[wp] [Alt-Ergo] Goal typed_alias_post_KO : Unknown -[wp] [Alt-Ergo] Goal typed_global_post_KO : Unknown -[wp] [Qed] Goal typed_local_post_FRAMED : Valid -[wp] [Alt-Ergo] Goal typed_local_post_KO : Unknown -[wp] [Alt-Ergo] Goal typed_localref_post_KO : Unknown +[wp] [Alt-Ergo] Goal typed_alias_ensures_KO : Unknown +[wp] [Alt-Ergo] Goal typed_global_ensures_KO : Unknown +[wp] [Qed] Goal typed_local_ensures_FRAMED : Valid +[wp] [Alt-Ergo] Goal typed_local_ensures_KO : Unknown +[wp] [Alt-Ergo] Goal typed_localref_ensures_KO : Unknown [wp] [Qed] Goal typed_localref_assert_FRAMED : Valid [wp] Proved goals: 2 / 6 Qed: 2 diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/g.dot b/src/plugins/wp/tests/wp_plugin/oracle_qualif/g.dot index 02cc6ec3138039fb4911139704e924eeeecbff2c..5cdbeab832713294f78f544c2edaf44cee84135c 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/g.dot +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/g.dot @@ -2,7 +2,7 @@ digraph g { rankdir = TB ; node [ style = filled, shape = box ] ; N000 [ color = red, shape = circle, label = "*" ] ; - N049 [ color=red , label="Prove g_post" ] ; + N049 [ color=red , label="Prove g_ensures_2" ] ; N049 -> N000 [ style=dotted ] ; N050 [ color=lightblue , label="F-out { a b }" ] ; N050 -> N049 ; diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/init_const.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/init_const.res.oracle index f22d561a37d82210a1d5463a115a000c4bbf4d0e..55dfd7a78b60b76a1adbec7ce6a6e88586a8ebc7 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/init_const.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/init_const.res.oracle @@ -4,10 +4,10 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 4 goals scheduled -[wp] [Alt-Ergo] Goal typed_fA_post_KO : Unknown -[wp] [Qed] Goal typed_fB_post_OK : Valid -[wp] [Alt-Ergo] Goal typed_fC_post_KO : Unknown -[wp] [Qed] Goal typed_fD_post_OK : Valid +[wp] [Alt-Ergo] Goal typed_fA_ensures_KO : Unknown +[wp] [Qed] Goal typed_fB_ensures_OK : Valid +[wp] [Alt-Ergo] Goal typed_fC_ensures_KO : Unknown +[wp] [Qed] Goal typed_fD_ensures_OK : Valid [wp] Proved goals: 2 / 4 Qed: 2 Alt-Ergo: 0 (unknown: 2) diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/init_const_guard.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/init_const_guard.res.oracle index 6e9a97a491f9e5f6d8cc98cd2408b959e8b85c15..37a5407fe0cc5eb006eb192b74540eb830370947 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/init_const_guard.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/init_const_guard.res.oracle @@ -4,11 +4,11 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 7 goals scheduled -[wp] [Qed] Goal typed_f_post_Const : Valid -[wp] [Alt-Ergo] Goal typed_f_post_Pointed_Valid : Valid -[wp] [Qed] Goal typed_f_post_Q_ReadOnly : Valid -[wp] [Qed] Goal typed_f_post_Q_NotWrite : Valid -[wp] [Qed] Goal typed_g_post_P_not_Const : Valid +[wp] [Qed] Goal typed_f_ensures_Const : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_Pointed_Valid : Valid +[wp] [Qed] Goal typed_f_ensures_Q_ReadOnly : Valid +[wp] [Qed] Goal typed_f_ensures_Q_NotWrite : Valid +[wp] [Qed] Goal typed_g_ensures_P_not_Const : Valid [wp] [Alt-Ergo] Goal typed_g_assert_Read : Valid [wp] [Alt-Ergo] Goal typed_g_assert_Guard_against_Const : Unknown [wp] Proved goals: 6 / 7 @@ -18,5 +18,5 @@ ------------------------------------------------------------- Functions WP Alt-Ergo Total Success f 3 1 (16..28) 4 100% -g 1 1 (16..28) 3 66.7% +g 1 1 (20..32) 3 66.7% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/init_extern.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/init_extern.res.oracle index 276d436a9d02dda81164774b0d4a1108e7408e2d..56d58accfc3dde00676746ecc7c2bf6879d04976 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/init_extern.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/init_extern.res.oracle @@ -5,9 +5,9 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 3 goals scheduled -[wp] [Qed] Goal typed_f_post_OK : Valid -[wp] [Alt-Ergo] Goal typed_f_post_KO : Unknown -[wp] [Alt-Ergo] Goal typed_f_post_KO_2 : Unknown +[wp] [Qed] Goal typed_f_ensures_OK : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_KO : Unknown +[wp] [Alt-Ergo] Goal typed_f_ensures_KO_2 : Unknown [wp] Proved goals: 1 / 3 Qed: 1 Alt-Ergo: 0 (unknown: 2) diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/initarr.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/initarr.res.oracle index 0c04cc403b389a1d243d0bb7fa85a52581300dde..fdaf378128c2a1d26a9c3c4bcef66b3f95b3f653 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/initarr.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/initarr.res.oracle @@ -4,13 +4,13 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 2 goals scheduled -[wp] [Alt-Ergo] Goal typed_job_post_SEP : Valid -[wp] [Alt-Ergo] Goal typed_job_post_ALT : Valid +[wp] [Alt-Ergo] Goal typed_job_ensures_SEP : Valid +[wp] [Alt-Ergo] Goal typed_job_ensures_ALT : Valid [wp] Proved goals: 2 / 2 Qed: 0 Alt-Ergo: 2 [wp] Report 'tests/wp_plugin/initarr.i.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -job - 2 (36..48) 2 100% +job - 2 (40..52) 2 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/injector.0.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/injector.0.res.oracle index b8f21b1a87b71d00a07c970692909bb9ff61cf18..7cbec9994f85d3b9a87ec5b66316298e3c4402b9 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/injector.0.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/injector.0.res.oracle @@ -4,19 +4,19 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 13 goals scheduled -[wp] [Qed] Goal typed_f_call_g_pre : Valid -[wp] [Qed] Goal typed_f_call_g_pre_2 : Valid -[wp] [Qed] Goal typed_f_FST_FAIL_post_qed_ok : Valid -[wp] [Qed] Goal typed_f_FST_FAIL_post_qed_ok_2 : Valid -[wp] [Qed] Goal typed_f_FST_FAIL_post_qed_ok_3 : Valid -[wp] [Qed] Goal typed_f_SND_FAIL_post_qed_ok : Valid -[wp] [Qed] Goal typed_f_SND_FAIL_post_qed_ok_2 : Valid -[wp] [Qed] Goal typed_f_SND_FAIL_post_qed_ok_3 : Valid -[wp] [Qed] Goal typed_f_SND_FAIL_post_qed_ok_4 : Valid -[wp] [Qed] Goal typed_f_SUCCESS_post_qed_ok : Valid -[wp] [Qed] Goal typed_f_SUCCESS_post_qed_ok_2 : Valid -[wp] [Qed] Goal typed_f_SUCCESS_post_qed_ok_3 : Valid -[wp] [Qed] Goal typed_f_SUCCESS_post_qed_ok_4 : Valid +[wp] [Qed] Goal typed_f_call_g_requires : Valid +[wp] [Qed] Goal typed_f_call_g_requires : Valid +[wp] [Qed] Goal typed_f_FST_FAIL_ensures_qed_ok : Valid +[wp] [Qed] Goal typed_f_FST_FAIL_ensures_qed_ok_2 : Valid +[wp] [Qed] Goal typed_f_FST_FAIL_ensures_qed_ok_3 : Valid +[wp] [Qed] Goal typed_f_SND_FAIL_ensures_qed_ok : Valid +[wp] [Qed] Goal typed_f_SND_FAIL_ensures_qed_ok_2 : Valid +[wp] [Qed] Goal typed_f_SND_FAIL_ensures_qed_ok_3 : Valid +[wp] [Qed] Goal typed_f_SND_FAIL_ensures_qed_ok_4 : Valid +[wp] [Qed] Goal typed_f_SUCCESS_ensures_qed_ok : Valid +[wp] [Qed] Goal typed_f_SUCCESS_ensures_qed_ok_2 : Valid +[wp] [Qed] Goal typed_f_SUCCESS_ensures_qed_ok_3 : Valid +[wp] [Qed] Goal typed_f_SUCCESS_ensures_qed_ok_4 : Valid [wp] Proved goals: 13 / 13 Qed: 13 [wp] Report 'tests/wp_plugin/injector.c.0.report.json' diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/injector.1.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/injector.1.res.oracle index 14b022f52b2429ebff0d3e7bf1695169ebed68ed..4862a74bd900b08f9b57715585fe92acc38bc5de 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/injector.1.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/injector.1.res.oracle @@ -4,10 +4,10 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 4 goals scheduled -[wp] [Alt-Ergo] Goal typed_f_ko_post_qed_ko : Unknown -[wp] [Alt-Ergo] Goal typed_f_ko_1_post_qed_ko : Unknown -[wp] [Alt-Ergo] Goal typed_f_ko_1_post_qed_ko_2 : Unknown -[wp] [Alt-Ergo] Goal typed_f_ko_1_post_qed_ko_3 : Unknown +[wp] [Alt-Ergo] Goal typed_f_ko_ensures_qed_ko : Unknown +[wp] [Alt-Ergo] Goal typed_f_ko_1_ensures_qed_ko : Unknown +[wp] [Alt-Ergo] Goal typed_f_ko_1_ensures_qed_ko_2 : Unknown +[wp] [Alt-Ergo] Goal typed_f_ko_1_ensures_qed_ko_3 : Unknown [wp] Proved goals: 0 / 4 Alt-Ergo: 0 (unknown: 4) [wp] Report 'tests/wp_plugin/injector.c.1.report.json' diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/loop.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/loop.res.oracle index 9825fad01fb3143eb07b83ae3de24a4e3bd491cf..31fb187436c43ad82a36d338ba9a42aa110a0aaf 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/loop.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/loop.res.oracle @@ -4,15 +4,15 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 9 goals scheduled -[wp] [Alt-Ergo] Goal typed_init_post_qed_ok : Valid -[wp] [Alt-Ergo] Goal typed_init_loop_inv_qed_ok_preserved : Valid -[wp] [Alt-Ergo] Goal typed_init_loop_inv_qed_ok_established : Valid -[wp] [Alt-Ergo] Goal typed_init_loop_inv_qed_ok_2_preserved : Valid -[wp] [Qed] Goal typed_init_loop_inv_qed_ok_2_established : Valid -[wp] [Qed] Goal typed_init_loop_assign_part1 : Valid -[wp] [Qed] Goal typed_init_loop_assign_part2 : Valid -[wp] [Alt-Ergo] Goal typed_init_loop_assign_part3 : Valid -[wp] [Alt-Ergo] Goal typed_init_assign : Unknown +[wp] [Alt-Ergo] Goal typed_init_ensures_qed_ok : Valid +[wp] [Alt-Ergo] Goal typed_init_loop_invariant_qed_ok_preserved : Valid +[wp] [Alt-Ergo] Goal typed_init_loop_invariant_qed_ok_established : Valid +[wp] [Alt-Ergo] Goal typed_init_loop_invariant_qed_ok_2_preserved : Valid +[wp] [Qed] Goal typed_init_loop_invariant_qed_ok_2_established : Valid +[wp] [Qed] Goal typed_init_loop_assigns_part1 : Valid +[wp] [Qed] Goal typed_init_loop_assigns_part2 : Valid +[wp] [Alt-Ergo] Goal typed_init_loop_assigns_part3 : Valid +[wp] [Alt-Ergo] Goal typed_init_assigns : Unknown [wp] Proved goals: 8 / 9 Qed: 3 Alt-Ergo: 5 (unknown: 1) diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/loopcurrent.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/loopcurrent.res.oracle index c175e6344679409963f39207e3f6c4f1524125dc..0eb100dcd2f23c19775b47cc46664a0e8c4d85d8 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/loopcurrent.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/loopcurrent.res.oracle @@ -6,10 +6,10 @@ [wp] tests/wp_plugin/loopcurrent.i:12: Warning: Missing assigns clause (assigns 'everything' instead) [wp] 4 goals scheduled -[wp] [Qed] Goal typed_f_loop_inv_preserved : Valid -[wp] [Qed] Goal typed_f_loop_inv_established : Valid -[wp] [Qed] Goal typed_f_loop_inv_2_preserved : Valid -[wp] [Qed] Goal typed_f_loop_inv_2_established : Valid +[wp] [Qed] Goal typed_f_loop_invariant_preserved : Valid +[wp] [Qed] Goal typed_f_loop_invariant_established : Valid +[wp] [Qed] Goal typed_f_loop_invariant_2_preserved : Valid +[wp] [Qed] Goal typed_f_loop_invariant_2_established : Valid [wp] Proved goals: 4 / 4 Qed: 4 [wp] Report 'tests/wp_plugin/loopcurrent.i.0.report.json' diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/loopentry.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/loopentry.res.oracle index 0706b9a7b8fa3c192b50d938b6f2ec94db53dd35..42b8084aefbaca04e2ef438c16c01e6c3bbc72c4 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/loopentry.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/loopentry.res.oracle @@ -6,10 +6,10 @@ [wp] tests/wp_plugin/loopentry.i:12: Warning: Missing assigns clause (assigns 'everything' instead) [wp] 4 goals scheduled -[wp] [Qed] Goal typed_f_loop_inv_preserved : Valid -[wp] [Qed] Goal typed_f_loop_inv_established : Valid -[wp] [Qed] Goal typed_f_loop_inv_2_preserved : Valid -[wp] [Qed] Goal typed_f_loop_inv_2_established : Valid +[wp] [Qed] Goal typed_f_loop_invariant_preserved : Valid +[wp] [Qed] Goal typed_f_loop_invariant_established : Valid +[wp] [Qed] Goal typed_f_loop_invariant_2_preserved : Valid +[wp] [Qed] Goal typed_f_loop_invariant_2_established : Valid [wp] Proved goals: 4 / 4 Qed: 4 [wp] Report 'tests/wp_plugin/loopentry.i.0.report.json' diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/mask.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/mask.res.oracle index 46ec9a2dfacb0335cd853da1942b9f00bec683fb..e0af8eb53799fbef86d2bfdd619a92a101474602 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/mask.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/mask.res.oracle @@ -4,8 +4,8 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 2 goals scheduled -[wp] [Qed] Goal typed_compute_post_A : Valid -[wp] [Qed] Goal typed_compute_post_B : Valid +[wp] [Qed] Goal typed_compute_ensures_A : Valid +[wp] [Qed] Goal typed_compute_ensures_B : Valid [wp] Proved goals: 2 / 2 Qed: 2 [wp] Report 'tests/wp_plugin/mask.i.0.report.json' diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/math.0.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/math.0.res.oracle index fa8da06b1ecdcf410d98f33faa173d5292af677b..dcc82cab512cdb04e5906b915ee3a10e5f6ff968 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/math.0.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/math.0.res.oracle @@ -23,17 +23,17 @@ [wp] [Alt-Ergo] Goal typed_lemma_sqrt_mono : Valid [wp] [Alt-Ergo] Goal typed_lemma_sqrt_pos : Valid [wp] [Alt-Ergo] Goal typed_lemma_tanh_opp : Valid -[wp] [Alt-Ergo] Goal typed_ok_post_sin_asin : Valid -[wp] [Alt-Ergo] Goal typed_ok_post_sin_asin_in_range : Valid -[wp] [Alt-Ergo] Goal typed_ok_post_cos_acos : Valid -[wp] [Alt-Ergo] Goal typed_ok_post_cos_acos_in_range : Valid -[wp] [Qed] Goal typed_ok_post_tan_atan : Valid -[wp] [Alt-Ergo] Goal typed_ok_post_log_pow : Valid -[wp] [Qed] Goal typed_ok_post_log_exp : Valid -[wp] [Alt-Ergo] Goal typed_ok_post_exp_log : Valid -[wp] [Alt-Ergo] Goal typed_ok_post_min_plus_distrib : Valid -[wp] [Alt-Ergo] Goal typed_ok_post_sqrt_pos : Valid -[wp] [Alt-Ergo] Goal typed_ok_post_sqrt_pos0 : Valid +[wp] [Alt-Ergo] Goal typed_ok_ensures_sin_asin : Valid +[wp] [Alt-Ergo] Goal typed_ok_ensures_sin_asin_in_range : Valid +[wp] [Alt-Ergo] Goal typed_ok_ensures_cos_acos : Valid +[wp] [Alt-Ergo] Goal typed_ok_ensures_cos_acos_in_range : Valid +[wp] [Qed] Goal typed_ok_ensures_tan_atan : Valid +[wp] [Alt-Ergo] Goal typed_ok_ensures_log_pow : Valid +[wp] [Qed] Goal typed_ok_ensures_log_exp : Valid +[wp] [Alt-Ergo] Goal typed_ok_ensures_exp_log : Valid +[wp] [Alt-Ergo] Goal typed_ok_ensures_min_plus_distrib : Valid +[wp] [Alt-Ergo] Goal typed_ok_ensures_sqrt_pos : Valid +[wp] [Alt-Ergo] Goal typed_ok_ensures_sqrt_pos0 : Valid [wp] Proved goals: 30 / 30 Qed: 5 Alt-Ergo: 25 diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/math.1.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/math.1.res.oracle index fc1ca3b86f37c771d6d3e2e679052ed22a31eab4..bf2477d381d6f7b5ff8ba62a2a2c42c38ecb3b38 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/math.1.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/math.1.res.oracle @@ -23,17 +23,17 @@ [wp] [alt-ergo] Goal typed_lemma_sqrt_mono : Valid [wp] [alt-ergo] Goal typed_lemma_sqrt_pos : Valid [wp] [alt-ergo] Goal typed_lemma_tanh_opp : Valid -[wp] [alt-ergo] Goal typed_ok_post_sin_asin : Valid -[wp] [alt-ergo] Goal typed_ok_post_sin_asin_in_range : Valid -[wp] [alt-ergo] Goal typed_ok_post_cos_acos : Valid -[wp] [alt-ergo] Goal typed_ok_post_cos_acos_in_range : Valid -[wp] [Qed] Goal typed_ok_post_tan_atan : Valid -[wp] [alt-ergo] Goal typed_ok_post_log_pow : Valid -[wp] [Qed] Goal typed_ok_post_log_exp : Valid -[wp] [alt-ergo] Goal typed_ok_post_exp_log : Valid -[wp] [alt-ergo] Goal typed_ok_post_min_plus_distrib : Valid -[wp] [alt-ergo] Goal typed_ok_post_sqrt_pos : Valid -[wp] [alt-ergo] Goal typed_ok_post_sqrt_pos0 : Valid +[wp] [alt-ergo] Goal typed_ok_ensures_sin_asin : Valid +[wp] [alt-ergo] Goal typed_ok_ensures_sin_asin_in_range : Valid +[wp] [alt-ergo] Goal typed_ok_ensures_cos_acos : Valid +[wp] [alt-ergo] Goal typed_ok_ensures_cos_acos_in_range : Valid +[wp] [Qed] Goal typed_ok_ensures_tan_atan : Valid +[wp] [alt-ergo] Goal typed_ok_ensures_log_pow : Valid +[wp] [Qed] Goal typed_ok_ensures_log_exp : Valid +[wp] [alt-ergo] Goal typed_ok_ensures_exp_log : Valid +[wp] [alt-ergo] Goal typed_ok_ensures_min_plus_distrib : Valid +[wp] [alt-ergo] Goal typed_ok_ensures_sqrt_pos : Valid +[wp] [alt-ergo] Goal typed_ok_ensures_sqrt_pos0 : Valid [wp] Proved goals: 30 / 30 Qed: 5 alt-ergo: 25 diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/math.2.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/math.2.res.oracle index 748344d32e340ec15a96c327367db443de5e02d2..820740cac730923d31743afa06ad43224d7120d5 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/math.2.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/math.2.res.oracle @@ -4,15 +4,15 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 9 goals scheduled -[wp] [Alt-Ergo] Goal typed_ko_post_ko_sin_asin : Step limit -[wp] [Alt-Ergo] Goal typed_ko_post_ko_cos_acos : Step limit -[wp] [Alt-Ergo] Goal typed_ko_post_ko_asin_sin : Step limit -[wp] [Alt-Ergo] Goal typed_ko_post_ko_acos_cos : Step limit -[wp] [Alt-Ergo] Goal typed_ko_post_ko_atan_tan : Step limit -[wp] [Alt-Ergo] Goal typed_ko_post_ko_log_pow : Step limit -[wp] [Alt-Ergo] Goal typed_ko_post_ko_exp_log : Step limit -[wp] [Alt-Ergo] Goal typed_ko_post_ko_exp_log_add_mul : Step limit -[wp] [Alt-Ergo] Goal typed_ko_post_ko_sqrt_pos : Step limit +[wp] [Alt-Ergo] Goal typed_ko_ensures_ko_sin_asin : Step limit +[wp] [Alt-Ergo] Goal typed_ko_ensures_ko_cos_acos : Step limit +[wp] [Alt-Ergo] Goal typed_ko_ensures_ko_asin_sin : Step limit +[wp] [Alt-Ergo] Goal typed_ko_ensures_ko_acos_cos : Step limit +[wp] [Alt-Ergo] Goal typed_ko_ensures_ko_atan_tan : Step limit +[wp] [Alt-Ergo] Goal typed_ko_ensures_ko_log_pow : Step limit +[wp] [Alt-Ergo] Goal typed_ko_ensures_ko_exp_log : Step limit +[wp] [Alt-Ergo] Goal typed_ko_ensures_ko_exp_log_add_mul : Step limit +[wp] [Alt-Ergo] Goal typed_ko_ensures_ko_sqrt_pos : Step limit [wp] Proved goals: 0 / 9 Alt-Ergo: 0 (interrupted: 9) ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/math.3.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/math.3.res.oracle index 7360397142c48447aadc1d683210e910fed62baa..bb249beaf01e222a7b5c8e2a99309eb00701e68f 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/math.3.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/math.3.res.oracle @@ -4,15 +4,15 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 9 goals scheduled -[wp] [alt-ergo] Goal typed_ko_post_ko_sin_asin : Timeout -[wp] [alt-ergo] Goal typed_ko_post_ko_cos_acos : Timeout -[wp] [alt-ergo] Goal typed_ko_post_ko_asin_sin : Timeout -[wp] [alt-ergo] Goal typed_ko_post_ko_acos_cos : Timeout -[wp] [alt-ergo] Goal typed_ko_post_ko_atan_tan : Timeout -[wp] [alt-ergo] Goal typed_ko_post_ko_log_pow : Timeout -[wp] [alt-ergo] Goal typed_ko_post_ko_exp_log : Timeout -[wp] [alt-ergo] Goal typed_ko_post_ko_exp_log_add_mul : Timeout -[wp] [alt-ergo] Goal typed_ko_post_ko_sqrt_pos : Timeout +[wp] [alt-ergo] Goal typed_ko_ensures_ko_sin_asin : Timeout +[wp] [alt-ergo] Goal typed_ko_ensures_ko_cos_acos : Timeout +[wp] [alt-ergo] Goal typed_ko_ensures_ko_asin_sin : Timeout +[wp] [alt-ergo] Goal typed_ko_ensures_ko_acos_cos : Timeout +[wp] [alt-ergo] Goal typed_ko_ensures_ko_atan_tan : Timeout +[wp] [alt-ergo] Goal typed_ko_ensures_ko_log_pow : Timeout +[wp] [alt-ergo] Goal typed_ko_ensures_ko_exp_log : Timeout +[wp] [alt-ergo] Goal typed_ko_ensures_ko_exp_log_add_mul : Timeout +[wp] [alt-ergo] Goal typed_ko_ensures_ko_sqrt_pos : Timeout [wp] Proved goals: 0 / 9 alt-ergo: 0 (interrupted: 9) ---------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/model.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/model.res.oracle index d1c12a1b3404429d3368dd441260c2283dd3fb4c..208ec05840fd62dfe9f543bf720c8318cf83b06b 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/model.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/model.res.oracle @@ -7,13 +7,13 @@ [wp] Warning: Missing RTE guards [wp] 1 goal scheduled --------------------------------------------- ---- File 'typed/f_post.ergo' +--- File 'typed/f_ensures.ergo' --------------------------------------------- (* ---------------------------------------------------------- *) (* --- Post-condition (file tests/wp_plugin/model.i, line 13) in 'f' --- *) (* ---------------------------------------------------------- *) -goal f_post: +goal f_ensures: forall i : int. forall t : (addr,int) farray. forall a : addr. @@ -41,19 +41,19 @@ function shift_sint32(p:addr, k:int) : addr = shift(p, k) logic P_P : int -> prop -[wp] [Alt-Ergo] Goal typed_f_post : Typechecked +[wp] [Alt-Ergo] Goal typed_f_ensures : Typechecked [wp] Proved goals: 0 / 1 Alt-Ergo: 0 (unknown: 1) [wp] Running WP plugin... [wp] 2 goals scheduled --------------------------------------------- ---- File 'typed/f_post.ergo' +--- File 'typed/f_ensures.ergo' --------------------------------------------- (* ---------------------------------------------------------- *) (* --- Post-condition (file tests/wp_plugin/model.i, line 13) in 'f' --- *) (* ---------------------------------------------------------- *) -goal f_post: +goal f_ensures: forall i : int. forall t : (addr,int) farray. forall a : addr. @@ -63,15 +63,15 @@ goal f_post: is_sint32(x) -> P_P(x) -[wp] [Alt-Ergo] Goal typed_f_post : Typechecked +[wp] [Alt-Ergo] Goal typed_f_ensures : Typechecked --------------------------------------------- ---- File 'typed_ref/f_post.ergo' +--- File 'typed_ref/f_ensures.ergo' --------------------------------------------- (* ---------------------------------------------------------- *) (* --- Post-condition (file tests/wp_plugin/model.i, line 13) in 'f' --- *) (* ---------------------------------------------------------- *) -goal f_post: +goal f_ensures: forall i : int. forall t : (addr,int) farray. forall a : addr. @@ -99,6 +99,6 @@ function shift_sint32(p:addr, k:int) : addr = shift(p, k) logic P_P : int -> prop -[wp] [Alt-Ergo] Goal typed_ref_f_post : Typechecked +[wp] [Alt-Ergo] Goal typed_ref_f_ensures : Typechecked [wp] Proved goals: 0 / 2 Alt-Ergo: 0 (unknown: 2) diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/overarray.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/overarray.res.oracle index 5ac8f29ffc882856883ba31378066d3eda026010..4e444f5c792756e54ecde7d9d12f951091879771 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/overarray.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/overarray.res.oracle @@ -4,18 +4,18 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 12 goals scheduled -[wp] [Qed] Goal typed_f1_ok_assign_exit : Valid -[wp] [Qed] Goal typed_f1_ok_assign_normal : Valid -[wp] [Qed] Goal typed_f2_ok_assign_exit : Valid -[wp] [Qed] Goal typed_f2_ok_assign_normal : Valid -[wp] [Qed] Goal typed_f3_ok_assign_exit : Valid -[wp] [Qed] Goal typed_f3_ok_assign_normal : Valid -[wp] [Qed] Goal typed_f4_ok_assign_exit : Valid -[wp] [Qed] Goal typed_f4_ok_assign_normal : Valid -[wp] [Alt-Ergo] Goal typed_f5_ko_assign_exit : Unknown -[wp] [Alt-Ergo] Goal typed_f5_ko_assign_normal : Unknown -[wp] [Alt-Ergo] Goal typed_f6_ko_assign_exit : Unknown -[wp] [Alt-Ergo] Goal typed_f6_ko_assign_normal : Unknown +[wp] [Qed] Goal typed_f1_ok_assigns_exit : Valid +[wp] [Qed] Goal typed_f1_ok_assigns_normal : Valid +[wp] [Qed] Goal typed_f2_ok_assigns_exit : Valid +[wp] [Qed] Goal typed_f2_ok_assigns_normal : Valid +[wp] [Qed] Goal typed_f3_ok_assigns_exit : Valid +[wp] [Qed] Goal typed_f3_ok_assigns_normal : Valid +[wp] [Qed] Goal typed_f4_ok_assigns_exit : Valid +[wp] [Qed] Goal typed_f4_ok_assigns_normal : Valid +[wp] [Alt-Ergo] Goal typed_f5_ko_assigns_exit : Unknown +[wp] [Alt-Ergo] Goal typed_f5_ko_assigns_normal : Unknown +[wp] [Alt-Ergo] Goal typed_f6_ko_assigns_exit : Unknown +[wp] [Alt-Ergo] Goal typed_f6_ko_assigns_normal : Unknown [wp] Proved goals: 8 / 12 Qed: 8 Alt-Ergo: 0 (unknown: 4) diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/overassign.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/overassign.res.oracle index a01baabf0813e1f0c2dcefe4370c1842e12c329b..16f6ce465df500059dfbd2359c7787d47e02d660 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/overassign.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/overassign.res.oracle @@ -4,18 +4,18 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 12 goals scheduled -[wp] [Qed] Goal typed_f1_ok_assign_exit : Valid -[wp] [Qed] Goal typed_f1_ok_assign_normal : Valid -[wp] [Qed] Goal typed_f2_ok_assign_exit : Valid -[wp] [Qed] Goal typed_f2_ok_assign_normal : Valid -[wp] [Alt-Ergo] Goal typed_f3_ok_assign_exit : Valid -[wp] [Alt-Ergo] Goal typed_f3_ok_assign_normal : Valid -[wp] [Alt-Ergo] Goal typed_f4_ok_assign_exit : Valid -[wp] [Alt-Ergo] Goal typed_f4_ok_assign_normal : Valid -[wp] [Alt-Ergo] Goal typed_f5_ko_assign_exit : Unknown -[wp] [Alt-Ergo] Goal typed_f5_ko_assign_normal : Unknown -[wp] [Alt-Ergo] Goal typed_f6_ko_assign_exit : Unknown -[wp] [Alt-Ergo] Goal typed_f6_ko_assign_normal : Unknown +[wp] [Qed] Goal typed_f1_ok_assigns_exit : Valid +[wp] [Qed] Goal typed_f1_ok_assigns_normal : Valid +[wp] [Qed] Goal typed_f2_ok_assigns_exit : Valid +[wp] [Qed] Goal typed_f2_ok_assigns_normal : Valid +[wp] [Alt-Ergo] Goal typed_f3_ok_assigns_exit : Valid +[wp] [Alt-Ergo] Goal typed_f3_ok_assigns_normal : Valid +[wp] [Alt-Ergo] Goal typed_f4_ok_assigns_exit : Valid +[wp] [Alt-Ergo] Goal typed_f4_ok_assigns_normal : Valid +[wp] [Alt-Ergo] Goal typed_f5_ko_assigns_exit : Unknown +[wp] [Alt-Ergo] Goal typed_f5_ko_assigns_normal : Unknown +[wp] [Alt-Ergo] Goal typed_f6_ko_assigns_exit : Unknown +[wp] [Alt-Ergo] Goal typed_f6_ko_assigns_normal : Unknown [wp] Proved goals: 8 / 12 Qed: 4 Alt-Ergo: 4 (unknown: 4) @@ -25,7 +25,7 @@ Functions WP Alt-Ergo Total Success f1_ok 2 - 2 100% f2_ok 2 - 2 100% f3_ok - 2 (20..32) 2 100% -f4_ok - 2 (12..24) 2 100% +f4_ok - 2 (16..28) 2 100% f5_ko - - 2 0.0% f6_ko - - 2 0.0% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/prenex.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/prenex.res.oracle index cee0e2ca5745d1c2933ac736f07e86195491a124..f5023a17dc26e36ee3e34f50e5fbb11f897a7313 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/prenex.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/prenex.res.oracle @@ -4,23 +4,23 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 12 goals scheduled -[wp] [Alt-Ergo] Goal typed_diag_post : Valid -[wp] [Alt-Ergo] Goal typed_diag_loop_inv_I_preserved : Valid -[wp] [Qed] Goal typed_diag_loop_inv_I_established : Valid -[wp] [Alt-Ergo] Goal typed_diag_loop_inv_PI_preserved : Valid -[wp] [Qed] Goal typed_diag_loop_inv_PI_established : Valid -[wp] [Alt-Ergo] Goal typed_diag_loop_inv_J_preserved : Valid -[wp] [Qed] Goal typed_diag_loop_inv_J_established : Valid -[wp] [Alt-Ergo] Goal typed_diag_loop_inv_PJ_preserved : Valid -[wp] [Qed] Goal typed_diag_loop_inv_PJ_established : Valid -[wp] [Qed] Goal typed_diag_loop_assign_part1 : Valid -[wp] [Qed] Goal typed_diag_loop_assign_part2 : Valid -[wp] [Qed] Goal typed_diag_loop_assign_2 : Valid +[wp] [Alt-Ergo] Goal typed_diag_ensures : Valid +[wp] [Alt-Ergo] Goal typed_diag_loop_invariant_I_preserved : Valid +[wp] [Qed] Goal typed_diag_loop_invariant_I_established : Valid +[wp] [Alt-Ergo] Goal typed_diag_loop_invariant_PI_preserved : Valid +[wp] [Qed] Goal typed_diag_loop_invariant_PI_established : Valid +[wp] [Alt-Ergo] Goal typed_diag_loop_invariant_J_preserved : Valid +[wp] [Qed] Goal typed_diag_loop_invariant_J_established : Valid +[wp] [Alt-Ergo] Goal typed_diag_loop_invariant_PJ_preserved : Valid +[wp] [Qed] Goal typed_diag_loop_invariant_PJ_established : Valid +[wp] [Qed] Goal typed_diag_loop_assigns_part1 : Valid +[wp] [Qed] Goal typed_diag_loop_assigns_part2 : Valid +[wp] [Qed] Goal typed_diag_loop_assigns_2 : Valid [wp] Proved goals: 12 / 12 Qed: 7 Alt-Ergo: 5 [wp] Report 'tests/wp_plugin/prenex.i.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -diag 7 5 (56..80) 12 100% +diag 7 5 (64..88) 12 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/repeat.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/repeat.res.oracle index 80fdaff1401fc1bc02144b2af5ef226d41bb87a0..c1c8354536c7f9ab00785d857bc8efc610538785 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/repeat.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/repeat.res.oracle @@ -6,53 +6,53 @@ [wp] tests/wp_plugin/repeat.c:47: Warning: Missing assigns clause (assigns 'everything' instead) [wp] 47 goals scheduled -[wp] [Qed] Goal typed_induction_post : Valid -[wp] [Alt-Ergo] Goal typed_induction_loop_inv_preserved : Valid -[wp] [Qed] Goal typed_induction_loop_inv_established : Valid -[wp] [Alt-Ergo] Goal typed_induction_loop_inv_2_preserved : Valid -[wp] [Qed] Goal typed_induction_loop_inv_2_established : Valid -[wp] [Qed] Goal typed_induction_loop_assign : Valid -[wp] [Qed] Goal typed_induction_assign_exit_part1 : Valid -[wp] [Qed] Goal typed_induction_assign_exit_part2 : Valid -[wp] [Qed] Goal typed_induction_assign_normal : Valid -[wp] [Qed] Goal typed_master_post : Valid -[wp] [Qed] Goal typed_master_assign_exit : Valid -[wp] [Qed] Goal typed_master_assign_normal : Valid -[wp] [Alt-Ergo] Goal typed_shifted_post : Valid -[wp] [Alt-Ergo] Goal typed_shifted_loop_inv_preserved : Valid -[wp] [Qed] Goal typed_shifted_loop_inv_established : Valid -[wp] [Alt-Ergo] Goal typed_shifted_loop_inv_2_preserved : Valid -[wp] [Qed] Goal typed_shifted_loop_inv_2_established : Valid -[wp] [Qed] Goal typed_shifted_loop_assign : Valid -[wp] [Qed] Goal typed_shifted_assign_exit_part1 : Valid -[wp] [Qed] Goal typed_shifted_assign_exit_part2 : Valid -[wp] [Qed] Goal typed_shifted_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_shifted_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_unroll_post : Valid -[wp] [Qed] Goal typed_unroll_loop_inv_preserved : Valid -[wp] [Qed] Goal typed_unroll_loop_inv_established : Valid -[wp] [Qed] Goal typed_unroll_assign_exit_part01 : Valid -[wp] [Qed] Goal typed_unroll_assign_exit_part02 : Valid -[wp] [Qed] Goal typed_unroll_assign_exit_part03 : Valid -[wp] [Qed] Goal typed_unroll_assign_exit_part04 : Valid -[wp] [Qed] Goal typed_unroll_assign_exit_part05 : Valid -[wp] [Qed] Goal typed_unroll_assign_exit_part06 : Valid -[wp] [Qed] Goal typed_unroll_assign_exit_part07 : Valid -[wp] [Qed] Goal typed_unroll_assign_exit_part08 : Valid -[wp] [Qed] Goal typed_unroll_assign_exit_part09 : Valid -[wp] [Qed] Goal typed_unroll_assign_exit_part10 : Valid -[wp] [Qed] Goal typed_unroll_assign_exit_part11 : Valid -[wp] [Qed] Goal typed_unroll_assign_normal_part01 : Valid -[wp] [Qed] Goal typed_unroll_assign_normal_part02 : Valid -[wp] [Qed] Goal typed_unroll_assign_normal_part03 : Valid -[wp] [Qed] Goal typed_unroll_assign_normal_part04 : Valid -[wp] [Qed] Goal typed_unroll_assign_normal_part05 : Valid -[wp] [Qed] Goal typed_unroll_assign_normal_part06 : Valid -[wp] [Qed] Goal typed_unroll_assign_normal_part07 : Valid -[wp] [Qed] Goal typed_unroll_assign_normal_part08 : Valid -[wp] [Qed] Goal typed_unroll_assign_normal_part09 : Valid -[wp] [Qed] Goal typed_unroll_assign_normal_part10 : Valid -[wp] [Qed] Goal typed_unroll_assign_normal_part11 : Valid +[wp] [Qed] Goal typed_induction_ensures : Valid +[wp] [Alt-Ergo] Goal typed_induction_loop_invariant_preserved : Valid +[wp] [Qed] Goal typed_induction_loop_invariant_established : Valid +[wp] [Alt-Ergo] Goal typed_induction_loop_invariant_2_preserved : Valid +[wp] [Qed] Goal typed_induction_loop_invariant_2_established : Valid +[wp] [Qed] Goal typed_induction_loop_assigns : Valid +[wp] [Qed] Goal typed_induction_assigns_exit_part1 : Valid +[wp] [Qed] Goal typed_induction_assigns_exit_part2 : Valid +[wp] [Qed] Goal typed_induction_assigns_normal : Valid +[wp] [Qed] Goal typed_master_ensures : Valid +[wp] [Qed] Goal typed_master_assigns_exit : Valid +[wp] [Qed] Goal typed_master_assigns_normal : Valid +[wp] [Alt-Ergo] Goal typed_shifted_ensures : Valid +[wp] [Alt-Ergo] Goal typed_shifted_loop_invariant_preserved : Valid +[wp] [Qed] Goal typed_shifted_loop_invariant_established : Valid +[wp] [Alt-Ergo] Goal typed_shifted_loop_invariant_2_preserved : Valid +[wp] [Qed] Goal typed_shifted_loop_invariant_2_established : Valid +[wp] [Qed] Goal typed_shifted_loop_assigns : Valid +[wp] [Qed] Goal typed_shifted_assigns_exit_part1 : Valid +[wp] [Qed] Goal typed_shifted_assigns_exit_part2 : Valid +[wp] [Qed] Goal typed_shifted_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_shifted_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_unroll_ensures : Valid +[wp] [Qed] Goal typed_unroll_loop_invariant_preserved : Valid +[wp] [Qed] Goal typed_unroll_loop_invariant_established : Valid +[wp] [Qed] Goal typed_unroll_assigns_exit_part01 : Valid +[wp] [Qed] Goal typed_unroll_assigns_exit_part02 : Valid +[wp] [Qed] Goal typed_unroll_assigns_exit_part03 : Valid +[wp] [Qed] Goal typed_unroll_assigns_exit_part04 : Valid +[wp] [Qed] Goal typed_unroll_assigns_exit_part05 : Valid +[wp] [Qed] Goal typed_unroll_assigns_exit_part06 : Valid +[wp] [Qed] Goal typed_unroll_assigns_exit_part07 : Valid +[wp] [Qed] Goal typed_unroll_assigns_exit_part08 : Valid +[wp] [Qed] Goal typed_unroll_assigns_exit_part09 : Valid +[wp] [Qed] Goal typed_unroll_assigns_exit_part10 : Valid +[wp] [Qed] Goal typed_unroll_assigns_exit_part11 : Valid +[wp] [Qed] Goal typed_unroll_assigns_normal_part01 : Valid +[wp] [Qed] Goal typed_unroll_assigns_normal_part02 : Valid +[wp] [Qed] Goal typed_unroll_assigns_normal_part03 : Valid +[wp] [Qed] Goal typed_unroll_assigns_normal_part04 : Valid +[wp] [Qed] Goal typed_unroll_assigns_normal_part05 : Valid +[wp] [Qed] Goal typed_unroll_assigns_normal_part06 : Valid +[wp] [Qed] Goal typed_unroll_assigns_normal_part07 : Valid +[wp] [Qed] Goal typed_unroll_assigns_normal_part08 : Valid +[wp] [Qed] Goal typed_unroll_assigns_normal_part09 : Valid +[wp] [Qed] Goal typed_unroll_assigns_normal_part10 : Valid +[wp] [Qed] Goal typed_unroll_assigns_normal_part11 : Valid [wp] Proved goals: 47 / 47 Qed: 42 Alt-Ergo: 5 diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/sequence.0.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/sequence.0.res.oracle index 8173a1d3abea309a752faaabd8be4693cfe0359f..5a6a837e1f40fb311ab80e1027efac39f016df83 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/sequence.0.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/sequence.0.res.oracle @@ -4,52 +4,52 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 39 goals scheduled -[wp] [Qed] Goal typed_caveat_loops_post_ok_first : Valid -[wp] [Alt-Ergo] Goal typed_caveat_loops_post_ok_last : Valid -[wp] [Alt-Ergo] Goal typed_caveat_loops_loop_inv_ok_id_max_preserved : Valid -[wp] [Qed] Goal typed_caveat_loops_loop_inv_ok_id_max_established : Valid -[wp] [Alt-Ergo] Goal typed_caveat_loops_loop_inv_ok_id_min_preserved : Valid -[wp] [Qed] Goal typed_caveat_loops_loop_inv_ok_id_min_established : Valid -[wp] [Alt-Ergo] Goal typed_caveat_loops_loop_inv_ok_inv_preserved : Valid -[wp] [Qed] Goal typed_caveat_loops_loop_inv_ok_inv_established : Valid -[wp] [Qed] Goal typed_caveat_loops_loop_assign : Valid -[wp] [Qed] Goal typed_caveat_loops_assign_exit_part1 : Valid -[wp] [Qed] Goal typed_caveat_loops_assign_exit_part2 : Valid -[wp] [Qed] Goal typed_caveat_loops_assign_exit_part3 : Valid -[wp] [Qed] Goal typed_caveat_loops_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_caveat_loops_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_caveat_loops_assign_normal_part3 : Valid -[wp] [Alt-Ergo] Goal typed_caveat_loops_g_called_post_ok_u1 : Valid -[wp] [Qed] Goal typed_caveat_loops_g_called_post_ok_u2 : Valid -[wp] [Alt-Ergo] Goal typed_caveat_loops_g_not_called_post_ok_v1 : Valid -[wp] [Alt-Ergo] Goal typed_caveat_loops_g_not_called_post_ok_v2 : Valid -[wp] [Qed] Goal typed_caveat_no_calls_post_ok_m1 : Valid -[wp] [Alt-Ergo] Goal typed_caveat_no_calls_post_ok_m2 : Valid -[wp] [Qed] Goal typed_caveat_no_calls_post_ok_bug_why3_n1 : Valid -[wp] [Alt-Ergo] Goal typed_caveat_no_calls_post_ok_n2 : Valid -[wp] [Alt-Ergo] Goal typed_caveat_no_calls_post_ok_n3 : Valid -[wp] [Alt-Ergo] Goal typed_caveat_no_calls_post_ok_bug_why3_n5 : Valid -[wp] [Qed] Goal typed_caveat_no_calls_post_ok_bug_why3_n6 : Valid -[wp] [Alt-Ergo] Goal typed_caveat_no_calls_post_ok_bug_why3_n5_ok : Valid -[wp] [Qed] Goal typed_caveat_no_calls_post_ok_bug_why3_n6_ok : Valid -[wp] [Qed] Goal typed_caveat_no_calls_assign : Valid -[wp] [Qed] Goal typed_caveat_sequence_assign_exit : Valid -[wp] [Qed] Goal typed_caveat_sequence_assign_normal : Valid -[wp] [Qed] Goal typed_caveat_sequence_g_called_post_ok_o1 : Valid -[wp] [Qed] Goal typed_caveat_sequence_g_called_post_ok_p1 : Valid -[wp] [Qed] Goal typed_caveat_sequence_g_called_post_ok_p2 : Valid -[wp] [Alt-Ergo] Goal typed_caveat_sequence_g_called_post_ok_p3 : Valid -[wp] [Qed] Goal typed_caveat_sequence_g_not_called_post_ok_o2 : Valid -[wp] [Qed] Goal typed_caveat_sequence_g_not_called_post_ok_q1 : Valid -[wp] [Qed] Goal typed_caveat_sequence_g_not_called_post_ok_q2 : Valid -[wp] [Alt-Ergo] Goal typed_caveat_sequence_g_not_called_post_ok_q3 : Valid +[wp] [Qed] Goal typed_caveat_loops_ensures_ok_first : Valid +[wp] [Alt-Ergo] Goal typed_caveat_loops_ensures_ok_last : Valid +[wp] [Alt-Ergo] Goal typed_caveat_loops_loop_invariant_ok_id_max_preserved : Valid +[wp] [Qed] Goal typed_caveat_loops_loop_invariant_ok_id_max_established : Valid +[wp] [Alt-Ergo] Goal typed_caveat_loops_loop_invariant_ok_id_min_preserved : Valid +[wp] [Qed] Goal typed_caveat_loops_loop_invariant_ok_id_min_established : Valid +[wp] [Alt-Ergo] Goal typed_caveat_loops_loop_invariant_ok_inv_preserved : Valid +[wp] [Qed] Goal typed_caveat_loops_loop_invariant_ok_inv_established : Valid +[wp] [Qed] Goal typed_caveat_loops_loop_assigns : Valid +[wp] [Qed] Goal typed_caveat_loops_assigns_exit_part1 : Valid +[wp] [Qed] Goal typed_caveat_loops_assigns_exit_part2 : Valid +[wp] [Qed] Goal typed_caveat_loops_assigns_exit_part3 : Valid +[wp] [Qed] Goal typed_caveat_loops_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_caveat_loops_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_caveat_loops_assigns_normal_part3 : Valid +[wp] [Alt-Ergo] Goal typed_caveat_loops_g_called_ensures_ok_u1 : Valid +[wp] [Qed] Goal typed_caveat_loops_g_called_ensures_ok_u2 : Valid +[wp] [Alt-Ergo] Goal typed_caveat_loops_g_not_called_ensures_ok_v1 : Valid +[wp] [Alt-Ergo] Goal typed_caveat_loops_g_not_called_ensures_ok_v2 : Valid +[wp] [Qed] Goal typed_caveat_no_calls_ensures_ok_m1 : Valid +[wp] [Alt-Ergo] Goal typed_caveat_no_calls_ensures_ok_m2 : Valid +[wp] [Qed] Goal typed_caveat_no_calls_ensures_ok_bug_why3_n1 : Valid +[wp] [Alt-Ergo] Goal typed_caveat_no_calls_ensures_ok_n2 : Valid +[wp] [Alt-Ergo] Goal typed_caveat_no_calls_ensures_ok_n3 : Valid +[wp] [Alt-Ergo] Goal typed_caveat_no_calls_ensures_ok_bug_why3_n5 : Valid +[wp] [Qed] Goal typed_caveat_no_calls_ensures_ok_bug_why3_n6 : Valid +[wp] [Alt-Ergo] Goal typed_caveat_no_calls_ensures_ok_bug_why3_n5_ok : Valid +[wp] [Qed] Goal typed_caveat_no_calls_ensures_ok_bug_why3_n6_ok : Valid +[wp] [Qed] Goal typed_caveat_no_calls_assigns : Valid +[wp] [Qed] Goal typed_caveat_sequence_assigns_exit : Valid +[wp] [Qed] Goal typed_caveat_sequence_assigns_normal : Valid +[wp] [Qed] Goal typed_caveat_sequence_g_called_ensures_ok_o1 : Valid +[wp] [Qed] Goal typed_caveat_sequence_g_called_ensures_ok_p1 : Valid +[wp] [Qed] Goal typed_caveat_sequence_g_called_ensures_ok_p2 : Valid +[wp] [Alt-Ergo] Goal typed_caveat_sequence_g_called_ensures_ok_p3 : Valid +[wp] [Qed] Goal typed_caveat_sequence_g_not_called_ensures_ok_o2 : Valid +[wp] [Qed] Goal typed_caveat_sequence_g_not_called_ensures_ok_q1 : Valid +[wp] [Qed] Goal typed_caveat_sequence_g_not_called_ensures_ok_q2 : Valid +[wp] [Alt-Ergo] Goal typed_caveat_sequence_g_not_called_ensures_ok_q3 : Valid [wp] Proved goals: 39 / 39 Qed: 25 Alt-Ergo: 14 [wp] Report 'tests/wp_plugin/sequence.i.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -no_calls 5 5 (4..16) 10 100% +no_calls 5 5 (8..20) 10 100% sequence 8 2 (12..24) 10 100% loops 12 7 (48..60) 19 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/sequence.1.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/sequence.1.res.oracle index 0a59b8081a5e1b3848998d71fab69d5b3df74101..1c817abc79dab4752323fb0bbc7f40d711070d22 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/sequence.1.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/sequence.1.res.oracle @@ -4,40 +4,40 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 34 goals scheduled -[wp] [Qed] Goal typed_caveat_loops_post_ok_first : Valid -[wp] [alt-ergo] Goal typed_caveat_loops_post_ok_last : Valid -[wp] [alt-ergo] Goal typed_caveat_loops_loop_inv_ok_id_max_preserved : Valid -[wp] [Qed] Goal typed_caveat_loops_loop_inv_ok_id_max_established : Valid -[wp] [alt-ergo] Goal typed_caveat_loops_loop_inv_ok_id_min_preserved : Valid -[wp] [Qed] Goal typed_caveat_loops_loop_inv_ok_id_min_established : Valid -[wp] [alt-ergo] Goal typed_caveat_loops_loop_inv_ok_inv_preserved : Valid -[wp] [Qed] Goal typed_caveat_loops_loop_inv_ok_inv_established : Valid -[wp] [Qed] Goal typed_caveat_loops_loop_assign : Valid -[wp] [Qed] Goal typed_caveat_loops_assign_exit_part1 : Valid -[wp] [Qed] Goal typed_caveat_loops_assign_exit_part2 : Valid -[wp] [Qed] Goal typed_caveat_loops_assign_exit_part3 : Valid -[wp] [Qed] Goal typed_caveat_loops_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_caveat_loops_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_caveat_loops_assign_normal_part3 : Valid -[wp] [alt-ergo] Goal typed_caveat_loops_g_called_post_ok_u1 : Valid -[wp] [Qed] Goal typed_caveat_loops_g_called_post_ok_u2 : Valid -[wp] [alt-ergo] Goal typed_caveat_loops_g_not_called_post_ok_v1 : Valid -[wp] [alt-ergo] Goal typed_caveat_loops_g_not_called_post_ok_v2 : Valid -[wp] [Qed] Goal typed_caveat_no_calls_post_ok_m1 : Valid -[wp] [alt-ergo] Goal typed_caveat_no_calls_post_ok_m2 : Valid -[wp] [alt-ergo] Goal typed_caveat_no_calls_post_ok_n2 : Valid -[wp] [alt-ergo] Goal typed_caveat_no_calls_post_ok_n3 : Valid -[wp] [Qed] Goal typed_caveat_no_calls_assign : Valid -[wp] [Qed] Goal typed_caveat_sequence_assign_exit : Valid -[wp] [Qed] Goal typed_caveat_sequence_assign_normal : Valid -[wp] [Qed] Goal typed_caveat_sequence_g_called_post_ok_o1 : Valid -[wp] [Qed] Goal typed_caveat_sequence_g_called_post_ok_p1 : Valid -[wp] [Qed] Goal typed_caveat_sequence_g_called_post_ok_p2 : Valid -[wp] [alt-ergo] Goal typed_caveat_sequence_g_called_post_ok_p3 : Valid -[wp] [Qed] Goal typed_caveat_sequence_g_not_called_post_ok_o2 : Valid -[wp] [Qed] Goal typed_caveat_sequence_g_not_called_post_ok_q1 : Valid -[wp] [Qed] Goal typed_caveat_sequence_g_not_called_post_ok_q2 : Valid -[wp] [alt-ergo] Goal typed_caveat_sequence_g_not_called_post_ok_q3 : Valid +[wp] [Qed] Goal typed_caveat_loops_ensures_ok_first : Valid +[wp] [alt-ergo] Goal typed_caveat_loops_ensures_ok_last : Valid +[wp] [alt-ergo] Goal typed_caveat_loops_loop_invariant_ok_id_max_preserved : Valid +[wp] [Qed] Goal typed_caveat_loops_loop_invariant_ok_id_max_established : Valid +[wp] [alt-ergo] Goal typed_caveat_loops_loop_invariant_ok_id_min_preserved : Valid +[wp] [Qed] Goal typed_caveat_loops_loop_invariant_ok_id_min_established : Valid +[wp] [alt-ergo] Goal typed_caveat_loops_loop_invariant_ok_inv_preserved : Valid +[wp] [Qed] Goal typed_caveat_loops_loop_invariant_ok_inv_established : Valid +[wp] [Qed] Goal typed_caveat_loops_loop_assigns : Valid +[wp] [Qed] Goal typed_caveat_loops_assigns_exit_part1 : Valid +[wp] [Qed] Goal typed_caveat_loops_assigns_exit_part2 : Valid +[wp] [Qed] Goal typed_caveat_loops_assigns_exit_part3 : Valid +[wp] [Qed] Goal typed_caveat_loops_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_caveat_loops_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_caveat_loops_assigns_normal_part3 : Valid +[wp] [alt-ergo] Goal typed_caveat_loops_g_called_ensures_ok_u1 : Valid +[wp] [Qed] Goal typed_caveat_loops_g_called_ensures_ok_u2 : Valid +[wp] [alt-ergo] Goal typed_caveat_loops_g_not_called_ensures_ok_v1 : Valid +[wp] [alt-ergo] Goal typed_caveat_loops_g_not_called_ensures_ok_v2 : Valid +[wp] [Qed] Goal typed_caveat_no_calls_ensures_ok_m1 : Valid +[wp] [alt-ergo] Goal typed_caveat_no_calls_ensures_ok_m2 : Valid +[wp] [alt-ergo] Goal typed_caveat_no_calls_ensures_ok_n2 : Valid +[wp] [alt-ergo] Goal typed_caveat_no_calls_ensures_ok_n3 : Valid +[wp] [Qed] Goal typed_caveat_no_calls_assigns : Valid +[wp] [Qed] Goal typed_caveat_sequence_assigns_exit : Valid +[wp] [Qed] Goal typed_caveat_sequence_assigns_normal : Valid +[wp] [Qed] Goal typed_caveat_sequence_g_called_ensures_ok_o1 : Valid +[wp] [Qed] Goal typed_caveat_sequence_g_called_ensures_ok_p1 : Valid +[wp] [Qed] Goal typed_caveat_sequence_g_called_ensures_ok_p2 : Valid +[wp] [alt-ergo] Goal typed_caveat_sequence_g_called_ensures_ok_p3 : Valid +[wp] [Qed] Goal typed_caveat_sequence_g_not_called_ensures_ok_o2 : Valid +[wp] [Qed] Goal typed_caveat_sequence_g_not_called_ensures_ok_q1 : Valid +[wp] [Qed] Goal typed_caveat_sequence_g_not_called_ensures_ok_q2 : Valid +[wp] [alt-ergo] Goal typed_caveat_sequence_g_not_called_ensures_ok_q3 : Valid [wp] Proved goals: 34 / 34 Qed: 22 alt-ergo: 12 diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/stmt.log b/src/plugins/wp/tests/wp_plugin/oracle_qualif/stmt.log index c5ef6b5c8fd1ca8556fed9433f41937c0a6ff440..a4c5684758293a710da3057a4b6d1a219bcc4541 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/stmt.log +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/stmt.log @@ -1,14 +1,14 @@ [kernel] Parsing tests/wp_plugin/stmt.c (with preprocessing) [wp] Running WP plugin... -[wp] [CFG] Goal f_stmt_exit : Valid (Unreachable) -[wp] [CFG] Goal g_stmt_exit : Valid (Unreachable) -[wp] [CFG] Goal g_stmt_assign : Valid (Unreachable) -[wp] [CFG] Goal g_stmt_post : Valid (Unreachable) -[wp] [CFG] Goal g_stmt_exit : Valid (Unreachable) -[wp] [CFG] Goal h_stmt_exit : Valid (Unreachable) -[wp] [CFG] Goal h_stmt_assign : Valid (Unreachable) -[wp] [CFG] Goal h_stmt_post : Valid (Unreachable) -[wp] [CFG] Goal h_stmt_exit : Valid (Unreachable) +[wp] [CFG] Goal f_exits : Valid (Unreachable) +[wp] [CFG] Goal g_exits : Valid (Unreachable) +[wp] [CFG] Goal g_assigns : Valid (Unreachable) +[wp] [CFG] Goal g_ensures : Valid (Unreachable) +[wp] [CFG] Goal g_exits : Valid (Unreachable) +[wp] [CFG] Goal h_exits : Valid (Unreachable) +[wp] [CFG] Goal h_assigns : Valid (Unreachable) +[wp] [CFG] Goal h_ensures : Valid (Unreachable) +[wp] [CFG] Goal h_exits : Valid (Unreachable) [wp] CFG h -> h [wp] CFG h -> h_NEG_stmt_15 [wp] CFG h -> h_POS_stmt_15 diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/stmt.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/stmt.res.oracle index 97b554ede989e2f597a21c145e87e9fa58989697..b891bec1a72b0dcb219f3c43738bfe781322f85a 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/stmt.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/stmt.res.oracle @@ -2,25 +2,25 @@ [kernel] Parsing tests/wp_plugin/stmt.c (with preprocessing) [wp] Running WP plugin... [wp] Loading driver 'share/wp.driver' -[wp] [CFG] Goal f_stmt_exit : Valid (Unreachable) -[wp] [CFG] Goal g_stmt_exit : Valid (Unreachable) -[wp] [CFG] Goal g_stmt_assign : Valid (Unreachable) -[wp] [CFG] Goal g_stmt_post : Valid (Unreachable) -[wp] [CFG] Goal g_stmt_exit : Valid (Unreachable) -[wp] [CFG] Goal h_stmt_exit : Valid (Unreachable) -[wp] [CFG] Goal h_stmt_assign : Valid (Unreachable) -[wp] [CFG] Goal h_stmt_post : Valid (Unreachable) -[wp] [CFG] Goal h_stmt_exit : Valid (Unreachable) +[wp] [CFG] Goal f_exits : Valid (Unreachable) +[wp] [CFG] Goal g_exits : Valid (Unreachable) +[wp] [CFG] Goal g_assigns : Valid (Unreachable) +[wp] [CFG] Goal g_ensures : Valid (Unreachable) +[wp] [CFG] Goal g_exits : Valid (Unreachable) +[wp] [CFG] Goal h_exits : Valid (Unreachable) +[wp] [CFG] Goal h_assigns : Valid (Unreachable) +[wp] [CFG] Goal h_ensures : Valid (Unreachable) +[wp] [CFG] Goal h_exits : Valid (Unreachable) [wp] Warning: Missing RTE guards [wp] 10 goals scheduled -[wp] [Qed] Goal typed_f_post : Valid -[wp] [Qed] Goal typed_f_post_2 : Valid +[wp] [Qed] Goal typed_f_ensures_2 : Valid +[wp] [Qed] Goal typed_f_ensures_3 : Valid [wp] [Qed] Goal typed_f_assert : Valid -[wp] [Qed] Goal typed_f_stmt_post : Valid -[wp] [Qed] Goal typed_f_stmt_assign : Valid -[wp] [Qed] Goal typed_g_post : Valid +[wp] [Qed] Goal typed_f_ensures : Valid +[wp] [Qed] Goal typed_f_assigns : Valid +[wp] [Qed] Goal typed_g_ensures_2 : Valid [wp] [Qed] Goal typed_g_assert : Valid -[wp] [Qed] Goal typed_h_post : Valid +[wp] [Qed] Goal typed_h_ensures_2 : Valid [wp] [Qed] Goal typed_h_assert : Valid [wp] [Qed] Goal typed_h_assert_2 : Valid [wp] Proved goals: 10 / 10 diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/string_c.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/string_c.res.oracle index d4b8d167e8841ec4fef132c958997151a3903665..cd836f893d9450075f4900dc7dde4b8def2dc3b2 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/string_c.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/string_c.res.oracle @@ -4,50 +4,50 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 44 goals scheduled -[wp] [Alt-Ergo] Goal typed_memcpy_post_copied_contents : Valid -[wp] [Qed] Goal typed_memcpy_post_result_ptr : Valid -[wp] [Alt-Ergo] Goal typed_memcpy_loop_inv_no_eva_preserved : Valid -[wp] [Alt-Ergo] Goal typed_memcpy_loop_inv_no_eva_established : Valid -[wp] [Alt-Ergo] Goal typed_memcpy_loop_inv_no_eva_2_preserved : Valid -[wp] [Qed] Goal typed_memcpy_loop_inv_no_eva_2_established : Valid -[wp] [Qed] Goal typed_memcpy_loop_assign_part1 : Valid -[wp] [Qed] Goal typed_memcpy_loop_assign_part2 : Valid -[wp] [Alt-Ergo] Goal typed_memcpy_loop_assign_part3 : Valid -[wp] [Qed] Goal typed_memcpy_assign : Valid -[wp] [Alt-Ergo] Goal typed_memcpy_loop_term_decrease : Valid -[wp] [Qed] Goal typed_memcpy_loop_term_positive : Valid -[wp] [Alt-Ergo] Goal typed_memmove_post_copied_contents : Valid -[wp] [Qed] Goal typed_memmove_post_result_ptr : Valid -[wp] [Alt-Ergo] Goal typed_memmove_loop_inv_no_eva_preserved : Valid -[wp] [Alt-Ergo] Goal typed_memmove_loop_inv_no_eva_established : Valid -[wp] [Alt-Ergo] Goal typed_memmove_loop_inv_no_eva_2_preserved : Valid -[wp] [Qed] Goal typed_memmove_loop_inv_no_eva_2_established : Valid -[wp] [Alt-Ergo] Goal typed_memmove_loop_inv_no_eva_3_preserved : Valid -[wp] [Qed] Goal typed_memmove_loop_inv_no_eva_3_established : Valid -[wp] [Alt-Ergo] Goal typed_memmove_loop_inv_no_eva_4_preserved : Valid -[wp] [Alt-Ergo] Goal typed_memmove_loop_inv_no_eva_4_established : Valid -[wp] [Alt-Ergo] Goal typed_memmove_loop_inv_no_eva_5_preserved : Valid -[wp] [Alt-Ergo] Goal typed_memmove_loop_inv_no_eva_5_established : Valid -[wp] [Alt-Ergo] Goal typed_memmove_loop_inv_no_eva_6_preserved : Valid -[wp] [Qed] Goal typed_memmove_loop_inv_no_eva_6_established : Valid -[wp] [Qed] Goal typed_memmove_loop_assign_part1 : Valid -[wp] [Qed] Goal typed_memmove_loop_assign_part2 : Valid -[wp] [Alt-Ergo] Goal typed_memmove_loop_assign_part3 : Valid -[wp] [Qed] Goal typed_memmove_loop_assign_2_part1 : Valid -[wp] [Qed] Goal typed_memmove_loop_assign_2_part2 : Valid -[wp] [Alt-Ergo] Goal typed_memmove_loop_assign_2_part3 : Valid -[wp] [Qed] Goal typed_memmove_assign_exit : Valid -[wp] [Qed] Goal typed_memmove_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_memmove_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_memmove_assign_normal_part3 : Valid -[wp] [Qed] Goal typed_memmove_assign_normal_part4 : Valid -[wp] [Qed] Goal typed_memmove_assign_normal_part5 : Valid -[wp] [Alt-Ergo] Goal typed_memmove_assign_normal_part6 : Valid -[wp] [Qed] Goal typed_memmove_assign_normal_part7 : Valid -[wp] [Alt-Ergo] Goal typed_memmove_loop_term_decrease : Valid -[wp] [Qed] Goal typed_memmove_loop_term_positive : Valid -[wp] [Alt-Ergo] Goal typed_memmove_loop_term_2_decrease : Valid -[wp] [Qed] Goal typed_memmove_loop_term_2_positive : Valid +[wp] [Alt-Ergo] Goal typed_memcpy_ensures_copied_contents : Valid +[wp] [Qed] Goal typed_memcpy_ensures_result_ptr : Valid +[wp] [Alt-Ergo] Goal typed_memcpy_loop_invariant_no_eva_preserved : Valid +[wp] [Alt-Ergo] Goal typed_memcpy_loop_invariant_no_eva_established : Valid +[wp] [Alt-Ergo] Goal typed_memcpy_loop_invariant_no_eva_2_preserved : Valid +[wp] [Qed] Goal typed_memcpy_loop_invariant_no_eva_2_established : Valid +[wp] [Qed] Goal typed_memcpy_loop_assigns_part1 : Valid +[wp] [Qed] Goal typed_memcpy_loop_assigns_part2 : Valid +[wp] [Alt-Ergo] Goal typed_memcpy_loop_assigns_part3 : Valid +[wp] [Qed] Goal typed_memcpy_assigns : Valid +[wp] [Alt-Ergo] Goal typed_memcpy_loop_variant_decrease : Valid +[wp] [Qed] Goal typed_memcpy_loop_variant_positive : Valid +[wp] [Alt-Ergo] Goal typed_memmove_ensures_copied_contents : Valid +[wp] [Qed] Goal typed_memmove_ensures_result_ptr : Valid +[wp] [Alt-Ergo] Goal typed_memmove_loop_invariant_no_eva_preserved : Valid +[wp] [Alt-Ergo] Goal typed_memmove_loop_invariant_no_eva_established : Valid +[wp] [Alt-Ergo] Goal typed_memmove_loop_invariant_no_eva_2_preserved : Valid +[wp] [Qed] Goal typed_memmove_loop_invariant_no_eva_2_established : Valid +[wp] [Alt-Ergo] Goal typed_memmove_loop_invariant_no_eva_3_preserved : Valid +[wp] [Qed] Goal typed_memmove_loop_invariant_no_eva_3_established : Valid +[wp] [Alt-Ergo] Goal typed_memmove_loop_invariant_no_eva_4_preserved : Valid +[wp] [Alt-Ergo] Goal typed_memmove_loop_invariant_no_eva_4_established : Valid +[wp] [Alt-Ergo] Goal typed_memmove_loop_invariant_no_eva_5_preserved : Valid +[wp] [Alt-Ergo] Goal typed_memmove_loop_invariant_no_eva_5_established : Valid +[wp] [Alt-Ergo] Goal typed_memmove_loop_invariant_no_eva_6_preserved : Valid +[wp] [Qed] Goal typed_memmove_loop_invariant_no_eva_6_established : Valid +[wp] [Qed] Goal typed_memmove_loop_assigns_part1 : Valid +[wp] [Qed] Goal typed_memmove_loop_assigns_part2 : Valid +[wp] [Alt-Ergo] Goal typed_memmove_loop_assigns_part3 : Valid +[wp] [Qed] Goal typed_memmove_loop_assigns_2_part1 : Valid +[wp] [Qed] Goal typed_memmove_loop_assigns_2_part2 : Valid +[wp] [Alt-Ergo] Goal typed_memmove_loop_assigns_2_part3 : Valid +[wp] [Qed] Goal typed_memmove_assigns_exit : Valid +[wp] [Qed] Goal typed_memmove_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_memmove_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_memmove_assigns_normal_part3 : Valid +[wp] [Qed] Goal typed_memmove_assigns_normal_part4 : Valid +[wp] [Qed] Goal typed_memmove_assigns_normal_part5 : Valid +[wp] [Alt-Ergo] Goal typed_memmove_assigns_normal_part6 : Valid +[wp] [Qed] Goal typed_memmove_assigns_normal_part7 : Valid +[wp] [Alt-Ergo] Goal typed_memmove_loop_variant_decrease : Valid +[wp] [Qed] Goal typed_memmove_loop_variant_positive : Valid +[wp] [Alt-Ergo] Goal typed_memmove_loop_variant_2_decrease : Valid +[wp] [Qed] Goal typed_memmove_loop_variant_2_positive : Valid [wp] Proved goals: 44 / 44 Qed: 23 Alt-Ergo: 21 diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/struct.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/struct.res.oracle index ececd4dbdc753c429893457c4d853ea936e9aac4..5d5925a673ed1be9f1420df468cdb4b363b26237 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/struct.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/struct.res.oracle @@ -4,24 +4,24 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 18 goals scheduled -[wp] [Qed] Goal typed_f_post_qed_ok_E0 : Valid -[wp] [Qed] Goal typed_f_post_qed_ok_E1 : Valid -[wp] [Qed] Goal typed_f_post_qed_ok_E2 : Valid -[wp] [Qed] Goal typed_f_post_qed_ok_E3 : Valid -[wp] [Qed] Goal typed_f_post_qed_ok_E4 : Valid -[wp] [Qed] Goal typed_f_post_qed_ok_E5 : Valid -[wp] [Qed] Goal typed_f_post_qed_ok_E6 : Valid -[wp] [Qed] Goal typed_f_post_qed_ok_E7 : Valid -[wp] [Qed] Goal typed_f_post_qed_ok_E8 : Valid -[wp] [Qed] Goal typed_f_post_qed_ok_E9 : Valid -[wp] [Qed] Goal typed_f_post_qed_ok_E10 : Valid -[wp] [Qed] Goal typed_f_post_qed_ok_E11 : Valid -[wp] [Qed] Goal typed_g_post_qed_ok_P3 : Valid -[wp] [Qed] Goal typed_g_post_qed_ok_P4 : Valid -[wp] [Qed] Goal typed_g_post_qed_ok_P5 : Valid -[wp] [Qed] Goal typed_g_assign : Valid -[wp] [Qed] Goal typed_id_post_qed_ok_P1 : Valid -[wp] [Qed] Goal typed_id_post_qed_ok_P2 : Valid +[wp] [Qed] Goal typed_f_ensures_qed_ok_E0 : Valid +[wp] [Qed] Goal typed_f_ensures_qed_ok_E1 : Valid +[wp] [Qed] Goal typed_f_ensures_qed_ok_E2 : Valid +[wp] [Qed] Goal typed_f_ensures_qed_ok_E3 : Valid +[wp] [Qed] Goal typed_f_ensures_qed_ok_E4 : Valid +[wp] [Qed] Goal typed_f_ensures_qed_ok_E5 : Valid +[wp] [Qed] Goal typed_f_ensures_qed_ok_E6 : Valid +[wp] [Qed] Goal typed_f_ensures_qed_ok_E7 : Valid +[wp] [Qed] Goal typed_f_ensures_qed_ok_E8 : Valid +[wp] [Qed] Goal typed_f_ensures_qed_ok_E9 : Valid +[wp] [Qed] Goal typed_f_ensures_qed_ok_E10 : Valid +[wp] [Qed] Goal typed_f_ensures_qed_ok_E11 : Valid +[wp] [Qed] Goal typed_g_ensures_qed_ok_P3 : Valid +[wp] [Qed] Goal typed_g_ensures_qed_ok_P4 : Valid +[wp] [Qed] Goal typed_g_ensures_qed_ok_P5 : Valid +[wp] [Qed] Goal typed_g_assigns : Valid +[wp] [Qed] Goal typed_id_ensures_qed_ok_P1 : Valid +[wp] [Qed] Goal typed_id_ensures_qed_ok_P2 : Valid [wp] Proved goals: 18 / 18 Qed: 18 [wp] Report 'tests/wp_plugin/struct.i.0.report.json' diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/struct_hack.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/struct_hack.res.oracle index 1a60c2772c855913d23492e0e5633641795f1335..14cfd26a07272ceb668fc4d14781895b05cbb320 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/struct_hack.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/struct_hack.res.oracle @@ -10,22 +10,22 @@ [wp] tests/wp_plugin/struct_hack.i:53: Warning: Missing assigns clause (assigns 'everything' instead) [wp] 10 goals scheduled -[wp] [Alt-Ergo] Goal typed_f0_loop_inv_qed_ok_preserved : Valid -[wp] [Qed] Goal typed_f0_loop_inv_qed_ok_established : Valid +[wp] [Alt-Ergo] Goal typed_f0_loop_invariant_qed_ok_preserved : Valid +[wp] [Qed] Goal typed_f0_loop_invariant_qed_ok_established : Valid [wp] [Alt-Ergo] Goal typed_f0_assert_qed_ok : Valid -[wp] [Qed] Goal typed_f0_loop_term_decrease : Valid -[wp] [Qed] Goal typed_f0_loop_term_positive : Valid -[wp] [Alt-Ergo] Goal typed_f1_loop_inv_qed_ok_preserved : Valid -[wp] [Qed] Goal typed_f1_loop_inv_qed_ok_established : Valid +[wp] [Qed] Goal typed_f0_loop_variant_decrease : Valid +[wp] [Qed] Goal typed_f0_loop_variant_positive : Valid +[wp] [Alt-Ergo] Goal typed_f1_loop_invariant_qed_ok_preserved : Valid +[wp] [Qed] Goal typed_f1_loop_invariant_qed_ok_established : Valid [wp] [Alt-Ergo] Goal typed_f1_assert_qed_ok : Valid -[wp] [Qed] Goal typed_f1_loop_term_decrease : Valid -[wp] [Qed] Goal typed_f1_loop_term_positive : Valid +[wp] [Qed] Goal typed_f1_loop_variant_decrease : Valid +[wp] [Qed] Goal typed_f1_loop_variant_positive : Valid [wp] Proved goals: 10 / 10 Qed: 6 Alt-Ergo: 4 [wp] Report 'tests/wp_plugin/struct_hack.i.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -f0 3 2 (20..32) 5 100% +f0 3 2 (24..36) 5 100% f1 3 2 (16..28) 5 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/subset.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/subset.res.oracle index e8606daa876ec7efc765b12bf8edaf2b63de535d..bf2ffa73ad31c0478dd9788517833a3f646b4659 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/subset.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/subset.res.oracle @@ -4,12 +4,12 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled -[wp] [Alt-Ergo] Goal typed_mem_post : Valid +[wp] [Alt-Ergo] Goal typed_mem_ensures : Valid [wp] Proved goals: 1 / 1 Qed: 0 Alt-Ergo: 1 [wp] Report 'tests/wp_plugin/subset.i.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -mem - 1 (112..136) 1 100% +mem - 1 (128..152) 1 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/trig.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/trig.res.oracle index d4b8f0fc30206a4473541a5e4226c233bf971427..13c1a6e92193642c657b9833e30ce9351c426c54 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/trig.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/trig.res.oracle @@ -7,12 +7,12 @@ [wp] [Alt-Ergo] Goal typed_foo_assert_qed_ok_S : Valid [wp] [Alt-Ergo] Goal typed_foo_assert_qed_ok_A : Valid [wp] [Alt-Ergo] Goal typed_foo_assert_qed_ok_B : Unknown -[wp] [Qed] Goal typed_foo_call_fconcat_pre_qed_ok : Valid +[wp] [Qed] Goal typed_foo_call_fconcat_requires_qed_ok : Valid [wp] Proved goals: 3 / 4 Qed: 1 Alt-Ergo: 2 (unknown: 1) [wp] Report 'tests/wp_plugin/trig.i.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -foo 1 2 (44..56) 4 75.0% +foo 1 2 (48..60) 4 75.0% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/unsafe-arrays.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/unsafe-arrays.res.oracle index d093141e585916c6b6ac1f1753c36549cfd159c5..6ce8eaf3651a1fb1b04a513c56de8fd3e36fe498 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/unsafe-arrays.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/unsafe-arrays.res.oracle @@ -4,9 +4,9 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 3 goals scheduled -[wp] [Qed] Goal typed_f_post_ARRAYS : Valid -[wp] [Qed] Goal typed_f_post_STRUCT : Valid -[wp] [Alt-Ergo] Goal typed_f_post_INDIRP : Valid +[wp] [Qed] Goal typed_f_ensures_ARRAYS : Valid +[wp] [Qed] Goal typed_f_ensures_STRUCT : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_INDIRP : Valid [wp] Proved goals: 3 / 3 Qed: 2 Alt-Ergo: 1 diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/unsupported_init.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/unsupported_init.res.oracle index 512b6a9775dca1032030781db5f07faba19e53ce..5cb5f531ab2cff415b146d2960bb24cd8a29737e 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/unsupported_init.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/unsupported_init.res.oracle @@ -8,7 +8,7 @@ (r1: \initialized(Y + (0 .. 99))) [wp] 2 goals scheduled [wp] [Qed] Goal typed_f_assert_a1 : Valid -[wp] [Alt-Ergo] Goal typed_f_call_cp_pre_r1 : Unknown (Degenerated) +[wp] [Alt-Ergo] Goal typed_f_call_cp_requires_r1 : Unknown (Degenerated) [wp] Proved goals: 1 / 2 Qed: 1 Alt-Ergo: 0 (unknown: 1) diff --git a/src/plugins/wp/tests/wp_plugin/overarray.i.0.report.json b/src/plugins/wp/tests/wp_plugin/overarray.i.0.report.json index 720746c5196416ef4898a24124ec3ac9d1e21bc7..dbda73ffeddfd55206f94a3f1e8d23e4b278c486 100644 --- a/src/plugins/wp/tests/wp_plugin/overarray.i.0.report.json +++ b/src/plugins/wp/tests/wp_plugin/overarray.i.0.report.json @@ -1,50 +1,50 @@ { "wp:global": { "alt-ergo": { "total": 4, "unknown": 4 }, "qed": { "total": 8, "valid": 8 }, "wp:main": { "total": 12, "valid": 8, "unknown": 4 } }, - "wp:functions": { "f1_ok": { "f1_ok_assign": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, + "wp:functions": { "f1_ok": { "f1_ok_assigns": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } } }, - "f2_ok": { "f2_ok_assign": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, + "f2_ok": { "f2_ok_assigns": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } } }, - "f3_ok": { "f3_ok_assign": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, + "f3_ok": { "f3_ok_assigns": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } } }, - "f4_ok": { "f4_ok_assign": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, + "f4_ok": { "f4_ok_assigns": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } } }, - "f5_ko": { "f5_ko_assign": { "alt-ergo": { "total": 2, - "unknown": 2 }, - "wp:main": { "total": 2, - "unknown": 2 } }, + "f5_ko": { "f5_ko_assigns": { "alt-ergo": { "total": 2, + "unknown": 2 }, + "wp:main": { "total": 2, + "unknown": 2 } }, "wp:section": { "alt-ergo": { "total": 2, "unknown": 2 }, "wp:main": { "total": 2, "unknown": 2 } } }, - "f6_ko": { "f6_ko_assign": { "alt-ergo": { "total": 2, - "unknown": 2 }, - "wp:main": { "total": 2, - "unknown": 2 } }, + "f6_ko": { "f6_ko_assigns": { "alt-ergo": { "total": 2, + "unknown": 2 }, + "wp:main": { "total": 2, + "unknown": 2 } }, "wp:section": { "alt-ergo": { "total": 2, "unknown": 2 }, "wp:main": { "total": 2, diff --git a/src/plugins/wp/tests/wp_plugin/overassign.i.0.report.json b/src/plugins/wp/tests/wp_plugin/overassign.i.0.report.json index 80848c1eee23b93d767419b34800a6444c9f6ff4..71511e374d5cd66fb7c663cd5ed201c7ef5af01b 100644 --- a/src/plugins/wp/tests/wp_plugin/overassign.i.0.report.json +++ b/src/plugins/wp/tests/wp_plugin/overassign.i.0.report.json @@ -3,58 +3,58 @@ "qed": { "total": 4, "valid": 4 }, "wp:main": { "total": 12, "valid": 8, "unknown": 4, "rank": 6 } }, - "wp:functions": { "f1_ok": { "f1_ok_assign": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, + "wp:functions": { "f1_ok": { "f1_ok_assigns": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } } }, - "f2_ok": { "f2_ok_assign": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, + "f2_ok": { "f2_ok_assigns": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } } }, - "f3_ok": { "f3_ok_assign": { "alt-ergo": { "total": 2, + "f3_ok": { "f3_ok_assigns": { "alt-ergo": { "total": 2, + "valid": 2, + "rank": 6 }, + "wp:main": { "total": 2, "valid": 2, - "rank": 6 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 6 } }, + "rank": 6 } }, "wp:section": { "alt-ergo": { "total": 2, "valid": 2, "rank": 6 }, "wp:main": { "total": 2, "valid": 2, "rank": 6 } } }, - "f4_ok": { "f4_ok_assign": { "alt-ergo": { "total": 2, + "f4_ok": { "f4_ok_assigns": { "alt-ergo": { "total": 2, + "valid": 2, + "rank": 5 }, + "wp:main": { "total": 2, "valid": 2, - "rank": 4 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 4 } }, + "rank": 5 } }, "wp:section": { "alt-ergo": { "total": 2, "valid": 2, - "rank": 4 }, + "rank": 5 }, "wp:main": { "total": 2, "valid": 2, - "rank": 4 } } }, - "f5_ko": { "f5_ko_assign": { "alt-ergo": { "total": 2, - "unknown": 2 }, - "wp:main": { "total": 2, - "unknown": 2 } }, + "rank": 5 } } }, + "f5_ko": { "f5_ko_assigns": { "alt-ergo": { "total": 2, + "unknown": 2 }, + "wp:main": { "total": 2, + "unknown": 2 } }, "wp:section": { "alt-ergo": { "total": 2, "unknown": 2 }, "wp:main": { "total": 2, "unknown": 2 } } }, - "f6_ko": { "f6_ko_assign": { "alt-ergo": { "total": 2, - "unknown": 2 }, - "wp:main": { "total": 2, - "unknown": 2 } }, + "f6_ko": { "f6_ko_assigns": { "alt-ergo": { "total": 2, + "unknown": 2 }, + "wp:main": { "total": 2, + "unknown": 2 } }, "wp:section": { "alt-ergo": { "total": 2, "unknown": 2 }, "wp:main": { "total": 2, diff --git a/src/plugins/wp/tests/wp_plugin/prenex.i.0.report.json b/src/plugins/wp/tests/wp_plugin/prenex.i.0.report.json index 0f3f71f56e14c84f708b839a9782131ddb51b081..87caa6954e8ecacf82c65b0285dd8aea904d0ee6 100644 --- a/src/plugins/wp/tests/wp_plugin/prenex.i.0.report.json +++ b/src/plugins/wp/tests/wp_plugin/prenex.i.0.report.json @@ -1,57 +1,63 @@ -{ "wp:global": { "alt-ergo": { "total": 5, "valid": 5, "rank": 16 }, +{ "wp:global": { "alt-ergo": { "total": 5, "valid": 5, "rank": 17 }, "qed": { "total": 7, "valid": 7 }, - "wp:main": { "total": 12, "valid": 12, "rank": 16 } }, - "wp:functions": { "diag": { "diag_loop_inv_PJ": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 7 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 7 } }, - "diag_loop_inv_J": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 6 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 6 } }, - "diag_loop_inv_PI": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 7 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 7 } }, - "diag_loop_inv_I": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 5 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 5 } }, - "diag_loop_assign_2": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "diag_loop_assign": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, - "diag_post": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 16 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 16 } }, + "wp:main": { "total": 12, "valid": 12, "rank": 17 } }, + "wp:functions": { "diag": { "diag_loop_invariant_PJ": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 8 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 2, + "valid": 2, + "rank": 8 } }, + "diag_loop_invariant_J": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 7 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 7 } }, + "diag_loop_invariant_PI": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 8 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 2, + "valid": 2, + "rank": 8 } }, + "diag_loop_invariant_I": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 6 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 6 } }, + "diag_loop_assigns_2": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "diag_loop_assigns": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, + "diag_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 17 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 17 } }, "wp:section": { "alt-ergo": { "total": 5, "valid": 5, - "rank": 16 }, + "rank": 17 }, "qed": { "total": 7, "valid": 7 }, "wp:main": { "total": 12, "valid": 12, - "rank": 16 } } } } } + "rank": 17 } } } } } diff --git a/src/plugins/wp/tests/wp_plugin/repeat.c.0.report.json b/src/plugins/wp/tests/wp_plugin/repeat.c.0.report.json index e96b420e99acab6cb9a1086562ba4ba76c0d8c75..5fd1e03fce302fe36b4d29c14803969ccbfa3782 100644 --- a/src/plugins/wp/tests/wp_plugin/repeat.c.0.report.json +++ b/src/plugins/wp/tests/wp_plugin/repeat.c.0.report.json @@ -1,68 +1,73 @@ { "wp:global": { "alt-ergo": { "total": 5, "valid": 5, "rank": 12 }, "qed": { "total": 42, "valid": 42 }, "wp:main": { "total": 47, "valid": 47, "rank": 12 } }, - "wp:functions": { "master": { "master_assign": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, - "master_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "master": { "master_assigns": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, + "master_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 3, "valid": 3 }, "wp:main": { "total": 3, "valid": 3 } } }, - "unroll": { "unroll_loop_inv": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, - "unroll_assign": { "qed": { "total": 22, - "valid": 22 }, - "wp:main": { "total": 22, - "valid": 22 } }, - "unroll_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "unroll": { "unroll_loop_invariant": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": + { "total": 2, + "valid": 2 } }, + "unroll_assigns": { "qed": { "total": 22, + "valid": 22 }, + "wp:main": { "total": 22, + "valid": 22 } }, + "unroll_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 25, "valid": 25 }, "wp:main": { "total": 25, "valid": 25 } } }, - "induction": { "induction_loop_inv_2": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 12 }, - "qed": { "total": 1, + "induction": { "induction_loop_invariant_2": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 12 }, + "qed": + { "total": 1, "valid": 1 }, - "wp:main": - { "total": 2, - "valid": 2, - "rank": 12 } }, - "induction_loop_inv": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 4 }, - "qed": { "total": 1, + "wp:main": + { "total": 2, + "valid": 2, + "rank": 12 } }, + "induction_loop_invariant": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 4 }, + "qed": + { "total": 1, "valid": 1 }, - "wp:main": - { "total": 2, - "valid": 2, - "rank": 4 } }, - "induction_assign": { "qed": { "total": 3, - "valid": 3 }, - "wp:main": { "total": 3, - "valid": 3 } }, - "induction_loop_assign": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "induction_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:main": + { "total": 2, + "valid": 2, + "rank": 4 } }, + "induction_assigns": { "qed": { "total": 3, + "valid": 3 }, + "wp:main": + { "total": 3, + "valid": 3 } }, + "induction_loop_assigns": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "induction_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 2, "valid": 2, "rank": 12 }, @@ -71,38 +76,42 @@ "wp:main": { "total": 9, "valid": 9, "rank": 12 } } }, - "shifted": { "shifted_loop_inv_2": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 12 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 12 } }, - "shifted_loop_inv": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 5 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 5 } }, - "shifted_assign": { "qed": { "total": 4, - "valid": 4 }, - "wp:main": { "total": 4, - "valid": 4 } }, - "shifted_loop_assign": { "qed": { "total": 1, + "shifted": { "shifted_loop_invariant_2": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 12 }, + "qed": + { "total": 1, "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "shifted_post": { "alt-ergo": { "total": 1, + "wp:main": + { "total": 2, + "valid": 2, + "rank": 12 } }, + "shifted_loop_invariant": { "alt-ergo": + { "total": 1, "valid": 1, - "rank": 11 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 11 } }, + "rank": 5 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 2, + "valid": 2, + "rank": 5 } }, + "shifted_assigns": { "qed": { "total": 4, + "valid": 4 }, + "wp:main": { "total": 4, + "valid": 4 } }, + "shifted_loop_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "shifted_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 11 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 11 } }, "wp:section": { "alt-ergo": { "total": 3, "valid": 3, "rank": 12 }, diff --git a/src/plugins/wp/tests/wp_plugin/sequence.i.0.report.json b/src/plugins/wp/tests/wp_plugin/sequence.i.0.report.json index 817a0ff84b007f0bcdcf5b9317a0f356cda307d9..ae0f326bdbae62d9931abc55c0301c9f487d6d85 100644 --- a/src/plugins/wp/tests/wp_plugin/sequence.i.0.report.json +++ b/src/plugins/wp/tests/wp_plugin/sequence.i.0.report.json @@ -1,119 +1,99 @@ { "wp:global": { "alt-ergo": { "total": 14, "valid": 14, "rank": 13 }, "qed": { "total": 25, "valid": 25 }, "wp:main": { "total": 39, "valid": 39, "rank": 13 } }, - "wp:functions": { "no_calls": { "no_calls_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, + "wp:functions": { "no_calls": { "no_calls_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, - "no_calls_post_ok_bug_why3_n6_ok": + "no_calls_ensures_ok_bug_why3_n6_ok": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "no_calls_post_ok_bug_why3_n5_ok": + "no_calls_ensures_ok_bug_why3_n5_ok": { "alt-ergo": { "total": 1, "valid": 1, "rank": 2 }, "wp:main": { "total": 1, "valid": 1, "rank": 2 } }, - "no_calls_post_ok_bug_why3_n6": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "no_calls_post_ok_bug_why3_n5": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 2 }, - "wp:main": - { "total": 1, - "valid": 1, - "rank": 2 } }, - "no_calls_post_ok_n3": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 1 }, - "wp:main": - { "total": 1, - "valid": 1, - "rank": 1 } }, - "no_calls_post_ok_n2": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 1 }, - "wp:main": - { "total": 1, - "valid": 1, - "rank": 1 } }, - "no_calls_post_ok_bug_why3_n1": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "no_calls_post_ok_m2": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 1 }, - "wp:main": - { "total": 1, - "valid": 1, - "rank": 1 } }, - "no_calls_post_ok_m1": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "no_calls_ensures_ok_bug_why3_n6": + { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, + "no_calls_ensures_ok_bug_why3_n5": + { "alt-ergo": { "total": 1, "valid": 1, + "rank": 3 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 3 } }, + "no_calls_ensures_ok_n3": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 1 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 1 } }, + "no_calls_ensures_ok_n2": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 1 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 1 } }, + "no_calls_ensures_ok_bug_why3_n1": + { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, + "no_calls_ensures_ok_m2": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 1 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 1 } }, + "no_calls_ensures_ok_m1": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 5, "valid": 5, - "rank": 2 }, + "rank": 3 }, "qed": { "total": 5, "valid": 5 }, "wp:main": { "total": 10, "valid": 10, - "rank": 2 } } }, - "sequence": { "sequence_assign": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, + "rank": 3 } } }, + "sequence": { "sequence_assigns": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, "valid": 2 } }, - "sequence_g_not_called_post_ok_q3": + "sequence_g_not_called_ensures_ok_q3": { "alt-ergo": { "total": 1, "valid": 1, "rank": 3 }, "wp:main": { "total": 1, "valid": 1, "rank": 3 } }, - "sequence_g_not_called_post_ok_q2": + "sequence_g_not_called_ensures_ok_q2": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "sequence_g_not_called_post_ok_q1": + "sequence_g_not_called_ensures_ok_q1": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "sequence_g_not_called_post_ok_o2": + "sequence_g_not_called_ensures_ok_o2": + { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, + "sequence_g_called_ensures_ok_p3": + { "alt-ergo": { "total": 1, "valid": 1, + "rank": 4 }, + "wp:main": { "total": 1, "valid": 1, + "rank": 4 } }, + "sequence_g_called_ensures_ok_p2": + { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, + "sequence_g_called_ensures_ok_p1": + { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, + "sequence_g_called_ensures_ok_o1": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "sequence_g_called_post_ok_p3": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 4 }, - "wp:main": - { "total": 1, - "valid": 1, - "rank": 4 } }, - "sequence_g_called_post_ok_p2": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "sequence_g_called_post_ok_p1": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "sequence_g_called_post_ok_o1": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 2, "valid": 2, "rank": 4 }, @@ -122,84 +102,90 @@ "wp:main": { "total": 10, "valid": 10, "rank": 4 } } }, - "loops": { "loops_loop_inv_ok_inv": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 13 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 2, - "valid": 2, - "rank": 13 } }, - "loops_loop_inv_ok_id_max": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 4 }, - "qed": { "total": 1, + "loops": { "loops_loop_invariant_ok_inv": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 13 }, + "qed": + { "total": 1, "valid": 1 }, - "wp:main": - { "total": 2, - "valid": 2, - "rank": 4 } }, - "loops_loop_inv_ok_id_min": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 4 }, - "qed": { "total": 1, + "wp:main": + { "total": 2, + "valid": 2, + "rank": 13 } }, + "loops_loop_invariant_ok_id_max": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 4 }, + "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 2, + "valid": 2, + "rank": 4 } }, + "loops_loop_invariant_ok_id_min": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 4 }, + "qed": + { "total": 1, "valid": 1 }, - "wp:main": - { "total": 2, - "valid": 2, - "rank": 4 } }, - "loops_assign": { "qed": { "total": 6, - "valid": 6 }, - "wp:main": { "total": 6, - "valid": 6 } }, - "loops_loop_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "loops_g_not_called_post_ok_v2": { "alt-ergo": + "wp:main": + { "total": 2, + "valid": 2, + "rank": 4 } }, + "loops_assigns": { "qed": { "total": 6, + "valid": 6 }, + "wp:main": { "total": 6, + "valid": 6 } }, + "loops_loop_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "loops_g_not_called_ensures_ok_v2": { "alt-ergo": { "total": 1, "valid": 1, "rank": 5 }, - "wp:main": + "wp:main": { "total": 1, "valid": 1, "rank": 5 } }, - "loops_g_not_called_post_ok_v1": { "alt-ergo": + "loops_g_not_called_ensures_ok_v1": { "alt-ergo": { "total": 1, "valid": 1, "rank": 13 }, - "wp:main": + "wp:main": { "total": 1, "valid": 1, "rank": 13 } }, - "loops_g_called_post_ok_u2": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "loops_g_called_post_ok_u1": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 11 }, - "wp:main": - { "total": 1, - "valid": 1, - "rank": 11 } }, - "loops_post_ok_last": { "alt-ergo": { "total": 1, + "loops_g_called_ensures_ok_u2": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "loops_g_called_ensures_ok_u1": { "alt-ergo": + { "total": 1, "valid": 1, - "rank": 12 }, - "wp:main": { "total": 1, + "rank": 11 }, + "wp:main": + { "total": 1, "valid": 1, - "rank": 12 } }, - "loops_post_ok_first": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "rank": 11 } }, + "loops_ensures_ok_last": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 12 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 12 } }, + "loops_ensures_ok_first": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 7, "valid": 7, "rank": 13 }, diff --git a/src/plugins/wp/tests/wp_plugin/sequence.i.1.report.json b/src/plugins/wp/tests/wp_plugin/sequence.i.1.report.json index 2ccebef6433af46638e3b7a1ac76a65a4b166ef4..6bc196531e7db3fa49259a7199057378abf93923 100644 --- a/src/plugins/wp/tests/wp_plugin/sequence.i.1.report.json +++ b/src/plugins/wp/tests/wp_plugin/sequence.i.1.report.json @@ -1,151 +1,146 @@ { "wp:global": { "why3:alt-ergo": { "total": 12, "valid": 12 }, "qed": { "total": 22, "valid": 22 }, "wp:main": { "total": 34, "valid": 34 } }, - "wp:functions": { "no_calls": { "no_calls_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, + "wp:functions": { "no_calls": { "no_calls_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, - "no_calls_post_ok_n3": { "why3:alt-ergo": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "no_calls_post_ok_n2": { "why3:alt-ergo": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "no_calls_post_ok_m2": { "why3:alt-ergo": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "no_calls_post_ok_m1": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "no_calls_ensures_ok_n3": { "why3:alt-ergo": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "no_calls_ensures_ok_n2": { "why3:alt-ergo": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "no_calls_ensures_ok_m2": { "why3:alt-ergo": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "no_calls_ensures_ok_m1": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "why3:alt-ergo": { "total": 3, "valid": 3 }, "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 5, "valid": 5 } } }, - "sequence": { "sequence_assign": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, + "sequence": { "sequence_assigns": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, "valid": 2 } }, - "sequence_g_not_called_post_ok_q3": + "sequence_g_not_called_ensures_ok_q3": { "why3:alt-ergo": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "sequence_g_not_called_post_ok_q2": + "sequence_g_not_called_ensures_ok_q2": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "sequence_g_not_called_post_ok_q1": + "sequence_g_not_called_ensures_ok_q1": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "sequence_g_not_called_post_ok_o2": + "sequence_g_not_called_ensures_ok_o2": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "sequence_g_called_post_ok_p3": { "why3:alt-ergo": + "sequence_g_called_ensures_ok_p3": + { "why3:alt-ergo": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, + "sequence_g_called_ensures_ok_p2": + { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, + "sequence_g_called_ensures_ok_p1": + { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, + "sequence_g_called_ensures_ok_o1": + { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, + "wp:section": { "why3:alt-ergo": { "total": 2, + "valid": 2 }, + "qed": { "total": 8, + "valid": 8 }, + "wp:main": { "total": 10, + "valid": 10 } } }, + "loops": { "loops_loop_invariant_ok_inv": { "why3:alt-ergo": + { "total": 1, + "valid": 1 }, + "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 2, + "valid": 2 } }, + "loops_loop_invariant_ok_id_max": { "why3:alt-ergo": { "total": 1, "valid": 1 }, - "wp:main": + "qed": { "total": 1, - "valid": 1 } }, - "sequence_g_called_post_ok_p2": { "qed": + "valid": 1 }, + "wp:main": + { "total": 2, + "valid": 2 } }, + "loops_loop_invariant_ok_id_min": { "why3:alt-ergo": { "total": 1, "valid": 1 }, - "wp:main": + "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 2, + "valid": 2 } }, + "loops_assigns": { "qed": { "total": 6, + "valid": 6 }, + "wp:main": { "total": 6, + "valid": 6 } }, + "loops_loop_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, - "sequence_g_called_post_ok_p1": { "qed": + "loops_g_not_called_ensures_ok_v2": { "why3:alt-ergo": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "sequence_g_called_post_ok_o1": { "qed": + "loops_g_not_called_ensures_ok_v1": { "why3:alt-ergo": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "wp:section": { "why3:alt-ergo": { "total": 2, - "valid": 2 }, - "qed": { "total": 8, - "valid": 8 }, - "wp:main": { "total": 10, - "valid": 10 } } }, - "loops": { "loops_loop_inv_ok_inv": { "why3:alt-ergo": - { "total": 1, - "valid": 1 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 2, - "valid": 2 } }, - "loops_loop_inv_ok_id_max": { "why3:alt-ergo": - { "total": 1, - "valid": 1 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 2, - "valid": 2 } }, - "loops_loop_inv_ok_id_min": { "why3:alt-ergo": - { "total": 1, - "valid": 1 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 2, - "valid": 2 } }, - "loops_assign": { "qed": { "total": 6, - "valid": 6 }, - "wp:main": { "total": 6, - "valid": 6 } }, - "loops_loop_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "loops_g_not_called_post_ok_v2": { "why3:alt-ergo": - { "total": 1, + "loops_g_called_ensures_ok_u2": { "qed": + { "total": 1, "valid": 1 }, - "wp:main": - { "total": 1, + "wp:main": + { "total": 1, "valid": 1 } }, - "loops_g_not_called_post_ok_v1": { "why3:alt-ergo": - { "total": 1, + "loops_g_called_ensures_ok_u1": { "why3:alt-ergo": + { "total": 1, "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "loops_g_called_post_ok_u2": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "loops_g_called_post_ok_u1": { "why3:alt-ergo": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "loops_post_ok_last": { "why3:alt-ergo": - { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "loops_post_ok_first": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, + "wp:main": + { "total": 1, "valid": 1 } }, + "loops_ensures_ok_last": { "why3:alt-ergo": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "loops_ensures_ok_first": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "why3:alt-ergo": { "total": 7, "valid": 7 }, "qed": { "total": 12, diff --git a/src/plugins/wp/tests/wp_plugin/stmt.c.0.report.json b/src/plugins/wp/tests/wp_plugin/stmt.c.0.report.json index e6d8869043e24351111a710d430f3358203e6482..3031787356bdaecf2c9a3d976bfc3b2182a0f737 100644 --- a/src/plugins/wp/tests/wp_plugin/stmt.c.0.report.json +++ b/src/plugins/wp/tests/wp_plugin/stmt.c.0.report.json @@ -3,37 +3,39 @@ "wp:functions": { "f": { "f_assert": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "f_stmt_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_stmt_post": { "qed": { "total": 1, "valid": 1 }, + "f_assigns": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_3": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "f_post_2": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, + "f_ensures_2": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 5, "valid": 5 }, "wp:main": { "total": 5, "valid": 5 } } }, "g": { "g_assert": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "g_post": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, + "g_ensures": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } } }, - "h": { "h_assert": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "h_assert_2": { "qed": { "total": 1, "valid": 1 }, + "h": { "h_assert_2": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "h_post": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, + "h_assert": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "h_ensures": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 3, "valid": 3 }, "wp:main": { "total": 3, "valid": 3 } } } } } diff --git a/src/plugins/wp/tests/wp_plugin/string_c.c.0.report.json b/src/plugins/wp/tests/wp_plugin/string_c.c.0.report.json index 89a03ae6f3db1f3d7f13fdd15da4799ae615ee0d..07e8025452aa4ebb4c03c254c4bdca0be3e21646 100644 --- a/src/plugins/wp/tests/wp_plugin/string_c.c.0.report.json +++ b/src/plugins/wp/tests/wp_plugin/string_c.c.0.report.json @@ -1,56 +1,59 @@ { "wp:global": { "alt-ergo": { "total": 21, "valid": 21, "rank": 81 }, "qed": { "total": 23, "valid": 23 }, "wp:main": { "total": 44, "valid": 44, "rank": 81 } }, - "wp:functions": { "memcpy": { "memcpy_loop_inv_no_eva_2": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 62 }, - "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 2, - "valid": 2, - "rank": 62 } }, - "memcpy_loop_inv_no_eva": { "alt-ergo": - { "total": 2, - "valid": 2, - "rank": 16 }, - "wp:main": - { "total": 2, - "valid": 2, - "rank": 16 } }, - "memcpy_loop_term": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 16 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 16 } }, - "memcpy_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "memcpy_loop_assign": { "alt-ergo": { "total": 1, + "wp:functions": { "memcpy": { "memcpy_loop_invariant_no_eva_2": { "alt-ergo": + { "total": 1, "valid": 1, - "rank": 43 }, - "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 3, + "rank": 62 }, + "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 2, + "valid": 2, + "rank": 62 } }, + "memcpy_loop_invariant_no_eva": { "alt-ergo": + { "total": 2, + "valid": 2, + "rank": 17 }, + "wp:main": + { "total": 2, + "valid": 2, + "rank": 17 } }, + "memcpy_loop_variant": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 17 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 17 } }, + "memcpy_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "memcpy_loop_assigns": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 43 }, + "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 3, "valid": 3, "rank": 43 } }, - "memcpy_post_result_ptr": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "memcpy_post_copied_contents": { "alt-ergo": - { "total": 1, + "memcpy_ensures_result_ptr": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "memcpy_ensures_copied_contents": { "alt-ergo": + { "total": 1, "valid": 1, "rank": 48 }, - "wp:main": - { "total": 1, + "wp:main": + { "total": 1, "valid": 1, "rank": 48 } }, "wp:section": { "alt-ergo": { "total": 6, @@ -61,120 +64,122 @@ "wp:main": { "total": 12, "valid": 12, "rank": 62 } } }, - "memmove": { "memmove_loop_inv_no_eva_6": { "alt-ergo": - { "total": 1, + "memmove": { "memmove_loop_invariant_no_eva_6": { "alt-ergo": + { "total": 1, "valid": 1, "rank": 54 }, - "qed": - { "total": 1, + "qed": + { "total": 1, "valid": 1 }, - "wp:main": - { "total": 2, + "wp:main": + { "total": 2, "valid": 2, "rank": 54 } }, - "memmove_loop_inv_no_eva_5": { "alt-ergo": - { "total": 2, + "memmove_loop_invariant_no_eva_5": { "alt-ergo": + { "total": 2, "valid": 2, "rank": 39 }, - "wp:main": - { "total": 2, + "wp:main": + { "total": 2, "valid": 2, "rank": 39 } }, - "memmove_loop_inv_no_eva_4": { "alt-ergo": - { "total": 2, + "memmove_loop_invariant_no_eva_4": { "alt-ergo": + { "total": 2, "valid": 2, "rank": 18 }, - "wp:main": - { "total": 2, + "wp:main": + { "total": 2, "valid": 2, "rank": 18 } }, - "memmove_loop_inv_no_eva_3": { "alt-ergo": - { "total": 1, + "memmove_loop_invariant_no_eva_3": { "alt-ergo": + { "total": 1, "valid": 1, - "rank": 81 }, - "qed": - { "total": 1, + "rank": 82 }, + "qed": + { "total": 1, "valid": 1 }, - "wp:main": - { "total": 2, + "wp:main": + { "total": 2, "valid": 2, - "rank": 81 } }, - "memmove_loop_inv_no_eva_2": { "alt-ergo": - { "total": 1, + "rank": 82 } }, + "memmove_loop_invariant_no_eva_2": { "alt-ergo": + { "total": 1, "valid": 1, "rank": 38 }, - "qed": - { "total": 1, + "qed": + { "total": 1, "valid": 1 }, - "wp:main": - { "total": 2, + "wp:main": + { "total": 2, "valid": 2, "rank": 38 } }, - "memmove_loop_inv_no_eva": { "alt-ergo": - { "total": 2, - "valid": 2, - "rank": 18 }, - "wp:main": - { "total": 2, - "valid": 2, - "rank": 18 } }, - "memmove_loop_term_2": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 18 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 2, - "valid": 2, - "rank": 18 } }, - "memmove_loop_term": { "alt-ergo": { "total": 1, - "valid": 1, + "memmove_loop_invariant_no_eva": { "alt-ergo": + { "total": 2, + "valid": 2, "rank": 18 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, + "wp:main": + { "total": 2, "valid": 2, "rank": 18 } }, - "memmove_assign": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 6 }, - "qed": { "total": 7, - "valid": 7 }, - "wp:main": { "total": 8, - "valid": 8, - "rank": 6 } }, - "memmove_loop_assign_2": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 48 }, - "qed": { "total": 2, + "memmove_loop_variant_2": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 18 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 2, + "valid": 2, + "rank": 18 } }, + "memmove_loop_variant": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 18 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 2, + "valid": 2, + "rank": 18 } }, + "memmove_assigns": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 6 }, + "qed": { "total": 7, + "valid": 7 }, + "wp:main": { "total": 8, + "valid": 8, + "rank": 6 } }, + "memmove_loop_assigns_2": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 48 }, + "qed": { "total": 2, "valid": 2 }, - "wp:main": - { "total": 3, - "valid": 3, - "rank": 48 } }, - "memmove_loop_assign": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 56 }, - "qed": { "total": 2, - "valid": 2 }, - "wp:main": - { "total": 3, - "valid": 3, - "rank": 56 } }, - "memmove_post_result_ptr": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, - "memmove_post_copied_contents": { "alt-ergo": + "wp:main": + { "total": 3, + "valid": 3, + "rank": 48 } }, + "memmove_loop_assigns": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 57 }, + "qed": { "total": 2, + "valid": 2 }, + "wp:main": + { "total": 3, + "valid": 3, + "rank": 57 } }, + "memmove_ensures_result_ptr": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "memmove_ensures_copied_contents": { "alt-ergo": { "total": 1, "valid": 1, "rank": 63 }, - "wp:main": + "wp:main": { "total": 1, "valid": 1, "rank": 63 } }, diff --git a/src/plugins/wp/tests/wp_plugin/struct.i.0.report.json b/src/plugins/wp/tests/wp_plugin/struct.i.0.report.json index 092956c8375f940c46b72b5015fdbf139b087243..43c32102c1f0e9af55d4e9e6ccf1e0cbfd0e7a2e 100644 --- a/src/plugins/wp/tests/wp_plugin/struct.i.0.report.json +++ b/src/plugins/wp/tests/wp_plugin/struct.i.0.report.json @@ -1,82 +1,82 @@ { "wp:global": { "qed": { "total": 18, "valid": 18 }, "wp:main": { "total": 18, "valid": 18 } }, - "wp:functions": { "id": { "id_post_qed_ok_P2": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "id_post_qed_ok_P1": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "id": { "id_ensures_qed_ok_P2": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "id_ensures_qed_ok_P1": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } } }, - "g": { "g_assign": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "g_post_qed_ok_P5": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "g_post_qed_ok_P4": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "g_post_qed_ok_P3": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "g": { "g_assigns": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "g_ensures_qed_ok_P5": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "g_ensures_qed_ok_P4": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "g_ensures_qed_ok_P3": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 4, "valid": 4 }, "wp:main": { "total": 4, "valid": 4 } } }, - "f": { "f_post_qed_ok_E11": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_qed_ok_E10": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_qed_ok_E9": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_qed_ok_E8": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_qed_ok_E7": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_qed_ok_E6": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_qed_ok_E5": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_qed_ok_E4": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_qed_ok_E3": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_qed_ok_E2": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_qed_ok_E1": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_qed_ok_E0": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "f": { "f_ensures_qed_ok_E11": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_qed_ok_E10": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_qed_ok_E9": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_qed_ok_E8": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_qed_ok_E7": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_qed_ok_E6": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_qed_ok_E5": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_qed_ok_E4": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_qed_ok_E3": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_qed_ok_E2": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_qed_ok_E1": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_qed_ok_E0": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 12, "valid": 12 }, "wp:main": { "total": 12, diff --git a/src/plugins/wp/tests/wp_plugin/struct_hack.i.0.report.json b/src/plugins/wp/tests/wp_plugin/struct_hack.i.0.report.json index dc8d720b4ff807ae874736d30e52a21d2641c07d..4523e8814247f341638ecec89a9d3168b229b2f1 100644 --- a/src/plugins/wp/tests/wp_plugin/struct_hack.i.0.report.json +++ b/src/plugins/wp/tests/wp_plugin/struct_hack.i.0.report.json @@ -1,49 +1,53 @@ -{ "wp:global": { "alt-ergo": { "total": 4, "valid": 4, "rank": 6 }, +{ "wp:global": { "alt-ergo": { "total": 4, "valid": 4, "rank": 7 }, "qed": { "total": 6, "valid": 6 }, - "wp:main": { "total": 10, "valid": 10, "rank": 6 } }, + "wp:main": { "total": 10, "valid": 10, "rank": 7 } }, "wp:functions": { "f0": { "f0_assert_qed_ok": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 5 }, + "rank": 6 }, "wp:main": { "total": 1, "valid": 1, - "rank": 5 } }, - "f0_loop_inv_qed_ok": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 6 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 6 } }, - "f0_loop_term": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, + "rank": 6 } }, + "f0_loop_invariant_qed_ok": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 7 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 2, + "valid": 2, + "rank": 7 } }, + "f0_loop_variant": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, "wp:section": { "alt-ergo": { "total": 2, "valid": 2, - "rank": 6 }, + "rank": 7 }, "qed": { "total": 3, "valid": 3 }, "wp:main": { "total": 5, "valid": 5, - "rank": 6 } } }, + "rank": 7 } } }, "f1": { "f1_assert_qed_ok": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 4 }, + "rank": 5 }, "wp:main": { "total": 1, "valid": 1, - "rank": 4 } }, - "f1_loop_inv_qed_ok": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 5 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 5 } }, - "f1_loop_term": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, + "rank": 5 } }, + "f1_loop_invariant_qed_ok": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 5 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 2, + "valid": 2, + "rank": 5 } }, + "f1_loop_variant": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, "wp:section": { "alt-ergo": { "total": 2, "valid": 2, "rank": 5 }, diff --git a/src/plugins/wp/tests/wp_plugin/subset.i.0.report.json b/src/plugins/wp/tests/wp_plugin/subset.i.0.report.json index 84b9b06872f8191626bdf6cb5d1b7d6513ac7fcf..ef1d646d8e32ce0c1919efc2786351e5bf8f3337 100644 --- a/src/plugins/wp/tests/wp_plugin/subset.i.0.report.json +++ b/src/plugins/wp/tests/wp_plugin/subset.i.0.report.json @@ -1,14 +1,14 @@ -{ "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 23 }, - "wp:main": { "total": 1, "valid": 1, "rank": 23 } }, - "wp:functions": { "mem": { "mem_post": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 23 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 23 } }, +{ "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 25 }, + "wp:main": { "total": 1, "valid": 1, "rank": 25 } }, + "wp:functions": { "mem": { "mem_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 25 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 25 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 23 }, + "rank": 25 }, "wp:main": { "total": 1, "valid": 1, - "rank": 23 } } } } } + "rank": 25 } } } } } diff --git a/src/plugins/wp/tests/wp_plugin/trig.i.0.report.json b/src/plugins/wp/tests/wp_plugin/trig.i.0.report.json index 7ec6077cd80563bbd58be58da477887fabab9522..fd1831d59b5b4fcc02b93c1bafeeb7ab2c967df9 100644 --- a/src/plugins/wp/tests/wp_plugin/trig.i.0.report.json +++ b/src/plugins/wp/tests/wp_plugin/trig.i.0.report.json @@ -1,34 +1,36 @@ { "wp:global": { "alt-ergo": { "total": 3, "valid": 2, "unknown": 1, - "rank": 12 }, + "rank": 13 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 4, "valid": 3, "unknown": 1, - "rank": 12 } }, - "wp:functions": { "foo": { "specialization_fconcat_pre_qed_ok_at_foo_stmt_1": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, + "rank": 13 } }, + "wp:functions": { "foo": { "fconcat_requires_qed_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "foo_assert_qed_ok_B": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, "foo_assert_qed_ok_A": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 12 }, + "rank": 13 }, "wp:main": { "total": 1, "valid": 1, - "rank": 12 } }, + "rank": 13 } }, "foo_assert_qed_ok_S": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 12 }, + "rank": 13 }, "wp:main": { "total": 1, "valid": 1, - "rank": 12 } }, + "rank": 13 } }, "wp:section": { "alt-ergo": { "total": 3, "valid": 2, "unknown": 1, - "rank": 12 }, + "rank": 13 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 4, "valid": 3, "unknown": 1, - "rank": 12 } } } } } + "rank": 13 } } } } } diff --git a/src/plugins/wp/tests/wp_plugin/unfold_assigns.i b/src/plugins/wp/tests/wp_plugin/unfold_assigns.i index 10292c05425a2aa9ac5569352a282e7f64d8448d..67134bd987e4cf9f93eb8fa70081da03988cd864 100644 --- a/src/plugins/wp/tests/wp_plugin/unfold_assigns.i +++ b/src/plugins/wp/tests/wp_plugin/unfold_assigns.i @@ -34,3 +34,21 @@ void NO_UNFOLD_OK_3(struct S *s) { void NO_UNFOLD_KO(struct S *s) { f(s); } + +/*@ + ensures \separated(p,q) ==> (*q == \old(*q)); + assigns (*p) ; +*/ +void USE_ASSIGN_UNFOLD_OK(struct S *p , struct S *q) +{ + f(p); +} + +/*@ + ensures \separated(p,q) ==> (*q == \old(*q)); + assigns p->a, p->b ; +*/ +void USE_ASSIGN_UNFOLD_KO(struct S *p , struct S *q) +{ + f(p); +} diff --git a/src/plugins/wp/tests/wp_plugin/unroll/wp/typed/typed_unrolled_loop_post_zero.json b/src/plugins/wp/tests/wp_plugin/unroll/wp/typed/typed_unrolled_loop_ensures_zero.json similarity index 100% rename from src/plugins/wp/tests/wp_plugin/unroll/wp/typed/typed_unrolled_loop_post_zero.json rename to src/plugins/wp/tests/wp_plugin/unroll/wp/typed/typed_unrolled_loop_ensures_zero.json diff --git a/src/plugins/wp/tests/wp_plugin/unsafe-arrays.i.0.report.json b/src/plugins/wp/tests/wp_plugin/unsafe-arrays.i.0.report.json index 60c80faeb37a877685fb79a153f15f2a5c03eb35..b967bd53ad6fbf82e01cbb737f76c074cf36dbfa 100644 --- a/src/plugins/wp/tests/wp_plugin/unsafe-arrays.i.0.report.json +++ b/src/plugins/wp/tests/wp_plugin/unsafe-arrays.i.0.report.json @@ -1,20 +1,20 @@ { "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 5 }, "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 3, "valid": 3, "rank": 5 } }, - "wp:functions": { "f": { "f_post_INDIRP": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 5 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 5 } }, - "f_post_STRUCT": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_ARRAYS": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "f": { "f_ensures_INDIRP": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 5 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 5 } }, + "f_ensures_STRUCT": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_ARRAYS": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, "rank": 5 }, diff --git a/src/plugins/wp/tests/wp_plugin/unsupported_init.i.0.report.json b/src/plugins/wp/tests/wp_plugin/unsupported_init.i.0.report.json index b5b21453ac5a522bd278670b0769ac9d494ab5b5..8d566a55f49681c4d13c773501c3210ad075c9e9 100644 --- a/src/plugins/wp/tests/wp_plugin/unsupported_init.i.0.report.json +++ b/src/plugins/wp/tests/wp_plugin/unsupported_init.i.0.report.json @@ -1,12 +1,10 @@ { "wp:global": { "alt-ergo": { "total": 1, "unknown": 1 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 2, "valid": 1, "unknown": 1 } }, - "wp:functions": { "f": { "specialization_cp_pre_r1_at_f_stmt_1": { "alt-ergo": - { "total": 1, - "unknown": 1 }, - "wp:main": - { "total": 1, - "unknown": 1 } }, + "wp:functions": { "f": { "cp_requires_r1": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, "f_assert_a1": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, diff --git a/src/plugins/wp/tests/wp_store/array.i.0.report.json b/src/plugins/wp/tests/wp_store/array.i.0.report.json index 4309fe970dbe945e01f1cc99c005029a50cef273..c86162e95a5989e56b6aef1c30cc7356377e1d0f 100644 --- a/src/plugins/wp/tests/wp_store/array.i.0.report.json +++ b/src/plugins/wp/tests/wp_store/array.i.0.report.json @@ -1,14 +1,16 @@ { "wp:global": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } }, - "wp:functions": { "g": { "g_post_P_addr_shift_qed_ok": { "qed": { "total": 1, + "wp:functions": { "g": { "g_ensures_P_addr_shift_qed_ok": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "g_ensures_P_startof_qed_ok": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "g_post_P_startof_qed_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } } } } } diff --git a/src/plugins/wp/tests/wp_store/natural.i.0.report.json b/src/plugins/wp/tests/wp_store/natural.i.0.report.json index 3f8bb47038d33292999ecc0f24905a9307d32217..c8fc7843294bb16b26a3bd0c4c054cd60a220604 100644 --- a/src/plugins/wp/tests/wp_store/natural.i.0.report.json +++ b/src/plugins/wp/tests/wp_store/natural.i.0.report.json @@ -1,12 +1,12 @@ { "wp:global": { "qed": { "total": 3, "valid": 3 }, "wp:main": { "total": 3, "valid": 3 } }, - "wp:functions": { "f": { "f_assign": { "qed": { "total": 2, "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, - "f_post_qed_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "f": { "f_assigns": { "qed": { "total": 2, "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, + "f_ensures_qed_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 3, "valid": 3 }, "wp:main": { "total": 3, "valid": 3 } } } } } diff --git a/src/plugins/wp/tests/wp_store/nonaliasing.i.0.report.json b/src/plugins/wp/tests/wp_store/nonaliasing.i.0.report.json index d0bf1a680b6835e4be56336c6dd6268620f51553..13c17773a9d2999f8a2d7f9fb714724423dfe2bb 100644 --- a/src/plugins/wp/tests/wp_store/nonaliasing.i.0.report.json +++ b/src/plugins/wp/tests/wp_store/nonaliasing.i.0.report.json @@ -1,17 +1,17 @@ { "wp:global": { "alt-ergo": { "total": 2, "valid": 2, "rank": 7 }, "wp:main": { "total": 2, "valid": 2, "rank": 7 } }, - "wp:functions": { "f": { "f_post_qed_ok_Q": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 6 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 6 } }, - "f_post_qed_ok_P": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 7 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 7 } }, + "wp:functions": { "f": { "f_ensures_qed_ok_Q": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 7 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 7 } }, + "f_ensures_qed_ok_P": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 7 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 7 } }, "wp:section": { "alt-ergo": { "total": 2, "valid": 2, "rank": 7 }, diff --git a/src/plugins/wp/tests/wp_store/nonaliasing.i.1.report.json b/src/plugins/wp/tests/wp_store/nonaliasing.i.1.report.json index c5b3f509659b635b748e26d66e5727a13a719992..7e0f92281c03ed4539a3d83a083f522d0dbbf1c8 100644 --- a/src/plugins/wp/tests/wp_store/nonaliasing.i.1.report.json +++ b/src/plugins/wp/tests/wp_store/nonaliasing.i.1.report.json @@ -1,17 +1,17 @@ { "wp:global": { "alt-ergo": { "total": 2, "unknown": 2 }, "wp:main": { "total": 2, "unknown": 2 } }, - "wp:functions": { "f": { "f_post_qed_ko_Q_oracle_ko": { "alt-ergo": - { "total": 1, - "unknown": 1 }, - "wp:main": - { "total": 1, - "unknown": 1 } }, - "f_post_qed_ko_P_oracle_ko": { "alt-ergo": - { "total": 1, - "unknown": 1 }, - "wp:main": - { "total": 1, - "unknown": 1 } }, + "wp:functions": { "f": { "f_ensures_qed_ko_Q_oracle_ko": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, + "f_ensures_qed_ko_P_oracle_ko": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 2, "unknown": 2 }, "wp:main": { "total": 2, diff --git a/src/plugins/wp/tests/wp_store/oracle_qualif/array.res.oracle b/src/plugins/wp/tests/wp_store/oracle_qualif/array.res.oracle index 7b12e86c3c98e107a44194eb0f2ddfc3e3d972f0..1106baba2b2508b2d93a9bbadc0f80d9923d922e 100644 --- a/src/plugins/wp/tests/wp_store/oracle_qualif/array.res.oracle +++ b/src/plugins/wp/tests/wp_store/oracle_qualif/array.res.oracle @@ -4,8 +4,8 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 2 goals scheduled -[wp] [Qed] Goal typed_g_post_P_startof_qed_ok : Valid -[wp] [Qed] Goal typed_g_post_P_addr_shift_qed_ok : Valid +[wp] [Qed] Goal typed_g_ensures_P_startof_qed_ok : Valid +[wp] [Qed] Goal typed_g_ensures_P_addr_shift_qed_ok : Valid [wp] Proved goals: 2 / 2 Qed: 2 [wp] Report 'tests/wp_store/array.i.0.report.json' diff --git a/src/plugins/wp/tests/wp_store/oracle_qualif/natural.res.oracle b/src/plugins/wp/tests/wp_store/oracle_qualif/natural.res.oracle index 0110b935966dfecd8915719e669039543d64b3f9..66190d57ab983a44e2f9f0832eaecc922d9601d1 100644 --- a/src/plugins/wp/tests/wp_store/oracle_qualif/natural.res.oracle +++ b/src/plugins/wp/tests/wp_store/oracle_qualif/natural.res.oracle @@ -4,9 +4,9 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 3 goals scheduled -[wp] [Qed] Goal typed_f_post_qed_ok : Valid -[wp] [Qed] Goal typed_f_assign_part1 : Valid -[wp] [Qed] Goal typed_f_assign_part2 : Valid +[wp] [Qed] Goal typed_f_ensures_qed_ok : Valid +[wp] [Qed] Goal typed_f_assigns_part1 : Valid +[wp] [Qed] Goal typed_f_assigns_part2 : Valid [wp] Proved goals: 3 / 3 Qed: 3 [wp] Report 'tests/wp_store/natural.i.0.report.json' diff --git a/src/plugins/wp/tests/wp_store/oracle_qualif/nonaliasing.0.res.oracle b/src/plugins/wp/tests/wp_store/oracle_qualif/nonaliasing.0.res.oracle index 29a849b906773f864b9fdb6390253a9226ef013f..3dc493d3e125df62da6e67c67b416ffa02179d8b 100644 --- a/src/plugins/wp/tests/wp_store/oracle_qualif/nonaliasing.0.res.oracle +++ b/src/plugins/wp/tests/wp_store/oracle_qualif/nonaliasing.0.res.oracle @@ -4,8 +4,8 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 2 goals scheduled -[wp] [Alt-Ergo] Goal typed_f_post_qed_ok_P : Valid -[wp] [Alt-Ergo] Goal typed_f_post_qed_ok_Q : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_qed_ok_P : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures_qed_ok_Q : Valid [wp] Proved goals: 2 / 2 Qed: 0 Alt-Ergo: 2 diff --git a/src/plugins/wp/tests/wp_store/oracle_qualif/nonaliasing.1.res.oracle b/src/plugins/wp/tests/wp_store/oracle_qualif/nonaliasing.1.res.oracle index 6a6b87c415d7bc0c1465c0f2b5a76570fa9a2e65..53b6eb42b5afa2a59847fd1eb7a5f60f29705402 100644 --- a/src/plugins/wp/tests/wp_store/oracle_qualif/nonaliasing.1.res.oracle +++ b/src/plugins/wp/tests/wp_store/oracle_qualif/nonaliasing.1.res.oracle @@ -4,8 +4,8 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 2 goals scheduled -[wp] [Alt-Ergo] Goal typed_f_post_qed_ko_P_oracle_ko : Step limit -[wp] [Alt-Ergo] Goal typed_f_post_qed_ko_Q_oracle_ko : Step limit +[wp] [Alt-Ergo] Goal typed_f_ensures_qed_ko_P_oracle_ko : Step limit +[wp] [Alt-Ergo] Goal typed_f_ensures_qed_ko_Q_oracle_ko : Step limit [wp] Proved goals: 0 / 2 Alt-Ergo: 0 (interrupted: 2) [wp] Report 'tests/wp_store/nonaliasing.i.1.report.json' diff --git a/src/plugins/wp/tests/wp_store/oracle_qualif/struct.res.oracle b/src/plugins/wp/tests/wp_store/oracle_qualif/struct.res.oracle index e7e39cce7cebc3cd822fb9f4b326578b7145fb85..f024426f2efb92f729f5a8d479f90290696787d8 100644 --- a/src/plugins/wp/tests/wp_store/oracle_qualif/struct.res.oracle +++ b/src/plugins/wp/tests/wp_store/oracle_qualif/struct.res.oracle @@ -5,11 +5,11 @@ [wp] Warning: Missing RTE guards [wp] 6 goals scheduled [wp] [Qed] Goal typed_f_assert_qed_ok : Valid -[wp] [Alt-Ergo] Goal typed_f_call_g_pre : Valid -[wp] [Qed] Goal typed_g_post : Valid -[wp] [Qed] Goal typed_g_assign : Valid -[wp] [Alt-Ergo] Goal typed_main_post_P_qed_ok : Valid -[wp] [Alt-Ergo] Goal typed_main_post_Q_qed_ok : Valid +[wp] [Alt-Ergo] Goal typed_f_call_g_requires : Valid +[wp] [Qed] Goal typed_g_ensures : Valid +[wp] [Qed] Goal typed_g_assigns : Valid +[wp] [Alt-Ergo] Goal typed_main_ensures_P_qed_ok : Valid +[wp] [Alt-Ergo] Goal typed_main_ensures_Q_qed_ok : Valid [wp] Proved goals: 6 / 6 Qed: 3 Alt-Ergo: 3 @@ -17,6 +17,6 @@ ------------------------------------------------------------- Functions WP Alt-Ergo Total Success g 2 - 2 100% -f 1 1 (12..24) 2 100% -main - 2 (32..44) 2 100% +f 1 1 (20..32) 2 100% +main - 2 (36..48) 2 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_store/struct.i.0.report.json b/src/plugins/wp/tests/wp_store/struct.i.0.report.json index 7d428c35c5aa845d866abe33d07a7c1f2cde7996..95af43d1bdf38f9f17374287bf20aed57d053532 100644 --- a/src/plugins/wp/tests/wp_store/struct.i.0.report.json +++ b/src/plugins/wp/tests/wp_store/struct.i.0.report.json @@ -1,48 +1,49 @@ -{ "wp:global": { "alt-ergo": { "total": 3, "valid": 3, "rank": 9 }, +{ "wp:global": { "alt-ergo": { "total": 3, "valid": 3, "rank": 10 }, "qed": { "total": 3, "valid": 3 }, - "wp:main": { "total": 6, "valid": 6, "rank": 9 } }, - "wp:functions": { "g": { "g_assign": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "g_post": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, + "wp:main": { "total": 6, "valid": 6, "rank": 10 } }, + "wp:functions": { "g": { "g_assigns": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "g_ensures": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } } }, - "f": { "specialization_g_pre_at_f_stmt_4": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 4 }, - "wp:main": - { "total": 1, - "valid": 1, - "rank": 4 } }, + "f": { "g_requires": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 6 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 6 } }, "f_assert_qed_ok": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 4 }, + "rank": 6 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 2, "valid": 2, - "rank": 4 } } }, - "main": { "main_post_Q_qed_ok": { "alt-ergo": { "total": 1, + "rank": 6 } } }, + "main": { "main_ensures_Q_qed_ok": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 10 }, + "wp:main": { "total": 1, "valid": 1, - "rank": 9 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 9 } }, - "main_post_P_qed_ok": { "alt-ergo": { "total": 1, + "rank": 10 } }, + "main_ensures_P_qed_ok": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 10 }, + "wp:main": { "total": 1, "valid": 1, - "rank": 9 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 9 } }, + "rank": 10 } }, "wp:section": { "alt-ergo": { "total": 2, "valid": 2, - "rank": 9 }, + "rank": 10 }, "wp:main": { "total": 2, "valid": 2, - "rank": 9 } } } } } + "rank": 10 } } } } } diff --git a/src/plugins/wp/tests/wp_tip/oracle_qualif/tac_split_quantifiers.res.oracle b/src/plugins/wp/tests/wp_tip/oracle_qualif/tac_split_quantifiers.res.oracle index 0d18591704383c84f2857adeca5e6167aef6acea..b1263cdfe2943478bfb771d4ac1f794c4fee5daf 100644 --- a/src/plugins/wp/tests/wp_tip/oracle_qualif/tac_split_quantifiers.res.oracle +++ b/src/plugins/wp/tests/wp_tip/oracle_qualif/tac_split_quantifiers.res.oracle @@ -4,11 +4,11 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 5 goals scheduled -[wp] [Tactical] Goal typed_split_post_Goal_Exist_Or : Unknown -[wp] [Tactical] Goal typed_split_post_Goal_Exist_And : Unknown -[wp] [Tactical] Goal typed_split_post_Goal_Exist_And_bis : Unknown -[wp] [Tactical] Goal typed_split_post_Hyp_Forall_And : Unknown -[wp] [Tactical] Goal typed_split_post_Hyp_Forall_Or_bis : Unknown +[wp] [Tactical] Goal typed_split_ensures_Goal_Exist_Or : Unknown +[wp] [Tactical] Goal typed_split_ensures_Goal_Exist_And : Unknown +[wp] [Tactical] Goal typed_split_ensures_Goal_Exist_And_bis : Unknown +[wp] [Tactical] Goal typed_split_ensures_Hyp_Forall_And : Unknown +[wp] [Tactical] Goal typed_split_ensures_Hyp_Forall_Or_bis : Unknown [wp] Proved goals: 0 / 5 [wp] Report 'tests/wp_tip/tac_split_quantifiers.i.0.report.json' ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_tip/tac_split_quantifiers.i.0.report.json b/src/plugins/wp/tests/wp_tip/tac_split_quantifiers.i.0.report.json index 077e3eeea9cd555a4944ea9b17a4b35e8b7c0b7f..c7343abe87df4acb37fc99e4213b907f9ec4b188 100644 --- a/src/plugins/wp/tests/wp_tip/tac_split_quantifiers.i.0.report.json +++ b/src/plugins/wp/tests/wp_tip/tac_split_quantifiers.i.0.report.json @@ -1,35 +1,35 @@ { "wp:global": { "script": { "total": 5, "unknown": 5 }, "wp:main": { "total": 5, "unknown": 5 } }, - "wp:functions": { "split": { "split_post_Hyp_Forall_Or_bis": { "script": + "wp:functions": { "split": { "split_ensures_Hyp_Forall_Or_bis": { "script": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, + "split_ensures_Hyp_Forall_And": { "script": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } }, - "split_post_Hyp_Forall_And": { "script": - { "total": 1, - "unknown": 1 }, - "wp:main": - { "total": 1, - "unknown": 1 } }, - "split_post_Goal_Exist_And_bis": { "script": + "split_ensures_Goal_Exist_And_bis": { "script": { "total": 1, "unknown": 1 }, - "wp:main": + "wp:main": { "total": 1, "unknown": 1 } }, - "split_post_Goal_Exist_And": { "script": - { "total": 1, - "unknown": 1 }, - "wp:main": - { "total": 1, - "unknown": 1 } }, - "split_post_Goal_Exist_Or": { "script": - { "total": 1, - "unknown": 1 }, - "wp:main": - { "total": 1, - "unknown": 1 } }, + "split_ensures_Goal_Exist_And": { "script": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, + "split_ensures_Goal_Exist_Or": { "script": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, "wp:section": { "script": { "total": 5, "unknown": 5 }, "wp:main": { "total": 5, diff --git a/src/plugins/wp/tests/wp_tip/tac_split_quantifiers/wp/typed/typed_split_post_Goal_Exist_And.json b/src/plugins/wp/tests/wp_tip/tac_split_quantifiers/wp/typed/typed_split_ensures_Goal_Exist_And.json similarity index 100% rename from src/plugins/wp/tests/wp_tip/tac_split_quantifiers/wp/typed/typed_split_post_Goal_Exist_And.json rename to src/plugins/wp/tests/wp_tip/tac_split_quantifiers/wp/typed/typed_split_ensures_Goal_Exist_And.json diff --git a/src/plugins/wp/tests/wp_tip/tac_split_quantifiers/wp/typed/typed_split_post_Goal_Exist_And_bis.json b/src/plugins/wp/tests/wp_tip/tac_split_quantifiers/wp/typed/typed_split_ensures_Goal_Exist_And_bis.json similarity index 100% rename from src/plugins/wp/tests/wp_tip/tac_split_quantifiers/wp/typed/typed_split_post_Goal_Exist_And_bis.json rename to src/plugins/wp/tests/wp_tip/tac_split_quantifiers/wp/typed/typed_split_ensures_Goal_Exist_And_bis.json diff --git a/src/plugins/wp/tests/wp_tip/tac_split_quantifiers/wp/typed/typed_split_post_Goal_Exist_Or.json b/src/plugins/wp/tests/wp_tip/tac_split_quantifiers/wp/typed/typed_split_ensures_Goal_Exist_Or.json similarity index 100% rename from src/plugins/wp/tests/wp_tip/tac_split_quantifiers/wp/typed/typed_split_post_Goal_Exist_Or.json rename to src/plugins/wp/tests/wp_tip/tac_split_quantifiers/wp/typed/typed_split_ensures_Goal_Exist_Or.json diff --git a/src/plugins/wp/tests/wp_tip/tac_split_quantifiers/wp/typed/typed_split_post_Hyp_Forall_And.json b/src/plugins/wp/tests/wp_tip/tac_split_quantifiers/wp/typed/typed_split_ensures_Hyp_Forall_And.json similarity index 100% rename from src/plugins/wp/tests/wp_tip/tac_split_quantifiers/wp/typed/typed_split_post_Hyp_Forall_And.json rename to src/plugins/wp/tests/wp_tip/tac_split_quantifiers/wp/typed/typed_split_ensures_Hyp_Forall_And.json diff --git a/src/plugins/wp/tests/wp_tip/tac_split_quantifiers/wp/typed/typed_split_post_Hyp_Forall_Or_bis.json b/src/plugins/wp/tests/wp_tip/tac_split_quantifiers/wp/typed/typed_split_ensures_Hyp_Forall_Or_bis.json similarity index 100% rename from src/plugins/wp/tests/wp_tip/tac_split_quantifiers/wp/typed/typed_split_post_Hyp_Forall_Or_bis.json rename to src/plugins/wp/tests/wp_tip/tac_split_quantifiers/wp/typed/typed_split_ensures_Hyp_Forall_Or_bis.json diff --git a/src/plugins/wp/tests/wp_typed/array_initialized.c.0.report.json b/src/plugins/wp/tests/wp_typed/array_initialized.c.0.report.json index e623d1cea9408acff38877a51e026beb402b79f9..0a32f1d88d086e8c62c1f953143a1138a2367b01 100644 --- a/src/plugins/wp/tests/wp_typed/array_initialized.c.0.report.json +++ b/src/plugins/wp/tests/wp_typed/array_initialized.c.0.report.json @@ -47,15 +47,15 @@ "wp:main": { "total": 1, "valid": 1, "rank": 10 } } }, - "simpl": { "simpl_post": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 4 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 4 } }, + "simpl": { "simpl_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 5 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 5 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 4 }, + "rank": 5 }, "wp:main": { "total": 1, "valid": 1, - "rank": 4 } } } } } + "rank": 5 } } } } } diff --git a/src/plugins/wp/tests/wp_typed/array_initialized.c.1.report.json b/src/plugins/wp/tests/wp_typed/array_initialized.c.1.report.json index 6eca195283b626848bcfcd2943a41fd4c0ddada6..d92ae09acaf07155d3b3936699f13d6d3a796e6f 100644 --- a/src/plugins/wp/tests/wp_typed/array_initialized.c.1.report.json +++ b/src/plugins/wp/tests/wp_typed/array_initialized.c.1.report.json @@ -36,26 +36,26 @@ "main_pointer": { "main_pointer_assert": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 16 }, + "rank": 18 }, "wp:main": { "total": 1, "valid": 1, - "rank": 16 } }, + "rank": 18 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 16 }, + "rank": 18 }, "wp:main": { "total": 1, "valid": 1, - "rank": 16 } } }, - "simpl": { "simpl_post": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 4 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 4 } }, + "rank": 18 } } }, + "simpl": { "simpl_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 5 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 5 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 4 }, + "rank": 5 }, "wp:main": { "total": 1, "valid": 1, - "rank": 4 } } } } } + "rank": 5 } } } } } diff --git a/src/plugins/wp/tests/wp_typed/avar.i.0.report.json b/src/plugins/wp/tests/wp_typed/avar.i.0.report.json index f29b108a2994725b97662aa5af32e6f019242847..4497f6d5e8d209a556521cb6c092103e5968ccc9 100644 --- a/src/plugins/wp/tests/wp_typed/avar.i.0.report.json +++ b/src/plugins/wp/tests/wp_typed/avar.i.0.report.json @@ -1,11 +1,8 @@ { "wp:global": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "wp:functions": { "g": { "specialization_f_pre_at_g_stmt_1": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "wp:functions": { "g": { "f_requires": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } } } } diff --git a/src/plugins/wp/tests/wp_typed/oracle/struct_array_type.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/struct_array_type.res.oracle index 6247f9349b2f81641088d068f7873ec595402e60..0fd6e8fdb49bf3a49a5b8ff9894c01fc8d0fa691 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/struct_array_type.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/struct_array_type.res.oracle @@ -5,12 +5,12 @@ [wp] Warning: Missing RTE guards [wp] 1 goal scheduled [wp:print-generated] - "WPOUT/typed/f_post.ergo" + "WPOUT/typed/f_ensures.ergo" (* ---------------------------------------------------------- *) (* --- Post-condition (file tests/wp_typed/struct_array_type.i, line 16) in 'f' --- *) (* ---------------------------------------------------------- *) - goal f_post: + goal f_ensures: forall i : int. forall t : S1_s farray. let a = t[i] : S1_s in diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/array_initialized.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/array_initialized.0.res.oracle index 9a98e84f0d4bedc9ae109c667a27713ade69d3e3..55bc508f1a96391f8b5e8b3406c870b63b80a93f 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/array_initialized.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/array_initialized.0.res.oracle @@ -10,7 +10,7 @@ [wp] [Alt-Ergo] Goal typed_main2_assert : Valid [wp] [Qed] Goal typed_main3_assert : Valid [wp] [Alt-Ergo] Goal typed_main_pointer_assert : Valid -[wp] [Alt-Ergo] Goal typed_simpl_post : Valid +[wp] [Alt-Ergo] Goal typed_simpl_ensures : Valid [wp] Proved goals: 5 / 5 Qed: 1 Alt-Ergo: 4 @@ -21,5 +21,5 @@ main1 - 1 (1..12) 1 100% main2 - 1 (96..120) 1 100% main3 1 - 1 100% main_pointer - 1 (36..48) 1 100% -simpl - 1 (12..24) 1 100% +simpl - 1 (16..28) 1 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/array_initialized.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/array_initialized.1.res.oracle index def88c75b757cca27f85105bd4d7c0adca739ef1..87594e50f05a223f6f149c05b3225c34f67e5f5c 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/array_initialized.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/array_initialized.1.res.oracle @@ -10,7 +10,7 @@ [wp] [Alt-Ergo] Goal typed_main2_assert : Valid [wp] [Qed] Goal typed_main3_assert : Valid [wp] [Alt-Ergo] Goal typed_main_pointer_assert : Valid -[wp] [Alt-Ergo] Goal typed_simpl_post : Valid +[wp] [Alt-Ergo] Goal typed_simpl_ensures : Valid [wp] Proved goals: 5 / 5 Qed: 1 Alt-Ergo: 4 @@ -20,6 +20,6 @@ Functions WP Alt-Ergo Total Success main1 - 1 (16..28) 1 100% main2 - 1 (112..136) 1 100% main3 1 - 1 100% -main_pointer - 1 (56..80) 1 100% -simpl - 1 (12..24) 1 100% +main_pointer - 1 (72..96) 1 100% +simpl - 1 (16..28) 1 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/avar.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/avar.res.oracle index efa2372cf106975f04ca4df7dea7fdbfa5ab1532..ea8b44d41a6028c7b9384312669efae2c618bb68 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/avar.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/avar.res.oracle @@ -6,7 +6,7 @@ No code nor implicit assigns clause for function f, generating default assigns from the prototype [wp] Warning: Missing RTE guards [wp] 1 goal scheduled -[wp] [Qed] Goal typed_g_call_f_pre : Valid +[wp] [Qed] Goal typed_g_call_f_requires : Valid [wp] Proved goals: 1 / 1 Qed: 1 [wp] Report 'tests/wp_typed/avar.i.0.report.json' diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/shift_lemma.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/shift_lemma.res.oracle index 7d8c0dd30f14e0eef991620398db4052d9e2895a..bc4d77cc431790076dbb90c61072acdb5f86a902 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/shift_lemma.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/shift_lemma.res.oracle @@ -15,5 +15,5 @@ [wp] Report 'tests/wp_typed/shift_lemma.i.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -f 2 3 (16..28) 5 100% +f 2 3 (20..32) 5 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/struct_array_type.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/struct_array_type.res.oracle index 70b3096605936bacfc2adb4c2dd8416319dde980..2ef7db89cdd4f28c0e01042bb9d4c958f3cdaf5f 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/struct_array_type.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/struct_array_type.res.oracle @@ -4,7 +4,7 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled -[wp] [Alt-Ergo] Goal typed_f_post : Valid +[wp] [Alt-Ergo] Goal typed_f_ensures : Valid [wp] Proved goals: 1 / 1 Qed: 0 Alt-Ergo: 1 diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_alloc.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_alloc.0.res.oracle index 2995594dd251456cf11c71dacec3b056084bcc43..afbfa61d8da8bc9c3ef4cf1f1ed99ae5ca36ea28 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_alloc.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_alloc.0.res.oracle @@ -4,9 +4,9 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 7 goals scheduled -[wp] [Qed] Goal typed_f_assign : Valid -[wp] [Qed] Goal typed_g_assign : Valid -[wp] [Alt-Ergo] Goal typed_h_post : Valid +[wp] [Qed] Goal typed_f_assigns : Valid +[wp] [Qed] Goal typed_g_assigns : Valid +[wp] [Alt-Ergo] Goal typed_h_ensures : Valid [wp] [Qed] Goal typed_job_assert : Valid [wp] [Alt-Ergo] Goal typed_job_assert_2 : Valid [wp] [Qed] Goal typed_job_assert_3 : Valid diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_alloc.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_alloc.1.res.oracle index a01f97f9a20f7f16bdbacfe5629737fc3a25e2bd..7a194c5adbf9c96f8495e0d8e9581a0a37ae53b5 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_alloc.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_alloc.1.res.oracle @@ -4,9 +4,9 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 7 goals scheduled -[wp] [Qed] Goal typed_ref_f_assign : Valid -[wp] [Qed] Goal typed_ref_g_assign : Valid -[wp] [Alt-Ergo] Goal typed_ref_h_post : Valid +[wp] [Qed] Goal typed_ref_f_assigns : Valid +[wp] [Qed] Goal typed_ref_g_assigns : Valid +[wp] [Alt-Ergo] Goal typed_ref_h_ensures : Valid [wp] [Qed] Goal typed_ref_job_assert : Valid [wp] [Alt-Ergo] Goal typed_ref_job_assert_2 : Valid [wp] [Qed] Goal typed_ref_job_assert_3 : Valid diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_bitwise.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_bitwise.0.res.oracle index ccce12a56f885be3046607951ca617b1457ac648..a595a3d3871839388679af679265d1bb0c8c12c8 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_bitwise.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_bitwise.0.res.oracle @@ -30,26 +30,26 @@ [wp] [Alt-Ergo] Goal typed_band1_ulong_assert_ok_2 : Valid [wp] [Qed] Goal typed_band1_ushort_assert_ok : Valid [wp] [Alt-Ergo] Goal typed_band1_ushort_assert_ok_2 : Valid -[wp] [Alt-Ergo] Goal typed_band_char_post_ok : Valid -[wp] [Qed] Goal typed_band_int_post_ok : Valid +[wp] [Alt-Ergo] Goal typed_band_char_ensures_ok : Valid +[wp] [Qed] Goal typed_band_int_ensures_ok : Valid [wp] [Qed] Goal typed_band_int_assert_ok : Valid -[wp] [Alt-Ergo] Goal typed_band_uchar_post_ok : Valid -[wp] [Qed] Goal typed_band_uint_post_ok : Valid -[wp] [Alt-Ergo] Goal typed_bnot_char_post_ok : Valid -[wp] [Qed] Goal typed_bnot_int_post_ok : Valid -[wp] [Qed] Goal typed_bnot_uchar_post_ok : Valid -[wp] [Qed] Goal typed_bnot_uint_post_ok : Valid -[wp] [Alt-Ergo] Goal typed_bor_char_post_ok : Valid -[wp] [Qed] Goal typed_bor_int_post_ok : Valid -[wp] [Qed] Goal typed_bor_uchar_post_ok : Valid -[wp] [Qed] Goal typed_bor_uint_post_ok : Valid -[wp] [Alt-Ergo] Goal typed_bxor_char_post_ok : Valid -[wp] [Qed] Goal typed_bxor_int_post_ok : Valid -[wp] [Qed] Goal typed_bxor_uchar_post_ok : Valid -[wp] [Alt-Ergo] Goal typed_bxor_uchar_post_ok_2 : Valid -[wp] [Qed] Goal typed_bxor_uint_post_ok : Valid -[wp] [Alt-Ergo] Goal typed_bxor_uint_post_ok_2 : Valid -[wp] [Qed] Goal typed_cast_post_ok : Valid +[wp] [Alt-Ergo] Goal typed_band_uchar_ensures_ok : Valid +[wp] [Qed] Goal typed_band_uint_ensures_ok : Valid +[wp] [Alt-Ergo] Goal typed_bnot_char_ensures_ok : Valid +[wp] [Qed] Goal typed_bnot_int_ensures_ok : Valid +[wp] [Qed] Goal typed_bnot_uchar_ensures_ok : Valid +[wp] [Qed] Goal typed_bnot_uint_ensures_ok : Valid +[wp] [Alt-Ergo] Goal typed_bor_char_ensures_ok : Valid +[wp] [Qed] Goal typed_bor_int_ensures_ok : Valid +[wp] [Qed] Goal typed_bor_uchar_ensures_ok : Valid +[wp] [Qed] Goal typed_bor_uint_ensures_ok : Valid +[wp] [Alt-Ergo] Goal typed_bxor_char_ensures_ok : Valid +[wp] [Qed] Goal typed_bxor_int_ensures_ok : Valid +[wp] [Qed] Goal typed_bxor_uchar_ensures_ok : Valid +[wp] [Alt-Ergo] Goal typed_bxor_uchar_ensures_ok_2 : Valid +[wp] [Qed] Goal typed_bxor_uint_ensures_ok : Valid +[wp] [Alt-Ergo] Goal typed_bxor_uint_ensures_ok_2 : Valid +[wp] [Qed] Goal typed_cast_ensures_ok : Valid [wp] [Qed] Goal typed_cast_assert_ok : Valid [wp] [Qed] Goal typed_cast_assert_ok_2 : Valid [wp] [Qed] Goal typed_cast_assert_ok_3 : Valid @@ -57,14 +57,14 @@ [wp] [Qed] Goal typed_cast_assert_ok_5 : Valid [wp] [Qed] Goal typed_cast_assert_ok_6 : Valid [wp] [Qed] Goal typed_cast_assert_ok_7 : Valid -[wp] [Qed] Goal typed_lshift_char_post_ok : Valid -[wp] [Qed] Goal typed_lshift_int_post_ok : Valid -[wp] [Qed] Goal typed_lshift_uchar_post_ok : Valid -[wp] [Qed] Goal typed_lshift_uint_post_ok : Valid -[wp] [Qed] Goal typed_rshift_char_post_ok : Valid -[wp] [Qed] Goal typed_rshift_int_post_ok : Valid -[wp] [Alt-Ergo] Goal typed_rshift_uchar_post_ok : Valid -[wp] [Qed] Goal typed_rshift_uint_post_ok : Valid +[wp] [Qed] Goal typed_lshift_char_ensures_ok : Valid +[wp] [Qed] Goal typed_lshift_int_ensures_ok : Valid +[wp] [Qed] Goal typed_lshift_uchar_ensures_ok : Valid +[wp] [Qed] Goal typed_lshift_uint_ensures_ok : Valid +[wp] [Qed] Goal typed_rshift_char_ensures_ok : Valid +[wp] [Qed] Goal typed_rshift_int_ensures_ok : Valid +[wp] [Alt-Ergo] Goal typed_rshift_uchar_ensures_ok : Valid +[wp] [Qed] Goal typed_rshift_uint_ensures_ok : Valid [wp] Proved goals: 61 / 61 Qed: 41 Alt-Ergo: 20 @@ -80,27 +80,27 @@ bxor_int 1 - 1 100% bnot_int 1 - 1 100% lshift_int 1 - 1 100% rshift_int 1 - 1 100% -band1_uint 1 1 (8..20) 2 100% +band1_uint 1 1 (12..24) 2 100% band_uint 1 - 1 100% bor_uint 1 - 1 100% -bxor_uint 1 1 (8..20) 2 100% +bxor_uint 1 1 (12..24) 2 100% bnot_uint 1 - 1 100% lshift_uint 1 - 1 100% rshift_uint 1 - 1 100% -band_char - 1 (8..20) 1 100% -bor_char - 1 (8..20) 1 100% -bxor_char - 1 (8..20) 1 100% -bnot_char - 1 (8..20) 1 100% +band_char - 1 (12..24) 1 100% +bor_char - 1 (12..24) 1 100% +bxor_char - 1 (12..24) 1 100% +bnot_char - 1 (12..24) 1 100% lshift_char 1 - 1 100% rshift_char 1 - 1 100% -band1_uchar 1 1 (8..20) 2 100% -band_uchar - 1 (8..20) 1 100% +band1_uchar 1 1 (12..24) 2 100% +band_uchar - 1 (12..24) 1 100% bor_uchar 1 - 1 100% -bxor_uchar 1 1 (8..20) 2 100% +bxor_uchar 1 1 (12..24) 2 100% bnot_uchar 1 - 1 100% lshift_uchar 1 - 1 100% -rshift_uchar - 1 (16..28) 1 100% -band1_ushort 1 1 (8..20) 2 100% -band1_ulong 1 1 (8..20) 2 100% +rshift_uchar - 1 (24..36) 1 100% +band1_ushort 1 1 (12..24) 2 100% +band1_ulong 1 1 (12..24) 2 100% cast 8 - 8 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_bitwise.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_bitwise.1.res.oracle index 6e4e81ca16ed79f2618df3c096921f7ae70dfb33..a2caebabd5becd1830646d5aab478094978856a4 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_bitwise.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_bitwise.1.res.oracle @@ -5,8 +5,8 @@ [wp] Warning: Missing RTE guards [wp] 4 goals scheduled [wp] [Alt-Ergo] Goal typed_band_int_assert_ko : Unknown -[wp] [Alt-Ergo] Goal typed_bnot_uchar_post_ko : Unknown -[wp] [Alt-Ergo] Goal typed_bnot_uint_post_ko : Unknown +[wp] [Alt-Ergo] Goal typed_bnot_uchar_ensures_ko : Unknown +[wp] [Alt-Ergo] Goal typed_bnot_uint_ensures_ko : Unknown [wp] [Alt-Ergo] Goal typed_cast_assert_ko : Unknown [wp] Proved goals: 0 / 4 Alt-Ergo: 0 (unknown: 4) diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_cast.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_cast.res.oracle index 5301dafeda2ae40eee92008fe2e6d8d4768f92d6..67b88136c1a976993c2693f338f304b817fae021 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_cast.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_cast.res.oracle @@ -13,5 +13,5 @@ [wp] Report 'tests/wp_typed/unit_cast.i.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -f - 1 (12..24) 1 100% +f - 1 (20..32) 1 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_cst.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_cst.res.oracle index 5498e02d849c598a8b9d60c6c1999cbf889713b8..0bc7e2733a382db0f26543c61fb90b1017700553 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_cst.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_cst.res.oracle @@ -4,8 +4,8 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 2 goals scheduled -[wp] [Qed] Goal typed_f_post_A : Valid -[wp] [Qed] Goal typed_f_post_B : Valid +[wp] [Qed] Goal typed_f_ensures_A : Valid +[wp] [Qed] Goal typed_f_ensures_B : Valid [wp] Proved goals: 2 / 2 Qed: 2 [wp] Report 'tests/wp_typed/unit_cst.i.0.report.json' diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_float.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_float.res.oracle index 1231de6e7feabd5cdf451917f0cf9259b611b021..8e9d20e5c7387bf1c1a5a36137a9a7353329aa1f 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_float.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_float.res.oracle @@ -7,12 +7,12 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 6 goals scheduled -[wp] [Qed] Goal typed_main_post_CST_F : Valid -[wp] [Qed] Goal typed_main_post_CST_D : Valid -[wp] [Qed] Goal typed_main_post_CNV_F : Valid -[wp] [Qed] Goal typed_main_post_CNV_D : Valid -[wp] [Qed] Goal typed_main_post_VAR_F : Valid -[wp] [Qed] Goal typed_main_post_VAR_D : Valid +[wp] [Qed] Goal typed_main_ensures_CST_F : Valid +[wp] [Qed] Goal typed_main_ensures_CST_D : Valid +[wp] [Qed] Goal typed_main_ensures_CNV_F : Valid +[wp] [Qed] Goal typed_main_ensures_CNV_D : Valid +[wp] [Qed] Goal typed_main_ensures_VAR_F : Valid +[wp] [Qed] Goal typed_main_ensures_VAR_D : Valid [wp] Proved goals: 6 / 6 Qed: 6 [wp] Report 'tests/wp_typed/unit_float.i.0.report.json' diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_hard.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_hard.res.oracle index 75ce14ece7b1b71d4c70fd7480221283b870c4ff..9f608e372b6afc911ba866a11fb091dedc7bf480 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_hard.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_hard.res.oracle @@ -4,9 +4,9 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 3 goals scheduled -[wp] [Qed] Goal typed_main_pre_p_is_33FF : Valid -[wp] [Qed] Goal typed_main_pre_q_is_66F0 : Valid -[wp] [Alt-Ergo] Goal typed_main_pre_r_is_q1_ko : Unknown +[wp] [Qed] Goal typed_main_requires_p_is_33FF : Valid +[wp] [Qed] Goal typed_main_requires_q_is_66F0 : Valid +[wp] [Alt-Ergo] Goal typed_main_requires_r_is_q1_ko : Unknown [wp] Proved goals: 2 / 3 Qed: 2 Alt-Ergo: 0 (unknown: 1) diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_ite.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_ite.res.oracle index 133ef86e7ba4d5f5a7a7c5288926e10e2eac1dc7..2bf33e40c9f2eac3d57bcd02040efbae8ab93899 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_ite.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_ite.res.oracle @@ -4,7 +4,7 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled -[wp] [Qed] Goal typed_check_post : Valid +[wp] [Qed] Goal typed_check_ensures : Valid [wp] Proved goals: 1 / 1 Qed: 1 [wp] Report 'tests/wp_typed/unit_ite.i.0.report.json' diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_labels.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_labels.res.oracle index adbf31f89a8f903cfc77a7882fc3dec7c5087b41..7e46e25582e8429d100714ee198f8b908d97bdfd 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_labels.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_labels.res.oracle @@ -4,7 +4,7 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 3 goals scheduled -[wp] [Alt-Ergo] Goal typed_duplet_post : Valid +[wp] [Alt-Ergo] Goal typed_duplet_ensures : Valid [wp] [Alt-Ergo] Goal typed_duplet_assert_PI : Valid [wp] [Alt-Ergo] Goal typed_duplet_assert_PJ : Valid [wp] Proved goals: 3 / 3 diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_local.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_local.0.res.oracle index b745a6959fa51fba82d3b8cbe34a0f36bfd33e25..7227cb987de43a153c9ed0c16e54ffe88f7b972f 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_local.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_local.0.res.oracle @@ -4,9 +4,9 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 3 goals scheduled -[wp] [Qed] Goal typed_bar_assign : Valid -[wp] [Qed] Goal typed_foo_assign_part1 : Valid -[wp] [Alt-Ergo] Goal typed_foo_assign_part2 : Valid +[wp] [Qed] Goal typed_bar_assigns : Valid +[wp] [Qed] Goal typed_foo_assigns_part1 : Valid +[wp] [Alt-Ergo] Goal typed_foo_assigns_part2 : Valid [wp] Proved goals: 3 / 3 Qed: 2 Alt-Ergo: 1 diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_local.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_local.1.res.oracle index 78ec67483d3acdfde7ca5820114b77a1d689e0e6..3d3c8a01300184dcaea4550d2fd3a2d11f8ad975 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_local.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_local.1.res.oracle @@ -4,9 +4,9 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 3 goals scheduled -[wp] [Alt-Ergo] Goal typed_raw_bar_assign : Valid -[wp] [Alt-Ergo] Goal typed_raw_foo_assign_part1 : Valid -[wp] [Alt-Ergo] Goal typed_raw_foo_assign_part2 : Valid +[wp] [Alt-Ergo] Goal typed_raw_bar_assigns : Valid +[wp] [Alt-Ergo] Goal typed_raw_foo_assigns_part1 : Valid +[wp] [Alt-Ergo] Goal typed_raw_foo_assigns_part2 : Valid [wp] Proved goals: 3 / 3 Qed: 0 Alt-Ergo: 3 diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_loopscope.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_loopscope.0.res.oracle index a675b0321f47aa997488709002241e089530cd42..b2061aaf772d9df676fc6447432bc1abb323a55a 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_loopscope.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_loopscope.0.res.oracle @@ -6,8 +6,8 @@ [wp] tests/wp_typed/unit_loopscope.i:14: Warning: Missing assigns clause (assigns 'everything' instead) [wp] 2 goals scheduled -[wp] [Qed] Goal typed_f_loop_inv_preserved : Valid -[wp] [Alt-Ergo] Goal typed_f_loop_inv_established : Unknown +[wp] [Qed] Goal typed_f_loop_invariant_preserved : Valid +[wp] [Alt-Ergo] Goal typed_f_loop_invariant_established : Unknown [wp] Proved goals: 1 / 2 Qed: 1 Alt-Ergo: 0 (unknown: 1) diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_loopscope.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_loopscope.1.res.oracle index a3cbbc8f420d320a28e3bc44cbeae791c150bba4..d703b7baa1c6cab1069eaf5fe9262a112f81e35b 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_loopscope.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_loopscope.1.res.oracle @@ -6,8 +6,8 @@ [wp] tests/wp_typed/unit_loopscope.i:14: Warning: Missing assigns clause (assigns 'everything' instead) [wp] 2 goals scheduled -[wp] [Qed] Goal typed_ref_f_loop_inv_preserved : Valid -[wp] [Alt-Ergo] Goal typed_ref_f_loop_inv_established : Unknown +[wp] [Qed] Goal typed_ref_f_loop_invariant_preserved : Valid +[wp] [Alt-Ergo] Goal typed_ref_f_loop_invariant_established : Unknown [wp] Proved goals: 1 / 2 Qed: 1 Alt-Ergo: 0 (unknown: 1) diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_matrix.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_matrix.res.oracle index 90dcaaae65b8ee59320705559744d27186da405a..2f2abe5fd490075164b369f079aebb42299febfe 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_matrix.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_matrix.res.oracle @@ -4,9 +4,9 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 3 goals scheduled -[wp] [Alt-Ergo] Goal typed_make_post_OK1 : Valid -[wp] [Qed] Goal typed_make_post_OK2 : Valid -[wp] [Alt-Ergo] Goal typed_make_post_KO : Unknown +[wp] [Alt-Ergo] Goal typed_make_ensures_OK1 : Valid +[wp] [Qed] Goal typed_make_ensures_OK2 : Valid +[wp] [Alt-Ergo] Goal typed_make_ensures_KO : Unknown [wp] Proved goals: 2 / 3 Qed: 1 Alt-Ergo: 1 (unknown: 1) diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_string.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_string.res.oracle index a50f64d5bc92af38c5ad8d5c44f473a6ebc4599a..93cfd59ec4c2bfbea470e88d39c0e2542fb7424a 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_string.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_string.res.oracle @@ -16,5 +16,5 @@ [wp] Report 'tests/wp_typed/unit_string.i.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -f - 6 (120..144) 6 100% +f - 6 (128..152) 6 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_tset.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_tset.res.oracle index 92f9519eb50f9387583b7216946e751244b72fb9..27f38791eabe7e1acc381b905d9a26eeb0f7d48c 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_tset.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_tset.res.oracle @@ -4,8 +4,8 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 2 goals scheduled -[wp] [Qed] Goal typed_complex_call_job_pre : Valid -[wp] [Qed] Goal typed_complex_stmt_assign : Valid +[wp] [Qed] Goal typed_complex_call_job_requires : Valid +[wp] [Qed] Goal typed_complex_assigns : Valid [wp] Proved goals: 2 / 2 Qed: 2 [wp] Report 'tests/wp_typed/unit_tset.i.0.report.json' diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_bitwise.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_bitwise.0.res.oracle index cb76492cf52a2c06f9ff9486d2cb585ff7fcd10a..fd7d9e0c8a0ebfa438db6fea1f129d4742391219 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_bitwise.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_bitwise.0.res.oracle @@ -4,28 +4,28 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 12 goals scheduled -[wp] [Qed] Goal typed_ref_rl1_post_b0 : Valid -[wp] [Alt-Ergo] Goal typed_ref_rl1_post_bk : Valid -[wp] [Alt-Ergo] Goal typed_ref_rln32_post_b1 : Valid -[wp] [Alt-Ergo] Goal typed_ref_rln32_post_b2 : Valid -[wp] [Alt-Ergo] Goal typed_ref_rln64_post_b1 : Valid -[wp] [Alt-Ergo] Goal typed_ref_rln64_post_b2 : Valid -[wp] [Alt-Ergo] Goal typed_ref_rr1_post_b0 : Valid -[wp] [Alt-Ergo] Goal typed_ref_rr1_post_bk : Valid -[wp] [Alt-Ergo] Goal typed_ref_rrn32_post_b1 : Valid -[wp] [Alt-Ergo] Goal typed_ref_rrn32_post_b2 : Valid -[wp] [Alt-Ergo] Goal typed_ref_rrn64_post_b1 : Valid -[wp] [Alt-Ergo] Goal typed_ref_rrn64_post_b2 : Valid +[wp] [Qed] Goal typed_ref_rl1_ensures_b0 : Valid +[wp] [Alt-Ergo] Goal typed_ref_rl1_ensures_bk : Valid +[wp] [Alt-Ergo] Goal typed_ref_rln32_ensures_b1 : Valid +[wp] [Alt-Ergo] Goal typed_ref_rln32_ensures_b2 : Valid +[wp] [Alt-Ergo] Goal typed_ref_rln64_ensures_b1 : Valid +[wp] [Alt-Ergo] Goal typed_ref_rln64_ensures_b2 : Valid +[wp] [Alt-Ergo] Goal typed_ref_rr1_ensures_b0 : Valid +[wp] [Alt-Ergo] Goal typed_ref_rr1_ensures_bk : Valid +[wp] [Alt-Ergo] Goal typed_ref_rrn32_ensures_b1 : Valid +[wp] [Alt-Ergo] Goal typed_ref_rrn32_ensures_b2 : Valid +[wp] [Alt-Ergo] Goal typed_ref_rrn64_ensures_b1 : Valid +[wp] [Alt-Ergo] Goal typed_ref_rrn64_ensures_b2 : Valid [wp] Proved goals: 12 / 12 Qed: 1 Alt-Ergo: 11 [wp] Report 'tests/wp_typed/user_bitwise.i.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -rl1 1 1 (44..56) 2 100% -rr1 - 2 (40..52) 2 100% -rln32 - 2 (48..60) 2 100% -rrn32 - 2 (48..60) 2 100% -rln64 - 2 (48..60) 2 100% -rrn64 - 2 (48..60) 2 100% +rl1 1 1 (48..60) 2 100% +rr1 - 2 (44..56) 2 100% +rln32 - 2 (52..64) 2 100% +rrn32 - 2 (52..64) 2 100% +rln64 - 2 (52..64) 2 100% +rrn64 - 2 (52..64) 2 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_collect.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_collect.res.oracle index fc2732f1a63caca9f53bd29ecd40aa9ed056f5c2..849e9f492f0adecf9aeadf786c6cfc72d2c870ae 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_collect.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_collect.res.oracle @@ -4,38 +4,38 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 32 goals scheduled -[wp] [Qed] Goal typed_caller_post_K : Valid -[wp] [Alt-Ergo] Goal typed_caller_post_P1 : Valid -[wp] [Alt-Ergo] Goal typed_caller_post_P2 : Valid -[wp] [Alt-Ergo] Goal typed_caller_call_job_pre : Valid -[wp] [Alt-Ergo] Goal typed_caller_call_job_pre_2 : Valid -[wp] [Qed] Goal typed_caller2_post_K : Valid -[wp] [Alt-Ergo] Goal typed_caller2_post_Q1 : Valid -[wp] [Alt-Ergo] Goal typed_caller2_post_Q2 : Valid -[wp] [Alt-Ergo] Goal typed_caller2_post_R : Valid -[wp] [Alt-Ergo] Goal typed_caller2_call_job2_pre : Valid -[wp] [Alt-Ergo] Goal typed_caller2_call_job2_pre_2 : Valid -[wp] [Qed] Goal typed_caller3_post_K : Valid -[wp] [Alt-Ergo] Goal typed_caller3_post_Q1 : Valid -[wp] [Alt-Ergo] Goal typed_caller3_post_Q2 : Valid -[wp] [Alt-Ergo] Goal typed_caller3_post_R : Valid -[wp] [Alt-Ergo] Goal typed_caller3_call_job3_pre : Valid -[wp] [Alt-Ergo] Goal typed_caller3_call_job3_pre_2 : Valid -[wp] [Qed] Goal typed_job_post_K : Valid -[wp] [Qed] Goal typed_job_post_P : Valid -[wp] [Qed] Goal typed_job_assign_part1 : Valid -[wp] [Qed] Goal typed_job_assign_part2 : Valid -[wp] [Qed] Goal typed_job_assign_part3 : Valid -[wp] [Qed] Goal typed_job2_post_K : Valid -[wp] [Qed] Goal typed_job2_post_Q : Valid -[wp] [Qed] Goal typed_job2_assign_part1 : Valid -[wp] [Qed] Goal typed_job2_assign_part2 : Valid -[wp] [Qed] Goal typed_job2_assign_part3 : Valid -[wp] [Qed] Goal typed_job3_post_K : Valid -[wp] [Alt-Ergo] Goal typed_job3_post_Q : Valid -[wp] [Qed] Goal typed_job3_assign_part1 : Valid -[wp] [Qed] Goal typed_job3_assign_part2 : Valid -[wp] [Qed] Goal typed_job3_assign_part3 : Valid +[wp] [Qed] Goal typed_caller_ensures_K : Valid +[wp] [Alt-Ergo] Goal typed_caller_ensures_P1 : Valid +[wp] [Alt-Ergo] Goal typed_caller_ensures_P2 : Valid +[wp] [Alt-Ergo] Goal typed_caller_call_job_requires : Valid +[wp] [Alt-Ergo] Goal typed_caller_call_job_requires : Valid +[wp] [Qed] Goal typed_caller2_ensures_K : Valid +[wp] [Alt-Ergo] Goal typed_caller2_ensures_Q1 : Valid +[wp] [Alt-Ergo] Goal typed_caller2_ensures_Q2 : Valid +[wp] [Alt-Ergo] Goal typed_caller2_ensures_R : Valid +[wp] [Alt-Ergo] Goal typed_caller2_call_job2_requires : Valid +[wp] [Alt-Ergo] Goal typed_caller2_call_job2_requires : Valid +[wp] [Qed] Goal typed_caller3_ensures_K : Valid +[wp] [Alt-Ergo] Goal typed_caller3_ensures_Q1 : Valid +[wp] [Alt-Ergo] Goal typed_caller3_ensures_Q2 : Valid +[wp] [Alt-Ergo] Goal typed_caller3_ensures_R : Valid +[wp] [Alt-Ergo] Goal typed_caller3_call_job3_requires : Valid +[wp] [Alt-Ergo] Goal typed_caller3_call_job3_requires : Valid +[wp] [Qed] Goal typed_job_ensures_K : Valid +[wp] [Qed] Goal typed_job_ensures_P : Valid +[wp] [Qed] Goal typed_job_assigns_part1 : Valid +[wp] [Qed] Goal typed_job_assigns_part2 : Valid +[wp] [Qed] Goal typed_job_assigns_part3 : Valid +[wp] [Qed] Goal typed_job2_ensures_K : Valid +[wp] [Qed] Goal typed_job2_ensures_Q : Valid +[wp] [Qed] Goal typed_job2_assigns_part1 : Valid +[wp] [Qed] Goal typed_job2_assigns_part2 : Valid +[wp] [Qed] Goal typed_job2_assigns_part3 : Valid +[wp] [Qed] Goal typed_job3_ensures_K : Valid +[wp] [Alt-Ergo] Goal typed_job3_ensures_Q : Valid +[wp] [Qed] Goal typed_job3_assigns_part1 : Valid +[wp] [Qed] Goal typed_job3_assigns_part2 : Valid +[wp] [Qed] Goal typed_job3_assigns_part3 : Valid [wp] Proved goals: 32 / 32 Qed: 17 Alt-Ergo: 15 @@ -46,6 +46,6 @@ job 5 - 5 100% job2 5 - 5 100% job3 4 1 (16..28) 5 100% caller 1 4 (32..44) 5 100% -caller2 1 5 (44..56) 6 100% -caller3 1 5 (44..56) 6 100% +caller2 1 5 (48..60) 6 100% +caller3 1 5 (48..60) 6 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_init.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_init.res.oracle index 44668e5e973c7de919e3d2c9665164aff4f534f1..4f2b39175f74f0cfd99af1fef3f3e369e2dc8310 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_init.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_init.res.oracle @@ -4,14 +4,14 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 8 goals scheduled -[wp] [Alt-Ergo] Goal typed_init_post : Valid -[wp] [Alt-Ergo] Goal typed_init_loop_inv_Partial_preserved : Valid -[wp] [Qed] Goal typed_init_loop_inv_Partial_established : Valid -[wp] [Alt-Ergo] Goal typed_init_loop_inv_Range_preserved : Valid -[wp] [Qed] Goal typed_init_loop_inv_Range_established : Valid -[wp] [Qed] Goal typed_init_loop_assign_part1 : Valid -[wp] [Alt-Ergo] Goal typed_init_loop_assign_part2 : Valid -[wp] [Qed] Goal typed_init_assign : Valid +[wp] [Alt-Ergo] Goal typed_init_ensures : Valid +[wp] [Alt-Ergo] Goal typed_init_loop_invariant_Partial_preserved : Valid +[wp] [Qed] Goal typed_init_loop_invariant_Partial_established : Valid +[wp] [Alt-Ergo] Goal typed_init_loop_invariant_Range_preserved : Valid +[wp] [Qed] Goal typed_init_loop_invariant_Range_established : Valid +[wp] [Qed] Goal typed_init_loop_assigns_part1 : Valid +[wp] [Alt-Ergo] Goal typed_init_loop_assigns_part2 : Valid +[wp] [Qed] Goal typed_init_assigns : Valid [wp] Proved goals: 8 / 8 Qed: 4 Alt-Ergo: 4 diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.0.res.oracle index c8109017fd2ef717deeed3b47704c49fed865024..6f0d6cc19cc8713e8e96e37c4d9ac57c90256bd9 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.0.res.oracle @@ -4,26 +4,26 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 20 goals scheduled -[wp] [Qed] Goal typed_job_post_SEQ : Valid -[wp] [Qed] Goal typed_job_post_ID1 : Valid -[wp] [Qed] Goal typed_job_post_ID2 : Valid -[wp] [Qed] Goal typed_job_post_R1 : Valid -[wp] [Qed] Goal typed_job_post_R2 : Valid -[wp] [Qed] Goal typed_job_post_R0 : Valid -[wp] [Qed] Goal typed_job_post_E1 : Valid -[wp] [Qed] Goal typed_job_post_E2 : Valid -[wp] [Qed] Goal typed_job_assign_exit_part1 : Valid -[wp] [Qed] Goal typed_job_assign_exit_part2 : Valid -[wp] [Qed] Goal typed_job_assign_exit_part3 : Valid -[wp] [Qed] Goal typed_job_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_job_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_job_assign_normal_part3 : Valid -[wp] [Qed] Goal typed_job_assign_normal_part4 : Valid -[wp] [Qed] Goal typed_job_assign_normal_part5 : Valid -[wp] [Qed] Goal typed_job_assign_normal_part6 : Valid -[wp] [Qed] Goal typed_job_assign_normal_part7 : Valid -[wp] [Qed] Goal typed_job_assign_normal_part8 : Valid -[wp] [Qed] Goal typed_job_assign_normal_part9 : Valid +[wp] [Qed] Goal typed_job_ensures_SEQ : Valid +[wp] [Qed] Goal typed_job_ensures_ID1 : Valid +[wp] [Qed] Goal typed_job_ensures_ID2 : Valid +[wp] [Qed] Goal typed_job_ensures_R1 : Valid +[wp] [Qed] Goal typed_job_ensures_R2 : Valid +[wp] [Qed] Goal typed_job_ensures_R0 : Valid +[wp] [Qed] Goal typed_job_ensures_E1 : Valid +[wp] [Qed] Goal typed_job_ensures_E2 : Valid +[wp] [Qed] Goal typed_job_assigns_exit_part1 : Valid +[wp] [Qed] Goal typed_job_assigns_exit_part2 : Valid +[wp] [Qed] Goal typed_job_assigns_exit_part3 : Valid +[wp] [Qed] Goal typed_job_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_job_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_job_assigns_normal_part3 : Valid +[wp] [Qed] Goal typed_job_assigns_normal_part4 : Valid +[wp] [Qed] Goal typed_job_assigns_normal_part5 : Valid +[wp] [Qed] Goal typed_job_assigns_normal_part6 : Valid +[wp] [Qed] Goal typed_job_assigns_normal_part7 : Valid +[wp] [Qed] Goal typed_job_assigns_normal_part8 : Valid +[wp] [Qed] Goal typed_job_assigns_normal_part9 : Valid [wp] Proved goals: 20 / 20 Qed: 20 [wp] Report 'tests/wp_typed/user_injector.i.0.report.json' diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.1.res.oracle index 5a96fa0d2d8772681a35250dc3f3e9588ca2dccb..c2931cef0f2e16299f2fd4670d21c35a6468007e 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.1.res.oracle @@ -4,22 +4,22 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 16 goals scheduled -[wp] [Qed] Goal typed_ref_job_post_SEQ : Valid -[wp] [Qed] Goal typed_ref_job_post_ID1 : Valid -[wp] [Qed] Goal typed_ref_job_post_ID2 : Valid -[wp] [Qed] Goal typed_ref_job_post_R1 : Valid -[wp] [Qed] Goal typed_ref_job_post_R2 : Valid -[wp] [Qed] Goal typed_ref_job_post_R0 : Valid -[wp] [Qed] Goal typed_ref_job_post_E1 : Valid -[wp] [Qed] Goal typed_ref_job_post_E2 : Valid -[wp] [Qed] Goal typed_ref_job_assign_exit_part1 : Valid -[wp] [Qed] Goal typed_ref_job_assign_exit_part2 : Valid -[wp] [Qed] Goal typed_ref_job_assign_normal_part1 : Valid -[wp] [Qed] Goal typed_ref_job_assign_normal_part2 : Valid -[wp] [Qed] Goal typed_ref_job_assign_normal_part3 : Valid -[wp] [Qed] Goal typed_ref_job_assign_normal_part4 : Valid -[wp] [Qed] Goal typed_ref_job_assign_normal_part5 : Valid -[wp] [Qed] Goal typed_ref_job_assign_normal_part6 : Valid +[wp] [Qed] Goal typed_ref_job_ensures_SEQ : Valid +[wp] [Qed] Goal typed_ref_job_ensures_ID1 : Valid +[wp] [Qed] Goal typed_ref_job_ensures_ID2 : Valid +[wp] [Qed] Goal typed_ref_job_ensures_R1 : Valid +[wp] [Qed] Goal typed_ref_job_ensures_R2 : Valid +[wp] [Qed] Goal typed_ref_job_ensures_R0 : Valid +[wp] [Qed] Goal typed_ref_job_ensures_E1 : Valid +[wp] [Qed] Goal typed_ref_job_ensures_E2 : Valid +[wp] [Qed] Goal typed_ref_job_assigns_exit_part1 : Valid +[wp] [Qed] Goal typed_ref_job_assigns_exit_part2 : Valid +[wp] [Qed] Goal typed_ref_job_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_ref_job_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_ref_job_assigns_normal_part3 : Valid +[wp] [Qed] Goal typed_ref_job_assigns_normal_part4 : Valid +[wp] [Qed] Goal typed_ref_job_assigns_normal_part5 : Valid +[wp] [Qed] Goal typed_ref_job_assigns_normal_part6 : Valid [wp] Proved goals: 16 / 16 Qed: 16 [wp] Report 'tests/wp_typed/user_injector.i.1.report.json' diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_rec.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_rec.res.oracle index cea18d8d736c4e364422bbec20a221c0191d20ed..5661eb3f32c1555b8971f937cf7337c7edb420e6 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_rec.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_rec.res.oracle @@ -4,24 +4,24 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 18 goals scheduled -[wp] [Alt-Ergo] Goal typed_F1_post : Valid -[wp] [Alt-Ergo] Goal typed_F1_loop_inv_preserved : Valid -[wp] [Alt-Ergo] Goal typed_F1_loop_inv_established : Valid -[wp] [Alt-Ergo] Goal typed_F1_loop_inv_2_preserved : Valid -[wp] [Alt-Ergo] Goal typed_F1_loop_inv_2_established : Valid -[wp] [Qed] Goal typed_F1_loop_assign : Valid -[wp] [Alt-Ergo] Goal typed_F2_post : Valid -[wp] [Alt-Ergo] Goal typed_F2_loop_inv_PART_preserved : Valid -[wp] [Alt-Ergo] Goal typed_F2_loop_inv_PART_established : Valid -[wp] [Alt-Ergo] Goal typed_F2_loop_inv_RANGE_preserved : Valid -[wp] [Alt-Ergo] Goal typed_F2_loop_inv_RANGE_established : Valid -[wp] [Qed] Goal typed_F2_loop_assign : Valid -[wp] [Alt-Ergo] Goal typed_F4_post : Valid -[wp] [Alt-Ergo] Goal typed_F4_loop_inv_NEVER_preserved : Valid -[wp] [Alt-Ergo] Goal typed_F4_loop_inv_NEVER_established : Valid -[wp] [Alt-Ergo] Goal typed_F4_loop_inv_RANGE_preserved : Valid -[wp] [Alt-Ergo] Goal typed_F4_loop_inv_RANGE_established : Valid -[wp] [Qed] Goal typed_F4_loop_assign : Valid +[wp] [Alt-Ergo] Goal typed_F1_ensures : Valid +[wp] [Alt-Ergo] Goal typed_F1_loop_invariant_preserved : Valid +[wp] [Alt-Ergo] Goal typed_F1_loop_invariant_established : Valid +[wp] [Alt-Ergo] Goal typed_F1_loop_invariant_2_preserved : Valid +[wp] [Alt-Ergo] Goal typed_F1_loop_invariant_2_established : Valid +[wp] [Qed] Goal typed_F1_loop_assigns : Valid +[wp] [Alt-Ergo] Goal typed_F2_ensures : Valid +[wp] [Alt-Ergo] Goal typed_F2_loop_invariant_PART_preserved : Valid +[wp] [Alt-Ergo] Goal typed_F2_loop_invariant_PART_established : Valid +[wp] [Alt-Ergo] Goal typed_F2_loop_invariant_RANGE_preserved : Valid +[wp] [Alt-Ergo] Goal typed_F2_loop_invariant_RANGE_established : Valid +[wp] [Qed] Goal typed_F2_loop_assigns : Valid +[wp] [Alt-Ergo] Goal typed_F4_ensures : Valid +[wp] [Alt-Ergo] Goal typed_F4_loop_invariant_NEVER_preserved : Valid +[wp] [Alt-Ergo] Goal typed_F4_loop_invariant_NEVER_established : Valid +[wp] [Alt-Ergo] Goal typed_F4_loop_invariant_RANGE_preserved : Valid +[wp] [Alt-Ergo] Goal typed_F4_loop_invariant_RANGE_established : Valid +[wp] [Qed] Goal typed_F4_loop_assigns : Valid [wp] Proved goals: 18 / 18 Qed: 3 Alt-Ergo: 15 diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_string.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_string.res.oracle index 7897a72d1b43a469d846e4f6c7edad15eb3f302f..cf3e048e553914572b5690448ec6824fc6df3fe0 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_string.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_string.res.oracle @@ -4,19 +4,19 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 13 goals scheduled -[wp] [Qed] Goal typed_strlen_post : Valid -[wp] [Qed] Goal typed_strlen_loop_inv_BASE_preserved : Valid -[wp] [Qed] Goal typed_strlen_loop_inv_BASE_established : Valid -[wp] [Alt-Ergo] Goal typed_strlen_loop_inv_RANGE_preserved : Valid -[wp] [Alt-Ergo] Goal typed_strlen_loop_inv_RANGE_established : Valid -[wp] [Alt-Ergo] Goal typed_strlen_loop_inv_ZERO_preserved : Valid -[wp] [Qed] Goal typed_strlen_loop_inv_ZERO_established : Valid +[wp] [Qed] Goal typed_strlen_ensures : Valid +[wp] [Qed] Goal typed_strlen_loop_invariant_BASE_preserved : Valid +[wp] [Qed] Goal typed_strlen_loop_invariant_BASE_established : Valid +[wp] [Alt-Ergo] Goal typed_strlen_loop_invariant_RANGE_preserved : Valid +[wp] [Alt-Ergo] Goal typed_strlen_loop_invariant_RANGE_established : Valid +[wp] [Alt-Ergo] Goal typed_strlen_loop_invariant_ZERO_preserved : Valid +[wp] [Qed] Goal typed_strlen_loop_invariant_ZERO_established : Valid [wp] [Alt-Ergo] Goal typed_strlen_assert_END : Valid -[wp] [Qed] Goal typed_strlen_loop_assign : Valid -[wp] [Qed] Goal typed_strlen_assign_part1 : Valid -[wp] [Qed] Goal typed_strlen_assign_part2 : Valid -[wp] [Qed] Goal typed_strlen_loop_term_decrease : Valid -[wp] [Alt-Ergo] Goal typed_strlen_loop_term_positive : Valid +[wp] [Qed] Goal typed_strlen_loop_assigns : Valid +[wp] [Qed] Goal typed_strlen_assigns_part1 : Valid +[wp] [Qed] Goal typed_strlen_assigns_part2 : Valid +[wp] [Qed] Goal typed_strlen_loop_variant_decrease : Valid +[wp] [Alt-Ergo] Goal typed_strlen_loop_variant_positive : Valid [wp] Proved goals: 13 / 13 Qed: 8 Alt-Ergo: 5 diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_swap.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_swap.0.res.oracle index f9004eeb05a8982faabb8392d0d4bed05ddf93df..356adba64938e304be0caacaa490824307ccac05 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_swap.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_swap.0.res.oracle @@ -5,18 +5,18 @@ [wp] Warning: Missing RTE guards [wp] 7 goals scheduled [wp] [Qed] Goal typed_main_assert : Valid -[wp] [Qed] Goal typed_main_call_swap_pre : Valid -[wp] [Qed] Goal typed_main_call_swap_pre_2 : Valid -[wp] [Alt-Ergo] Goal typed_swap_post_A : Valid -[wp] [Qed] Goal typed_swap_post_B : Valid -[wp] [Qed] Goal typed_swap_assign_part1 : Valid -[wp] [Qed] Goal typed_swap_assign_part2 : Valid +[wp] [Qed] Goal typed_main_call_swap_requires : Valid +[wp] [Qed] Goal typed_main_call_swap_requires_2 : Valid +[wp] [Alt-Ergo] Goal typed_swap_ensures_A : Valid +[wp] [Qed] Goal typed_swap_ensures_B : Valid +[wp] [Qed] Goal typed_swap_assigns_part1 : Valid +[wp] [Qed] Goal typed_swap_assigns_part2 : Valid [wp] Proved goals: 7 / 7 Qed: 6 Alt-Ergo: 1 [wp] Report 'tests/wp_typed/user_swap.i.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -swap 3 1 (12..24) 4 100% +swap 3 1 (16..28) 4 100% main 3 - 3 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_swap.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_swap.1.res.oracle index a0ff47387b176bda1772889cb54ff272d9a5fd1b..906d590a10fc8344139ea08b1193f85600b1aa05 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_swap.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_swap.1.res.oracle @@ -5,11 +5,11 @@ [wp] Warning: Missing RTE guards [wp] 6 goals scheduled [wp] [Qed] Goal typed_ref_main_assert : Valid -[wp] [Qed] Goal typed_ref_main_call_swap_pre : Valid -[wp] [Qed] Goal typed_ref_main_call_swap_pre_2 : Valid -[wp] [Qed] Goal typed_ref_swap_post_A : Valid -[wp] [Qed] Goal typed_ref_swap_post_B : Valid -[wp] [Qed] Goal typed_ref_swap_assign : Valid +[wp] [Qed] Goal typed_ref_main_call_swap_requires : Valid +[wp] [Qed] Goal typed_ref_main_call_swap_requires_2 : Valid +[wp] [Qed] Goal typed_ref_swap_ensures_A : Valid +[wp] [Qed] Goal typed_ref_swap_ensures_B : Valid +[wp] [Qed] Goal typed_ref_swap_assigns : Valid [wp] Proved goals: 6 / 6 Qed: 6 [wp] Report 'tests/wp_typed/user_swap.i.1.report.json' diff --git a/src/plugins/wp/tests/wp_typed/shift_lemma.i.0.report.json b/src/plugins/wp/tests/wp_typed/shift_lemma.i.0.report.json index f16f0c3c6d94b40f8e3185f34e9196aba097c4f2..57fb10b150427ac2a1e2193406b66f389eef9364 100644 --- a/src/plugins/wp/tests/wp_typed/shift_lemma.i.0.report.json +++ b/src/plugins/wp/tests/wp_typed/shift_lemma.i.0.report.json @@ -1,6 +1,6 @@ -{ "wp:global": { "alt-ergo": { "total": 3, "valid": 3, "rank": 5 }, +{ "wp:global": { "alt-ergo": { "total": 3, "valid": 3, "rank": 6 }, "qed": { "total": 2, "valid": 2 }, - "wp:main": { "total": 5, "valid": 5, "rank": 5 } }, + "wp:main": { "total": 5, "valid": 5, "rank": 6 } }, "wp:functions": { "f": { "f_assert_5": { "alt-ergo": { "total": 1, "valid": 1, "rank": 3 }, @@ -15,19 +15,19 @@ "valid": 1 } }, "f_assert_2": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 5 }, + "rank": 6 }, "wp:main": { "total": 1, "valid": 1, - "rank": 5 } }, + "rank": 6 } }, "f_assert": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "wp:main": { "total": 1, "valid": 1, - "rank": 3 } }, + "rank": 4 } }, "wp:section": { "alt-ergo": { "total": 3, "valid": 3, - "rank": 5 }, + "rank": 6 }, "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 5, "valid": 5, - "rank": 5 } } } } } + "rank": 6 } } } } } diff --git a/src/plugins/wp/tests/wp_typed/struct_array_type.i.0.report.json b/src/plugins/wp/tests/wp_typed/struct_array_type.i.0.report.json index afebc5ba97d76ae2533a123540e2b909764ed269..dd93aaefdcd9cbd417e007a68943ff879919456a 100644 --- a/src/plugins/wp/tests/wp_typed/struct_array_type.i.0.report.json +++ b/src/plugins/wp/tests/wp_typed/struct_array_type.i.0.report.json @@ -1,9 +1,11 @@ { "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 3 }, "wp:main": { "total": 1, "valid": 1, "rank": 3 } }, - "wp:functions": { "f": { "f_post": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, - "wp:main": { "total": 1, "valid": 1, - "rank": 3 } }, + "wp:functions": { "f": { "f_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 3 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 3 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, "rank": 3 }, diff --git a/src/plugins/wp/tests/wp_typed/unit_alloc.i.0.report.json b/src/plugins/wp/tests/wp_typed/unit_alloc.i.0.report.json index 9f812ec52f0d14edb82c0d7a39c29c182b2888c0..772fd8424c99598ffe886aa4cbd955425709bf68 100644 --- a/src/plugins/wp/tests/wp_typed/unit_alloc.i.0.report.json +++ b/src/plugins/wp/tests/wp_typed/unit_alloc.i.0.report.json @@ -29,22 +29,24 @@ "wp:main": { "total": 4, "valid": 4, "rank": 6 } } }, - "f": { "f_assign": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "f": { "f_assigns": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "g": { "g_assign": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "g": { "g_assigns": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "h": { "h_post": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 4 }, - "wp:main": { "total": 1, "valid": 1, - "rank": 4 } }, + "h": { "h_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 4 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 4 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, "rank": 4 }, diff --git a/src/plugins/wp/tests/wp_typed/unit_alloc.i.1.report.json b/src/plugins/wp/tests/wp_typed/unit_alloc.i.1.report.json index 9f812ec52f0d14edb82c0d7a39c29c182b2888c0..772fd8424c99598ffe886aa4cbd955425709bf68 100644 --- a/src/plugins/wp/tests/wp_typed/unit_alloc.i.1.report.json +++ b/src/plugins/wp/tests/wp_typed/unit_alloc.i.1.report.json @@ -29,22 +29,24 @@ "wp:main": { "total": 4, "valid": 4, "rank": 6 } } }, - "f": { "f_assign": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "f": { "f_assigns": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "g": { "g_assign": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "g": { "g_assigns": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "h": { "h_post": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 4 }, - "wp:main": { "total": 1, "valid": 1, - "rank": 4 } }, + "h": { "h_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 4 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 4 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, "rank": 4 }, diff --git a/src/plugins/wp/tests/wp_typed/unit_bitwise.c.0.report.json b/src/plugins/wp/tests/wp_typed/unit_bitwise.c.0.report.json index f2a9a5a5550085dc73c5d68e7e570eab09b312bf..446a637c35fd9fba8ea92ea1bbeb4bd085dfd95d 100644 --- a/src/plugins/wp/tests/wp_typed/unit_bitwise.c.0.report.json +++ b/src/plugins/wp/tests/wp_typed/unit_bitwise.c.0.report.json @@ -43,10 +43,10 @@ "valid": 1 } }, "lemma_bxor_sint8": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "wp:main": { "total": 1, "valid": 1, - "rank": 3 } }, + "rank": 4 } }, "lemma_bor_uint8": { "alt-ergo": { "total": 1, "valid": 1, "rank": 8 }, @@ -55,40 +55,40 @@ "rank": 8 } }, "lemma_bor_sint8": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "wp:main": { "total": 1, "valid": 1, - "rank": 3 } }, + "rank": 4 } }, "lemma_bnot_sint8": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "wp:main": { "total": 1, "valid": 1, - "rank": 3 } }, + "rank": 4 } }, "lemma_blsr_uint8": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "wp:main": { "total": 1, "valid": 1, - "rank": 3 } }, + "rank": 4 } }, "lemma_blsr_sint8": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "wp:main": { "total": 1, "valid": 1, - "rank": 3 } }, + "rank": 4 } }, "lemma_band_uint8": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "wp:main": { "total": 1, "valid": 1, - "rank": 3 } }, + "rank": 4 } }, "lemma_band_sint8": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "wp:main": { "total": 1, "valid": 1, - "rank": 3 } }, + "rank": 4 } }, "wp:section": { "alt-ergo": { "total": 8, "valid": 8, "rank": 8 }, @@ -102,52 +102,57 @@ "wp:main": { "total": 1, "valid": 1 } }, - "band_int_post_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "band_int_ensures_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } } }, - "bor_int": { "bor_int_post_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "bor_int": { "bor_int_ensures_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "bxor_int": { "bxor_int_post_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "bxor_int": { "bxor_int_ensures_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "bnot_int": { "bnot_int_post_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "bnot_int": { "bnot_int_ensures_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "lshift_int": { "lshift_int_post_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "lshift_int": { "lshift_int_ensures_ok": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "rshift_int": { "rshift_int_post_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "rshift_int": { "rshift_int_ensures_ok": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, @@ -155,11 +160,11 @@ "band1_uint": { "band1_uint_assert_ok_2": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "wp:main": { "total": 1, "valid": 1, - "rank": 3 } }, + "rank": 4 } }, "band1_uint_assert_ok": { "qed": { "total": 1, "valid": 1 }, @@ -168,149 +173,152 @@ "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 2, "valid": 2, - "rank": 3 } } }, - "band_uint": { "band_uint_post_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "rank": 4 } } }, + "band_uint": { "band_uint_ensures_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "bor_uint": { "bor_uint_post_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "bor_uint": { "bor_uint_ensures_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "bxor_uint": { "bxor_uint_post_ok_2": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 3 }, - "wp:main": - { "total": 1, - "valid": 1, - "rank": 3 } }, - "bxor_uint_post_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "bxor_uint": { "bxor_uint_ensures_ok_2": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 4 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 4 } }, + "bxor_uint_ensures_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 2, "valid": 2, - "rank": 3 } } }, - "bnot_uint": { "bnot_uint_post_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "rank": 4 } } }, + "bnot_uint": { "bnot_uint_ensures_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "lshift_uint": { "lshift_uint_post_ok": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "lshift_uint": { "lshift_uint_ensures_ok": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "rshift_uint": { "rshift_uint_post_ok": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "rshift_uint": { "rshift_uint_ensures_ok": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "band_char": { "band_char_post_ok": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 3 }, - "wp:main": - { "total": 1, - "valid": 1, - "rank": 3 } }, + "band_char": { "band_char_ensures_ok": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 4 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 4 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "wp:main": { "total": 1, "valid": 1, - "rank": 3 } } }, - "bor_char": { "bor_char_post_ok": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 3 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 3 } }, + "rank": 4 } } }, + "bor_char": { "bor_char_ensures_ok": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 4 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 4 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "wp:main": { "total": 1, "valid": 1, - "rank": 3 } } }, - "bxor_char": { "bxor_char_post_ok": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 3 }, - "wp:main": - { "total": 1, - "valid": 1, - "rank": 3 } }, + "rank": 4 } } }, + "bxor_char": { "bxor_char_ensures_ok": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 4 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 4 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "wp:main": { "total": 1, "valid": 1, - "rank": 3 } } }, - "bnot_char": { "bnot_char_post_ok": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 3 }, - "wp:main": - { "total": 1, - "valid": 1, - "rank": 3 } }, + "rank": 4 } } }, + "bnot_char": { "bnot_char_ensures_ok": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 4 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 4 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "wp:main": { "total": 1, "valid": 1, - "rank": 3 } } }, - "lshift_char": { "lshift_char_post_ok": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "rank": 4 } } }, + "lshift_char": { "lshift_char_ensures_ok": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "rshift_char": { "rshift_char_post_ok": { "qed": - { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "rshift_char": { "rshift_char_ensures_ok": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, @@ -318,11 +326,11 @@ "band1_uchar": { "band1_uchar_assert_ok_2": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "wp:main": { "total": 1, "valid": 1, - "rank": 3 } }, + "rank": 4 } }, "band1_uchar_assert_ok": { "qed": { "total": 1, "valid": 1 }, @@ -331,97 +339,99 @@ "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 2, "valid": 2, - "rank": 3 } } }, - "band_uchar": { "band_uchar_post_ok": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 3 }, - "wp:main": - { "total": 1, - "valid": 1, - "rank": 3 } }, + "rank": 4 } } }, + "band_uchar": { "band_uchar_ensures_ok": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 4 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 4 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "wp:main": { "total": 1, "valid": 1, - "rank": 3 } } }, - "bor_uchar": { "bor_uchar_post_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "rank": 4 } } }, + "bor_uchar": { "bor_uchar_ensures_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "bxor_uchar": { "bxor_uchar_post_ok_2": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 3 }, - "wp:main": - { "total": 1, - "valid": 1, - "rank": 3 } }, - "bxor_uchar_post_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "bxor_uchar": { "bxor_uchar_ensures_ok_2": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 4 }, + "wp:main": + { "total": 1, + "valid": 1, + "rank": 4 } }, + "bxor_uchar_ensures_ok": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 2, "valid": 2, - "rank": 3 } } }, - "bnot_uchar": { "bnot_uchar_post_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "rank": 4 } } }, + "bnot_uchar": { "bnot_uchar_ensures_ok": { "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "lshift_uchar": { "lshift_uchar_post_ok": { "qed": - { "total": 1, + "lshift_uchar": { "lshift_uchar_ensures_ok": { "qed": + { "total": 1, "valid": 1 }, - "wp:main": - { "total": 1, + "wp:main": + { "total": 1, "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } } }, - "rshift_uchar": { "rshift_uchar_post_ok": { "alt-ergo": - { "total": 1, + "rshift_uchar": { "rshift_uchar_ensures_ok": { "alt-ergo": + { "total": 1, "valid": 1, - "rank": 5 }, - "wp:main": - { "total": 1, + "rank": 7 }, + "wp:main": + { "total": 1, "valid": 1, - "rank": 5 } }, + "rank": 7 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 5 }, + "rank": 7 }, "wp:main": { "total": 1, "valid": 1, - "rank": 5 } } }, + "rank": 7 } } }, "band1_ushort": { "band1_ushort_assert_ok_2": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "wp:main": { "total": 1, "valid": 1, - "rank": 3 } }, + "rank": 4 } }, "band1_ushort_assert_ok": { "qed": { "total": 1, "valid": 1 }, @@ -430,20 +440,20 @@ "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 2, "valid": 2, - "rank": 3 } } }, + "rank": 4 } } }, "band1_ulong": { "band1_ulong_assert_ok_2": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "wp:main": { "total": 1, "valid": 1, - "rank": 3 } }, + "rank": 4 } }, "band1_ulong_assert_ok": { "qed": { "total": 1, "valid": 1 }, @@ -452,12 +462,12 @@ "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, + "rank": 4 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 2, "valid": 2, - "rank": 3 } } }, + "rank": 4 } } }, "cast": { "cast_assert_ok_7": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, @@ -486,10 +496,10 @@ "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "cast_post_ok": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "cast_ensures_ok": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 8, "valid": 8 }, "wp:main": { "total": 8, diff --git a/src/plugins/wp/tests/wp_typed/unit_bitwise.c.1.report.json b/src/plugins/wp/tests/wp_typed/unit_bitwise.c.1.report.json index 82debd45425e5560c3e94b7890cc0d859fb82beb..0dc8275e431c8779fb5273a028f84ea7320b4bd4 100644 --- a/src/plugins/wp/tests/wp_typed/unit_bitwise.c.1.report.json +++ b/src/plugins/wp/tests/wp_typed/unit_bitwise.c.1.report.json @@ -10,22 +10,22 @@ "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } } }, - "bnot_uint": { "bnot_uint_post_ko": { "alt-ergo": - { "total": 1, - "unknown": 1 }, - "wp:main": - { "total": 1, - "unknown": 1 } }, + "bnot_uint": { "bnot_uint_ensures_ko": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, "unknown": 1 } } }, - "bnot_uchar": { "bnot_uchar_post_ko": { "alt-ergo": - { "total": 1, - "unknown": 1 }, - "wp:main": - { "total": 1, - "unknown": 1 } }, + "bnot_uchar": { "bnot_uchar_ensures_ko": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "wp:main": { "total": 1, diff --git a/src/plugins/wp/tests/wp_typed/unit_cast.i.0.report.json b/src/plugins/wp/tests/wp_typed/unit_cast.i.0.report.json index 03ba88877b73b7a8b2a5bbb2a828305b6d929939..601602a129d0f5488189d354167cf10c25bca385 100644 --- a/src/plugins/wp/tests/wp_typed/unit_cast.i.0.report.json +++ b/src/plugins/wp/tests/wp_typed/unit_cast.i.0.report.json @@ -1,14 +1,14 @@ -{ "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 4 }, - "wp:main": { "total": 1, "valid": 1, "rank": 4 } }, +{ "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 6 }, + "wp:main": { "total": 1, "valid": 1, "rank": 6 } }, "wp:functions": { "f": { "f_assert_OUT": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 4 }, + "rank": 6 }, "wp:main": { "total": 1, "valid": 1, - "rank": 4 } }, + "rank": 6 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 4 }, + "rank": 6 }, "wp:main": { "total": 1, "valid": 1, - "rank": 4 } } } } } + "rank": 6 } } } } } diff --git a/src/plugins/wp/tests/wp_typed/unit_cst.i.0.report.json b/src/plugins/wp/tests/wp_typed/unit_cst.i.0.report.json index 19abe51ae5f1d3004dca2f972917b6dc3faeaf05..f7399a08a68535d5112bcf985aa8a7a4d07d590c 100644 --- a/src/plugins/wp/tests/wp_typed/unit_cst.i.0.report.json +++ b/src/plugins/wp/tests/wp_typed/unit_cst.i.0.report.json @@ -1,11 +1,11 @@ { "wp:global": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } }, - "wp:functions": { "f": { "f_post_B": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "f_post_A": { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "f": { "f_ensures_B": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "f_ensures_A": { "qed": { "total": 1, "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } } } } } diff --git a/src/plugins/wp/tests/wp_typed/unit_float.i.0.report.json b/src/plugins/wp/tests/wp_typed/unit_float.i.0.report.json index 48e38898c29124597df19af76138c2b007f7e982..536ff3635c35862a1401cb1dfb316e27fe42f39e 100644 --- a/src/plugins/wp/tests/wp_typed/unit_float.i.0.report.json +++ b/src/plugins/wp/tests/wp_typed/unit_float.i.0.report.json @@ -1,29 +1,29 @@ { "wp:global": { "qed": { "total": 6, "valid": 6 }, "wp:main": { "total": 6, "valid": 6 } }, - "wp:functions": { "main": { "main_post_VAR_D": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "main_post_VAR_F": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "main_post_CNV_D": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "main_post_CNV_F": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "main_post_CST_D": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "main_post_CST_F": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "main": { "main_ensures_VAR_D": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "main_ensures_VAR_F": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "main_ensures_CNV_D": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "main_ensures_CNV_F": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "main_ensures_CST_D": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "main_ensures_CST_F": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 6, "valid": 6 }, "wp:main": { "total": 6, diff --git a/src/plugins/wp/tests/wp_typed/unit_hard.i.0.report.json b/src/plugins/wp/tests/wp_typed/unit_hard.i.0.report.json index def0b114235c4868a75ade8d3e60487865c60ec3..94fcb00c3cbadaa18a5c6cefcd550c33b094e592 100644 --- a/src/plugins/wp/tests/wp_typed/unit_hard.i.0.report.json +++ b/src/plugins/wp/tests/wp_typed/unit_hard.i.0.report.json @@ -1,18 +1,22 @@ { "wp:global": { "alt-ergo": { "total": 1, "unknown": 1 }, "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 3, "valid": 2, "unknown": 1 } }, - "wp:functions": { "main": { "main_pre_r_is_q1_ko": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "main_pre_q_is_66F0": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "main_pre_p_is_33FF": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "main": { "main_requires_r_is_q1_ko": { "alt-ergo": + { "total": 1, + "unknown": 1 }, + "wp:main": + { "total": 1, + "unknown": 1 } }, + "main_requires_q_is_66F0": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, + "main_requires_p_is_33FF": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "qed": { "total": 2, diff --git a/src/plugins/wp/tests/wp_typed/unit_ite.i.0.report.json b/src/plugins/wp/tests/wp_typed/unit_ite.i.0.report.json index a2a5440758b06da4cba3fa3534f395d4f477b263..015bc871fc4ca3961f0f6378b2f719cd527944b2 100644 --- a/src/plugins/wp/tests/wp_typed/unit_ite.i.0.report.json +++ b/src/plugins/wp/tests/wp_typed/unit_ite.i.0.report.json @@ -1,9 +1,9 @@ { "wp:global": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "wp:functions": { "check": { "check_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "check": { "check_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, diff --git a/src/plugins/wp/tests/wp_typed/unit_labels.i.0.report.json b/src/plugins/wp/tests/wp_typed/unit_labels.i.0.report.json index c78bc8e3f70c205991e30bf1fc5463bfd15d9f8a..5215469f919da58581780b418da0f8bb4851f890 100644 --- a/src/plugins/wp/tests/wp_typed/unit_labels.i.0.report.json +++ b/src/plugins/wp/tests/wp_typed/unit_labels.i.0.report.json @@ -12,12 +12,12 @@ "wp:main": { "total": 1, "valid": 1, "rank": 5 } }, - "duplet_post": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 6 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 6 } }, + "duplet_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 6 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 6 } }, "wp:section": { "alt-ergo": { "total": 3, "valid": 3, "rank": 6 }, diff --git a/src/plugins/wp/tests/wp_typed/unit_local.c.0.report.json b/src/plugins/wp/tests/wp_typed/unit_local.c.0.report.json index 6b4e6e25a64cb01cfd095b6a46e4da074cf72236..01dc25dd6b4c17afba83c647f0d77588c0d80244 100644 --- a/src/plugins/wp/tests/wp_typed/unit_local.c.0.report.json +++ b/src/plugins/wp/tests/wp_typed/unit_local.c.0.report.json @@ -1,14 +1,14 @@ { "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 5 }, "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 3, "valid": 3, "rank": 5 } }, - "wp:functions": { "foo": { "foo_assign": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 5 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 5 } }, + "wp:functions": { "foo": { "foo_assigns": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 5 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 5 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, "rank": 5 }, @@ -17,10 +17,10 @@ "wp:main": { "total": 2, "valid": 2, "rank": 5 } } }, - "bar": { "bar_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "bar": { "bar_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, diff --git a/src/plugins/wp/tests/wp_typed/unit_local.c.1.report.json b/src/plugins/wp/tests/wp_typed/unit_local.c.1.report.json index 087968c1f056049609a9ce78677ed02b6749128c..181a37649080708f5b74e8b1e8b08fc58651611e 100644 --- a/src/plugins/wp/tests/wp_typed/unit_local.c.1.report.json +++ b/src/plugins/wp/tests/wp_typed/unit_local.c.1.report.json @@ -1,23 +1,23 @@ { "wp:global": { "alt-ergo": { "total": 3, "valid": 3, "rank": 6 }, "wp:main": { "total": 3, "valid": 3, "rank": 6 } }, - "wp:functions": { "foo": { "foo_assign": { "alt-ergo": { "total": 2, + "wp:functions": { "foo": { "foo_assigns": { "alt-ergo": { "total": 2, + "valid": 2, + "rank": 6 }, + "wp:main": { "total": 2, "valid": 2, - "rank": 6 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 6 } }, + "rank": 6 } }, "wp:section": { "alt-ergo": { "total": 2, "valid": 2, "rank": 6 }, "wp:main": { "total": 2, "valid": 2, "rank": 6 } } }, - "bar": { "bar_assign": { "alt-ergo": { "total": 1, + "bar": { "bar_assigns": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 6 }, + "wp:main": { "total": 1, "valid": 1, - "rank": 6 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 6 } }, + "rank": 6 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, "rank": 6 }, diff --git a/src/plugins/wp/tests/wp_typed/unit_loopscope.i.0.report.json b/src/plugins/wp/tests/wp_typed/unit_loopscope.i.0.report.json index 9def0061da04715a453e1bb0798df65b7df0e784..0df540f56d402e36948e0ff3d0ee2349bba231ac 100644 --- a/src/plugins/wp/tests/wp_typed/unit_loopscope.i.0.report.json +++ b/src/plugins/wp/tests/wp_typed/unit_loopscope.i.0.report.json @@ -1,12 +1,13 @@ { "wp:global": { "alt-ergo": { "total": 1, "unknown": 1 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 2, "valid": 1, "unknown": 1 } }, - "wp:functions": { "f": { "f_loop_inv": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 2, - "valid": 1, - "unknown": 1 } }, + "wp:functions": { "f": { "f_loop_invariant": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 1, + "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "qed": { "total": 1, "valid": 1 }, diff --git a/src/plugins/wp/tests/wp_typed/unit_loopscope.i.1.report.json b/src/plugins/wp/tests/wp_typed/unit_loopscope.i.1.report.json index 9def0061da04715a453e1bb0798df65b7df0e784..0df540f56d402e36948e0ff3d0ee2349bba231ac 100644 --- a/src/plugins/wp/tests/wp_typed/unit_loopscope.i.1.report.json +++ b/src/plugins/wp/tests/wp_typed/unit_loopscope.i.1.report.json @@ -1,12 +1,13 @@ { "wp:global": { "alt-ergo": { "total": 1, "unknown": 1 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 2, "valid": 1, "unknown": 1 } }, - "wp:functions": { "f": { "f_loop_inv": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 2, - "valid": 1, - "unknown": 1 } }, + "wp:functions": { "f": { "f_loop_invariant": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 1, + "unknown": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "unknown": 1 }, "qed": { "total": 1, "valid": 1 }, diff --git a/src/plugins/wp/tests/wp_typed/unit_matrix.i.0.report.json b/src/plugins/wp/tests/wp_typed/unit_matrix.i.0.report.json index 15d636ed8ba9c60692d41a9678acd22a6fc3bcae..468e2635821f7ad20427d9ad8e769224e74815b2 100644 --- a/src/plugins/wp/tests/wp_typed/unit_matrix.i.0.report.json +++ b/src/plugins/wp/tests/wp_typed/unit_matrix.i.0.report.json @@ -3,20 +3,20 @@ "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 3, "valid": 2, "unknown": 1, "rank": 3 } }, - "wp:functions": { "make": { "make_post_KO": { "alt-ergo": { "total": 1, - "unknown": 1 }, - "wp:main": { "total": 1, - "unknown": 1 } }, - "make_post_OK2": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "make_post_OK1": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 3 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 3 } }, + "wp:functions": { "make": { "make_ensures_KO": { "alt-ergo": { "total": 1, + "unknown": 1 }, + "wp:main": { "total": 1, + "unknown": 1 } }, + "make_ensures_OK2": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "make_ensures_OK1": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 3 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 3 } }, "wp:section": { "alt-ergo": { "total": 2, "valid": 1, "unknown": 1, diff --git a/src/plugins/wp/tests/wp_typed/unit_string.i.0.report.json b/src/plugins/wp/tests/wp_typed/unit_string.i.0.report.json index 2b72ca1e2750f4ad9003102d710df69690797602..c6197129cb4c49e1b91dddc00b391f9d0fa1f6aa 100644 --- a/src/plugins/wp/tests/wp_typed/unit_string.i.0.report.json +++ b/src/plugins/wp/tests/wp_typed/unit_string.i.0.report.json @@ -1,5 +1,5 @@ -{ "wp:global": { "alt-ergo": { "total": 6, "valid": 6, "rank": 24 }, - "wp:main": { "total": 6, "valid": 6, "rank": 24 } }, +{ "wp:global": { "alt-ergo": { "total": 6, "valid": 6, "rank": 25 }, + "wp:main": { "total": 6, "valid": 6, "rank": 25 } }, "wp:functions": { "f": { "f_assert_VAL": { "alt-ergo": { "total": 1, "valid": 1, "rank": 15 }, @@ -8,10 +8,10 @@ "rank": 15 } }, "f_assert_B_rw": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 15 }, + "rank": 16 }, "wp:main": { "total": 1, "valid": 1, - "rank": 15 } }, + "rank": 16 } }, "f_assert_B_out": { "alt-ergo": { "total": 1, "valid": 1, "rank": 16 }, @@ -20,16 +20,16 @@ "rank": 16 } }, "f_assert_B_end": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 24 }, + "rank": 25 }, "wp:main": { "total": 1, "valid": 1, - "rank": 24 } }, + "rank": 25 } }, "f_assert_B_valid": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 18 }, + "rank": 19 }, "wp:main": { "total": 1, "valid": 1, - "rank": 18 } }, + "rank": 19 } }, "f_assert_AB": { "alt-ergo": { "total": 1, "valid": 1, "rank": 8 }, @@ -38,7 +38,7 @@ "rank": 8 } }, "wp:section": { "alt-ergo": { "total": 6, "valid": 6, - "rank": 24 }, + "rank": 25 }, "wp:main": { "total": 6, "valid": 6, - "rank": 24 } } } } } + "rank": 25 } } } } } diff --git a/src/plugins/wp/tests/wp_typed/unit_tset.i.0.report.json b/src/plugins/wp/tests/wp_typed/unit_tset.i.0.report.json index 3f28cf0730281c2972e955ff30ae254cff1089e0..6295efbe91c8fdd5bbfd579b2f85613242aa4e3a 100644 --- a/src/plugins/wp/tests/wp_typed/unit_tset.i.0.report.json +++ b/src/plugins/wp/tests/wp_typed/unit_tset.i.0.report.json @@ -1,13 +1,13 @@ { "wp:global": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } }, - "wp:functions": { "complex": { "specialization_job_pre_at_complex_stmt_2": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "complex_stmt_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 1, - "valid": 1 } }, + "wp:functions": { "complex": { "job_requires": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "complex_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, diff --git a/src/plugins/wp/tests/wp_typed/user_bitwise.i.0.report.json b/src/plugins/wp/tests/wp_typed/user_bitwise.i.0.report.json index ebd102c4e466b40f5d8613d62a48361b856fc0a3..a800dbccfc29820414bfc8335879f7e6605f7b28 100644 --- a/src/plugins/wp/tests/wp_typed/user_bitwise.i.0.report.json +++ b/src/plugins/wp/tests/wp_typed/user_bitwise.i.0.report.json @@ -1,111 +1,111 @@ -{ "wp:global": { "alt-ergo": { "total": 11, "valid": 11, "rank": 13 }, +{ "wp:global": { "alt-ergo": { "total": 11, "valid": 11, "rank": 14 }, "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 12, "valid": 12, "rank": 13 } }, - "wp:functions": { "rl1": { "rl1_post_bk": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 12 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 12 } }, - "rl1_post_b0": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:main": { "total": 12, "valid": 12, "rank": 14 } }, + "wp:functions": { "rl1": { "rl1_ensures_bk": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 13 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 13 } }, + "rl1_ensures_b0": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 12 }, + "rank": 13 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 2, "valid": 2, - "rank": 12 } } }, - "rr1": { "rr1_post_bk": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 11 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 11 } }, - "rr1_post_b0": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 4 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 4 } }, + "rank": 13 } } }, + "rr1": { "rr1_ensures_bk": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 12 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 12 } }, + "rr1_ensures_b0": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 5 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 5 } }, "wp:section": { "alt-ergo": { "total": 2, "valid": 2, - "rank": 11 }, + "rank": 12 }, "wp:main": { "total": 2, "valid": 2, - "rank": 11 } } }, - "rln32": { "rln32_post_b2": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 13 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 13 } }, - "rln32_post_b1": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 13 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 13 } }, + "rank": 12 } } }, + "rln32": { "rln32_ensures_b2": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 14 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 14 } }, + "rln32_ensures_b1": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 14 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 14 } }, "wp:section": { "alt-ergo": { "total": 2, "valid": 2, - "rank": 13 }, + "rank": 14 }, "wp:main": { "total": 2, "valid": 2, - "rank": 13 } } }, - "rrn32": { "rrn32_post_b2": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 12 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 12 } }, - "rrn32_post_b1": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 13 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 13 } }, + "rank": 14 } } }, + "rrn32": { "rrn32_ensures_b2": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 13 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 13 } }, + "rrn32_ensures_b1": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 14 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 14 } }, "wp:section": { "alt-ergo": { "total": 2, "valid": 2, - "rank": 13 }, + "rank": 14 }, "wp:main": { "total": 2, "valid": 2, - "rank": 13 } } }, - "rln64": { "rln64_post_b2": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 13 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 13 } }, - "rln64_post_b1": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 13 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 13 } }, + "rank": 14 } } }, + "rln64": { "rln64_ensures_b2": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 14 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 14 } }, + "rln64_ensures_b1": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 14 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 14 } }, "wp:section": { "alt-ergo": { "total": 2, "valid": 2, - "rank": 13 }, + "rank": 14 }, "wp:main": { "total": 2, "valid": 2, - "rank": 13 } } }, - "rrn64": { "rrn64_post_b2": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 12 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 12 } }, - "rrn64_post_b1": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 13 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 13 } }, + "rank": 14 } } }, + "rrn64": { "rrn64_ensures_b2": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 13 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 13 } }, + "rrn64_ensures_b1": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 14 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 14 } }, "wp:section": { "alt-ergo": { "total": 2, "valid": 2, - "rank": 13 }, + "rank": 14 }, "wp:main": { "total": 2, "valid": 2, - "rank": 13 } } } } } + "rank": 14 } } } } } diff --git a/src/plugins/wp/tests/wp_typed/user_collect.i.0.report.json b/src/plugins/wp/tests/wp_typed/user_collect.i.0.report.json index 25b10ccb148706c2318ad6cc96155cab7db206c3..070ac4e1cbf553f8b2a40a93aa88dddd3fb9733c 100644 --- a/src/plugins/wp/tests/wp_typed/user_collect.i.0.report.json +++ b/src/plugins/wp/tests/wp_typed/user_collect.i.0.report.json @@ -1,52 +1,52 @@ -{ "wp:global": { "alt-ergo": { "total": 15, "valid": 15, "rank": 12 }, +{ "wp:global": { "alt-ergo": { "total": 15, "valid": 15, "rank": 13 }, "qed": { "total": 17, "valid": 17 }, - "wp:main": { "total": 32, "valid": 32, "rank": 12 } }, - "wp:functions": { "job": { "job_assign": { "qed": { "total": 3, - "valid": 3 }, - "wp:main": { "total": 3, - "valid": 3 } }, - "job_post_P": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "job_post_K": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:main": { "total": 32, "valid": 32, "rank": 13 } }, + "wp:functions": { "job": { "job_assigns": { "qed": { "total": 3, + "valid": 3 }, + "wp:main": { "total": 3, + "valid": 3 } }, + "job_ensures_P": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "job_ensures_K": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 5, "valid": 5 }, "wp:main": { "total": 5, "valid": 5 } } }, - "job2": { "job2_assign": { "qed": { "total": 3, - "valid": 3 }, - "wp:main": { "total": 3, - "valid": 3 } }, - "job2_post_Q": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "job2_post_K": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "job2": { "job2_assigns": { "qed": { "total": 3, + "valid": 3 }, + "wp:main": { "total": 3, + "valid": 3 } }, + "job2_ensures_Q": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "job2_ensures_K": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 5, "valid": 5 }, "wp:main": { "total": 5, "valid": 5 } } }, - "job3": { "job3_assign": { "qed": { "total": 3, - "valid": 3 }, - "wp:main": { "total": 3, - "valid": 3 } }, - "job3_post_Q": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 5 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 5 } }, - "job3_post_K": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "job3": { "job3_assigns": { "qed": { "total": 3, + "valid": 3 }, + "wp:main": { "total": 3, + "valid": 3 } }, + "job3_ensures_Q": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 5 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 5 } }, + "job3_ensures_K": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, "rank": 5 }, @@ -55,32 +55,34 @@ "wp:main": { "total": 5, "valid": 5, "rank": 5 } } }, - "caller": { "specialization_job_pre_at_caller_stmt_19": - { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, - "wp:main": { "total": 1, "valid": 1, - "rank": 3 } }, - "specialization_job_pre_at_caller_stmt_18": - { "alt-ergo": { "total": 1, "valid": 1, - "rank": 1 }, - "wp:main": { "total": 1, "valid": 1, - "rank": 1 } }, - "caller_post_P2": { "alt-ergo": { "total": 1, + "caller": { "job_requires_2": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 9 }, + "rank": 3 }, "wp:main": { "total": 1, "valid": 1, - "rank": 9 } }, - "caller_post_P1": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 9 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 9 } }, - "caller_post_K": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "rank": 3 } }, + "job_requires": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 2 } }, + "caller_ensures_P2": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 9 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 9 } }, + "caller_ensures_P1": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 9 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 9 } }, + "caller_ensures_K": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 4, "valid": 4, "rank": 9 }, @@ -89,83 +91,91 @@ "wp:main": { "total": 5, "valid": 5, "rank": 9 } } }, - "caller2": { "specialization_job2_pre_at_caller2_stmt_23": - { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, - "wp:main": { "total": 1, "valid": 1, - "rank": 3 } }, - "specialization_job2_pre_at_caller2_stmt_22": - { "alt-ergo": { "total": 1, "valid": 1, - "rank": 1 }, - "wp:main": { "total": 1, "valid": 1, - "rank": 1 } }, - "caller2_post_R": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 12 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 12 } }, - "caller2_post_Q2": { "alt-ergo": { "total": 1, + "caller2": { "job2_requires_2": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 12 }, + "rank": 3 }, "wp:main": { "total": 1, "valid": 1, - "rank": 12 } }, - "caller2_post_Q1": { "alt-ergo": { "total": 1, + "rank": 3 } }, + "job2_requires": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 2 } }, + "caller2_ensures_R": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 12 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 12 } }, - "caller2_post_K": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "rank": 13 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 13 } }, + "caller2_ensures_Q2": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 13 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 13 } }, + "caller2_ensures_Q1": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 13 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 13 } }, + "caller2_ensures_K": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 5, "valid": 5, - "rank": 12 }, + "rank": 13 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 6, "valid": 6, - "rank": 12 } } }, - "caller3": { "specialization_job3_pre_at_caller3_stmt_27": - { "alt-ergo": { "total": 1, "valid": 1, - "rank": 3 }, - "wp:main": { "total": 1, "valid": 1, - "rank": 3 } }, - "specialization_job3_pre_at_caller3_stmt_26": - { "alt-ergo": { "total": 1, "valid": 1, - "rank": 1 }, - "wp:main": { "total": 1, "valid": 1, - "rank": 1 } }, - "caller3_post_R": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 12 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 12 } }, - "caller3_post_Q2": { "alt-ergo": { "total": 1, + "rank": 13 } } }, + "caller3": { "job3_requires_2": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 12 }, + "rank": 3 }, "wp:main": { "total": 1, "valid": 1, - "rank": 12 } }, - "caller3_post_Q1": { "alt-ergo": { "total": 1, + "rank": 3 } }, + "job3_requires": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 2 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 2 } }, + "caller3_ensures_R": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 12 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 12 } }, - "caller3_post_K": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "rank": 13 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 13 } }, + "caller3_ensures_Q2": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 13 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 13 } }, + "caller3_ensures_Q1": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 13 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 13 } }, + "caller3_ensures_K": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 5, "valid": 5, - "rank": 12 }, + "rank": 13 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 6, "valid": 6, - "rank": 12 } } } } } + "rank": 13 } } } } } diff --git a/src/plugins/wp/tests/wp_typed/user_init.i.0.report.json b/src/plugins/wp/tests/wp_typed/user_init.i.0.report.json index dbef37c6533a5ff6e6a4ab33ac7856aee3ca312e..1651d4db1362d3b7af4041cfded35531c28aef00 100644 --- a/src/plugins/wp/tests/wp_typed/user_init.i.0.report.json +++ b/src/plugins/wp/tests/wp_typed/user_init.i.0.report.json @@ -1,41 +1,45 @@ { "wp:global": { "alt-ergo": { "total": 4, "valid": 4, "rank": 19 }, "qed": { "total": 4, "valid": 4 }, "wp:main": { "total": 8, "valid": 8, "rank": 19 } }, - "wp:functions": { "init": { "init_loop_inv_Partial": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 8 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 8 } }, - "init_loop_inv_Range": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 4 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 4 } }, - "init_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "init_loop_assign": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 19 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, + "wp:functions": { "init": { "init_loop_invariant_Partial": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 9 }, + "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 2, + "valid": 2, + "rank": 9 } }, + "init_loop_invariant_Range": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 4 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 2, "valid": 2, - "rank": 19 } }, - "init_post": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 7 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 7 } }, + "rank": 4 } }, + "init_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "init_loop_assigns": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 19 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 19 } }, + "init_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 7 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 7 } }, "wp:section": { "alt-ergo": { "total": 4, "valid": 4, "rank": 19 }, diff --git a/src/plugins/wp/tests/wp_typed/user_injector.i.0.report.json b/src/plugins/wp/tests/wp_typed/user_injector.i.0.report.json index 0eb062947507876aa0ebe0d56d3194c841bf9953..8d5dde5103a4191f2d9676e23e2d9bc4b6b73927 100644 --- a/src/plugins/wp/tests/wp_typed/user_injector.i.0.report.json +++ b/src/plugins/wp/tests/wp_typed/user_injector.i.0.report.json @@ -1,41 +1,41 @@ { "wp:global": { "qed": { "total": 20, "valid": 20 }, "wp:main": { "total": 20, "valid": 20 } }, - "wp:functions": { "job": { "job_assign": { "qed": { "total": 12, - "valid": 12 }, - "wp:main": { "total": 12, - "valid": 12 } }, - "job_post_E2": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "job_post_E1": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "job_post_R0": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "job_post_R2": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "job_post_R1": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "job_post_ID2": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "job_post_ID1": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "job_post_SEQ": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "job": { "job_assigns": { "qed": { "total": 12, + "valid": 12 }, + "wp:main": { "total": 12, + "valid": 12 } }, + "job_ensures_E2": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "job_ensures_E1": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "job_ensures_R0": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "job_ensures_R2": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "job_ensures_R1": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "job_ensures_ID2": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "job_ensures_ID1": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "job_ensures_SEQ": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 20, "valid": 20 }, "wp:main": { "total": 20, diff --git a/src/plugins/wp/tests/wp_typed/user_injector.i.1.report.json b/src/plugins/wp/tests/wp_typed/user_injector.i.1.report.json index 37ae88313d205bfb7319a52ac8b355d17d19d315..3bd17fdbbd541cbfa62396baffba2c440804229a 100644 --- a/src/plugins/wp/tests/wp_typed/user_injector.i.1.report.json +++ b/src/plugins/wp/tests/wp_typed/user_injector.i.1.report.json @@ -1,41 +1,41 @@ { "wp:global": { "qed": { "total": 16, "valid": 16 }, "wp:main": { "total": 16, "valid": 16 } }, - "wp:functions": { "job": { "job_assign": { "qed": { "total": 8, - "valid": 8 }, - "wp:main": { "total": 8, - "valid": 8 } }, - "job_post_E2": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "job_post_E1": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "job_post_R0": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "job_post_R2": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "job_post_R1": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "job_post_ID2": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "job_post_ID1": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "job_post_SEQ": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "job": { "job_assigns": { "qed": { "total": 8, + "valid": 8 }, + "wp:main": { "total": 8, + "valid": 8 } }, + "job_ensures_E2": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "job_ensures_E1": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "job_ensures_R0": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "job_ensures_R2": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "job_ensures_R1": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "job_ensures_ID2": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "job_ensures_ID1": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "job_ensures_SEQ": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 16, "valid": 16 }, "wp:main": { "total": 16, diff --git a/src/plugins/wp/tests/wp_typed/user_rec.i.0.report.json b/src/plugins/wp/tests/wp_typed/user_rec.i.0.report.json index afe3bad05a28d6a40a660ff4abe9511449cbddd1..c1aa3308c9e10ee4a705ba99085a15fc24ed725c 100644 --- a/src/plugins/wp/tests/wp_typed/user_rec.i.0.report.json +++ b/src/plugins/wp/tests/wp_typed/user_rec.i.0.report.json @@ -1,27 +1,28 @@ { "wp:global": { "alt-ergo": { "total": 15, "valid": 15, "rank": 16 }, "qed": { "total": 3, "valid": 3 }, "wp:main": { "total": 18, "valid": 18, "rank": 16 } }, - "wp:functions": { "F1": { "F1_loop_inv_2": { "alt-ergo": { "total": 2, - "valid": 2, - "rank": 7 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 7 } }, - "F1_loop_inv": { "alt-ergo": { "total": 2, - "valid": 2, - "rank": 3 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 3 } }, - "F1_loop_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "F1_post": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 5 }, - "wp:main": { "total": 1, "valid": 1, - "rank": 5 } }, + "wp:functions": { "F1": { "F1_loop_invariant_2": { "alt-ergo": { "total": 2, + "valid": 2, + "rank": 7 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 7 } }, + "F1_loop_invariant": { "alt-ergo": { "total": 2, + "valid": 2, + "rank": 3 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 3 } }, + "F1_loop_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "F1_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 5 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 5 } }, "wp:section": { "alt-ergo": { "total": 5, "valid": 5, "rank": 7 }, @@ -29,27 +30,29 @@ "wp:main": { "total": 6, "valid": 6, "rank": 7 } } }, - "F2": { "F2_loop_inv_PART": { "alt-ergo": { "total": 2, - "valid": 2, - "rank": 9 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 9 } }, - "F2_loop_inv_RANGE": { "alt-ergo": { "total": 2, - "valid": 2, - "rank": 2 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 2 } }, - "F2_loop_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "F2_post": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 5 }, - "wp:main": { "total": 1, "valid": 1, - "rank": 5 } }, + "F2": { "F2_loop_invariant_PART": { "alt-ergo": { "total": 2, + "valid": 2, + "rank": 9 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 9 } }, + "F2_loop_invariant_RANGE": { "alt-ergo": + { "total": 2, + "valid": 2, + "rank": 3 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 3 } }, + "F2_loop_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "F2_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 6 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 6 } }, "wp:section": { "alt-ergo": { "total": 5, "valid": 5, "rank": 9 }, @@ -57,27 +60,30 @@ "wp:main": { "total": 6, "valid": 6, "rank": 9 } } }, - "F4": { "F4_loop_inv_NEVER": { "alt-ergo": { "total": 2, - "valid": 2, - "rank": 7 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 7 } }, - "F4_loop_inv_RANGE": { "alt-ergo": { "total": 2, - "valid": 2, - "rank": 3 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 3 } }, - "F4_loop_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "F4_post": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 16 }, - "wp:main": { "total": 1, "valid": 1, - "rank": 16 } }, + "F4": { "F4_loop_invariant_NEVER": { "alt-ergo": + { "total": 2, + "valid": 2, + "rank": 7 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 7 } }, + "F4_loop_invariant_RANGE": { "alt-ergo": + { "total": 2, + "valid": 2, + "rank": 3 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 3 } }, + "F4_loop_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "F4_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 16 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 16 } }, "wp:section": { "alt-ergo": { "total": 5, "valid": 5, "rank": 16 }, diff --git a/src/plugins/wp/tests/wp_typed/user_string.i.0.report.json b/src/plugins/wp/tests/wp_typed/user_string.i.0.report.json index 23485a321193b5feab617a65ff48bfa7fae5470a..03b9b859c363714d26ec33bd353dbec9dc169ee3 100644 --- a/src/plugins/wp/tests/wp_typed/user_string.i.0.report.json +++ b/src/plugins/wp/tests/wp_typed/user_string.i.0.report.json @@ -7,49 +7,52 @@ "wp:main": { "total": 1, "valid": 1, "rank": 19 } }, - "strlen_loop_inv_ZERO": { "alt-ergo": - { "total": 1, - "valid": 1, - "rank": 10 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": - { "total": 2, - "valid": 2, - "rank": 10 } }, - "strlen_loop_inv_RANGE": { "alt-ergo": - { "total": 2, - "valid": 2, - "rank": 33 }, - "wp:main": - { "total": 2, - "valid": 2, - "rank": 33 } }, - "strlen_loop_inv_BASE": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": - { "total": 2, - "valid": 2 } }, - "strlen_loop_term": { "alt-ergo": { "total": 1, + "strlen_loop_invariant_ZERO": { "alt-ergo": + { "total": 1, "valid": 1, - "rank": 13 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 13 } }, - "strlen_assign": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, - "strlen_loop_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, + "rank": 11 }, + "qed": + { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 2, + "valid": 2, + "rank": 11 } }, + "strlen_loop_invariant_RANGE": { "alt-ergo": + { "total": 2, + "valid": 2, + "rank": 34 }, + "wp:main": + { "total": 2, + "valid": 2, + "rank": 34 } }, + "strlen_loop_invariant_BASE": { "qed": + { "total": 2, + "valid": 2 }, + "wp:main": + { "total": 2, + "valid": 2 } }, + "strlen_loop_variant": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 14 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 14 } }, + "strlen_assigns": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, + "strlen_loop_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, "valid": 1 } }, - "strlen_post": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "strlen_ensures": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 5, "valid": 5, "rank": 33 }, diff --git a/src/plugins/wp/tests/wp_typed/user_swap.i.0.report.json b/src/plugins/wp/tests/wp_typed/user_swap.i.0.report.json index bbcfce18995cc28aba5560cb7b66216501699aa4..23293874328be7845bbddcd7c8b4f29958b7df54 100644 --- a/src/plugins/wp/tests/wp_typed/user_swap.i.0.report.json +++ b/src/plugins/wp/tests/wp_typed/user_swap.i.0.report.json @@ -1,34 +1,36 @@ -{ "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 4 }, +{ "wp:global": { "alt-ergo": { "total": 1, "valid": 1, "rank": 5 }, "qed": { "total": 6, "valid": 6 }, - "wp:main": { "total": 7, "valid": 7, "rank": 4 } }, - "wp:functions": { "swap": { "swap_assign": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, - "swap_post_B": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "swap_post_A": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 4 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 4 } }, + "wp:main": { "total": 7, "valid": 7, "rank": 5 } }, + "wp:functions": { "swap": { "swap_assigns": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, + "swap_ensures_B": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "swap_ensures_A": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 5 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 5 } }, "wp:section": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 4 }, + "rank": 5 }, "qed": { "total": 3, "valid": 3 }, "wp:main": { "total": 4, "valid": 4, - "rank": 4 } } }, - "main": { "specialization_swap_pre_at_main_stmt_8_2": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "specialization_swap_pre_at_main_stmt_8": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, + "rank": 5 } } }, + "main": { "swap_requires_2": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "swap_requires": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "main_assert": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, diff --git a/src/plugins/wp/tests/wp_typed/user_swap.i.1.report.json b/src/plugins/wp/tests/wp_typed/user_swap.i.1.report.json index 2456de029198634d215e4bda90a02994594031d4..12e82ab9342fba0cc7abe963eaf047ee6db62b43 100644 --- a/src/plugins/wp/tests/wp_typed/user_swap.i.1.report.json +++ b/src/plugins/wp/tests/wp_typed/user_swap.i.1.report.json @@ -1,27 +1,29 @@ { "wp:global": { "qed": { "total": 6, "valid": 6 }, "wp:main": { "total": 6, "valid": 6 } }, - "wp:functions": { "swap": { "swap_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "swap_post_B": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "swap_post_A": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "wp:functions": { "swap": { "swap_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "swap_ensures_B": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "swap_ensures_A": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "qed": { "total": 3, "valid": 3 }, "wp:main": { "total": 3, "valid": 3 } } }, - "main": { "specialization_swap_pre_at_main_stmt_8_2": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, - "specialization_swap_pre_at_main_stmt_8": - { "qed": { "total": 1, "valid": 1 }, - "wp:main": { "total": 1, "valid": 1 } }, + "main": { "swap_requires_2": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "swap_requires": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "main_assert": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, diff --git a/src/plugins/wp/tests/wp_usage/caveat2.i.0.report.json b/src/plugins/wp/tests/wp_usage/caveat2.i.0.report.json index 6a36efb5d4ce000204ce3e992fe7c90fc3511c9b..a3e18b8a1f10b2629a4c2dcfc0d7d34e0c338e01 100644 --- a/src/plugins/wp/tests/wp_usage/caveat2.i.0.report.json +++ b/src/plugins/wp/tests/wp_usage/caveat2.i.0.report.json @@ -1,45 +1,45 @@ -{ "wp:global": { "alt-ergo": { "total": 3, "valid": 3, "rank": 5 }, +{ "wp:global": { "alt-ergo": { "total": 3, "valid": 3, "rank": 6 }, "qed": { "total": 6, "valid": 6 }, - "wp:main": { "total": 9, "valid": 9, "rank": 5 } }, - "wp:functions": { "job": { "job_loop_inv_2": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 5 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 5 } }, - "job_loop_inv": { "alt-ergo": { "total": 1, + "wp:main": { "total": 9, "valid": 9, "rank": 6 } }, + "wp:functions": { "job": { "job_loop_invariant_2": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 6 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 6 } }, + "job_loop_invariant": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 4 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 4 } }, + "job_assigns": { "qed": { "total": 2, + "valid": 2 }, + "wp:main": { "total": 2, + "valid": 2 } }, + "job_loop_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "job_ensures_A": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 5 }, + "wp:main": { "total": 1, "valid": 1, - "rank": 4 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 4 } }, - "job_assign": { "qed": { "total": 2, - "valid": 2 }, - "wp:main": { "total": 2, - "valid": 2 } }, - "job_loop_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "job_post_A": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 5 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 5 } }, - "job_post_N": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, + "rank": 5 } }, + "job_ensures_N": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, "wp:section": { "alt-ergo": { "total": 3, "valid": 3, - "rank": 5 }, + "rank": 6 }, "qed": { "total": 6, "valid": 6 }, "wp:main": { "total": 9, "valid": 9, - "rank": 5 } } } } } + "rank": 6 } } } } } diff --git a/src/plugins/wp/tests/wp_usage/caveat_range.i.0.report.json b/src/plugins/wp/tests/wp_usage/caveat_range.i.0.report.json index 81d81829d0c88dfdc99ca1f1ac0fb26bed53afef..e18c5908331be672c0d67f70b5d8edcec7ff1d1d 100644 --- a/src/plugins/wp/tests/wp_usage/caveat_range.i.0.report.json +++ b/src/plugins/wp/tests/wp_usage/caveat_range.i.0.report.json @@ -1,55 +1,60 @@ -{ "wp:global": { "alt-ergo": { "total": 5, "valid": 5, "rank": 11 }, +{ "wp:global": { "alt-ergo": { "total": 5, "valid": 5, "rank": 13 }, "qed": { "total": 7, "valid": 7 }, - "wp:main": { "total": 12, "valid": 12, "rank": 11 } }, - "wp:functions": { "reset": { "reset_loop_inv_3": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 11 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 11 } }, - "reset_loop_inv_2": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 6 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 6 } }, - "reset_loop_inv": { "alt-ergo": { "total": 1, - "valid": 1, - "rank": 3 }, - "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 2, - "valid": 2, - "rank": 3 } }, - "reset_assign": { "qed": { "total": 1, - "valid": 1 }, - "wp:main": { "total": 1, - "valid": 1 } }, - "reset_loop_assign": { "qed": { "total": 3, - "valid": 3 }, - "wp:main": { "total": 3, - "valid": 3 } }, - "reset_post_2": { "alt-ergo": { "total": 1, + "wp:main": { "total": 12, "valid": 12, "rank": 13 } }, + "wp:functions": { "reset": { "reset_loop_invariant_3": { "alt-ergo": + { "total": 1, + "valid": 1, + "rank": 13 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 2, + "valid": 2, + "rank": 13 } }, + "reset_loop_invariant_2": { "alt-ergo": + { "total": 1, "valid": 1, - "rank": 4 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 4 } }, - "reset_post": { "alt-ergo": { "total": 1, + "rank": 7 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": + { "total": 2, + "valid": 2, + "rank": 7 } }, + "reset_loop_invariant": { "alt-ergo": + { "total": 1, "valid": 1, - "rank": 4 }, - "wp:main": { "total": 1, - "valid": 1, - "rank": 4 } }, + "rank": 5 }, + "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 2, + "valid": 2, + "rank": 5 } }, + "reset_assigns": { "qed": { "total": 1, + "valid": 1 }, + "wp:main": { "total": 1, + "valid": 1 } }, + "reset_loop_assigns": { "qed": { "total": 3, + "valid": 3 }, + "wp:main": { "total": 3, + "valid": 3 } }, + "reset_ensures_2": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 5 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 5 } }, + "reset_ensures": { "alt-ergo": { "total": 1, + "valid": 1, + "rank": 5 }, + "wp:main": { "total": 1, + "valid": 1, + "rank": 5 } }, "wp:section": { "alt-ergo": { "total": 5, "valid": 5, - "rank": 11 }, + "rank": 13 }, "qed": { "total": 7, "valid": 7 }, "wp:main": { "total": 12, "valid": 12, - "rank": 11 } } } } } + "rank": 13 } } } } } diff --git a/src/plugins/wp/tests/wp_usage/issue-189-bis.i.0.report.json b/src/plugins/wp/tests/wp_usage/issue-189-bis.i.0.report.json index d3ab34173fd8fec9791fd66f74a4f67a60876404..7e80c837977f33b894882a0482c547eb0d007860 100644 --- a/src/plugins/wp/tests/wp_usage/issue-189-bis.i.0.report.json +++ b/src/plugins/wp/tests/wp_usage/issue-189-bis.i.0.report.json @@ -1,7 +1,7 @@ { "wp:global": { "alt-ergo": { "total": 10, "valid": 10, "rank": 52 }, "qed": { "total": 20, "valid": 20 }, "wp:main": { "total": 30, "valid": 30, "rank": 52 } }, - "wp:functions": { "memcpy_alias_vars": { "memcpy_alias_vars_loop_inv_cpy": + "wp:functions": { "memcpy_alias_vars": { "memcpy_alias_vars_loop_invariant_cpy": { "alt-ergo": { "total": 1, "valid": 1, "rank": 52 }, @@ -10,17 +10,17 @@ "wp:main": { "total": 2, "valid": 2, "rank": 52 } }, - "memcpy_alias_vars_loop_inv_dst": + "memcpy_alias_vars_loop_invariant_dst": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } }, - "memcpy_alias_vars_loop_inv_src": + "memcpy_alias_vars_loop_invariant_src": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } }, - "memcpy_alias_vars_loop_inv_len": + "memcpy_alias_vars_loop_invariant_len": { "alt-ergo": { "total": 1, "valid": 1, "rank": 8 }, @@ -29,12 +29,12 @@ "wp:main": { "total": 2, "valid": 2, "rank": 8 } }, - "memcpy_alias_vars_assign": + "memcpy_alias_vars_assigns": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "memcpy_alias_vars_loop_assign": + "memcpy_alias_vars_loop_assigns": { "alt-ergo": { "total": 1, "valid": 1, "rank": 28 }, @@ -43,14 +43,14 @@ "wp:main": { "total": 4, "valid": 4, "rank": 28 } }, - "memcpy_alias_vars_post_unmodified": + "memcpy_alias_vars_ensures_unmodified": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 31 }, + "rank": 29 }, "wp:main": { "total": 1, "valid": 1, - "rank": 31 } }, - "memcpy_alias_vars_post_memcpy": + "rank": 29 } }, + "memcpy_alias_vars_ensures_memcpy": { "alt-ergo": { "total": 1, "valid": 1, "rank": 39 }, @@ -67,7 +67,7 @@ { "total": 15, "valid": 15, "rank": 52 } } }, - "memcpy_context_vars": { "memcpy_context_vars_loop_inv_ok_cpy": + "memcpy_context_vars": { "memcpy_context_vars_loop_invariant_ok_cpy": { "alt-ergo": { "total": 1, "valid": 1, "rank": 52 }, @@ -76,17 +76,17 @@ "wp:main": { "total": 2, "valid": 2, "rank": 52 } }, - "memcpy_context_vars_loop_inv_ok_dst": + "memcpy_context_vars_loop_invariant_ok_dst": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } }, - "memcpy_context_vars_loop_inv_ok_src": + "memcpy_context_vars_loop_invariant_ok_src": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } }, - "memcpy_context_vars_loop_inv_ok_len": + "memcpy_context_vars_loop_invariant_ok_len": { "alt-ergo": { "total": 1, "valid": 1, "rank": 8 }, @@ -95,12 +95,12 @@ "wp:main": { "total": 2, "valid": 2, "rank": 8 } }, - "memcpy_context_vars_assign": + "memcpy_context_vars_assigns": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "memcpy_context_vars_loop_assign": + "memcpy_context_vars_loop_assigns": { "alt-ergo": { "total": 1, "valid": 1, "rank": 28 }, @@ -109,14 +109,14 @@ "wp:main": { "total": 4, "valid": 4, "rank": 28 } }, - "memcpy_context_vars_post_unmodified_ok": + "memcpy_context_vars_ensures_unmodified_ok": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 31 }, + "rank": 29 }, "wp:main": { "total": 1, "valid": 1, - "rank": 31 } }, - "memcpy_context_vars_post_memcpy_ok": + "rank": 29 } }, + "memcpy_context_vars_ensures_memcpy_ok": { "alt-ergo": { "total": 1, "valid": 1, "rank": 39 }, diff --git a/src/plugins/wp/tests/wp_usage/issue-189-bis.i.1.report.json b/src/plugins/wp/tests/wp_usage/issue-189-bis.i.1.report.json index 1a25c3207ac1d6d7d8910f4988a0e68eb5c9d749..07976c7b36c328ea72d1ff3d0e2d9da71711d2b9 100644 --- a/src/plugins/wp/tests/wp_usage/issue-189-bis.i.1.report.json +++ b/src/plugins/wp/tests/wp_usage/issue-189-bis.i.1.report.json @@ -1,26 +1,26 @@ -{ "wp:global": { "alt-ergo": { "total": 3, "valid": 3, "rank": 20 }, +{ "wp:global": { "alt-ergo": { "total": 3, "valid": 3, "rank": 21 }, "qed": { "total": 7, "valid": 7 }, - "wp:main": { "total": 10, "valid": 10, "rank": 20 } }, - "wp:functions": { "memcpy_context_vars": { "memcpy_context_vars_loop_inv_ok_cpy": + "wp:main": { "total": 10, "valid": 10, "rank": 21 } }, + "wp:functions": { "memcpy_context_vars": { "memcpy_context_vars_loop_invariant_ok_cpy": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 20 }, + "rank": 21 }, "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 2, "valid": 2, - "rank": 20 } }, - "memcpy_context_vars_loop_inv_ok_dst": + "rank": 21 } }, + "memcpy_context_vars_loop_invariant_ok_dst": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } }, - "memcpy_context_vars_loop_inv_ok_src": + "memcpy_context_vars_loop_invariant_ok_src": { "qed": { "total": 2, "valid": 2 }, "wp:main": { "total": 2, "valid": 2 } }, - "memcpy_context_vars_loop_inv_ok_len": + "memcpy_context_vars_loop_invariant_ok_len": { "alt-ergo": { "total": 1, "valid": 1, "rank": 5 }, @@ -29,25 +29,25 @@ "wp:main": { "total": 2, "valid": 2, "rank": 5 } }, - "memcpy_context_vars_post_unmodified_ok": + "memcpy_context_vars_ensures_unmodified_ok": { "qed": { "total": 1, "valid": 1 }, "wp:main": { "total": 1, "valid": 1 } }, - "memcpy_context_vars_post_memcpy_ok": + "memcpy_context_vars_ensures_memcpy_ok": { "alt-ergo": { "total": 1, "valid": 1, - "rank": 5 }, + "rank": 6 }, "wp:main": { "total": 1, "valid": 1, - "rank": 5 } }, + "rank": 6 } }, "wp:section": { "alt-ergo": { "total": 3, "valid": 3, - "rank": 20 }, + "rank": 21 }, "qed": { "total": 7, "valid": 7 }, "wp:main": { "total": 10, "valid": 10, - "rank": 20 } } } } } + "rank": 21 } } } } } diff --git a/src/plugins/wp/tests/wp_usage/oracle/code_spec.res.oracle b/src/plugins/wp/tests/wp_usage/oracle/code_spec.res.oracle index f37910af083ba1968571a0e00547c24378a7f084..e4ad3f5e78b698aeef68ea6f228af4669314c44f 100644 --- a/src/plugins/wp/tests/wp_usage/oracle/code_spec.res.oracle +++ b/src/plugins/wp/tests/wp_usage/oracle/code_spec.res.oracle @@ -40,7 +40,7 @@ Function cup: { val *ref &addr array[] &addr_value val_ref array_ref[] value_array[] } ................................................. [wp] Loading driver 'share/wp.driver' -[wp] [CFG] Goal by_addr_in_code_annotation_stmt_pre : Valid (Unreachable) -[wp] [CFG] Goal by_reference_in_code_annotation_no_exit_exit : Valid (Unreachable) +[wp] [CFG] Goal by_addr_in_code_annotation_requires : Valid (Unreachable) +[wp] [CFG] Goal by_reference_in_code_annotation_no_exit_exits : Valid (Unreachable) [wp] Warning: Missing RTE guards [wp] No proof obligations diff --git a/src/plugins/wp/tests/wp_usage/oracle_qualif/caveat2.res.oracle b/src/plugins/wp/tests/wp_usage/oracle_qualif/caveat2.res.oracle index 83e2c39a2ce3c42e289cdb365ef1eac73275bd17..eb0898c7235b24479b7dcae99ec585a2bdaf16ef 100644 --- a/src/plugins/wp/tests/wp_usage/oracle_qualif/caveat2.res.oracle +++ b/src/plugins/wp/tests/wp_usage/oracle_qualif/caveat2.res.oracle @@ -5,22 +5,22 @@ [wp] Warning: Missing RTE guards [wp] tests/wp_usage/caveat2.i:22: Warning: Undefined array-size (sint32[]) [wp] 9 goals scheduled -[wp] [Qed] Goal typed_caveat_job_post_N : Valid -[wp] [Alt-Ergo] Goal typed_caveat_job_post_A : Valid -[wp] [Alt-Ergo] Goal typed_caveat_job_loop_inv_preserved : Valid -[wp] [Qed] Goal typed_caveat_job_loop_inv_established : Valid -[wp] [Alt-Ergo] Goal typed_caveat_job_loop_inv_2_preserved : Valid -[wp] [Qed] Goal typed_caveat_job_loop_inv_2_established : Valid -[wp] [Qed] Goal typed_caveat_job_loop_assign : Valid -[wp] [Qed] Goal typed_caveat_job_assign_part1 : Valid -[wp] [Qed] Goal typed_caveat_job_assign_part2 : Valid +[wp] [Qed] Goal typed_caveat_job_ensures_N : Valid +[wp] [Alt-Ergo] Goal typed_caveat_job_ensures_A : Valid +[wp] [Alt-Ergo] Goal typed_caveat_job_loop_invariant_preserved : Valid +[wp] [Qed] Goal typed_caveat_job_loop_invariant_established : Valid +[wp] [Alt-Ergo] Goal typed_caveat_job_loop_invariant_2_preserved : Valid +[wp] [Qed] Goal typed_caveat_job_loop_invariant_2_established : Valid +[wp] [Qed] Goal typed_caveat_job_loop_assigns : Valid +[wp] [Qed] Goal typed_caveat_job_assigns_part1 : Valid +[wp] [Qed] Goal typed_caveat_job_assigns_part2 : Valid [wp] Proved goals: 9 / 9 Qed: 6 Alt-Ergo: 3 [wp] Report 'tests/wp_usage/caveat2.i.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -job 6 3 (16..28) 9 100% +job 6 3 (20..32) 9 100% ------------------------------------------------------------- [wp] Warning: Memory model hypotheses for function 'job': /*@ diff --git a/src/plugins/wp/tests/wp_usage/oracle_qualif/caveat_range.res.oracle b/src/plugins/wp/tests/wp_usage/oracle_qualif/caveat_range.res.oracle index a28dae7f4155561b6560d6e6e20ee50807857ab0..fbb344e827fa5dfd38b923032eb6904c1d32a5e4 100644 --- a/src/plugins/wp/tests/wp_usage/oracle_qualif/caveat_range.res.oracle +++ b/src/plugins/wp/tests/wp_usage/oracle_qualif/caveat_range.res.oracle @@ -4,25 +4,25 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 12 goals scheduled -[wp] [Alt-Ergo] Goal typed_caveat_reset_post : Valid -[wp] [Alt-Ergo] Goal typed_caveat_reset_post_2 : Valid -[wp] [Alt-Ergo] Goal typed_caveat_reset_loop_inv_preserved : Valid -[wp] [Qed] Goal typed_caveat_reset_loop_inv_established : Valid -[wp] [Alt-Ergo] Goal typed_caveat_reset_loop_inv_2_preserved : Valid -[wp] [Qed] Goal typed_caveat_reset_loop_inv_2_established : Valid -[wp] [Alt-Ergo] Goal typed_caveat_reset_loop_inv_3_preserved : Valid -[wp] [Qed] Goal typed_caveat_reset_loop_inv_3_established : Valid -[wp] [Qed] Goal typed_caveat_reset_loop_assign_part1 : Valid -[wp] [Qed] Goal typed_caveat_reset_loop_assign_part2 : Valid -[wp] [Qed] Goal typed_caveat_reset_loop_assign_part3 : Valid -[wp] [Qed] Goal typed_caveat_reset_assign : Valid +[wp] [Alt-Ergo] Goal typed_caveat_reset_ensures : Valid +[wp] [Alt-Ergo] Goal typed_caveat_reset_ensures_2 : Valid +[wp] [Alt-Ergo] Goal typed_caveat_reset_loop_invariant_preserved : Valid +[wp] [Qed] Goal typed_caveat_reset_loop_invariant_established : Valid +[wp] [Alt-Ergo] Goal typed_caveat_reset_loop_invariant_2_preserved : Valid +[wp] [Qed] Goal typed_caveat_reset_loop_invariant_2_established : Valid +[wp] [Alt-Ergo] Goal typed_caveat_reset_loop_invariant_3_preserved : Valid +[wp] [Qed] Goal typed_caveat_reset_loop_invariant_3_established : Valid +[wp] [Qed] Goal typed_caveat_reset_loop_assigns_part1 : Valid +[wp] [Qed] Goal typed_caveat_reset_loop_assigns_part2 : Valid +[wp] [Qed] Goal typed_caveat_reset_loop_assigns_part3 : Valid +[wp] [Qed] Goal typed_caveat_reset_assigns : Valid [wp] Proved goals: 12 / 12 Qed: 7 Alt-Ergo: 5 [wp] Report 'tests/wp_usage/caveat_range.i.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -reset 7 5 (40..52) 12 100% +reset 7 5 (48..60) 12 100% ------------------------------------------------------------- [wp] Warning: Memory model hypotheses for function 'reset': /*@ behavior typed_caveat: requires \valid(p+(..)); */ diff --git a/src/plugins/wp/tests/wp_usage/oracle_qualif/issue-189-bis.0.res.oracle b/src/plugins/wp/tests/wp_usage/oracle_qualif/issue-189-bis.0.res.oracle index a2a33c2ab85afe989472d7a1e9e626d19ab39667..9e0dd0e1713a5e0b06fd9241ffe1ddbc67d80c72 100644 --- a/src/plugins/wp/tests/wp_usage/oracle_qualif/issue-189-bis.0.res.oracle +++ b/src/plugins/wp/tests/wp_usage/oracle_qualif/issue-189-bis.0.res.oracle @@ -4,36 +4,36 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 30 goals scheduled -[wp] [Alt-Ergo] Goal typed_memcpy_alias_vars_post_memcpy : Valid -[wp] [Alt-Ergo] Goal typed_memcpy_alias_vars_post_unmodified : Valid -[wp] [Alt-Ergo] Goal typed_memcpy_alias_vars_loop_inv_cpy_preserved : Valid -[wp] [Qed] Goal typed_memcpy_alias_vars_loop_inv_cpy_established : Valid -[wp] [Qed] Goal typed_memcpy_alias_vars_loop_inv_dst_preserved : Valid -[wp] [Qed] Goal typed_memcpy_alias_vars_loop_inv_dst_established : Valid -[wp] [Alt-Ergo] Goal typed_memcpy_alias_vars_loop_inv_len_preserved : Valid -[wp] [Qed] Goal typed_memcpy_alias_vars_loop_inv_len_established : Valid -[wp] [Qed] Goal typed_memcpy_alias_vars_loop_inv_src_preserved : Valid -[wp] [Qed] Goal typed_memcpy_alias_vars_loop_inv_src_established : Valid -[wp] [Qed] Goal typed_memcpy_alias_vars_loop_assign_part1 : Valid -[wp] [Qed] Goal typed_memcpy_alias_vars_loop_assign_part2 : Valid -[wp] [Qed] Goal typed_memcpy_alias_vars_loop_assign_part3 : Valid -[wp] [Alt-Ergo] Goal typed_memcpy_alias_vars_loop_assign_part4 : Valid -[wp] [Qed] Goal typed_memcpy_alias_vars_assign : Valid -[wp] [Alt-Ergo] Goal typed_memcpy_context_vars_post_memcpy_ok : Valid -[wp] [Alt-Ergo] Goal typed_memcpy_context_vars_post_unmodified_ok : Valid -[wp] [Alt-Ergo] Goal typed_memcpy_context_vars_loop_inv_ok_cpy_preserved : Valid -[wp] [Qed] Goal typed_memcpy_context_vars_loop_inv_ok_cpy_established : Valid -[wp] [Qed] Goal typed_memcpy_context_vars_loop_inv_ok_dst_preserved : Valid -[wp] [Qed] Goal typed_memcpy_context_vars_loop_inv_ok_dst_established : Valid -[wp] [Alt-Ergo] Goal typed_memcpy_context_vars_loop_inv_ok_len_preserved : Valid -[wp] [Qed] Goal typed_memcpy_context_vars_loop_inv_ok_len_established : Valid -[wp] [Qed] Goal typed_memcpy_context_vars_loop_inv_ok_src_preserved : Valid -[wp] [Qed] Goal typed_memcpy_context_vars_loop_inv_ok_src_established : Valid -[wp] [Qed] Goal typed_memcpy_context_vars_loop_assign_part1 : Valid -[wp] [Qed] Goal typed_memcpy_context_vars_loop_assign_part2 : Valid -[wp] [Qed] Goal typed_memcpy_context_vars_loop_assign_part3 : Valid -[wp] [Alt-Ergo] Goal typed_memcpy_context_vars_loop_assign_part4 : Valid -[wp] [Qed] Goal typed_memcpy_context_vars_assign : Valid +[wp] [Alt-Ergo] Goal typed_memcpy_alias_vars_ensures_memcpy : Valid +[wp] [Alt-Ergo] Goal typed_memcpy_alias_vars_ensures_unmodified : Valid +[wp] [Alt-Ergo] Goal typed_memcpy_alias_vars_loop_invariant_cpy_preserved : Valid +[wp] [Qed] Goal typed_memcpy_alias_vars_loop_invariant_cpy_established : Valid +[wp] [Qed] Goal typed_memcpy_alias_vars_loop_invariant_dst_preserved : Valid +[wp] [Qed] Goal typed_memcpy_alias_vars_loop_invariant_dst_established : Valid +[wp] [Alt-Ergo] Goal typed_memcpy_alias_vars_loop_invariant_len_preserved : Valid +[wp] [Qed] Goal typed_memcpy_alias_vars_loop_invariant_len_established : Valid +[wp] [Qed] Goal typed_memcpy_alias_vars_loop_invariant_src_preserved : Valid +[wp] [Qed] Goal typed_memcpy_alias_vars_loop_invariant_src_established : Valid +[wp] [Qed] Goal typed_memcpy_alias_vars_loop_assigns_part1 : Valid +[wp] [Qed] Goal typed_memcpy_alias_vars_loop_assigns_part2 : Valid +[wp] [Qed] Goal typed_memcpy_alias_vars_loop_assigns_part3 : Valid +[wp] [Alt-Ergo] Goal typed_memcpy_alias_vars_loop_assigns_part4 : Valid +[wp] [Qed] Goal typed_memcpy_alias_vars_assigns : Valid +[wp] [Alt-Ergo] Goal typed_memcpy_context_vars_ensures_memcpy_ok : Valid +[wp] [Alt-Ergo] Goal typed_memcpy_context_vars_ensures_unmodified_ok : Valid +[wp] [Alt-Ergo] Goal typed_memcpy_context_vars_loop_invariant_ok_cpy_preserved : Valid +[wp] [Qed] Goal typed_memcpy_context_vars_loop_invariant_ok_cpy_established : Valid +[wp] [Qed] Goal typed_memcpy_context_vars_loop_invariant_ok_dst_preserved : Valid +[wp] [Qed] Goal typed_memcpy_context_vars_loop_invariant_ok_dst_established : Valid +[wp] [Alt-Ergo] Goal typed_memcpy_context_vars_loop_invariant_ok_len_preserved : Valid +[wp] [Qed] Goal typed_memcpy_context_vars_loop_invariant_ok_len_established : Valid +[wp] [Qed] Goal typed_memcpy_context_vars_loop_invariant_ok_src_preserved : Valid +[wp] [Qed] Goal typed_memcpy_context_vars_loop_invariant_ok_src_established : Valid +[wp] [Qed] Goal typed_memcpy_context_vars_loop_assigns_part1 : Valid +[wp] [Qed] Goal typed_memcpy_context_vars_loop_assigns_part2 : Valid +[wp] [Qed] Goal typed_memcpy_context_vars_loop_assigns_part3 : Valid +[wp] [Alt-Ergo] Goal typed_memcpy_context_vars_loop_assigns_part4 : Valid +[wp] [Qed] Goal typed_memcpy_context_vars_assigns : Valid [wp] Proved goals: 30 / 30 Qed: 20 Alt-Ergo: 10 diff --git a/src/plugins/wp/tests/wp_usage/oracle_qualif/issue-189-bis.1.res.oracle b/src/plugins/wp/tests/wp_usage/oracle_qualif/issue-189-bis.1.res.oracle index 37d098c44c8daaf3e9e1ed3f779a8d2e32578831..94fca76c2fe618788f35b401717eb76847b78f12 100644 --- a/src/plugins/wp/tests/wp_usage/oracle_qualif/issue-189-bis.1.res.oracle +++ b/src/plugins/wp/tests/wp_usage/oracle_qualif/issue-189-bis.1.res.oracle @@ -4,23 +4,23 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 10 goals scheduled -[wp] [Alt-Ergo] Goal typed_memcpy_context_vars_post_memcpy_ok : Valid -[wp] [Qed] Goal typed_memcpy_context_vars_post_unmodified_ok : Valid -[wp] [Alt-Ergo] Goal typed_memcpy_context_vars_loop_inv_ok_cpy_preserved : Valid -[wp] [Qed] Goal typed_memcpy_context_vars_loop_inv_ok_cpy_established : Valid -[wp] [Qed] Goal typed_memcpy_context_vars_loop_inv_ok_dst_preserved : Valid -[wp] [Qed] Goal typed_memcpy_context_vars_loop_inv_ok_dst_established : Valid -[wp] [Alt-Ergo] Goal typed_memcpy_context_vars_loop_inv_ok_len_preserved : Valid -[wp] [Qed] Goal typed_memcpy_context_vars_loop_inv_ok_len_established : Valid -[wp] [Qed] Goal typed_memcpy_context_vars_loop_inv_ok_src_preserved : Valid -[wp] [Qed] Goal typed_memcpy_context_vars_loop_inv_ok_src_established : Valid +[wp] [Alt-Ergo] Goal typed_memcpy_context_vars_ensures_memcpy_ok : Valid +[wp] [Qed] Goal typed_memcpy_context_vars_ensures_unmodified_ok : Valid +[wp] [Alt-Ergo] Goal typed_memcpy_context_vars_loop_invariant_ok_cpy_preserved : Valid +[wp] [Qed] Goal typed_memcpy_context_vars_loop_invariant_ok_cpy_established : Valid +[wp] [Qed] Goal typed_memcpy_context_vars_loop_invariant_ok_dst_preserved : Valid +[wp] [Qed] Goal typed_memcpy_context_vars_loop_invariant_ok_dst_established : Valid +[wp] [Alt-Ergo] Goal typed_memcpy_context_vars_loop_invariant_ok_len_preserved : Valid +[wp] [Qed] Goal typed_memcpy_context_vars_loop_invariant_ok_len_established : Valid +[wp] [Qed] Goal typed_memcpy_context_vars_loop_invariant_ok_src_preserved : Valid +[wp] [Qed] Goal typed_memcpy_context_vars_loop_invariant_ok_src_established : Valid [wp] Proved goals: 10 / 10 Qed: 7 Alt-Ergo: 3 [wp] Report 'tests/wp_usage/issue-189-bis.i.1.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success -memcpy_context_vars 7 3 (88..112) 10 100% +memcpy_context_vars 7 3 (96..120) 10 100% ------------------------------------------------------------- [wp] Warning: Memory model hypotheses for function 'memcpy_context_vars': /*@ diff --git a/src/plugins/wp/wpAnnot.ml b/src/plugins/wp/wpAnnot.ml index d09c0a11e908ba5e4720c8183cd8a78f49afff83..cffa1268c684c66beb4e9161aeb2a7aa346c7982 100644 --- a/src/plugins/wp/wpAnnot.ml +++ b/src/plugins/wp/wpAnnot.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/wpAnnot.mli b/src/plugins/wp/wpAnnot.mli index 3c152f8630b039115226775fd8ef2252b58e67d2..66cc5693d72c7781b525eab9b6c134368b081061 100644 --- a/src/plugins/wp/wpAnnot.mli +++ b/src/plugins/wp/wpAnnot.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/wpPropId.ml b/src/plugins/wp/wpPropId.ml index 082d80f18c152e17fdfc64b829d444079e502c06..7ee846ce041899d1ccc150f7655f6304006de089 100644 --- a/src/plugins/wp/wpPropId.ml +++ b/src/plugins/wp/wpPropId.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -228,10 +228,15 @@ module PropId = let varname = Datatype.undefined end) -module Names: +(* -------------------------------------------------------------------------- *) +(* --- Lagacy Naming --- *) +(* -------------------------------------------------------------------------- *) + +module LegacyNames : sig val get_prop_id_name: prop_id -> string end = struct + module NamesTbl = State_builder.Hashtbl(Datatype.String.Hashtbl)(Datatype.Int) (struct let name = "WpPropertyNames" @@ -253,7 +258,7 @@ end = struct let size = 97 end) - let base_id_prop_txt = Property.Names.get_prop_name_id + let base_id_prop_txt = Property.LegacyNames.get_prop_name_id let basename_of_prop_id p = match p.p_kind , p.p_prop with @@ -317,6 +322,90 @@ end = struct end +(* -------------------------------------------------------------------------- *) +(* --- Naming Properties --- *) +(* -------------------------------------------------------------------------- *) + +module Names: +sig + val get_prop_id_name: prop_id -> string +end = +struct + + module NamesTbl = State_builder.Hashtbl(Datatype.String.Hashtbl)(Datatype.Int) + (struct + let name = "Wp.WpPropId.Names.NamesTbl" + let dependencies = [ ] + let size = 97 + end) + + module IndexTbl = + State_builder.Hashtbl(Property.Hashtbl)(Datatype.String) + (struct + let name = "Wp.WpPropId.Names.IndexTbl" + let dependencies = + [ Ast.self; + NamesTbl.self; + Globals.Functions.self; + Annotations.code_annot_state; + Annotations.funspec_state; + Annotations.global_state ] + let size = 97 + end) + + let compute_ip ip = + let truncate = max 20 (Wp_parameters.TruncPropIdFileName.get ()) in + let basename = Property.Names.get_prop_basename ~truncate ip in + try + let speed_up_start = NamesTbl.find basename in + let n,unique_name = Extlib.make_unique_name + NamesTbl.mem ~sep:"_" ~start:speed_up_start basename + in NamesTbl.replace basename (succ n) ; + unique_name + with Not_found -> (* first time that basename is reserved *) + NamesTbl.add basename 2 ; basename + + let get_ip ip = + try IndexTbl.find ip + with Not_found -> (* first time we are asking for a name for that [ip] *) + let unique_name = compute_ip ip in + IndexTbl.add ip unique_name ; + unique_name + + let get_prop_id_base p = + match p.p_kind , p.p_prop with + | (PKTactic | PKCheck | PKProp | PKPropLoop) , p -> get_ip p + | PKEstablished , p -> get_ip p ^ "_established" + | PKPreserved , p -> get_ip p ^ "_preserved" + | PKVarDecr , p -> get_ip p ^ "_decrease" + | PKVarPos , p -> get_ip p ^ "_positive" + | PKAFctOut , p -> get_ip p ^ "_normal" + | PKAFctExit , p -> get_ip p ^ "_exit" + | PKPre(_kf,stmt,pre) , _ -> + let kf_name_of_stmt = + Kernel_function.get_name + (Kernel_function.find_englobing_kf stmt) + in Printf.sprintf "%s_call_%s" kf_name_of_stmt (get_ip pre) + + let get_prop_id_name p = + let basename = get_prop_id_base p in + match p.p_part with + | None -> basename + | Some(k,n) -> + if n < 10 then Printf.sprintf "%s_part%d" basename (succ k) else + if n < 100 then Printf.sprintf "%s_part%02d" basename (succ k) else + if n < 1000 then Printf.sprintf "%s_part%03d" basename (succ k) else + Printf.sprintf "%s_part%06d" basename (succ k) + +end + +(* -------------------------------------------------------------------------- *) +(* --- Naming Accessors --- *) +(* -------------------------------------------------------------------------- *) + +let get_legacy = LegacyNames.get_prop_id_name +(** Legacy property PO name *) + let get_propid = Names.get_prop_id_name (** Name related to a property PO *) @@ -334,38 +423,31 @@ let code_annot_names ca = match ca.annot_content with | AAssert (_, named_pred) -> "@assert"::(ident_names named_pred.pred_name) | AInvariant (_,_,named_pred) -> "@invariant"::(ident_names named_pred.pred_name) | AVariant (term, _) -> "@variant"::(ident_names term.term_name) + | AExtended(_,_,(_,name,_,_)) -> [Printf.sprintf "@%s" name] | _ -> [] (* TODO : add some more names ? *) (** This is used to give the name of the property that the user can give * to select it from the command line (-wp-prop option) *) let user_prop_names p = match p with | Property.IPPredicate (kind,_,_,idp) -> - let kind_name = - Format.asprintf "%c%a" '@' Property.pretty_predicate_kind kind - in - kind_name::idp.ip_content.pred_name - | Property.IPExtended(_,(_,name,_,_)) -> - let kind_name = Format.asprintf "%s_extension" name in [kind_name] + Format.asprintf "@@%a" Property.pretty_predicate_kind kind :: + idp.ip_content.pred_name + | Property.IPExtended(_,(_,name,_,_)) -> [ Printf.sprintf "@%s" name ] | Property.IPCodeAnnot (_,_, ca) -> code_annot_names ca | Property.IPComplete (_, _,_,lb) -> let kind_name = "@complete_behaviors" in - let name = - Format.asprintf "complete_behaviors%a" pp_names lb + let name = Format.asprintf "complete_behaviors%a" pp_names lb in kind_name::[name] | Property.IPDisjoint (_, _,_, lb) -> let kind_name = "@disjoint_behaviors" in - let name = Format.asprintf "disjoint_behaviors%a" pp_names lb + let name = Format.asprintf "disjoint_behaviors%a" pp_names lb in kind_name::[name] | Property.IPAssigns (_, _, _, l) -> - let kind_name = "@assigns" in List.fold_left - (fun acc (t,_) -> (ident_names t.it_content.term_name) @ acc) [kind_name] l - | Property.IPDecrease (_,_, Some ca,_) -> - let kind_name = "@decreases" - in kind_name::code_annot_names ca - | Property.IPDecrease _ -> - let kind_name = "@decreases" - in kind_name::[] (*TODO: add more names ? *) + (fun acc (t,_) -> (ident_names t.it_content.term_name) @ acc) + ["@assigns"] l + | Property.IPDecrease (_,_, Some ca,_) -> "@decreases"::code_annot_names ca + | Property.IPDecrease _ -> [ "@decreases" ] | Property.IPLemma (a,_,_,l,_) -> let names = "@lemma"::a::(ident_names l.pred_name) in begin diff --git a/src/plugins/wp/wpPropId.mli b/src/plugins/wp/wpPropId.mli index 31d3442008553d74e6f0fe4af81769918d44ebfd..16b42ff8adc916777fbc0510f968b4f8d83a58eb 100644 --- a/src/plugins/wp/wpPropId.mli +++ b/src/plugins/wp/wpPropId.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -68,6 +68,7 @@ val select_call_pre : stmt -> Property.t option -> prop_id -> bool val prop_id_keys : prop_id -> string list * string list (* required , hints *) val get_propid : prop_id -> string (** Unique identifier of [prop_id] *) +val get_legacy : prop_id -> string (** Unique legacy identifier of [prop_id] *) val pp_propid : Format.formatter -> prop_id -> unit (** Print unique id of [prop_id] *) type prop_kind = diff --git a/src/plugins/wp/wpRTE.ml b/src/plugins/wp/wpRTE.ml index fbf1124230b483b3af0e0f266ece63acf0cd672c..30974a1edba460c7bed8feb8f91a76105ffb5afc 100644 --- a/src/plugins/wp/wpRTE.ml +++ b/src/plugins/wp/wpRTE.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/wpRTE.mli b/src/plugins/wp/wpRTE.mli index 456c177c7013ff50f81d7134bd99c650023e711a..59fb39aed5bf2925bf55d9efa10d94a3a59ff3e0 100644 --- a/src/plugins/wp/wpRTE.mli +++ b/src/plugins/wp/wpRTE.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/wpReport.ml b/src/plugins/wp/wpReport.ml index a53ad90325a31a4002910915182b9d32ea53c4de..a14264c93f022b9360b6bdfc88902d1c4aade27a 100644 --- a/src/plugins/wp/wpReport.ml +++ b/src/plugins/wp/wpReport.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -133,21 +133,21 @@ let add_qedstat (ts:float) (s:stats) = if ts > s.time then s.time <- ts let get_field js fd = - try Json.field fd js with Not_found | Invalid_argument _ -> Json.Null + try Json.field fd js with Not_found | Invalid_argument _ -> `Null let json_assoc fields = - let fields = List.filter (fun (_,d) -> d<>Json.Null) fields in - if fields = [] then Json.Null else Json.Assoc fields + let fields = List.filter (fun (_,d) -> d<>`Null) fields in + if fields = [] then `Null else `Assoc fields let json_of_stats s = - let add fd v w = if v > 0 then (fd , Json.Int v)::w else w in + let add fd v w = if v > 0 then (fd , `Int v)::w else w in json_assoc begin add "total" s.total @@ add "valid" s.valid @@ add "failed" s.inconclusive @@ add "unknown" s.unsuccess @@ - (if s.rank >= 0 then [ "rank" , Json.Int s.rank ] else []) + (if s.rank >= 0 then [ "rank" , `Int s.rank ] else []) end let rankify_stats s js = @@ -870,11 +870,11 @@ let export_json gstat jfile = let js = try if Sys.file_exists jfile - then Json.load_file jfile else Json.Null + then Json.load_file jfile else `Null with Json.Error(file,line,msg) -> let source = Log.source ~file ~line in Wp_parameters.error ~source "Incorrect json file: %s" msg ; - Json.Null + `Null in rankify_fcstat gstat js ; Json.save_file jfile (json_of_fcstat gstat) ; diff --git a/src/plugins/wp/wpReport.mli b/src/plugins/wp/wpReport.mli index e53f9b82ae506de69fbedaae913038347beec1f4..6d3563ff35c4b3b8f93e5b5da9b30c53eff01906 100644 --- a/src/plugins/wp/wpReport.mli +++ b/src/plugins/wp/wpReport.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/wpStrategy.ml b/src/plugins/wp/wpStrategy.ml index 87be3aa4cedee46dd8866f2b313cfb7f9b29c77e..250b33fb3df18a539a465aed423a2473ceb190c1 100644 --- a/src/plugins/wp/wpStrategy.ml +++ b/src/plugins/wp/wpStrategy.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/wpStrategy.mli b/src/plugins/wp/wpStrategy.mli index 2a661aef4fa247922736f66208f5edf7be8474de..92b56332f031f2bbe583ff5a468dc2c1bbafbff8 100644 --- a/src/plugins/wp/wpStrategy.mli +++ b/src/plugins/wp/wpStrategy.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/wp_error.ml b/src/plugins/wp/wp_error.ml index fa5edf283f3db4d8839bfbc57baafbc99bb95ce7..68166fe572e3a24a89951f742c4d2a78687b0297 100644 --- a/src/plugins/wp/wp_error.ml +++ b/src/plugins/wp/wp_error.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/wp_error.mli b/src/plugins/wp/wp_error.mli index ea55d2278c0954eb4f150d29b0f28d341b4a2d8a..bddef521743852e292a6e713c851f2edebc1dfd3 100644 --- a/src/plugins/wp/wp_error.mli +++ b/src/plugins/wp/wp_error.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/wp_parameters.ml b/src/plugins/wp/wp_parameters.ml index 72ad554679b1e41f7c712bf32669984fa1cc3936..db7b65a2d0d3f2dc532fa69c090a12c3634c0657 100644 --- a/src/plugins/wp/wp_parameters.ml +++ b/src/plugins/wp/wp_parameters.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/wp_parameters.mli b/src/plugins/wp/wp_parameters.mli index 7e7ba7934173f760e02f6e98acbd73de078344ad..724fc39ae5178e2b2c0bd50017e97b01e84adf47 100644 --- a/src/plugins/wp/wp_parameters.mli +++ b/src/plugins/wp/wp_parameters.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/wpo.ml b/src/plugins/wp/wpo.ml index d2acb4eae48a582a3f56875724499bcd140a8938..8a20407e53338db5485ec741ba9092b980ec6bbe 100644 --- a/src/plugins/wp/wpo.ml +++ b/src/plugins/wp/wpo.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -380,6 +380,7 @@ type formula = type po = t and t = { po_gid : string ; (* goal identifier *) + po_leg : string ; (* legacy goal identifier *) po_sid : string ; (* goal short identifier (without model) *) po_name : string ; (* goal informal name *) po_idx : index ; (* goal index *) @@ -453,8 +454,9 @@ module S = [{ po_idx = Function(List.hd Kernel_function.reprs,Some "default") ; po_pid = List.hd WpPropId.PropId.reprs; - po_sid = "xxx"; - po_gid = "xxx"; + po_sid = ""; + po_gid = ""; + po_leg = ""; po_model = Model.repr ; po_name = "dummy"; po_formula = GoalAnnot VC_Annot.repr ; diff --git a/src/plugins/wp/wpo.mli b/src/plugins/wp/wpo.mli index ce76b5133022ebd1cfb5f1cf370c67d22b6c290b..9413c844b02e32eb94e06c950d0af43196378001 100644 --- a/src/plugins/wp/wpo.mli +++ b/src/plugins/wp/wpo.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -116,6 +116,7 @@ type formula = type po = t and t = { po_gid : string ; (** goal identifier *) + po_leg : string ; (** legacy goal identifier *) po_sid : string ; (** goal short identifier (without model) *) po_name : string ; (** goal informal name *) po_idx : index ; (** goal index *) diff --git a/src/plugins/wp/wprop.ml b/src/plugins/wp/wprop.ml index 7e4e7d74c1f34e2cd7e6319268a659a19b160247..f7a56c2f027923c73f28ddcd101c26d4b5e49361 100644 --- a/src/plugins/wp/wprop.ml +++ b/src/plugins/wp/wprop.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/wprop.mli b/src/plugins/wp/wprop.mli index 1bd4e06e160a1e910d3107f69733261518051ffc..cc7423aa5ee1fb1011cd44262363f5694c98030d 100644 --- a/src/plugins/wp/wprop.mli +++ b/src/plugins/wp/wprop.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2018 *) +(* Copyright (C) 2007-2019 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/tests/builtins/Longinit_sequencer.i b/tests/builtins/Longinit_sequencer.i index 2998da18c7d5bfa4f9e0d48f067fde4c44a6b860..4d9b50cd565baedf36d4ebb071a2915ff4527216 100644 --- a/tests/builtins/Longinit_sequencer.i +++ b/tests/builtins/Longinit_sequencer.i @@ -1,4 +1,4 @@ /* run.config* -EXECNOW: make tests/builtins/Longinit_sequencer.cmxs -OPT: -load-module tests/builtins/Longinit_sequencer.cmxs -eva-show-progress -res-file @PTEST_RESULT@ +EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs +OPT: -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs -eva-show-progress -res-file @PTEST_RESULT@ */ diff --git a/tests/builtins/alloc.c b/tests/builtins/alloc.c index e03d0692c431dbab225590ee6b6876cd62e12d8c..51579426082c5843d774bd7665136ad3954eb7d1 100644 --- a/tests/builtins/alloc.c +++ b/tests/builtins/alloc.c @@ -1,7 +1,7 @@ /* run.config* GCC: - STDOPT: #"-no-val-builtins-auto" - STDOPT: #"-no-val-builtins-auto -absolute-valid-range 0x100-0x200 -main main_abs" + STDOPT: #"-eva-no-builtins-auto" + STDOPT: #"-eva-no-builtins-auto -absolute-valid-range 0x100-0x200 -main main_abs" */ #define malloc(n) Frama_C_malloc_fresh(n) diff --git a/tests/builtins/alloc_weak.c b/tests/builtins/alloc_weak.c index 97589c7d82155eee9a82780cbaccfbca4f408a6e..fc5a664baf79d874e1dec8475a57939c8d7c44b6 100644 --- a/tests/builtins/alloc_weak.c +++ b/tests/builtins/alloc_weak.c @@ -1,5 +1,5 @@ /* run.config* - STDOPT: +"-no-val-alloc-returns-null" + STDOPT: +"-eva-no-alloc-returns-null" */ #include <stdlib.h> diff --git a/tests/builtins/allocated.c b/tests/builtins/allocated.c index f408e5f6c68fe2163129e2015c452357105eeff4..5bb5091919b3bbf490fef6dc3ca2b097f3a1ddf5 100644 --- a/tests/builtins/allocated.c +++ b/tests/builtins/allocated.c @@ -1,6 +1,6 @@ /* run.config* - STDOPT: +"-slevel 1 -val-mlevel 0" - STDOPT: +"-slevel 999 -val-builtin malloc:Frama_C_malloc_fresh,__fc_vla_alloc:Frama_C_malloc_fresh,__fc_vla_free:Frama_C_vla_free" + STDOPT: +"-slevel 1 -eva-mlevel 0" + STDOPT: +"-slevel 999 -eva-builtin malloc:Frama_C_malloc_fresh,__fc_vla_alloc:Frama_C_malloc_fresh,__fc_vla_free:Frama_C_vla_free" */ #define assert_bottom(exp) if (nondet) {exp; Frama_C_show_each_unreachable();} diff --git a/tests/builtins/big_local_array.i b/tests/builtins/big_local_array.i index bfbde108e2285de8cf83d2fc6d05626b1572c203..d6e1f53181467a2ec7876261086d4a39869f7d19 100644 --- a/tests/builtins/big_local_array.i +++ b/tests/builtins/big_local_array.i @@ -1,7 +1,8 @@ /* run.config* -OPT: -val-show-progress -print -journal-disable -val -report -OPT: -load-script tests/builtins/big_local_array_script.ml -then-on prj -print -report -OPT: -val-show-progress -print -journal-disable -no-initialized-padding-locals -val +EXECNOW: make -s @PTEST_DIR@/big_local_array_script.cmxs +OPT: -eva-show-progress -print -journal-disable -eva -report +OPT: -load-module @PTEST_DIR@/big_local_array_script -then-on prj -print -report +OPT: -eva-show-progress -print -journal-disable -no-initialized-padding-locals -eva */ struct S { diff --git a/tests/builtins/calloc.c b/tests/builtins/calloc.c index 53459397c531aada9c7092d6c21c66cd5020a090..648a4b4af03809048ffa6542498385caab9ecdbc 100644 --- a/tests/builtins/calloc.c +++ b/tests/builtins/calloc.c @@ -1,9 +1,9 @@ /* run.config* - STDOPT: #"-no-val-builtins-auto -val-alloc-returns-null" - STDOPT: #"-no-val-builtins-auto -val-alloc-returns-null -val-builtin calloc:Frama_C_calloc_fresh" - STDOPT: #"-no-val-builtins-auto -val-alloc-returns-null -val-builtin calloc:Frama_C_calloc_by_stack" - STDOPT: #"-no-val-builtins-auto -no-val-alloc-returns-null -val-builtin calloc:Frama_C_calloc_fresh" - STDOPT: #"-no-val-builtins-auto -no-val-alloc-returns-null -val-builtin calloc:Frama_C_calloc_by_stack" + STDOPT: #"-eva-no-builtins-auto -eva-alloc-returns-null" + STDOPT: #"-eva-no-builtins-auto -eva-alloc-returns-null -eva-builtin calloc:Frama_C_calloc_fresh" + STDOPT: #"-eva-no-builtins-auto -eva-alloc-returns-null -eva-builtin calloc:Frama_C_calloc_by_stack" + STDOPT: #"-eva-no-builtins-auto -eva-no-alloc-returns-null -eva-builtin calloc:Frama_C_calloc_fresh" + STDOPT: #"-eva-no-builtins-auto -eva-no-alloc-returns-null -eva-builtin calloc:Frama_C_calloc_by_stack" */ #include <stdlib.h> diff --git a/tests/builtins/diff_apron b/tests/builtins/diff_apron index 215d8f1df7cece5656f8c82a14effb4a356c165a..7bad8145315eae01b8b8e80ebf71649c52f66c8d 100644 --- a/tests/builtins/diff_apron +++ b/tests/builtins/diff_apron @@ -8,27 +8,14 @@ diff tests/builtins/oracle/Longinit_sequencer.res.oracle tests/builtins/oracle_a --- > tests/builtins/result_apron/Longinit_sequencer.sav diff tests/builtins/oracle/allocated.0.res.oracle tests/builtins/oracle_apron/allocated.0.res.oracle -243c243 -< [eva] tests/builtins/allocated.c:131: Frama_C_show_each: {0; 1; 2; 3; 4} ---- -> [eva] tests/builtins/allocated.c:131: Frama_C_show_each: [0..2147483647] -250c250 -< [eva] tests/builtins/allocated.c:131: Frama_C_show_each: {0; 1; 2; 3; 4; 5} ---- -> [eva] tests/builtins/allocated.c:131: Frama_C_show_each: [0..2147483647] -257c257 -< [eva] tests/builtins/allocated.c:131: Frama_C_show_each: [0..9] ---- -> [eva] tests/builtins/allocated.c:131: Frama_C_show_each: [0..2147483647] -276c276 +260a261,263 +> [eva] tests/builtins/allocated.c:127: Call to builtin __fc_vla_alloc +> [eva:malloc] tests/builtins/allocated.c:127: +> resizing variable `__malloc_main_l127' (0..31/319) to fit 0..63/319 +273c276 < j ∈ [1..2147483647] --- -> j ∈ [1..12] -282,283c282 -< __malloc_w_main_l82[0..1] ∈ [7..2147483647] or UNINITIALIZED -< [2] ∈ [7..27] or UNINITIALIZED ---- -> __malloc_w_main_l82[0..2] ∈ [7..27] or UNINITIALIZED +> j ∈ [1..10] diff tests/builtins/oracle/memexec-malloc.res.oracle tests/builtins/oracle_apron/memexec-malloc.res.oracle 20c20,23 < [eva] tests/builtins/memexec-malloc.c:25: Reusing old results for call to f diff --git a/tests/builtins/diff_equalities b/tests/builtins/diff_equalities index c967b2a64eeb9dc9de674551e093ecd6fc57f977..dc9d2d37177c919701635b8c46f9ebd3a3e9d1ab 100644 --- a/tests/builtins/diff_equalities +++ b/tests/builtins/diff_equalities @@ -315,14 +315,10 @@ diff tests/builtins/oracle/imprecise.res.oracle tests/builtins/oracle_equalities < more than 200(300) elements to enumerate. Approximating. < [kernel] tests/builtins/imprecise.c:114: < more than 200(300) elements to enumerate. Approximating. -diff tests/builtins/oracle/linked_list.0.res.oracle tests/builtins/oracle_equalities/linked_list.0.res.oracle -421a422,423 -> [kernel] tests/builtins/linked_list.c:19: -> more than 200(536870912) elements to enumerate. Approximating. diff tests/builtins/oracle/linked_list.1.res.oracle tests/builtins/oracle_equalities/linked_list.1.res.oracle 422a423,424 > [kernel] tests/builtins/linked_list.c:19: -> more than 100(0x20000000) elements to enumerate. Approximating. +> more than 100(128) elements to enumerate. Approximating. 470a473,474 > [kernel] tests/builtins/linked_list.c:43: > more than 100(128) elements to enumerate. Approximating. diff --git a/tests/builtins/free.c b/tests/builtins/free.c index 13a1c8e783df10bfdfa11d3db157113966818b32..f6d55190835a819d9f92c5038cc9319379f1fea5 100644 --- a/tests/builtins/free.c +++ b/tests/builtins/free.c @@ -1,5 +1,5 @@ /* run.config* - STDOPT: #" -val-builtin malloc:Frama_C_malloc_fresh" + STDOPT: #" -eva-builtin malloc:Frama_C_malloc_fresh" */ #include "stdlib.h" volatile v; diff --git a/tests/builtins/from_result.c b/tests/builtins/from_result.c index 0920eadd5865be1947b0a6156f65b5ad8dc0c8bf..4c8c5dc55a2729a3ffdb66688668e56ca3ee395b 100644 --- a/tests/builtins/from_result.c +++ b/tests/builtins/from_result.c @@ -1,5 +1,5 @@ /* run.config* - OPT: @VALUECONFIG@ -no-val-builtins-auto -deps -journal-disable + OPT: @VALUECONFIG@ -eva-no-builtins-auto -deps -journal-disable */ #define malloc(n) Frama_C_malloc_fresh(n) #include "../../share/libc/stdlib.c" diff --git a/tests/builtins/gcc_zero_length_array.c b/tests/builtins/gcc_zero_length_array.c index 5995a8b76305f2cee54fd4fc2a5f224530a70fc5..49102dfcfc59a49c49990330bcf851c68f8ef0c0 100644 --- a/tests/builtins/gcc_zero_length_array.c +++ b/tests/builtins/gcc_zero_length_array.c @@ -1,5 +1,5 @@ /* run.config* - STDOPT: +"-machdep gcc_x86_32 -val-builtin malloc:Frama_C_malloc_fresh -slevel 11" + STDOPT: +"-machdep gcc_x86_32 -eva-builtin malloc:Frama_C_malloc_fresh -slevel 11" */ #include <stdlib.h> diff --git a/tests/builtins/imprecise-malloc-free.c b/tests/builtins/imprecise-malloc-free.c index 219f3c1974acc8136a2255cd3f3364088759dc5e..0e5bcc75dcb45755de57ede0ab97fbe1d0095472 100644 --- a/tests/builtins/imprecise-malloc-free.c +++ b/tests/builtins/imprecise-malloc-free.c @@ -1,5 +1,5 @@ /* run.config* - STDOPT: #" -val-mlevel 0 -no-val-alloc-returns-null" + STDOPT: #" -eva-mlevel 0 -eva-no-alloc-returns-null" */ extern int i; diff --git a/tests/builtins/linked_list.c b/tests/builtins/linked_list.c index f042689c036981f565faa80329de288978abef15..8ae291e74744e1efa73304be82e7569309ae407f 100644 --- a/tests/builtins/linked_list.c +++ b/tests/builtins/linked_list.c @@ -1,7 +1,7 @@ /* run.config* - STDOPT: #"-load-module variadic -no-val-builtins-auto" - STDOPT: #"-load-module variadic -plevel 100 -big-ints-hex 257 -no-val-builtins-auto" - STDOPT: #"-load-module variadic -slevel 12 -big-ints-hex 257 -no-val-builtins-auto" + STDOPT: #"-load-module variadic -eva-no-builtins-auto" + STDOPT: #"-load-module variadic -plevel 100 -big-ints-hex 257 -eva-no-builtins-auto" + STDOPT: #"-load-module variadic -slevel 12 -big-ints-hex 257 -eva-no-builtins-auto" */ #include "__fc_define_size_t.h" diff --git a/tests/builtins/malloc-deps.i b/tests/builtins/malloc-deps.i index 680b54f480f5ff1460c311356785c2d04e7175db..bd7c49b8400d7153322e5ebb6ca8c88b16f76122 100644 --- a/tests/builtins/malloc-deps.i +++ b/tests/builtins/malloc-deps.i @@ -1,5 +1,5 @@ /* run.config* - OPT: -val @VALUECONFIG@ -deps -calldeps -inout -slevel 5 -value-msg-key malloc + OPT: -eva @VALUECONFIG@ -deps -calldeps -inout -slevel 5 -eva-msg-key malloc */ //@ assigns \result \from \nothing; void *Frama_C_malloc_fresh(unsigned long n); diff --git a/tests/builtins/malloc-optimistic.c b/tests/builtins/malloc-optimistic.c index a6e0ff9488c99e3137dc201dd9b95eaa6b8249dc..bb1e66301f34a10a42e31ff8f1c745c6f25a35b2 100644 --- a/tests/builtins/malloc-optimistic.c +++ b/tests/builtins/malloc-optimistic.c @@ -1,5 +1,5 @@ /* run.config* - STDOPT: +"-slevel 30 -val-slevel-merge-after-loop @all -val-malloc-functions malloc -memexec-all" + STDOPT: +"-slevel 30 -eva-slevel-merge-after-loop @all -eva-malloc-functions malloc -eva-memexec" */ //@ assigns \result \from \nothing; diff --git a/tests/builtins/malloc-size-zero.c b/tests/builtins/malloc-size-zero.c index 20cb6589c4869b89619c9fedc0d272a2ae592667..4b6d9d25485ae34e6b1ee4f34428569e269764ac 100644 --- a/tests/builtins/malloc-size-zero.c +++ b/tests/builtins/malloc-size-zero.c @@ -1,6 +1,6 @@ /* run.config* - OPT: -val @VALUECONFIG@ -val-mlevel 3 - OPT: -val @VALUECONFIG@ -val-malloc-functions my_calloc + OPT: -eva @VALUECONFIG@ -eva-mlevel 3 + OPT: -eva @VALUECONFIG@ -eva-malloc-functions my_calloc */ #include <stdlib.h> diff --git a/tests/builtins/malloc.c b/tests/builtins/malloc.c index 1acf298c3dfb1b197363aabd78f970f829456250..fd550da2c4e8e918b56daefc9d2126b8b74126b1 100644 --- a/tests/builtins/malloc.c +++ b/tests/builtins/malloc.c @@ -1,5 +1,5 @@ /* run.config* - OPT: -val @VALUECONFIG@ -slevel 10 -val-mlevel 0 + OPT: -eva @VALUECONFIG@ -slevel 10 -eva-mlevel 0 */ void *Frama_C_malloc_by_stack(unsigned long i); diff --git a/tests/builtins/malloc_bug_tr.c b/tests/builtins/malloc_bug_tr.c index 9ae6b3bf2338a127c52fe162da4b9484a017308b..dd052d1448463d4f7e40640326a9baf333d95f99 100644 --- a/tests/builtins/malloc_bug_tr.c +++ b/tests/builtins/malloc_bug_tr.c @@ -1,5 +1,5 @@ /* run.config* - OPT: -val @VALUECONFIG@ + OPT: -eva @VALUECONFIG@ */ #include <stdlib.h> diff --git a/tests/builtins/malloc_individual.c b/tests/builtins/malloc_individual.c index cdf55da0704b21883567b74bf96ef2b48798e75e..e85945c2ca8273433b7e09ae1e96223a4f761067 100644 --- a/tests/builtins/malloc_individual.c +++ b/tests/builtins/malloc_individual.c @@ -1,5 +1,5 @@ /* run.config* - STDOPT: #"-no-val-builtins-auto" + STDOPT: #"-eva-no-builtins-auto" */ #define malloc(n) Frama_C_malloc_fresh(n) #include "share/libc/stdlib.c" diff --git a/tests/builtins/malloc_memexec.c b/tests/builtins/malloc_memexec.c index 401a940df49d35cecd3324017f82c7909ea7dd4d..004e113f6197bbcd78285c831de022ed7d246e7f 100644 --- a/tests/builtins/malloc_memexec.c +++ b/tests/builtins/malloc_memexec.c @@ -1,5 +1,5 @@ /* run.config* - OPT: -val @VALUECONFIG@ -memexec-all -deps -inout -val-mlevel 0 + OPT: -eva @VALUECONFIG@ -eva-memexec -deps -inout -eva-mlevel 0 */ //@ assigns \result; diff --git a/tests/builtins/malloc_multiple.c b/tests/builtins/malloc_multiple.c index 77d6b422bac90ed490882e7545ee29cd1e32de56..35e3141ad0c6badb4b13cf31d8dcf6eadf6d5e79 100644 --- a/tests/builtins/malloc_multiple.c +++ b/tests/builtins/malloc_multiple.c @@ -1,5 +1,5 @@ /* run.config* - OPT: -val @VALUECONFIG@ -slevel 50 -val-mlevel 5 + OPT: -eva @VALUECONFIG@ -slevel 50 -eva-mlevel 5 */ #include<stdlib.h> #define MAX 10 diff --git a/tests/builtins/memcpy.c b/tests/builtins/memcpy.c index a514011a7450de1dd6fc7ac0d52e847c645d7d43..8ef2b0ac8551bf4898b88a5605f518ea0efbdf50 100644 --- a/tests/builtins/memcpy.c +++ b/tests/builtins/memcpy.c @@ -1,5 +1,5 @@ /* run.config* - STDOPT: +"-calldeps -slevel-function init:2000 -value-msg-key imprecision -plevel 150 -main main_all -inout -no-deps -absolute-valid-range 100000-100001 -then -load-module report -report" + STDOPT: +"-calldeps -slevel-function init:2000 -eva-msg-key imprecision -plevel 150 -main main_all -inout -no-deps -absolute-valid-range 100000-100001 -then -load-module report -report" */ #include "string.h" diff --git a/tests/builtins/memcpy_invalid.c b/tests/builtins/memcpy_invalid.c index 0756913a120a39b40c9cb55a9d59ef364bf35642..60e26a8463bd46ea2c2c3b9a0e111fedab032d6a 100644 --- a/tests/builtins/memcpy_invalid.c +++ b/tests/builtins/memcpy_invalid.c @@ -1,5 +1,5 @@ /* run.config* - OPT: -val @VALUECONFIG@ -journal-disable -calldeps + OPT: -eva @VALUECONFIG@ -journal-disable -calldeps */ /*@ assigns \result \from min, max; diff --git a/tests/builtins/memexec-malloc.c b/tests/builtins/memexec-malloc.c index 7ad36cbd3f5a7cd58dc1f0b14e6c54572f05d024..0d3b65f3862bda04111181e35de553fe3a6a68c6 100644 --- a/tests/builtins/memexec-malloc.c +++ b/tests/builtins/memexec-malloc.c @@ -1,5 +1,5 @@ /* run.config* - STDOPT: #"-val-malloc-functions alloc,Frama_C_malloc_by_stack -val-mlevel 0" + STDOPT: #"-eva-malloc-functions alloc,Frama_C_malloc_by_stack -eva-mlevel 0" */ #define N 2000 diff --git a/tests/builtins/memset.c b/tests/builtins/memset.c index e1164acd60e511bfa93eb6ac85b01594c3bfe61c..2cbdd6386c6b0dddcd8e89164c9bc57d1e9d6e1b 100644 --- a/tests/builtins/memset.c +++ b/tests/builtins/memset.c @@ -1,5 +1,5 @@ /* run.config* - STDOPT: #"-calldeps -value-msg-key imprecision -plevel 500" +"-inout -no-deps" + STDOPT: #"-calldeps -eva-msg-key imprecision -plevel 500" +"-inout -no-deps" */ #include "string.h" diff --git a/tests/builtins/oracle/allocated.0.res.oracle b/tests/builtins/oracle/allocated.0.res.oracle index 7c583e99a0d108b55be78768c5e3ec3f8bda29fd..53996c93021c6cccab5e34b52c79a0da159e8edb 100644 --- a/tests/builtins/oracle/allocated.0.res.oracle +++ b/tests/builtins/oracle/allocated.0.res.oracle @@ -233,34 +233,31 @@ [eva] tests/builtins/allocated.c:127: Call to builtin __fc_vla_alloc [eva:malloc] tests/builtins/allocated.c:127: resizing variable `__malloc_main_l127' (0..31/95) to fit 0..63/127 -[eva] tests/builtins/allocated.c:131: Frama_C_show_each: {0; 1; 2; 3} +[eva] tests/builtins/allocated.c:131: Frama_C_show_each: [0..2147483647] [eva] tests/builtins/allocated.c:127: Call to builtin __fc_vla_free [eva:malloc] tests/builtins/allocated.c:127: strong free on bases: {__malloc_main_l127} [eva] tests/builtins/allocated.c:127: Call to builtin __fc_vla_alloc [eva:malloc] tests/builtins/allocated.c:127: resizing variable `__malloc_main_l127' (0..31/127) to fit 0..63/159 -[eva] tests/builtins/allocated.c:131: Frama_C_show_each: {0; 1; 2; 3; 4} +[eva] tests/builtins/allocated.c:131: Frama_C_show_each: [0..2147483647] [eva] tests/builtins/allocated.c:127: Call to builtin __fc_vla_free [eva:malloc] tests/builtins/allocated.c:127: strong free on bases: {__malloc_main_l127} [eva] tests/builtins/allocated.c:127: Call to builtin __fc_vla_alloc [eva:malloc] tests/builtins/allocated.c:127: resizing variable `__malloc_main_l127' (0..31/159) to fit 0..63/191 -[eva] tests/builtins/allocated.c:131: Frama_C_show_each: {0; 1; 2; 3; 4; 5} +[eva] tests/builtins/allocated.c:131: Frama_C_show_each: [0..2147483647] [eva] tests/builtins/allocated.c:127: Call to builtin __fc_vla_free [eva:malloc] tests/builtins/allocated.c:127: strong free on bases: {__malloc_main_l127} [eva] tests/builtins/allocated.c:127: Call to builtin __fc_vla_alloc [eva:malloc] tests/builtins/allocated.c:127: resizing variable `__malloc_main_l127' (0..31/191) to fit 0..63/319 -[eva] tests/builtins/allocated.c:131: Frama_C_show_each: [0..9] +[eva] tests/builtins/allocated.c:131: Frama_C_show_each: [0..2147483647] [eva] tests/builtins/allocated.c:127: Call to builtin __fc_vla_free [eva:malloc] tests/builtins/allocated.c:127: strong free on bases: {__malloc_main_l127} -[eva] tests/builtins/allocated.c:127: Call to builtin __fc_vla_alloc -[eva:malloc] tests/builtins/allocated.c:127: - resizing variable `__malloc_main_l127' (0..31/319) to fit 0..63/319 [eva] Recording results for main [eva] done for function main [eva] tests/builtins/allocated.c:27: diff --git a/tests/builtins/oracle/memcpy.res.oracle b/tests/builtins/oracle/memcpy.res.oracle index 286bbe329a045436cc10b60d93aa8aa30853ca7f..056a7d23f9316f95d9dada935a0a42ab3796252d 100644 --- a/tests/builtins/oracle/memcpy.res.oracle +++ b/tests/builtins/oracle/memcpy.res.oracle @@ -1690,6 +1690,8 @@ --- Properties of Function 'bzero' -------------------------------------------------------------------------------- +[ Extern ] Post-condition 's_initialized,initialization' + Unverifiable but considered Valid. [ Extern ] Post-condition 'zero_initialized' Unverifiable but considered Valid. [ Extern ] Assigns (file share/libc/strings.h, line 37) @@ -1705,7 +1707,7 @@ [ Extern ] Assigns nothing Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/strings.h, line 47) +[ Extern ] Froms (file share/libc/strings.h, line 48) Unverifiable but considered Valid. [ Valid ] Default behavior by Frama-C kernel. @@ -1716,7 +1718,7 @@ [ Extern ] Assigns nothing Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/strings.h, line 54) +[ Extern ] Froms (file share/libc/strings.h, line 55) Unverifiable but considered Valid. [ Valid ] Default behavior by Frama-C kernel. @@ -2133,8 +2135,8 @@ --- Status Report Summary -------------------------------------------------------------------------------- 156 Completely validated - 215 Considered valid + 216 Considered valid 29 To be validated 4 Alarms emitted - 404 Total + 405 Total -------------------------------------------------------------------------------- diff --git a/tests/builtins/oracle/strnlen.res.oracle b/tests/builtins/oracle/strnlen.res.oracle index 22a88e13e197f18907637349bb50b79f4965ee19..9cacd457242f401eae1bff00691a9f9965a1881f 100644 --- a/tests/builtins/oracle/strnlen.res.oracle +++ b/tests/builtins/oracle/strnlen.res.oracle @@ -58,7 +58,7 @@ [3] ∈ {100} [4] ∈ {101} [5] ∈ {0} - c ∈ [-2147483648..2147483646] + c ∈ [-2147483648..2147483646],0%2 r1a ∈ {3} r1b ∈ {5} r1c ∈ UNINITIALIZED diff --git a/tests/builtins/precise_memset.c b/tests/builtins/precise_memset.c index 63f25a455c28719aed17d0c7bc92942bba3c70a7..a0ef943db027bddce81923cdad2bc8e362f90f39 100644 --- a/tests/builtins/precise_memset.c +++ b/tests/builtins/precise_memset.c @@ -1,5 +1,5 @@ /* run.config* - STDOPT: #" -val -calldeps " + STDOPT: #" -eva -calldeps " */ #include "string.h" diff --git a/tests/builtins/realloc2.c b/tests/builtins/realloc2.c index 0da7c1d2a93a9e994291f3c55b394e2b775fdc49..21e2de33052fd23a1de6a6f210bfb654a2e81abf 100644 --- a/tests/builtins/realloc2.c +++ b/tests/builtins/realloc2.c @@ -1,5 +1,5 @@ /* run.config* - STDOPT: #"-val-builtin realloc:Frama_C_realloc -val-mlevel 0 -inout-callwise -inout-no-print " + STDOPT: #"-eva-builtin realloc:Frama_C_realloc -eva-mlevel 0 -inout-callwise -inout-no-print " */ #include <stdlib.h> diff --git a/tests/builtins/realloc_multiple.c b/tests/builtins/realloc_multiple.c index 37d0f9b095a143d91aead0a08b4c2a318f21d527..8657eb4bd84b3077a25b7dd0b088be5c485624e6 100644 --- a/tests/builtins/realloc_multiple.c +++ b/tests/builtins/realloc_multiple.c @@ -1,6 +1,6 @@ /* run.config* - STDOPT: +"-slevel 10 -val-builtin malloc:Frama_C_malloc_fresh,realloc:Frama_C_realloc_multiple -val-malloc-functions malloc,realloc" - STDOPT: +"-slevel 10 -val-builtin malloc:Frama_C_malloc_fresh,realloc:Frama_C_realloc_multiple -val-malloc-functions malloc,realloc -val-alloc-returns-null" + STDOPT: +"-slevel 10 -eva-builtin malloc:Frama_C_malloc_fresh,realloc:Frama_C_realloc_multiple -eva-malloc-functions malloc,realloc" + STDOPT: +"-slevel 10 -eva-builtin malloc:Frama_C_malloc_fresh,realloc:Frama_C_realloc_multiple -eva-malloc-functions malloc,realloc -eva-alloc-returns-null" */ #include <stdlib.h> #include "__fc_builtin.h" diff --git a/tests/builtins/test_config b/tests/builtins/test_config index c1f25beffbf9d65504796bd550721f5c4bcfdb59..08ed11b4566bf3ec0f00076bee9a279351f7f06e 100644 --- a/tests/builtins/test_config +++ b/tests/builtins/test_config @@ -1,2 +1,2 @@ -MACRO: VALUECONFIG -val-show-progress -no-autoload-plugins -load-module from,inout,eva,scope,variadic -value-msg-key malloc -eva-warn-key malloc:weak=feedback -no-val-alloc-returns-null -OPT: -val @VALUECONFIG@ -journal-disable -out -input -deps +MACRO: VALUECONFIG -eva-show-progress -no-autoload-plugins -load-module from,inout,eva,scope,variadic -eva-msg-key malloc -eva-warn-key malloc:weak=feedback -eva-no-alloc-returns-null +OPT: -eva @VALUECONFIG@ -journal-disable -out -input -deps diff --git a/tests/builtins/test_config_apron b/tests/builtins/test_config_apron index 0e145fb82e434536d4903947010bda4f739b9746..376825b23c64d0264068c5a6d1e310c6af6a97a0 100644 --- a/tests/builtins/test_config_apron +++ b/tests/builtins/test_config_apron @@ -1,2 +1,2 @@ -MACRO: VALUECONFIG -val-show-progress -no-autoload-plugins -load-module from,inout,eva,scope,variadic -value-msg-key malloc -value-warn-key malloc:weak=feedback -no-val-alloc-returns-null -eva-apron-oct -value-msg-key experimental-ok -OPT: -val @VALUECONFIG@ -journal-disable -out -input -deps +MACRO: VALUECONFIG -eva-show-progress -no-autoload-plugins -load-module from,inout,eva,scope,variadic -eva-msg-key malloc -eva-warn-key malloc:weak=feedback -eva-no-alloc-returns-null -eva-apron-oct -eva-msg-key experimental-ok +OPT: -eva @VALUECONFIG@ -journal-disable -out -input -deps diff --git a/tests/builtins/test_config_bitwise b/tests/builtins/test_config_bitwise index 9bc9c21dcc2cf49bc6842545bd3b6c1057988aef..a7dce705feff619ade24257304db07538dbb57bb 100644 --- a/tests/builtins/test_config_bitwise +++ b/tests/builtins/test_config_bitwise @@ -1,2 +1,2 @@ -MACRO: VALUECONFIG -val-show-progress -no-autoload-plugins -load-module from,inout,eva,scope,variadic -value-msg-key malloc -value-warn-key malloc:weak=feedback -no-val-alloc-returns-null -eva-bitwise-domain -OPT: -val @VALUECONFIG@ -journal-disable -out -input -deps +MACRO: VALUECONFIG -eva-show-progress -no-autoload-plugins -load-module from,inout,eva,scope,variadic -eva-msg-key malloc -eva-warn-key malloc:weak=feedback -eva-no-alloc-returns-null -eva-bitwise-domain +OPT: -eva @VALUECONFIG@ -journal-disable -out -input -deps diff --git a/tests/builtins/test_config_equalities b/tests/builtins/test_config_equalities index 51a438090dba09e16af3bef9c98195e85134bcc5..bdbf2638f30424ef954f1f1d3980ce0080fcda8f 100644 --- a/tests/builtins/test_config_equalities +++ b/tests/builtins/test_config_equalities @@ -1,2 +1,2 @@ -MACRO: VALUECONFIG -val-show-progress -no-autoload-plugins -load-module from,inout,eva,scope,variadic -value-msg-key malloc -value-warn-key malloc:weak=feedback -no-val-alloc-returns-null -eva-equality-domain -OPT: -val @VALUECONFIG@ -journal-disable -out -input -deps +MACRO: VALUECONFIG -eva-show-progress -no-autoload-plugins -load-module from,inout,eva,scope,variadic -eva-msg-key malloc -eva-warn-key malloc:weak=feedback -eva-no-alloc-returns-null -eva-equality-domain +OPT: -eva @VALUECONFIG@ -journal-disable -out -input -deps diff --git a/tests/builtins/test_config_gauges b/tests/builtins/test_config_gauges index 16570e0d70357b3336bb3a0a78364da447552176..49a71af4206b1ca590f23640858ace79657137e2 100644 --- a/tests/builtins/test_config_gauges +++ b/tests/builtins/test_config_gauges @@ -1,2 +1,2 @@ -MACRO: VALUECONFIG -val-show-progress -no-autoload-plugins -load-module from,inout,eva,scope,variadic -value-msg-key malloc -value-warn-key malloc:weak=feedback -no-val-alloc-returns-null -eva-gauges-domain -OPT: -val @VALUECONFIG@ -journal-disable -out -input -deps +MACRO: VALUECONFIG -eva-show-progress -no-autoload-plugins -load-module from,inout,eva,scope,variadic -eva-msg-key malloc -eva-warn-key malloc:weak=feedback -eva-no-alloc-returns-null -eva-gauges-domain +OPT: -eva @VALUECONFIG@ -journal-disable -out -input -deps diff --git a/tests/builtins/test_config_symblocs b/tests/builtins/test_config_symblocs index 7d20e769b6cdfeb15063397b98d25e32f1153748..1e778cb966369efbec9b7663111bbff65f172626 100644 --- a/tests/builtins/test_config_symblocs +++ b/tests/builtins/test_config_symblocs @@ -1,2 +1,2 @@ -MACRO: VALUECONFIG -val-show-progress -no-autoload-plugins -load-module from,inout,eva,scope,variadic -value-msg-key malloc -value-warn-key malloc:weak=feedback -no-val-alloc-returns-null -eva-symbolic-locations-domain -OPT: -val @VALUECONFIG@ -journal-disable -out -input -deps +MACRO: VALUECONFIG -eva-show-progress -no-autoload-plugins -load-module from,inout,eva,scope,variadic -eva-msg-key malloc -eva-warn-key malloc:weak=feedback -eva-no-alloc-returns-null -eva-symbolic-locations-domain +OPT: -eva @VALUECONFIG@ -journal-disable -out -input -deps diff --git a/tests/builtins/vla.c b/tests/builtins/vla.c index f4dbf4375f1884f0559de93f3be23f817f64b224..1bfefb182d06e2679293d8d33e3554699c84ebdf 100644 --- a/tests/builtins/vla.c +++ b/tests/builtins/vla.c @@ -1,5 +1,5 @@ /* run.config* - STDOPT: #"-slevel 10 -val-builtins-auto" + STDOPT: #"-slevel 10 -eva-builtins-auto" */ void f(int i) { diff --git a/tests/builtins/write-const.c b/tests/builtins/write-const.c index a7c1efba2e970f67922eddca322e98a527b698f1..1dc31cf43b1b253b132f814b145b8b902180c92b 100644 --- a/tests/builtins/write-const.c +++ b/tests/builtins/write-const.c @@ -1,5 +1,5 @@ /* run.config* - OPT: -val @VALUECONFIG@ -journal-disable -val-builtins-auto -calldeps + OPT: -eva @VALUECONFIG@ -journal-disable -eva-builtins-auto -calldeps */ // This test verifies that writing in a memory location that may be const diff --git a/tests/callgraph/function_pointer.i b/tests/callgraph/function_pointer.i index be249adbd33ce25d7fd82f7a52247bcc42cf0f7f..b28287119069e61b95d7115a89eeb8592e7e8412 100644 --- a/tests/callgraph/function_pointer.i +++ b/tests/callgraph/function_pointer.i @@ -1,10 +1,10 @@ /* run.config COMMENT: Test option -cg-function-pointers EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs - OPT: -cg-function-pointers -load-module @PTEST_DIR@/@PTEST_NAME@ - OPT: -cg-no-services -cg-function-pointers -load-module @PTEST_DIR@/@PTEST_NAME@ - OPT: -cg-no-function-pointers -load-module @PTEST_DIR@/@PTEST_NAME@ - OPT: -cg-no-services -cg-no-function-pointers -load-module @PTEST_DIR@/@PTEST_NAME@ + OPT: -cg-function-pointers -no-autoload-plugins -load-module eva,@PTEST_DIR@/@PTEST_NAME@.cmxs + OPT: -cg-no-services -cg-function-pointers -no-autoload-plugins -load-module eva,@PTEST_DIR@/@PTEST_NAME@.cmxs + OPT: -cg-no-function-pointers -no-autoload-plugins -load-module eva,@PTEST_DIR@/@PTEST_NAME@.cmxs + OPT: -cg-no-services -cg-no-function-pointers -no-autoload-plugins -load-module eva,@PTEST_DIR@/@PTEST_NAME@.cmxs */ int (*fptr)(int); diff --git a/tests/cil/mkBinOp.i b/tests/cil/mkBinOp.i index caa9dd0c396370d25700c25ca86ae605882e0348..1bab30cf83cef46281180438db232f21b9d1224b 100644 --- a/tests/cil/mkBinOp.i +++ b/tests/cil/mkBinOp.i @@ -1,6 +1,6 @@ /* run.config EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs -OPT: -load-module @PTEST_DIR@/@PTEST_NAME@ -print -constfold +OPT: -no-autoload-plugins -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs -print -constfold */ int main(void) { diff --git a/tests/constant_propagation/array_pointers.i b/tests/constant_propagation/array_pointers.i index fa39cdeed979631ffd11cb7411427d72bdcbdd85..bd9fff2b4206d45747788c218ec69966d089ffea 100644 --- a/tests/constant_propagation/array_pointers.i +++ b/tests/constant_propagation/array_pointers.i @@ -1,5 +1,5 @@ /* run.config - OPT: -val -val-show-progress -scf -val-show-progress -journal-disable + OPT: -eva -eva-show-progress -scf -eva-show-progress -journal-disable */ void *p; diff --git a/tests/constant_propagation/bts-1787-bis.i b/tests/constant_propagation/bts-1787-bis.i index 9f48943e13a316ced4630c0e77c4fc70006d2b8f..01be6cb5fcfae8827b87b2f0160aa6205edc752a 100644 --- a/tests/constant_propagation/bts-1787-bis.i +++ b/tests/constant_propagation/bts-1787-bis.i @@ -1,7 +1,7 @@ /* run.config OPT: -journal-disable -print -OPT: -journal-disable -scf -val-show-progress -OPT: -journal-disable -scf -val-show-progress -scf-allow-cast +OPT: -journal-disable -scf -eva-show-progress +OPT: -journal-disable -scf -eva-show-progress -scf-allow-cast */ typedef struct { diff --git a/tests/constant_propagation/bts-1787.i b/tests/constant_propagation/bts-1787.i index e566f14644cd2423665b4efa3dcc0413bb55b0f0..a959b09e871642616cb4360f50404efb5f207821 100644 --- a/tests/constant_propagation/bts-1787.i +++ b/tests/constant_propagation/bts-1787.i @@ -1,6 +1,6 @@ /* run.config -OPT: -journal-disable -scf -val-show-progress -scf-allow-cast -OPT: -journal-disable -scf -val-show-progress +OPT: -journal-disable -scf -eva-show-progress -scf-allow-cast +OPT: -journal-disable -scf -eva-show-progress */ typedef struct { diff --git a/tests/constant_propagation/bts117.c b/tests/constant_propagation/bts117.c index 0ff58f5b83fbf2e9520e334260c44d0ab39940be..d7cd4b19655b51245d96a82ad57d79545b7d78e4 100644 --- a/tests/constant_propagation/bts117.c +++ b/tests/constant_propagation/bts117.c @@ -1,7 +1,7 @@ /* run.config OPT: -journal-disable -print -OPT: -journal-disable -semantic-const-folding -val-show-progress -OPT: -journal-disable -sparecode-analysis -val-show-progress +OPT: -journal-disable -semantic-const-folding -eva-show-progress +OPT: -journal-disable -sparecode-analysis -eva-show-progress */ int main1 (void) { diff --git a/tests/constant_propagation/const_field_return_struct.i b/tests/constant_propagation/const_field_return_struct.i index 0f875461dd797d6d0b5c7e6756194217ff0041c1..9bf7ea6975b7a8a6c0e43519e2b6f6643473e833 100644 --- a/tests/constant_propagation/const_field_return_struct.i +++ b/tests/constant_propagation/const_field_return_struct.i @@ -1,5 +1,5 @@ /* run.config - OPT: -val -val-show-progress -scf -val-show-progress -journal-disable + OPT: -eva -eva-show-progress -scf -eva-show-progress -journal-disable */ struct S { diff --git a/tests/constant_propagation/const_propagate.c b/tests/constant_propagation/const_propagate.c index 822620e8bdd10a788a9cf6a3c7d209d534f87bbf..4e9024ceedf1a4f63efb1d15aa1f8c00bcbd7a03 100644 --- a/tests/constant_propagation/const_propagate.c +++ b/tests/constant_propagation/const_propagate.c @@ -1,6 +1,6 @@ /* run.config - OPT: -val -val-show-progress -deps -out -input -scf -val-show-progress -journal-disable - OPT: -scf -val-show-progress -cast-from-constant -semantic-const-fold add3 -main init -journal-disable + OPT: -eva -eva-show-progress -deps -out -input -scf -eva-show-progress -journal-disable + OPT: -scf -eva-show-progress -cast-from-constant -semantic-const-fold add3 -main init -journal-disable */ int x,y,z; int TAB[10]; diff --git a/tests/constant_propagation/declaration.c b/tests/constant_propagation/declaration.c index 851b0f86b3b5cf9e52f898157fc7e124fe8cab77..69495694b6976ebe6102494fd4bd557e51575776 100644 --- a/tests/constant_propagation/declaration.c +++ b/tests/constant_propagation/declaration.c @@ -1,5 +1,5 @@ /* run.config - OPT: -val -val-show-progress -then -scf -val-show-progress -then-on propagated -scf -val-show-progress + OPT: -eva -eva-show-progress -then -scf -eva-show-progress -then-on propagated -scf -eva-show-progress */ void f(int *x, int *y, void (*p)(int *x, int *y)) { diff --git a/tests/constant_propagation/declaration2.c b/tests/constant_propagation/declaration2.c index 8ad98909d073578a21ddd5679c940c7c486165b4..0c2135f988d0674654f58233887f521e7fe77fc4 100644 --- a/tests/constant_propagation/declaration2.c +++ b/tests/constant_propagation/declaration2.c @@ -1,5 +1,5 @@ /* run.config - OPT: -val -val-show-progress -scf -val-show-progress -journal-disable + OPT: -eva -eva-show-progress -scf -eva-show-progress -journal-disable */ void f(int *x) { (*x)++; } diff --git a/tests/constant_propagation/enum.i b/tests/constant_propagation/enum.i index 05c5ff78021faacf7ac856d56e82d0e5787e0b38..c36692b4ed8bf4db1691d62a71f7994022dd83ed 100644 --- a/tests/constant_propagation/enum.i +++ b/tests/constant_propagation/enum.i @@ -1,5 +1,5 @@ /* run.config -OPT: -semantic-const-folding -val-show-progress +OPT: -semantic-const-folding -eva-show-progress */ enum E { A, B, C, D }; diff --git a/tests/constant_propagation/fct_ptr.i b/tests/constant_propagation/fct_ptr.i index 83cf4fc3e62db221c44d80f1e06f8cf083f70eae..12a34d58d3c1ffbd68b23d3098ecacac627fcf85 100644 --- a/tests/constant_propagation/fct_ptr.i +++ b/tests/constant_propagation/fct_ptr.i @@ -1,5 +1,5 @@ /* run.config -OPT: -scf -val-show-progress -then-on propagated +OPT: -scf -eva-show-progress -then-on propagated */ void (*pf)(void); diff --git a/tests/constant_propagation/introduction_of_non_explicit_cast.c b/tests/constant_propagation/introduction_of_non_explicit_cast.c index e357fb07067625aef32c46cc6cae626a15c9f88d..9e95b6e88db2c472e56cd47ad852b696c28e2a8b 100644 --- a/tests/constant_propagation/introduction_of_non_explicit_cast.c +++ b/tests/constant_propagation/introduction_of_non_explicit_cast.c @@ -1,8 +1,8 @@ /* run.config - OPT: -load-script tests/constant_propagation/introduction_of_non_explicit_cast.ml -val -val-show-progress -deps -journal-disable + EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs + OPT: -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs -eva -eva-show-progress -deps -journal-disable */ - int x,y,z; int TAB[10]; struct st { int a, b ; } s1, s2; diff --git a/tests/constant_propagation/struct_field.i b/tests/constant_propagation/struct_field.i index ceb93c8ca9272e1edd4e890260c8ef01b7a6a7c4..9621fff8f016094812dbc66f87fda23243676709 100644 --- a/tests/constant_propagation/struct_field.i +++ b/tests/constant_propagation/struct_field.i @@ -1,5 +1,5 @@ /* run.config - OPT: -val -semantic-const-folding -val-show-progress -journal-disable + OPT: -eva -semantic-const-folding -eva-show-progress -journal-disable */ struct st { diff --git a/tests/crowbar/integer_bb_pretty.ml b/tests/crowbar/integer_bb_pretty.ml new file mode 100644 index 0000000000000000000000000000000000000000..2c6ec812e2968f282f1efb3e3cb19a7c45c9ef0a --- /dev/null +++ b/tests/crowbar/integer_bb_pretty.ml @@ -0,0 +1,59 @@ +open Crowbar + +let reparse v s = + let failure info = + Crowbar.fail + ("Pretty-printing '" ^ (Z.to_string v) ^ "' returns '" ^ s ^ "'" ^ info) + in + if String.length s <= 2 then failure ""; + let is_neg = s.[0] = '1' in + let is_hex = s.[1] = 'x' in + let s = String.(concat "" (split_on_char '_' s)) in + let v' = + if is_neg then begin + let chr = if is_hex then 'F' else '1' in + let module M = struct exception Found of int end in + let check i c = if i > 1 && c <> chr then raise (M.Found i) in + try String.iteri check s; Z.minus_one + with M.Found idx -> + let len, v' = + if is_hex then begin + let remains = String.sub s idx (String.length s - idx) in + let v' = Z.of_string ("0x" ^ remains) in + 4 * (String.length remains), v' + end else begin + let remains = String.sub s idx (String.length s - idx) in + let v' = Z.of_string ("0b" ^ remains) in + String.length remains, v' + end + in + let m = Z.(one lsl len) in + let m = Z.pred m in + let v' = Z.logxor m v' in + Z.pred (Z.lognot (Z.pred v')) + end else + Z.of_string s + in + if not (Z.equal v v') then + failure (" reparsed as '" ^ Z.format "%b" v' ^ "' (" ^ Z.to_string v' ^ ")") + +let test z is_hex nbits has_sep = + guard (nbits >= 0 && nbits <= 1024); + let sep = if has_sep then Some "_" else None in + let pp z = if is_hex then + Integer.pp_hex ~nbits ?sep z + else + Integer.pp_bin ~nbits ?sep z + in + let s = Format.asprintf "%a" pp z in + reparse z s + +let zarith = + let open Crowbar in + fix (fun zarith -> + choose + [ map [int64] Z.of_int64; + map [zarith; int64] (fun z i -> Z.((z lsl 64) + of_int64 i)) ]) + +let () = Crowbar.add_test ~name:"pp_bin_hex" + [ zarith; Crowbar.bool; Crowbar.int; Crowbar.bool ] test diff --git a/tests/fc_script/for-find-fun.c b/tests/fc_script/for-find-fun.c new file mode 100644 index 0000000000000000000000000000000000000000..c8c3a67560fb5a5f321117bedacb256b8884decb --- /dev/null +++ b/tests/fc_script/for-find-fun.c @@ -0,0 +1,17 @@ +/* run.config + DONTRUN: test run by main.c +*/ + +int +main2 +(char *c, int i); + +struct s { + char c; +}; + +struct s **main3( + struct s *p1, struct s s2 + ) { + +} diff --git a/tests/fc_script/for-find-fun2.c b/tests/fc_script/for-find-fun2.c new file mode 100644 index 0000000000000000000000000000000000000000..3cef634fc5b462b9892fc5f66510594e8a81ed58 --- /dev/null +++ b/tests/fc_script/for-find-fun2.c @@ -0,0 +1,26 @@ +/* run.config + DONTRUN: test run by main.c +*/ + +struct s ** main3( + struct s *p1, struct s s2 + ) ; + +// tests to avoid false positives +void f() { + int (*false_positive)(); +} + +void g() { + int i = 0; + false_positive(i); +} + +void h() { + (void)false_positive((int)42); +} + +//void false_positive(); + + void false_positive(); // this is a "voluntary" false negative (space before): + // it allows us to avoid false positives more easily diff --git a/tests/fc_script/main.c b/tests/fc_script/main.c index 34b9b7c79ac1e3cbca1c44cd4696cbee7d47618a..176bf1c3e843ae5c5e9967c7c2607ec6006562d3 100644 --- a/tests/fc_script/main.c +++ b/tests/fc_script/main.c @@ -3,6 +3,9 @@ EXECNOW: LOG GNUmakefile LOG make_template.res LOG make_template.err bin/frama-c-script make-template @PTEST_DIR@/result < @PTEST_DIR@/make_template.input > @PTEST_DIR@/result/make_template.res 2> @PTEST_DIR@/result/make_template.err EXECNOW: LOG list_files.res LOG list_files.err bin/frama-c-script list-files @PTEST_DIR@/list_files.json > @PTEST_DIR@/result/list_files.res 2> @PTEST_DIR@/result/list_files.err EXECNOW: LOG flamegraph.html LOG flamegraph.res LOG flamegraph.err NOGUI=1 bin/frama-c-script flamegraph @PTEST_DIR@/flamegraph.txt @PTEST_DIR@/result > @PTEST_DIR@/result/flamegraph.res 2> @PTEST_DIR@/result/flamegraph.err && rm -f @PTEST_DIR@/result/flamegraph.svg + EXECNOW: LOG find_fun1.res LOG find_fun1.err bin/frama-c-script find-fun main2 @PTEST_DIR@ > @PTEST_DIR@/result/find_fun1.res 2> @PTEST_DIR@/result/find_fun1.err + EXECNOW: LOG find_fun2.res LOG find_fun2.err bin/frama-c-script find-fun main3 @PTEST_DIR@ > @PTEST_DIR@/result/find_fun2.res 2> @PTEST_DIR@/result/find_fun2.err + EXECNOW: LOG find_fun3.res LOG find_fun3.err bin/frama-c-script find-fun false_positive @PTEST_DIR@ > @PTEST_DIR@/result/find_fun3.res 2> @PTEST_DIR@/result/find_fun3.err */ void main() { diff --git a/tests/fc_script/oracle/find_fun1.err b/tests/fc_script/oracle/find_fun1.err new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/tests/fc_script/oracle/find_fun1.res b/tests/fc_script/oracle/find_fun1.res new file mode 100644 index 0000000000000000000000000000000000000000..a846b6beb54f9a0245507e35df7567e3d48e9245 --- /dev/null +++ b/tests/fc_script/oracle/find_fun1.res @@ -0,0 +1,5 @@ +Looking for 'main2' inside 5 file(s)... +Possible declarations for function 'main2' in the following file(s): + tests/fc_script/for-find-fun.c +Possible definitions for function 'main2' in the following file(s): + tests/fc_script/main2.c diff --git a/tests/fc_script/oracle/find_fun2.err b/tests/fc_script/oracle/find_fun2.err new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/tests/fc_script/oracle/find_fun2.res b/tests/fc_script/oracle/find_fun2.res new file mode 100644 index 0000000000000000000000000000000000000000..273cc015b4ef5f5ef497533511f083c50c2c63fe --- /dev/null +++ b/tests/fc_script/oracle/find_fun2.res @@ -0,0 +1,5 @@ +Looking for 'main3' inside 5 file(s)... +Possible declarations for function 'main3' in the following file(s): + tests/fc_script/for-find-fun2.c +Possible definitions for function 'main3' in the following file(s): + tests/fc_script/for-find-fun.c diff --git a/tests/fc_script/oracle/find_fun3.err b/tests/fc_script/oracle/find_fun3.err new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/tests/fc_script/oracle/find_fun3.res b/tests/fc_script/oracle/find_fun3.res new file mode 100644 index 0000000000000000000000000000000000000000..a7059bd1c963ad064b030a17ef9782873c397b0d --- /dev/null +++ b/tests/fc_script/oracle/find_fun3.res @@ -0,0 +1,2 @@ +Looking for 'false_positive' inside 5 file(s)... +No declaration/definition found for function 'false_positive' diff --git a/tests/float/absorb.c b/tests/float/absorb.c index e150f9ced68f1bfa83c8357576dec94edc4bd4cf..ca3e781a5f7aa215aeca70d81e08c798a4d5cecf 100644 --- a/tests/float/absorb.c +++ b/tests/float/absorb.c @@ -1,7 +1,7 @@ /* run.config COMMENT: run.config is intentionally not-* EXECNOW: BIN absorb.sav LOG absorb_sav.res LOG absorb_sav.err FRAMAC_PLUGIN=tests/.empty @frama-c@ -journal-disable -save @PTEST_DIR@/result/absorb.sav @PTEST_FILE@ > @PTEST_DIR@/result/absorb_sav.res 2> @PTEST_DIR@/result/absorb_sav.err - EXECNOW: BIN absorb.sav2 LOG absorb_sav2.res LOG absorb_sav2.err @frama-c@ -load @PTEST_DIR@/result/absorb.sav -val @VALUECONFIG@ -journal-disable -float-hex -save @PTEST_DIR@/result/absorb.sav2 > @PTEST_DIR@/result/absorb_sav2.res 2> @PTEST_DIR@/result/absorb_sav2.err + EXECNOW: BIN absorb.sav2 LOG absorb_sav2.res LOG absorb_sav2.err @frama-c@ -load @PTEST_DIR@/result/absorb.sav -eva @VALUECONFIG@ -journal-disable -float-hex -save @PTEST_DIR@/result/absorb.sav2 > @PTEST_DIR@/result/absorb_sav2.res 2> @PTEST_DIR@/result/absorb_sav2.err OPT: -load @PTEST_DIR@/result/absorb.sav2 -deps -out -input */ /* run.config* diff --git a/tests/float/builtins.c b/tests/float/builtins.c index a4b0155beca3dafaf7913d8f1336d4871e124396..cd0301afa3e51432ff7ecdfa071d1f8f7c96df56 100644 --- a/tests/float/builtins.c +++ b/tests/float/builtins.c @@ -1,5 +1,5 @@ /* run.config* - OPT: -val @VALUECONFIG@ -then -main main_log_exp + OPT: -eva @VALUECONFIG@ -then -main main_log_exp */ #include <__fc_builtin.h> diff --git a/tests/float/cond.c b/tests/float/cond.c index 8d5e88d186bdd34da863126f3ec899f9972d8a78..10ff9866c0400d46f60f48043dbd39e128ab0e40 100644 --- a/tests/float/cond.c +++ b/tests/float/cond.c @@ -1,5 +1,5 @@ /* run.config* - OPT: -val @VALUECONFIG@ -journal-disable -float-hex + OPT: -eva @VALUECONFIG@ -journal-disable -float-hex */ #include "__fc_builtin.h" diff --git a/tests/float/fval_test.i b/tests/float/fval_test.i index eda0e94bd4445ca7c827ff7600569fe3d5518e1d..cabb28768924493f9964d6329934d0356b2e5143 100644 --- a/tests/float/fval_test.i +++ b/tests/float/fval_test.i @@ -1,5 +1,6 @@ /* run.config - OPT: -load-script tests/float/fval_test.ml + EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs + OPT: -load-module @PTEST_DIR@/@PTEST_NAME@ */ /* run.config* DONTRUN: diff --git a/tests/float/init_float.i b/tests/float/init_float.i index 248fc3c778b6de93411a5f046ae19b79a4118286..9812272d6da6acebefa819ebe849ad279f9d048f 100644 --- a/tests/float/init_float.i +++ b/tests/float/init_float.i @@ -1,5 +1,5 @@ /* run.config* - OPT: -val @VALUECONFIG@ -journal-disable -float-normal -lib-entry + OPT: -eva @VALUECONFIG@ -journal-disable -float-normal -lib-entry */ typedef struct S { float y; } S; diff --git a/tests/float/math_builtins.c b/tests/float/math_builtins.c index 7311cad66c2ff16af222db9b8c84b707a2799aa1..db8f6293442022436d2382973a30e836316f93dd 100644 --- a/tests/float/math_builtins.c +++ b/tests/float/math_builtins.c @@ -1,7 +1,7 @@ /* run.config* FILTER: sed -e '/f32__/ s/\([0-9][.][0-9]\{6\}\)[0-9]\{10\}/\1/g' COMMENT: 'sed' filter is a temporary workaround due to libc imprecisions - STDOPT: +"-float-normal -val -eva-no-memexec -val-builtin sqrt:Frama_C_sqrt,exp:Frama_C_exp,log:Frama_C_log,log10:Frama_C_log10,cos:Frama_C_cos,sin:Frama_C_sin,atan2:Frama_C_atan2,pow:Frama_C_pow,fmod:Frama_C_fmod,sqrtf:Frama_C_sqrtf,expf:Frama_C_expf,logf:Frama_C_logf,log10f:Frama_C_log10f,powf:Frama_C_powf,floor:Frama_C_floor,ceil:Frama_C_ceil,trunc:Frama_C_trunc,round:Frama_C_round,floorf:Frama_C_floorf,ceilf:Frama_C_ceilf,truncf:Frama_C_truncf,roundf:Frama_C_roundf -then -print" + STDOPT: +"-float-normal -eva -eva-no-memexec -eva-builtin sqrt:Frama_C_sqrt,exp:Frama_C_exp,log:Frama_C_log,log10:Frama_C_log10,cos:Frama_C_cos,sin:Frama_C_sin,atan2:Frama_C_atan2,pow:Frama_C_pow,fmod:Frama_C_fmod,sqrtf:Frama_C_sqrtf,expf:Frama_C_expf,logf:Frama_C_logf,log10f:Frama_C_log10f,powf:Frama_C_powf,floor:Frama_C_floor,ceil:Frama_C_ceil,trunc:Frama_C_trunc,round:Frama_C_round,floorf:Frama_C_floorf,ceilf:Frama_C_ceilf,truncf:Frama_C_truncf,roundf:Frama_C_roundf -then -print" */ #include <math.h> diff --git a/tests/float/nonlin.c b/tests/float/nonlin.c index 7cea47cda606e8aaa9bd0d7c1e1df8d7860bc72c..47d55d67984bbacb51405f8c641d2c34ce5e6b35 100644 --- a/tests/float/nonlin.c +++ b/tests/float/nonlin.c @@ -1,8 +1,8 @@ /* run.config* - OPT: -value-msg-key nonlin -slevel 30 -val @VALUECONFIG@ -cpp-extra-args="-DFLOAT=double" -float-hex -journal-disable -val-subdivide-non-linear 0 - OPT: -value-msg-key nonlin -slevel 30 -val @VALUECONFIG@ -cpp-extra-args="-DFLOAT=double" -float-hex -journal-disable -val-subdivide-non-linear 10 - OPT: -value-msg-key nonlin -slevel 30 -val @VALUECONFIG@ -cpp-extra-args="-DFLOAT=float" -float-hex -journal-disable -val-subdivide-non-linear 0 - OPT: -value-msg-key nonlin -slevel 30 -val @VALUECONFIG@ -cpp-extra-args="-DFLOAT=float" -float-hex -journal-disable -val-subdivide-non-linear 10 + OPT: -eva-msg-key nonlin -slevel 30 -eva @VALUECONFIG@ -cpp-extra-args="-DFLOAT=double" -float-hex -journal-disable -eva-subdivide-non-linear 0 + OPT: -eva-msg-key nonlin -slevel 30 -eva @VALUECONFIG@ -cpp-extra-args="-DFLOAT=double" -float-hex -journal-disable -eva-subdivide-non-linear 10 + OPT: -eva-msg-key nonlin -slevel 30 -eva @VALUECONFIG@ -cpp-extra-args="-DFLOAT=float" -float-hex -journal-disable -eva-subdivide-non-linear 0 + OPT: -eva-msg-key nonlin -slevel 30 -eva @VALUECONFIG@ -cpp-extra-args="-DFLOAT=float" -float-hex -journal-disable -eva-subdivide-non-linear 10 */ #include "__fc_builtin.h" diff --git a/tests/float/precise_cos_sin.c b/tests/float/precise_cos_sin.c index 8597be0695e66d411f0ede1da7fe84c29975af6a..d7f40d0632ff0fb6bcbd7637885260b7dfdf842c 100644 --- a/tests/float/precise_cos_sin.c +++ b/tests/float/precise_cos_sin.c @@ -1,5 +1,5 @@ /* run.config* - OPT: -val @VALUECONFIG@ -slevel 1000 -journal-disable -float-normal + OPT: -eva @VALUECONFIG@ -slevel 1000 -journal-disable -float-normal */ #include <__fc_builtin.h> diff --git a/tests/float/round10d.i b/tests/float/round10d.i index b681bd18b637672b98d39cb1bc104fa74ab43a03..b167a89914ec4c85fe3157c8f4ea75c2c44837bb 100644 --- a/tests/float/round10d.i +++ b/tests/float/round10d.i @@ -1,5 +1,5 @@ /* run.config* - OPT: -val @VALUECONFIG@ -float-normal -journal-disable -no-results + OPT: -eva @VALUECONFIG@ -float-normal -journal-disable -no-results */ int main() diff --git a/tests/float/some.c b/tests/float/some.c index 97190bb800f51ab983f5fe684b5308c4bf221a0d..e8b66bfbd66016d1b7d601951a4156400f417ca7 100644 --- a/tests/float/some.c +++ b/tests/float/some.c @@ -1,6 +1,6 @@ /* run.config* - OPT: -val-show-slevel 10 -slevel 100 -val @VALUECONFIG@ -cpp-extra-args="-DFLOAT=double -DN=55" -float-normal -journal-disable -no-results - OPT: -slevel 100 -val @VALUECONFIG@ -cpp-extra-args="-DFLOAT=float -DN=26" -float-normal -journal-disable -no-results + OPT: -eva-show-slevel 10 -slevel 100 -eva @VALUECONFIG@ -cpp-extra-args="-DFLOAT=double -DN=55" -float-normal -journal-disable -no-results + OPT: -slevel 100 -eva @VALUECONFIG@ -cpp-extra-args="-DFLOAT=float -DN=26" -float-normal -journal-disable -no-results */ FLOAT t[N] = { 1. } ; diff --git a/tests/idct/diff_apron b/tests/idct/diff_apron index 07ec6615cb68f450e80398c2a18f2b35734090c3..e3b1cc3498b58bc966268b7fde9c6f975955f128 100644 --- a/tests/idct/diff_apron +++ b/tests/idct/diff_apron @@ -1,5 +1,9 @@ diff tests/idct/oracle/ieee_1180_1990.res.oracle tests/idct/oracle_apron/ieee_1180_1990.res.oracle -143,150c143,158 +147,158c147,170 +< [eva] tests/idct/ieee_1180_1990.c:85: +< Reusing old results for call to IEEE_1180_1990_rand +< [eva] tests/idct/ieee_1180_1990.c:85: +< Reusing old results for call to IEEE_1180_1990_rand < [eva] tests/idct/ieee_1180_1990.c:85: < Reusing old results for call to IEEE_1180_1990_rand < [eva] tests/idct/ieee_1180_1990.c:85: @@ -25,7 +29,15 @@ diff tests/idct/oracle/ieee_1180_1990.res.oracle tests/idct/oracle_apron/ieee_11 > Called from tests/idct/ieee_1180_1990.c:85. > [eva] Recording results for IEEE_1180_1990_rand > [eva] Done for function IEEE_1180_1990_rand -386,404c394,427 +> [eva] computing for function IEEE_1180_1990_rand <- IEEE_1180_1990_mkbk <- main. +> Called from tests/idct/ieee_1180_1990.c:85. +> [eva] Recording results for IEEE_1180_1990_rand +> [eva] Done for function IEEE_1180_1990_rand +> [eva] computing for function IEEE_1180_1990_rand <- IEEE_1180_1990_mkbk <- main. +> Called from tests/idct/ieee_1180_1990.c:85. +> [eva] Recording results for IEEE_1180_1990_rand +> [eva] Done for function IEEE_1180_1990_rand +412,430c424,461 < [eva] tests/idct/ieee_1180_1990.c:85: < Reusing old results for call to IEEE_1180_1990_rand < [eva] tests/idct/ieee_1180_1990.c:85: @@ -66,6 +78,10 @@ diff tests/idct/oracle/ieee_1180_1990.res.oracle tests/idct/oracle_apron/ieee_11 > Called from tests/idct/ieee_1180_1990.c:85. > [eva] Recording results for IEEE_1180_1990_rand > [eva] Done for function IEEE_1180_1990_rand +> [eva] computing for function IEEE_1180_1990_rand <- IEEE_1180_1990_mkbk <- main. +> Called from tests/idct/ieee_1180_1990.c:85. +> [eva] Recording results for IEEE_1180_1990_rand +> [eva] Done for function IEEE_1180_1990_rand > [eva] Recording results for IEEE_1180_1990_mkbk > [eva] Done for function IEEE_1180_1990_mkbk > [eva] computing for function IEEE_1180_1990_dctf <- main. @@ -80,7 +96,7 @@ diff tests/idct/oracle/ieee_1180_1990.res.oracle tests/idct/oracle_apron/ieee_11 > Called from tests/idct/ieee_1180_1990.c:260. > [eva] Recording results for idct > [eva] Done for function idct -427,431c450,461 +455,459c486,497 < [eva] tests/idct/ieee_1180_1990.c:282: < Reusing old results for call to IEEE_1180_1990_dctf < [eva] tests/idct/ieee_1180_1990.c:283: @@ -99,7 +115,7 @@ diff tests/idct/oracle/ieee_1180_1990.res.oracle tests/idct/oracle_apron/ieee_11 > Called from tests/idct/ieee_1180_1990.c:284. > [eva] Recording results for idct > [eva] Done for function idct -458,476c488,521 +486,504c524,561 < [eva] tests/idct/ieee_1180_1990.c:85: < Reusing old results for call to IEEE_1180_1990_rand < [eva] tests/idct/ieee_1180_1990.c:85: @@ -140,6 +156,10 @@ diff tests/idct/oracle/ieee_1180_1990.res.oracle tests/idct/oracle_apron/ieee_11 > Called from tests/idct/ieee_1180_1990.c:85. > [eva] Recording results for IEEE_1180_1990_rand > [eva] Done for function IEEE_1180_1990_rand +> [eva] computing for function IEEE_1180_1990_rand <- IEEE_1180_1990_mkbk <- main. +> Called from tests/idct/ieee_1180_1990.c:85. +> [eva] Recording results for IEEE_1180_1990_rand +> [eva] Done for function IEEE_1180_1990_rand > [eva] Recording results for IEEE_1180_1990_mkbk > [eva] Done for function IEEE_1180_1990_mkbk > [eva] computing for function IEEE_1180_1990_dctf <- main. @@ -154,7 +174,7 @@ diff tests/idct/oracle/ieee_1180_1990.res.oracle tests/idct/oracle_apron/ieee_11 > Called from tests/idct/ieee_1180_1990.c:306. > [eva] Recording results for idct > [eva] Done for function idct -499,503c544,555 +529,533c586,597 < [eva] tests/idct/ieee_1180_1990.c:328: < Reusing old results for call to IEEE_1180_1990_dctf < [eva] tests/idct/ieee_1180_1990.c:329: @@ -173,7 +193,7 @@ diff tests/idct/oracle/ieee_1180_1990.res.oracle tests/idct/oracle_apron/ieee_11 > Called from tests/idct/ieee_1180_1990.c:330. > [eva] Recording results for idct > [eva] Done for function idct -527,540c579,602 +557,570c621,1920 < [eva] tests/idct/ieee_1180_1990.c:85: < Reusing old results for call to IEEE_1180_1990_rand < [eva] tests/idct/ieee_1180_1990.c:85: @@ -213,7 +233,36 @@ diff tests/idct/oracle/ieee_1180_1990.res.oracle tests/idct/oracle_apron/ieee_11 > Called from tests/idct/ieee_1180_1990.c:85. > [eva] Recording results for IEEE_1180_1990_rand > [eva] Done for function IEEE_1180_1990_rand -562a625,812 +> [eva] computing for function IEEE_1180_1990_rand <- IEEE_1180_1990_mkbk <- main. +> Called from tests/idct/ieee_1180_1990.c:85. +> [eva] Recording results for IEEE_1180_1990_rand +> [eva] Done for function IEEE_1180_1990_rand +> [eva] Recording results for IEEE_1180_1990_mkbk +> [eva] Done for function IEEE_1180_1990_mkbk +> [eva] computing for function IEEE_1180_1990_dctf <- main. +> Called from tests/idct/ieee_1180_1990.c:212. +> [eva] tests/idct/ieee_1180_1990.c:100: +> Call to builtin Frama_C_sqrt for function sqrt +> [eva] tests/idct/ieee_1180_1990.c:101: +> Call to builtin Frama_C_cos for function cos +> [eva] tests/idct/ieee_1180_1990.c:101: +> Call to builtin Frama_C_cos for function cos +> [eva] tests/idct/ieee_1180_1990.c:101: +> Call to builtin Frama_C_cos for function cos +> [eva] tests/idct/ieee_1180_1990.c:101: +> Call to builtin Frama_C_cos for function cos +> [eva] tests/idct/ieee_1180_1990.c:100: +> Call to builtin Frama_C_sqrt for function sqrt +> [eva] tests/idct/ieee_1180_1990.c:101: +> Call to builtin Frama_C_cos for function cos +> [eva] tests/idct/ieee_1180_1990.c:100: +> Call to builtin Frama_C_sqrt for function sqrt +> [eva] tests/idct/ieee_1180_1990.c:101: +> Call to builtin Frama_C_cos for function cos +> [eva] tests/idct/ieee_1180_1990.c:100: +> Call to builtin Frama_C_sqrt for function sqrt +> [eva] tests/idct/ieee_1180_1990.c:101: +> Call to builtin Frama_C_cos for function cos > [eva] Recording results for IEEE_1180_1990_dctf > [eva] Done for function IEEE_1180_1990_dctf > [eva] computing for function IEEE_1180_1990_idctf <- main. @@ -236,6 +285,10 @@ diff tests/idct/oracle/ieee_1180_1990.res.oracle tests/idct/oracle_apron/ieee_11 > Call to builtin Frama_C_sqrt for function sqrt > [eva] tests/idct/ieee_1180_1990.c:141: > Call to builtin Frama_C_cos for function cos +> [eva] tests/idct/ieee_1180_1990.c:140: +> Call to builtin Frama_C_sqrt for function sqrt +> [eva] tests/idct/ieee_1180_1990.c:141: +> Call to builtin Frama_C_cos for function cos > [eva] Recording results for IEEE_1180_1990_idctf > [eva] Done for function IEEE_1180_1990_idctf > [eva] computing for function idct <- main. @@ -280,6 +333,10 @@ diff tests/idct/oracle/ieee_1180_1990.res.oracle tests/idct/oracle_apron/ieee_11 > Called from tests/idct/ieee_1180_1990.c:85. > [eva] Recording results for IEEE_1180_1990_rand > [eva] Done for function IEEE_1180_1990_rand +> [eva] computing for function IEEE_1180_1990_rand <- IEEE_1180_1990_mkbk <- main. +> Called from tests/idct/ieee_1180_1990.c:85. +> [eva] Recording results for IEEE_1180_1990_rand +> [eva] Done for function IEEE_1180_1990_rand > [eva] Recording results for IEEE_1180_1990_mkbk > [eva] Done for function IEEE_1180_1990_mkbk > [eva] computing for function IEEE_1180_1990_dctf <- main. @@ -332,6 +389,10 @@ diff tests/idct/oracle/ieee_1180_1990.res.oracle tests/idct/oracle_apron/ieee_11 > Called from tests/idct/ieee_1180_1990.c:85. > [eva] Recording results for IEEE_1180_1990_rand > [eva] Done for function IEEE_1180_1990_rand +> [eva] computing for function IEEE_1180_1990_rand <- IEEE_1180_1990_mkbk <- main. +> Called from tests/idct/ieee_1180_1990.c:85. +> [eva] Recording results for IEEE_1180_1990_rand +> [eva] Done for function IEEE_1180_1990_rand > [eva] Recording results for IEEE_1180_1990_mkbk > [eva] Done for function IEEE_1180_1990_mkbk > [eva] computing for function IEEE_1180_1990_dctf <- main. @@ -384,6 +445,10 @@ diff tests/idct/oracle/ieee_1180_1990.res.oracle tests/idct/oracle_apron/ieee_11 > Called from tests/idct/ieee_1180_1990.c:85. > [eva] Recording results for IEEE_1180_1990_rand > [eva] Done for function IEEE_1180_1990_rand +> [eva] computing for function IEEE_1180_1990_rand <- IEEE_1180_1990_mkbk <- main. +> Called from tests/idct/ieee_1180_1990.c:85. +> [eva] Recording results for IEEE_1180_1990_rand +> [eva] Done for function IEEE_1180_1990_rand > [eva] Recording results for IEEE_1180_1990_mkbk > [eva] Done for function IEEE_1180_1990_mkbk > [eva] computing for function IEEE_1180_1990_dctf <- main. @@ -402,7 +467,40 @@ diff tests/idct/oracle/ieee_1180_1990.res.oracle tests/idct/oracle_apron/ieee_11 > Call to builtin Frama_C_sqrt for function sqrt > [eva] tests/idct/ieee_1180_1990.c:101: > Call to builtin Frama_C_cos for function cos -588a839,1026 +> [eva] tests/idct/ieee_1180_1990.c:100: +> Call to builtin Frama_C_sqrt for function sqrt +> [eva] tests/idct/ieee_1180_1990.c:101: +> Call to builtin Frama_C_cos for function cos +> [eva] tests/idct/ieee_1180_1990.c:100: +> Call to builtin Frama_C_sqrt for function sqrt +> [eva] tests/idct/ieee_1180_1990.c:101: +> Call to builtin Frama_C_cos for function cos +> [eva] Recording results for IEEE_1180_1990_dctf +> [eva] Done for function IEEE_1180_1990_dctf +> [eva] computing for function IEEE_1180_1990_idctf <- main. +> Called from tests/idct/ieee_1180_1990.c:213. +> [eva] tests/idct/ieee_1180_1990.c:140: +> Call to builtin Frama_C_sqrt for function sqrt +> [eva] tests/idct/ieee_1180_1990.c:141: +> Call to builtin Frama_C_cos for function cos +> [eva] tests/idct/ieee_1180_1990.c:141: +> Call to builtin Frama_C_cos for function cos +> [eva] tests/idct/ieee_1180_1990.c:141: +> Call to builtin Frama_C_cos for function cos +> [eva] tests/idct/ieee_1180_1990.c:141: +> Call to builtin Frama_C_cos for function cos +> [eva] tests/idct/ieee_1180_1990.c:140: +> Call to builtin Frama_C_sqrt for function sqrt +> [eva] tests/idct/ieee_1180_1990.c:141: +> Call to builtin Frama_C_cos for function cos +> [eva] tests/idct/ieee_1180_1990.c:140: +> Call to builtin Frama_C_sqrt for function sqrt +> [eva] tests/idct/ieee_1180_1990.c:141: +> Call to builtin Frama_C_cos for function cos +> [eva] tests/idct/ieee_1180_1990.c:140: +> Call to builtin Frama_C_sqrt for function sqrt +> [eva] tests/idct/ieee_1180_1990.c:141: +> Call to builtin Frama_C_cos for function cos > [eva] Recording results for IEEE_1180_1990_idctf > [eva] Done for function IEEE_1180_1990_idctf > [eva] computing for function idct <- main. @@ -447,6 +545,10 @@ diff tests/idct/oracle/ieee_1180_1990.res.oracle tests/idct/oracle_apron/ieee_11 > Called from tests/idct/ieee_1180_1990.c:85. > [eva] Recording results for IEEE_1180_1990_rand > [eva] Done for function IEEE_1180_1990_rand +> [eva] computing for function IEEE_1180_1990_rand <- IEEE_1180_1990_mkbk <- main. +> Called from tests/idct/ieee_1180_1990.c:85. +> [eva] Recording results for IEEE_1180_1990_rand +> [eva] Done for function IEEE_1180_1990_rand > [eva] Recording results for IEEE_1180_1990_mkbk > [eva] Done for function IEEE_1180_1990_mkbk > [eva] computing for function IEEE_1180_1990_dctf <- main. @@ -499,6 +601,10 @@ diff tests/idct/oracle/ieee_1180_1990.res.oracle tests/idct/oracle_apron/ieee_11 > Called from tests/idct/ieee_1180_1990.c:85. > [eva] Recording results for IEEE_1180_1990_rand > [eva] Done for function IEEE_1180_1990_rand +> [eva] computing for function IEEE_1180_1990_rand <- IEEE_1180_1990_mkbk <- main. +> Called from tests/idct/ieee_1180_1990.c:85. +> [eva] Recording results for IEEE_1180_1990_rand +> [eva] Done for function IEEE_1180_1990_rand > [eva] Recording results for IEEE_1180_1990_mkbk > [eva] Done for function IEEE_1180_1990_mkbk > [eva] computing for function IEEE_1180_1990_dctf <- main. @@ -551,6 +657,10 @@ diff tests/idct/oracle/ieee_1180_1990.res.oracle tests/idct/oracle_apron/ieee_11 > Called from tests/idct/ieee_1180_1990.c:85. > [eva] Recording results for IEEE_1180_1990_rand > [eva] Done for function IEEE_1180_1990_rand +> [eva] computing for function IEEE_1180_1990_rand <- IEEE_1180_1990_mkbk <- main. +> Called from tests/idct/ieee_1180_1990.c:85. +> [eva] Recording results for IEEE_1180_1990_rand +> [eva] Done for function IEEE_1180_1990_rand > [eva] Recording results for IEEE_1180_1990_mkbk > [eva] Done for function IEEE_1180_1990_mkbk > [eva] computing for function IEEE_1180_1990_dctf <- main. @@ -573,6 +683,10 @@ diff tests/idct/oracle/ieee_1180_1990.res.oracle tests/idct/oracle_apron/ieee_11 > Call to builtin Frama_C_sqrt for function sqrt > [eva] tests/idct/ieee_1180_1990.c:101: > Call to builtin Frama_C_cos for function cos +> [eva] tests/idct/ieee_1180_1990.c:100: +> Call to builtin Frama_C_sqrt for function sqrt +> [eva] tests/idct/ieee_1180_1990.c:101: +> Call to builtin Frama_C_cos for function cos > [eva] Recording results for IEEE_1180_1990_dctf > [eva] Done for function IEEE_1180_1990_dctf > [eva] computing for function IEEE_1180_1990_idctf <- main. @@ -591,20 +705,24 @@ diff tests/idct/oracle/ieee_1180_1990.res.oracle tests/idct/oracle_apron/ieee_11 > Call to builtin Frama_C_sqrt for function sqrt > [eva] tests/idct/ieee_1180_1990.c:141: > Call to builtin Frama_C_cos for function cos -595,597c1033,1036 -< [eva] tests/idct/ieee_1180_1990.c:214: Reusing old results for call to idct -< [eva] tests/idct/ieee_1180_1990.c:235: Warning: -< 2's complement assumed for overflow ---- +> [eva] tests/idct/ieee_1180_1990.c:140: +> Call to builtin Frama_C_sqrt for function sqrt +> [eva] tests/idct/ieee_1180_1990.c:141: +> Call to builtin Frama_C_cos for function cos +> [eva] tests/idct/ieee_1180_1990.c:140: +> Call to builtin Frama_C_sqrt for function sqrt +> [eva] tests/idct/ieee_1180_1990.c:141: +> Call to builtin Frama_C_cos for function cos +> [eva] Recording results for IEEE_1180_1990_idctf +> [eva] Done for function IEEE_1180_1990_idctf > [eva] computing for function idct <- main. > Called from tests/idct/ieee_1180_1990.c:214. > [eva] Recording results for idct > [eva] Done for function idct -602,604c1041,1048 -< [eva] tests/idct/ieee_1180_1990.c:237: -< Reusing old results for call to IEEE_1180_1990_idctf -< [eva] tests/idct/ieee_1180_1990.c:238: Reusing old results for call to idct ---- +> [eva] computing for function IEEE_1180_1990_dctf <- main. +> Called from tests/idct/ieee_1180_1990.c:236. +> [eva] Recording results for IEEE_1180_1990_dctf +> [eva] Done for function IEEE_1180_1990_dctf > [eva] computing for function IEEE_1180_1990_idctf <- main. > Called from tests/idct/ieee_1180_1990.c:237. > [eva] Recording results for IEEE_1180_1990_idctf @@ -613,36 +731,12 @@ diff tests/idct/oracle/ieee_1180_1990.res.oracle tests/idct/oracle_apron/ieee_11 > Called from tests/idct/ieee_1180_1990.c:238. > [eva] Recording results for idct > [eva] Done for function idct -607,634c1051,1100 -< [eva] tests/idct/ieee_1180_1990.c:85: -< Reusing old results for call to IEEE_1180_1990_rand -< [eva] tests/idct/ieee_1180_1990.c:85: -< Reusing old results for call to IEEE_1180_1990_rand -< [eva] tests/idct/ieee_1180_1990.c:85: -< Reusing old results for call to IEEE_1180_1990_rand -< [eva] tests/idct/ieee_1180_1990.c:85: -< Reusing old results for call to IEEE_1180_1990_rand -< [eva] tests/idct/ieee_1180_1990.c:85: -< Reusing old results for call to IEEE_1180_1990_rand -< [eva] tests/idct/ieee_1180_1990.c:85: -< Reusing old results for call to IEEE_1180_1990_rand -< [eva] tests/idct/ieee_1180_1990.c:85: -< Reusing old results for call to IEEE_1180_1990_rand -< [eva] Recording results for IEEE_1180_1990_mkbk -< [eva] Done for function IEEE_1180_1990_mkbk -< [eva] tests/idct/ieee_1180_1990.c:258: -< Reusing old results for call to IEEE_1180_1990_dctf -< [eva] tests/idct/ieee_1180_1990.c:259: -< Reusing old results for call to IEEE_1180_1990_idctf -< [eva] tests/idct/ieee_1180_1990.c:260: Reusing old results for call to idct -< [eva] tests/idct/ieee_1180_1990.c:281: Warning: -< 2's complement assumed for overflow -< [eva] tests/idct/ieee_1180_1990.c:282: -< Reusing old results for call to IEEE_1180_1990_dctf -< [eva] tests/idct/ieee_1180_1990.c:283: -< Reusing old results for call to IEEE_1180_1990_idctf -< [eva] tests/idct/ieee_1180_1990.c:284: Reusing old results for call to idct ---- +> [eva] computing for function IEEE_1180_1990_mkbk <- main. +> Called from tests/idct/ieee_1180_1990.c:257. +> [eva] computing for function IEEE_1180_1990_rand <- IEEE_1180_1990_mkbk <- main. +> Called from tests/idct/ieee_1180_1990.c:85. +> [eva] Recording results for IEEE_1180_1990_rand +> [eva] Done for function IEEE_1180_1990_rand > [eva] computing for function IEEE_1180_1990_rand <- IEEE_1180_1990_mkbk <- main. > Called from tests/idct/ieee_1180_1990.c:85. > [eva] Recording results for IEEE_1180_1990_rand @@ -693,36 +787,12 @@ diff tests/idct/oracle/ieee_1180_1990.res.oracle tests/idct/oracle_apron/ieee_11 > Called from tests/idct/ieee_1180_1990.c:284. > [eva] Recording results for idct > [eva] Done for function idct -637,664c1103,1152 -< [eva] tests/idct/ieee_1180_1990.c:85: -< Reusing old results for call to IEEE_1180_1990_rand -< [eva] tests/idct/ieee_1180_1990.c:85: -< Reusing old results for call to IEEE_1180_1990_rand -< [eva] tests/idct/ieee_1180_1990.c:85: -< Reusing old results for call to IEEE_1180_1990_rand -< [eva] tests/idct/ieee_1180_1990.c:85: -< Reusing old results for call to IEEE_1180_1990_rand -< [eva] tests/idct/ieee_1180_1990.c:85: -< Reusing old results for call to IEEE_1180_1990_rand -< [eva] tests/idct/ieee_1180_1990.c:85: -< Reusing old results for call to IEEE_1180_1990_rand -< [eva] tests/idct/ieee_1180_1990.c:85: -< Reusing old results for call to IEEE_1180_1990_rand -< [eva] Recording results for IEEE_1180_1990_mkbk -< [eva] Done for function IEEE_1180_1990_mkbk -< [eva] tests/idct/ieee_1180_1990.c:304: -< Reusing old results for call to IEEE_1180_1990_dctf -< [eva] tests/idct/ieee_1180_1990.c:305: -< Reusing old results for call to IEEE_1180_1990_idctf -< [eva] tests/idct/ieee_1180_1990.c:306: Reusing old results for call to idct -< [eva] tests/idct/ieee_1180_1990.c:327: Warning: -< 2's complement assumed for overflow -< [eva] tests/idct/ieee_1180_1990.c:328: -< Reusing old results for call to IEEE_1180_1990_dctf -< [eva] tests/idct/ieee_1180_1990.c:329: -< Reusing old results for call to IEEE_1180_1990_idctf -< [eva] tests/idct/ieee_1180_1990.c:330: Reusing old results for call to idct ---- +> [eva] computing for function IEEE_1180_1990_mkbk <- main. +> Called from tests/idct/ieee_1180_1990.c:303. +> [eva] computing for function IEEE_1180_1990_rand <- IEEE_1180_1990_mkbk <- main. +> Called from tests/idct/ieee_1180_1990.c:85. +> [eva] Recording results for IEEE_1180_1990_rand +> [eva] Done for function IEEE_1180_1990_rand > [eva] computing for function IEEE_1180_1990_rand <- IEEE_1180_1990_mkbk <- main. > Called from tests/idct/ieee_1180_1990.c:85. > [eva] Recording results for IEEE_1180_1990_rand @@ -773,22 +843,12 @@ diff tests/idct/oracle/ieee_1180_1990.res.oracle tests/idct/oracle_apron/ieee_11 > Called from tests/idct/ieee_1180_1990.c:330. > [eva] Recording results for idct > [eva] Done for function idct -667,680c1155,1178 -< [eva] tests/idct/ieee_1180_1990.c:85: -< Reusing old results for call to IEEE_1180_1990_rand -< [eva] tests/idct/ieee_1180_1990.c:85: -< Reusing old results for call to IEEE_1180_1990_rand -< [eva] tests/idct/ieee_1180_1990.c:85: -< Reusing old results for call to IEEE_1180_1990_rand -< [eva] tests/idct/ieee_1180_1990.c:85: -< Reusing old results for call to IEEE_1180_1990_rand -< [eva] tests/idct/ieee_1180_1990.c:85: -< Reusing old results for call to IEEE_1180_1990_rand -< [eva] tests/idct/ieee_1180_1990.c:85: -< Reusing old results for call to IEEE_1180_1990_rand -< [eva] tests/idct/ieee_1180_1990.c:85: -< Reusing old results for call to IEEE_1180_1990_rand ---- +> [eva] computing for function IEEE_1180_1990_mkbk <- main. +> Called from tests/idct/ieee_1180_1990.c:211. +> [eva] computing for function IEEE_1180_1990_rand <- IEEE_1180_1990_mkbk <- main. +> Called from tests/idct/ieee_1180_1990.c:85. +> [eva] Recording results for IEEE_1180_1990_rand +> [eva] Done for function IEEE_1180_1990_rand > [eva] computing for function IEEE_1180_1990_rand <- IEEE_1180_1990_mkbk <- main. > Called from tests/idct/ieee_1180_1990.c:85. > [eva] Recording results for IEEE_1180_1990_rand @@ -813,7 +873,32 @@ diff tests/idct/oracle/ieee_1180_1990.res.oracle tests/idct/oracle_apron/ieee_11 > Called from tests/idct/ieee_1180_1990.c:85. > [eva] Recording results for IEEE_1180_1990_rand > [eva] Done for function IEEE_1180_1990_rand -702a1201,1384 +> [eva] Recording results for IEEE_1180_1990_mkbk +> [eva] Done for function IEEE_1180_1990_mkbk +> [eva] computing for function IEEE_1180_1990_dctf <- main. +> Called from tests/idct/ieee_1180_1990.c:212. +> [eva] tests/idct/ieee_1180_1990.c:100: +> Call to builtin Frama_C_sqrt for function sqrt +> [eva] tests/idct/ieee_1180_1990.c:101: +> Call to builtin Frama_C_cos for function cos +> [eva] tests/idct/ieee_1180_1990.c:101: +> Call to builtin Frama_C_cos for function cos +> [eva] tests/idct/ieee_1180_1990.c:101: +> Call to builtin Frama_C_cos for function cos +> [eva] tests/idct/ieee_1180_1990.c:101: +> Call to builtin Frama_C_cos for function cos +> [eva] tests/idct/ieee_1180_1990.c:100: +> Call to builtin Frama_C_sqrt for function sqrt +> [eva] tests/idct/ieee_1180_1990.c:101: +> Call to builtin Frama_C_cos for function cos +> [eva] tests/idct/ieee_1180_1990.c:100: +> Call to builtin Frama_C_sqrt for function sqrt +> [eva] tests/idct/ieee_1180_1990.c:101: +> Call to builtin Frama_C_cos for function cos +> [eva] tests/idct/ieee_1180_1990.c:100: +> Call to builtin Frama_C_sqrt for function sqrt +> [eva] tests/idct/ieee_1180_1990.c:101: +> Call to builtin Frama_C_cos for function cos > [eva] Recording results for IEEE_1180_1990_dctf > [eva] Done for function IEEE_1180_1990_dctf > [eva] computing for function IEEE_1180_1990_idctf <- main. @@ -836,6 +921,10 @@ diff tests/idct/oracle/ieee_1180_1990.res.oracle tests/idct/oracle_apron/ieee_11 > Call to builtin Frama_C_sqrt for function sqrt > [eva] tests/idct/ieee_1180_1990.c:141: > Call to builtin Frama_C_cos for function cos +> [eva] tests/idct/ieee_1180_1990.c:140: +> Call to builtin Frama_C_sqrt for function sqrt +> [eva] tests/idct/ieee_1180_1990.c:141: +> Call to builtin Frama_C_cos for function cos > [eva] Recording results for IEEE_1180_1990_idctf > [eva] Done for function IEEE_1180_1990_idctf > [eva] computing for function idct <- main. @@ -880,9 +969,13 @@ diff tests/idct/oracle/ieee_1180_1990.res.oracle tests/idct/oracle_apron/ieee_11 > Called from tests/idct/ieee_1180_1990.c:85. > [eva] Recording results for IEEE_1180_1990_rand > [eva] Done for function IEEE_1180_1990_rand -> [eva] Recording results for IEEE_1180_1990_mkbk -> [eva] Done for function IEEE_1180_1990_mkbk -> [eva] computing for function IEEE_1180_1990_dctf <- main. +> [eva] computing for function IEEE_1180_1990_rand <- IEEE_1180_1990_mkbk <- main. +> Called from tests/idct/ieee_1180_1990.c:85. +> [eva] Recording results for IEEE_1180_1990_rand +> [eva] Done for function IEEE_1180_1990_rand +> [eva] Recording results for IEEE_1180_1990_mkbk +> [eva] Done for function IEEE_1180_1990_mkbk +> [eva] computing for function IEEE_1180_1990_dctf <- main. > Called from tests/idct/ieee_1180_1990.c:258. > [eva] Recording results for IEEE_1180_1990_dctf > [eva] Done for function IEEE_1180_1990_dctf @@ -932,6 +1025,10 @@ diff tests/idct/oracle/ieee_1180_1990.res.oracle tests/idct/oracle_apron/ieee_11 > Called from tests/idct/ieee_1180_1990.c:85. > [eva] Recording results for IEEE_1180_1990_rand > [eva] Done for function IEEE_1180_1990_rand +> [eva] computing for function IEEE_1180_1990_rand <- IEEE_1180_1990_mkbk <- main. +> Called from tests/idct/ieee_1180_1990.c:85. +> [eva] Recording results for IEEE_1180_1990_rand +> [eva] Done for function IEEE_1180_1990_rand > [eva] Recording results for IEEE_1180_1990_mkbk > [eva] Done for function IEEE_1180_1990_mkbk > [eva] computing for function IEEE_1180_1990_dctf <- main. @@ -984,6 +1081,10 @@ diff tests/idct/oracle/ieee_1180_1990.res.oracle tests/idct/oracle_apron/ieee_11 > Called from tests/idct/ieee_1180_1990.c:85. > [eva] Recording results for IEEE_1180_1990_rand > [eva] Done for function IEEE_1180_1990_rand +> [eva] computing for function IEEE_1180_1990_rand <- IEEE_1180_1990_mkbk <- main. +> Called from tests/idct/ieee_1180_1990.c:85. +> [eva] Recording results for IEEE_1180_1990_rand +> [eva] Done for function IEEE_1180_1990_rand > [eva] Recording results for IEEE_1180_1990_mkbk > [eva] Done for function IEEE_1180_1990_mkbk > [eva] computing for function IEEE_1180_1990_dctf <- main. @@ -998,7 +1099,14 @@ diff tests/idct/oracle/ieee_1180_1990.res.oracle tests/idct/oracle_apron/ieee_11 > Call to builtin Frama_C_cos for function cos > [eva] tests/idct/ieee_1180_1990.c:101: > Call to builtin Frama_C_cos for function cos -706a1389,1526 +> [eva] tests/idct/ieee_1180_1990.c:100: +> Call to builtin Frama_C_sqrt for function sqrt +> [eva] tests/idct/ieee_1180_1990.c:101: +> Call to builtin Frama_C_cos for function cos +> [eva] tests/idct/ieee_1180_1990.c:100: +> Call to builtin Frama_C_sqrt for function sqrt +> [eva] tests/idct/ieee_1180_1990.c:101: +> Call to builtin Frama_C_cos for function cos > [eva] tests/idct/ieee_1180_1990.c:100: > Call to builtin Frama_C_sqrt for function sqrt > [eva] tests/idct/ieee_1180_1990.c:101: @@ -1025,6 +1133,10 @@ diff tests/idct/oracle/ieee_1180_1990.res.oracle tests/idct/oracle_apron/ieee_11 > Call to builtin Frama_C_sqrt for function sqrt > [eva] tests/idct/ieee_1180_1990.c:141: > Call to builtin Frama_C_cos for function cos +> [eva] tests/idct/ieee_1180_1990.c:140: +> Call to builtin Frama_C_sqrt for function sqrt +> [eva] tests/idct/ieee_1180_1990.c:141: +> Call to builtin Frama_C_cos for function cos > [eva] Recording results for IEEE_1180_1990_idctf > [eva] Done for function IEEE_1180_1990_idctf > [eva] computing for function idct <- main. @@ -1069,6 +1181,10 @@ diff tests/idct/oracle/ieee_1180_1990.res.oracle tests/idct/oracle_apron/ieee_11 > Called from tests/idct/ieee_1180_1990.c:85. > [eva] Recording results for IEEE_1180_1990_rand > [eva] Done for function IEEE_1180_1990_rand +> [eva] computing for function IEEE_1180_1990_rand <- IEEE_1180_1990_mkbk <- main. +> Called from tests/idct/ieee_1180_1990.c:85. +> [eva] Recording results for IEEE_1180_1990_rand +> [eva] Done for function IEEE_1180_1990_rand > [eva] Recording results for IEEE_1180_1990_mkbk > [eva] Done for function IEEE_1180_1990_mkbk > [eva] computing for function IEEE_1180_1990_dctf <- main. @@ -1121,6 +1237,10 @@ diff tests/idct/oracle/ieee_1180_1990.res.oracle tests/idct/oracle_apron/ieee_11 > Called from tests/idct/ieee_1180_1990.c:85. > [eva] Recording results for IEEE_1180_1990_rand > [eva] Done for function IEEE_1180_1990_rand +> [eva] computing for function IEEE_1180_1990_rand <- IEEE_1180_1990_mkbk <- main. +> Called from tests/idct/ieee_1180_1990.c:85. +> [eva] Recording results for IEEE_1180_1990_rand +> [eva] Done for function IEEE_1180_1990_rand > [eva] Recording results for IEEE_1180_1990_mkbk > [eva] Done for function IEEE_1180_1990_mkbk > [eva] computing for function IEEE_1180_1990_dctf <- main. @@ -1137,191 +1257,8 @@ diff tests/idct/oracle/ieee_1180_1990.res.oracle tests/idct/oracle_apron/ieee_11 > [eva] Done for function idct > [eva] computing for function IEEE_1180_1990_dctf <- main. > Called from tests/idct/ieee_1180_1990.c:328. -709,891c1529,1920 -< [eva] tests/idct/ieee_1180_1990.c:213: -< Reusing old results for call to IEEE_1180_1990_idctf -< [eva] tests/idct/ieee_1180_1990.c:214: Reusing old results for call to idct -< [eva] tests/idct/ieee_1180_1990.c:236: -< Reusing old results for call to IEEE_1180_1990_dctf -< [eva] tests/idct/ieee_1180_1990.c:237: -< Reusing old results for call to IEEE_1180_1990_idctf -< [eva] tests/idct/ieee_1180_1990.c:238: Reusing old results for call to idct -< [eva] tests/idct/ieee_1180_1990.c:257: -< Reusing old results for call to IEEE_1180_1990_mkbk -< [eva] tests/idct/ieee_1180_1990.c:258: -< Reusing old results for call to IEEE_1180_1990_dctf -< [eva] tests/idct/ieee_1180_1990.c:259: -< Reusing old results for call to IEEE_1180_1990_idctf -< [eva] tests/idct/ieee_1180_1990.c:260: Reusing old results for call to idct -< [eva] tests/idct/ieee_1180_1990.c:282: -< Reusing old results for call to IEEE_1180_1990_dctf -< [eva] tests/idct/ieee_1180_1990.c:283: -< Reusing old results for call to IEEE_1180_1990_idctf -< [eva] tests/idct/ieee_1180_1990.c:284: Reusing old results for call to idct -< [eva] tests/idct/ieee_1180_1990.c:303: -< Reusing old results for call to IEEE_1180_1990_mkbk -< [eva] tests/idct/ieee_1180_1990.c:304: -< Reusing old results for call to IEEE_1180_1990_dctf -< [eva] tests/idct/ieee_1180_1990.c:305: -< Reusing old results for call to IEEE_1180_1990_idctf -< [eva] tests/idct/ieee_1180_1990.c:306: Reusing old results for call to idct -< [eva] tests/idct/ieee_1180_1990.c:328: -< Reusing old results for call to IEEE_1180_1990_dctf -< [eva] tests/idct/ieee_1180_1990.c:329: -< Reusing old results for call to IEEE_1180_1990_idctf -< [eva] tests/idct/ieee_1180_1990.c:330: Reusing old results for call to idct -< [eva] tests/idct/ieee_1180_1990.c:211: -< Reusing old results for call to IEEE_1180_1990_mkbk -< [eva] tests/idct/ieee_1180_1990.c:212: -< Reusing old results for call to IEEE_1180_1990_dctf -< [eva] tests/idct/ieee_1180_1990.c:213: -< Reusing old results for call to IEEE_1180_1990_idctf -< [eva] tests/idct/ieee_1180_1990.c:214: Reusing old results for call to idct -< [eva] tests/idct/ieee_1180_1990.c:236: -< Reusing old results for call to IEEE_1180_1990_dctf -< [eva] tests/idct/ieee_1180_1990.c:237: -< Reusing old results for call to IEEE_1180_1990_idctf -< [eva] tests/idct/ieee_1180_1990.c:238: Reusing old results for call to idct -< [eva] tests/idct/ieee_1180_1990.c:257: -< Reusing old results for call to IEEE_1180_1990_mkbk -< [eva] tests/idct/ieee_1180_1990.c:258: -< Reusing old results for call to IEEE_1180_1990_dctf -< [eva] tests/idct/ieee_1180_1990.c:259: -< Reusing old results for call to IEEE_1180_1990_idctf -< [eva] tests/idct/ieee_1180_1990.c:260: Reusing old results for call to idct -< [eva] tests/idct/ieee_1180_1990.c:282: -< Reusing old results for call to IEEE_1180_1990_dctf -< [eva] tests/idct/ieee_1180_1990.c:283: -< Reusing old results for call to IEEE_1180_1990_idctf -< [eva] tests/idct/ieee_1180_1990.c:284: Reusing old results for call to idct -< [eva] tests/idct/ieee_1180_1990.c:303: -< Reusing old results for call to IEEE_1180_1990_mkbk -< [eva] tests/idct/ieee_1180_1990.c:304: -< Reusing old results for call to IEEE_1180_1990_dctf -< [eva] tests/idct/ieee_1180_1990.c:305: -< Reusing old results for call to IEEE_1180_1990_idctf -< [eva] tests/idct/ieee_1180_1990.c:306: Reusing old results for call to idct -< [eva] tests/idct/ieee_1180_1990.c:328: -< Reusing old results for call to IEEE_1180_1990_dctf -< [eva] tests/idct/ieee_1180_1990.c:329: -< Reusing old results for call to IEEE_1180_1990_idctf -< [eva] tests/idct/ieee_1180_1990.c:330: Reusing old results for call to idct -< [eva] tests/idct/ieee_1180_1990.c:211: -< Reusing old results for call to IEEE_1180_1990_mkbk -< [eva] tests/idct/ieee_1180_1990.c:212: -< Reusing old results for call to IEEE_1180_1990_dctf -< [eva] tests/idct/ieee_1180_1990.c:213: -< Reusing old results for call to IEEE_1180_1990_idctf -< [eva] tests/idct/ieee_1180_1990.c:214: Reusing old results for call to idct -< [eva] tests/idct/ieee_1180_1990.c:236: -< Reusing old results for call to IEEE_1180_1990_dctf -< [eva] tests/idct/ieee_1180_1990.c:237: -< Reusing old results for call to IEEE_1180_1990_idctf -< [eva] tests/idct/ieee_1180_1990.c:238: Reusing old results for call to idct -< [eva] tests/idct/ieee_1180_1990.c:257: -< Reusing old results for call to IEEE_1180_1990_mkbk -< [eva] tests/idct/ieee_1180_1990.c:258: -< Reusing old results for call to IEEE_1180_1990_dctf -< [eva] tests/idct/ieee_1180_1990.c:259: -< Reusing old results for call to IEEE_1180_1990_idctf -< [eva] tests/idct/ieee_1180_1990.c:260: Reusing old results for call to idct -< [eva] tests/idct/ieee_1180_1990.c:282: -< Reusing old results for call to IEEE_1180_1990_dctf -< [eva] tests/idct/ieee_1180_1990.c:283: -< Reusing old results for call to IEEE_1180_1990_idctf -< [eva] tests/idct/ieee_1180_1990.c:284: Reusing old results for call to idct -< [eva] tests/idct/ieee_1180_1990.c:303: -< Reusing old results for call to IEEE_1180_1990_mkbk -< [eva] tests/idct/ieee_1180_1990.c:304: -< Reusing old results for call to IEEE_1180_1990_dctf -< [eva] tests/idct/ieee_1180_1990.c:305: -< Reusing old results for call to IEEE_1180_1990_idctf -< [eva] tests/idct/ieee_1180_1990.c:306: Reusing old results for call to idct -< [eva] tests/idct/ieee_1180_1990.c:328: -< Reusing old results for call to IEEE_1180_1990_dctf -< [eva] tests/idct/ieee_1180_1990.c:329: -< Reusing old results for call to IEEE_1180_1990_idctf -< [eva] tests/idct/ieee_1180_1990.c:330: Reusing old results for call to idct -< [eva] tests/idct/ieee_1180_1990.c:211: -< Reusing old results for call to IEEE_1180_1990_mkbk -< [eva] tests/idct/ieee_1180_1990.c:212: -< Reusing old results for call to IEEE_1180_1990_dctf -< [eva] tests/idct/ieee_1180_1990.c:213: -< Reusing old results for call to IEEE_1180_1990_idctf -< [eva] tests/idct/ieee_1180_1990.c:214: Reusing old results for call to idct -< [eva] tests/idct/ieee_1180_1990.c:236: -< Reusing old results for call to IEEE_1180_1990_dctf -< [eva] tests/idct/ieee_1180_1990.c:237: -< Reusing old results for call to IEEE_1180_1990_idctf -< [eva] tests/idct/ieee_1180_1990.c:238: Reusing old results for call to idct -< [eva] tests/idct/ieee_1180_1990.c:257: -< Reusing old results for call to IEEE_1180_1990_mkbk -< [eva] tests/idct/ieee_1180_1990.c:258: -< Reusing old results for call to IEEE_1180_1990_dctf -< [eva] tests/idct/ieee_1180_1990.c:259: -< Reusing old results for call to IEEE_1180_1990_idctf -< [eva] tests/idct/ieee_1180_1990.c:260: Reusing old results for call to idct -< [eva] tests/idct/ieee_1180_1990.c:282: -< Reusing old results for call to IEEE_1180_1990_dctf -< [eva] tests/idct/ieee_1180_1990.c:283: -< Reusing old results for call to IEEE_1180_1990_idctf -< [eva] tests/idct/ieee_1180_1990.c:284: Reusing old results for call to idct -< [eva] tests/idct/ieee_1180_1990.c:303: -< Reusing old results for call to IEEE_1180_1990_mkbk -< [eva] tests/idct/ieee_1180_1990.c:304: -< Reusing old results for call to IEEE_1180_1990_dctf -< [eva] tests/idct/ieee_1180_1990.c:305: -< Reusing old results for call to IEEE_1180_1990_idctf -< [eva] tests/idct/ieee_1180_1990.c:306: Reusing old results for call to idct -< [eva] tests/idct/ieee_1180_1990.c:328: -< Reusing old results for call to IEEE_1180_1990_dctf -< [eva] tests/idct/ieee_1180_1990.c:329: -< Reusing old results for call to IEEE_1180_1990_idctf -< [eva] tests/idct/ieee_1180_1990.c:330: Reusing old results for call to idct -< [eva] tests/idct/ieee_1180_1990.c:211: -< Reusing old results for call to IEEE_1180_1990_mkbk -< [eva] tests/idct/ieee_1180_1990.c:212: -< Reusing old results for call to IEEE_1180_1990_dctf -< [eva] tests/idct/ieee_1180_1990.c:213: -< Reusing old results for call to IEEE_1180_1990_idctf -< [eva] tests/idct/ieee_1180_1990.c:214: Reusing old results for call to idct -< [eva] tests/idct/ieee_1180_1990.c:236: -< Reusing old results for call to IEEE_1180_1990_dctf -< [eva] tests/idct/ieee_1180_1990.c:237: -< Reusing old results for call to IEEE_1180_1990_idctf -< [eva] tests/idct/ieee_1180_1990.c:238: Reusing old results for call to idct -< [eva] tests/idct/ieee_1180_1990.c:257: -< Reusing old results for call to IEEE_1180_1990_mkbk -< [eva] tests/idct/ieee_1180_1990.c:258: -< Reusing old results for call to IEEE_1180_1990_dctf -< [eva] tests/idct/ieee_1180_1990.c:259: -< Reusing old results for call to IEEE_1180_1990_idctf -< [eva] tests/idct/ieee_1180_1990.c:260: Reusing old results for call to idct -< [eva] tests/idct/ieee_1180_1990.c:282: -< Reusing old results for call to IEEE_1180_1990_dctf -< [eva] tests/idct/ieee_1180_1990.c:283: -< Reusing old results for call to IEEE_1180_1990_idctf -< [eva] tests/idct/ieee_1180_1990.c:284: Reusing old results for call to idct -< [eva] tests/idct/ieee_1180_1990.c:303: -< Reusing old results for call to IEEE_1180_1990_mkbk -< [eva] tests/idct/ieee_1180_1990.c:304: -< Reusing old results for call to IEEE_1180_1990_dctf -< [eva] tests/idct/ieee_1180_1990.c:305: -< Reusing old results for call to IEEE_1180_1990_idctf -< [eva] tests/idct/ieee_1180_1990.c:306: Reusing old results for call to idct -< [eva] tests/idct/ieee_1180_1990.c:328: -< Reusing old results for call to IEEE_1180_1990_dctf -< [eva] tests/idct/ieee_1180_1990.c:329: -< Reusing old results for call to IEEE_1180_1990_idctf -< [eva] tests/idct/ieee_1180_1990.c:330: Reusing old results for call to idct -< [eva] tests/idct/ieee_1180_1990.c:211: -< Reusing old results for call to IEEE_1180_1990_mkbk -< [eva] tests/idct/ieee_1180_1990.c:212: -< Reusing old results for call to IEEE_1180_1990_dctf -< [eva] tests/idct/ieee_1180_1990.c:213: -< Reusing old results for call to IEEE_1180_1990_idctf -< [eva] tests/idct/ieee_1180_1990.c:214: Reusing old results for call to idct ---- +> [eva] Recording results for IEEE_1180_1990_dctf +> [eva] Done for function IEEE_1180_1990_dctf > [eva] computing for function IEEE_1180_1990_idctf <- main. > Called from tests/idct/ieee_1180_1990.c:329. > [eva] Recording results for IEEE_1180_1990_idctf @@ -1356,6 +1293,10 @@ diff tests/idct/oracle/ieee_1180_1990.res.oracle tests/idct/oracle_apron/ieee_11 > Called from tests/idct/ieee_1180_1990.c:85. > [eva] Recording results for IEEE_1180_1990_rand > [eva] Done for function IEEE_1180_1990_rand +> [eva] computing for function IEEE_1180_1990_rand <- IEEE_1180_1990_mkbk <- main. +> Called from tests/idct/ieee_1180_1990.c:85. +> [eva] Recording results for IEEE_1180_1990_rand +> [eva] Done for function IEEE_1180_1990_rand > [eva] Recording results for IEEE_1180_1990_mkbk > [eva] Done for function IEEE_1180_1990_mkbk > [eva] computing for function IEEE_1180_1990_dctf <- main. @@ -1378,6 +1319,10 @@ diff tests/idct/oracle/ieee_1180_1990.res.oracle tests/idct/oracle_apron/ieee_11 > Call to builtin Frama_C_sqrt for function sqrt > [eva] tests/idct/ieee_1180_1990.c:101: > Call to builtin Frama_C_cos for function cos +> [eva] tests/idct/ieee_1180_1990.c:100: +> Call to builtin Frama_C_sqrt for function sqrt +> [eva] tests/idct/ieee_1180_1990.c:101: +> Call to builtin Frama_C_cos for function cos > [eva] Recording results for IEEE_1180_1990_dctf > [eva] Done for function IEEE_1180_1990_dctf > [eva] computing for function IEEE_1180_1990_idctf <- main. @@ -1400,6 +1345,10 @@ diff tests/idct/oracle/ieee_1180_1990.res.oracle tests/idct/oracle_apron/ieee_11 > Call to builtin Frama_C_sqrt for function sqrt > [eva] tests/idct/ieee_1180_1990.c:141: > Call to builtin Frama_C_cos for function cos +> [eva] tests/idct/ieee_1180_1990.c:140: +> Call to builtin Frama_C_sqrt for function sqrt +> [eva] tests/idct/ieee_1180_1990.c:141: +> Call to builtin Frama_C_cos for function cos > [eva] Recording results for IEEE_1180_1990_idctf > [eva] Done for function IEEE_1180_1990_idctf > [eva] computing for function idct <- main. @@ -1444,6 +1393,10 @@ diff tests/idct/oracle/ieee_1180_1990.res.oracle tests/idct/oracle_apron/ieee_11 > Called from tests/idct/ieee_1180_1990.c:85. > [eva] Recording results for IEEE_1180_1990_rand > [eva] Done for function IEEE_1180_1990_rand +> [eva] computing for function IEEE_1180_1990_rand <- IEEE_1180_1990_mkbk <- main. +> Called from tests/idct/ieee_1180_1990.c:85. +> [eva] Recording results for IEEE_1180_1990_rand +> [eva] Done for function IEEE_1180_1990_rand > [eva] Recording results for IEEE_1180_1990_mkbk > [eva] Done for function IEEE_1180_1990_mkbk > [eva] computing for function IEEE_1180_1990_dctf <- main. @@ -1496,6 +1449,10 @@ diff tests/idct/oracle/ieee_1180_1990.res.oracle tests/idct/oracle_apron/ieee_11 > Called from tests/idct/ieee_1180_1990.c:85. > [eva] Recording results for IEEE_1180_1990_rand > [eva] Done for function IEEE_1180_1990_rand +> [eva] computing for function IEEE_1180_1990_rand <- IEEE_1180_1990_mkbk <- main. +> Called from tests/idct/ieee_1180_1990.c:85. +> [eva] Recording results for IEEE_1180_1990_rand +> [eva] Done for function IEEE_1180_1990_rand > [eva] Recording results for IEEE_1180_1990_mkbk > [eva] Done for function IEEE_1180_1990_mkbk > [eva] computing for function IEEE_1180_1990_dctf <- main. @@ -1548,52 +1505,258 @@ diff tests/idct/oracle/ieee_1180_1990.res.oracle tests/idct/oracle_apron/ieee_11 > Called from tests/idct/ieee_1180_1990.c:85. > [eva] Recording results for IEEE_1180_1990_rand > [eva] Done for function IEEE_1180_1990_rand -> [eva] Recording results for IEEE_1180_1990_mkbk -> [eva] Done for function IEEE_1180_1990_mkbk -> [eva] computing for function IEEE_1180_1990_dctf <- main. -> Called from tests/idct/ieee_1180_1990.c:212. -> [eva] tests/idct/ieee_1180_1990.c:100: -> Call to builtin Frama_C_sqrt for function sqrt -> [eva] tests/idct/ieee_1180_1990.c:101: -> Call to builtin Frama_C_cos for function cos -> [eva] tests/idct/ieee_1180_1990.c:101: -> Call to builtin Frama_C_cos for function cos -> [eva] tests/idct/ieee_1180_1990.c:101: -> Call to builtin Frama_C_cos for function cos -> [eva] tests/idct/ieee_1180_1990.c:101: -> Call to builtin Frama_C_cos for function cos -> [eva] tests/idct/ieee_1180_1990.c:100: -> Call to builtin Frama_C_sqrt for function sqrt -> [eva] tests/idct/ieee_1180_1990.c:101: -> Call to builtin Frama_C_cos for function cos -> [eva] tests/idct/ieee_1180_1990.c:100: -> Call to builtin Frama_C_sqrt for function sqrt -> [eva] tests/idct/ieee_1180_1990.c:101: -> Call to builtin Frama_C_cos for function cos -> [eva] Recording results for IEEE_1180_1990_dctf -> [eva] Done for function IEEE_1180_1990_dctf -> [eva] computing for function IEEE_1180_1990_idctf <- main. -> Called from tests/idct/ieee_1180_1990.c:213. -> [eva] tests/idct/ieee_1180_1990.c:140: -> Call to builtin Frama_C_sqrt for function sqrt -> [eva] tests/idct/ieee_1180_1990.c:141: -> Call to builtin Frama_C_cos for function cos -> [eva] tests/idct/ieee_1180_1990.c:141: -> Call to builtin Frama_C_cos for function cos -> [eva] tests/idct/ieee_1180_1990.c:141: -> Call to builtin Frama_C_cos for function cos -> [eva] tests/idct/ieee_1180_1990.c:141: -> Call to builtin Frama_C_cos for function cos -> [eva] tests/idct/ieee_1180_1990.c:140: -> Call to builtin Frama_C_sqrt for function sqrt -> [eva] tests/idct/ieee_1180_1990.c:141: -> Call to builtin Frama_C_cos for function cos -> [eva] tests/idct/ieee_1180_1990.c:140: -> Call to builtin Frama_C_sqrt for function sqrt -> [eva] tests/idct/ieee_1180_1990.c:141: -> Call to builtin Frama_C_cos for function cos -> [eva] Recording results for IEEE_1180_1990_idctf -> [eva] Done for function IEEE_1180_1990_idctf +> [eva] computing for function IEEE_1180_1990_rand <- IEEE_1180_1990_mkbk <- main. +> Called from tests/idct/ieee_1180_1990.c:85. +> [eva] Recording results for IEEE_1180_1990_rand +> [eva] Done for function IEEE_1180_1990_rand +625,870c1975,2102 +< [eva] tests/idct/ieee_1180_1990.c:214: Reusing old results for call to idct +< [eva] tests/idct/ieee_1180_1990.c:236: +< Reusing old results for call to IEEE_1180_1990_dctf +< [eva] tests/idct/ieee_1180_1990.c:237: +< Reusing old results for call to IEEE_1180_1990_idctf +< [eva] tests/idct/ieee_1180_1990.c:238: Reusing old results for call to idct +< [eva] tests/idct/ieee_1180_1990.c:257: +< Reusing old results for call to IEEE_1180_1990_mkbk +< [eva] tests/idct/ieee_1180_1990.c:258: +< Reusing old results for call to IEEE_1180_1990_dctf +< [eva] tests/idct/ieee_1180_1990.c:259: +< Reusing old results for call to IEEE_1180_1990_idctf +< [eva] tests/idct/ieee_1180_1990.c:260: Reusing old results for call to idct +< [eva] tests/idct/ieee_1180_1990.c:282: +< Reusing old results for call to IEEE_1180_1990_dctf +< [eva] tests/idct/ieee_1180_1990.c:283: +< Reusing old results for call to IEEE_1180_1990_idctf +< [eva] tests/idct/ieee_1180_1990.c:284: Reusing old results for call to idct +< [eva] tests/idct/ieee_1180_1990.c:303: +< Reusing old results for call to IEEE_1180_1990_mkbk +< [eva] tests/idct/ieee_1180_1990.c:304: +< Reusing old results for call to IEEE_1180_1990_dctf +< [eva] tests/idct/ieee_1180_1990.c:305: +< Reusing old results for call to IEEE_1180_1990_idctf +< [eva] tests/idct/ieee_1180_1990.c:306: Reusing old results for call to idct +< [eva] tests/idct/ieee_1180_1990.c:328: +< Reusing old results for call to IEEE_1180_1990_dctf +< [eva] tests/idct/ieee_1180_1990.c:329: +< Reusing old results for call to IEEE_1180_1990_idctf +< [eva] tests/idct/ieee_1180_1990.c:330: Reusing old results for call to idct +< [eva] tests/idct/ieee_1180_1990.c:211: +< Reusing old results for call to IEEE_1180_1990_mkbk +< [eva] tests/idct/ieee_1180_1990.c:212: +< Reusing old results for call to IEEE_1180_1990_dctf +< [eva] tests/idct/ieee_1180_1990.c:213: +< Reusing old results for call to IEEE_1180_1990_idctf +< [eva] tests/idct/ieee_1180_1990.c:214: Reusing old results for call to idct +< [eva] tests/idct/ieee_1180_1990.c:236: +< Reusing old results for call to IEEE_1180_1990_dctf +< [eva] tests/idct/ieee_1180_1990.c:237: +< Reusing old results for call to IEEE_1180_1990_idctf +< [eva] tests/idct/ieee_1180_1990.c:238: Reusing old results for call to idct +< [eva] tests/idct/ieee_1180_1990.c:257: +< Reusing old results for call to IEEE_1180_1990_mkbk +< [eva] tests/idct/ieee_1180_1990.c:258: +< Reusing old results for call to IEEE_1180_1990_dctf +< [eva] tests/idct/ieee_1180_1990.c:259: +< Reusing old results for call to IEEE_1180_1990_idctf +< [eva] tests/idct/ieee_1180_1990.c:260: Reusing old results for call to idct +< [eva] tests/idct/ieee_1180_1990.c:282: +< Reusing old results for call to IEEE_1180_1990_dctf +< [eva] tests/idct/ieee_1180_1990.c:283: +< Reusing old results for call to IEEE_1180_1990_idctf +< [eva] tests/idct/ieee_1180_1990.c:284: Reusing old results for call to idct +< [eva] tests/idct/ieee_1180_1990.c:303: +< Reusing old results for call to IEEE_1180_1990_mkbk +< [eva] tests/idct/ieee_1180_1990.c:304: +< Reusing old results for call to IEEE_1180_1990_dctf +< [eva] tests/idct/ieee_1180_1990.c:305: +< Reusing old results for call to IEEE_1180_1990_idctf +< [eva] tests/idct/ieee_1180_1990.c:306: Reusing old results for call to idct +< [eva] tests/idct/ieee_1180_1990.c:328: +< Reusing old results for call to IEEE_1180_1990_dctf +< [eva] tests/idct/ieee_1180_1990.c:329: +< Reusing old results for call to IEEE_1180_1990_idctf +< [eva] tests/idct/ieee_1180_1990.c:330: Reusing old results for call to idct +< [eva] tests/idct/ieee_1180_1990.c:211: +< Reusing old results for call to IEEE_1180_1990_mkbk +< [eva] tests/idct/ieee_1180_1990.c:212: +< Reusing old results for call to IEEE_1180_1990_dctf +< [eva] tests/idct/ieee_1180_1990.c:213: +< Reusing old results for call to IEEE_1180_1990_idctf +< [eva] tests/idct/ieee_1180_1990.c:214: Reusing old results for call to idct +< [eva] tests/idct/ieee_1180_1990.c:236: +< Reusing old results for call to IEEE_1180_1990_dctf +< [eva] tests/idct/ieee_1180_1990.c:237: +< Reusing old results for call to IEEE_1180_1990_idctf +< [eva] tests/idct/ieee_1180_1990.c:238: Reusing old results for call to idct +< [eva] tests/idct/ieee_1180_1990.c:257: +< Reusing old results for call to IEEE_1180_1990_mkbk +< [eva] tests/idct/ieee_1180_1990.c:258: +< Reusing old results for call to IEEE_1180_1990_dctf +< [eva] tests/idct/ieee_1180_1990.c:259: +< Reusing old results for call to IEEE_1180_1990_idctf +< [eva] tests/idct/ieee_1180_1990.c:260: Reusing old results for call to idct +< [eva] tests/idct/ieee_1180_1990.c:282: +< Reusing old results for call to IEEE_1180_1990_dctf +< [eva] tests/idct/ieee_1180_1990.c:283: +< Reusing old results for call to IEEE_1180_1990_idctf +< [eva] tests/idct/ieee_1180_1990.c:284: Reusing old results for call to idct +< [eva] tests/idct/ieee_1180_1990.c:303: +< Reusing old results for call to IEEE_1180_1990_mkbk +< [eva] tests/idct/ieee_1180_1990.c:304: +< Reusing old results for call to IEEE_1180_1990_dctf +< [eva] tests/idct/ieee_1180_1990.c:305: +< Reusing old results for call to IEEE_1180_1990_idctf +< [eva] tests/idct/ieee_1180_1990.c:306: Reusing old results for call to idct +< [eva] tests/idct/ieee_1180_1990.c:328: +< Reusing old results for call to IEEE_1180_1990_dctf +< [eva] tests/idct/ieee_1180_1990.c:329: +< Reusing old results for call to IEEE_1180_1990_idctf +< [eva] tests/idct/ieee_1180_1990.c:330: Reusing old results for call to idct +< [eva] tests/idct/ieee_1180_1990.c:211: +< Reusing old results for call to IEEE_1180_1990_mkbk +< [eva] tests/idct/ieee_1180_1990.c:212: +< Reusing old results for call to IEEE_1180_1990_dctf +< [eva] tests/idct/ieee_1180_1990.c:213: +< Reusing old results for call to IEEE_1180_1990_idctf +< [eva] tests/idct/ieee_1180_1990.c:214: Reusing old results for call to idct +< [eva] tests/idct/ieee_1180_1990.c:236: +< Reusing old results for call to IEEE_1180_1990_dctf +< [eva] tests/idct/ieee_1180_1990.c:237: +< Reusing old results for call to IEEE_1180_1990_idctf +< [eva] tests/idct/ieee_1180_1990.c:238: Reusing old results for call to idct +< [eva] tests/idct/ieee_1180_1990.c:257: +< Reusing old results for call to IEEE_1180_1990_mkbk +< [eva] tests/idct/ieee_1180_1990.c:258: +< Reusing old results for call to IEEE_1180_1990_dctf +< [eva] tests/idct/ieee_1180_1990.c:259: +< Reusing old results for call to IEEE_1180_1990_idctf +< [eva] tests/idct/ieee_1180_1990.c:260: Reusing old results for call to idct +< [eva] tests/idct/ieee_1180_1990.c:282: +< Reusing old results for call to IEEE_1180_1990_dctf +< [eva] tests/idct/ieee_1180_1990.c:283: +< Reusing old results for call to IEEE_1180_1990_idctf +< [eva] tests/idct/ieee_1180_1990.c:284: Reusing old results for call to idct +< [eva] tests/idct/ieee_1180_1990.c:303: +< Reusing old results for call to IEEE_1180_1990_mkbk +< [eva] tests/idct/ieee_1180_1990.c:304: +< Reusing old results for call to IEEE_1180_1990_dctf +< [eva] tests/idct/ieee_1180_1990.c:305: +< Reusing old results for call to IEEE_1180_1990_idctf +< [eva] tests/idct/ieee_1180_1990.c:306: Reusing old results for call to idct +< [eva] tests/idct/ieee_1180_1990.c:328: +< Reusing old results for call to IEEE_1180_1990_dctf +< [eva] tests/idct/ieee_1180_1990.c:329: +< Reusing old results for call to IEEE_1180_1990_idctf +< [eva] tests/idct/ieee_1180_1990.c:330: Reusing old results for call to idct +< [eva] tests/idct/ieee_1180_1990.c:211: +< Reusing old results for call to IEEE_1180_1990_mkbk +< [eva] tests/idct/ieee_1180_1990.c:212: +< Reusing old results for call to IEEE_1180_1990_dctf +< [eva] tests/idct/ieee_1180_1990.c:213: +< Reusing old results for call to IEEE_1180_1990_idctf +< [eva] tests/idct/ieee_1180_1990.c:214: Reusing old results for call to idct +< [eva] tests/idct/ieee_1180_1990.c:236: +< Reusing old results for call to IEEE_1180_1990_dctf +< [eva] tests/idct/ieee_1180_1990.c:237: +< Reusing old results for call to IEEE_1180_1990_idctf +< [eva] tests/idct/ieee_1180_1990.c:238: Reusing old results for call to idct +< [eva] tests/idct/ieee_1180_1990.c:257: +< Reusing old results for call to IEEE_1180_1990_mkbk +< [eva] tests/idct/ieee_1180_1990.c:258: +< Reusing old results for call to IEEE_1180_1990_dctf +< [eva] tests/idct/ieee_1180_1990.c:259: +< Reusing old results for call to IEEE_1180_1990_idctf +< [eva] tests/idct/ieee_1180_1990.c:260: Reusing old results for call to idct +< [eva] tests/idct/ieee_1180_1990.c:282: +< Reusing old results for call to IEEE_1180_1990_dctf +< [eva] tests/idct/ieee_1180_1990.c:283: +< Reusing old results for call to IEEE_1180_1990_idctf +< [eva] tests/idct/ieee_1180_1990.c:284: Reusing old results for call to idct +< [eva] tests/idct/ieee_1180_1990.c:303: +< Reusing old results for call to IEEE_1180_1990_mkbk +< [eva] tests/idct/ieee_1180_1990.c:304: +< Reusing old results for call to IEEE_1180_1990_dctf +< [eva] tests/idct/ieee_1180_1990.c:305: +< Reusing old results for call to IEEE_1180_1990_idctf +< [eva] tests/idct/ieee_1180_1990.c:306: Reusing old results for call to idct +< [eva] tests/idct/ieee_1180_1990.c:328: +< Reusing old results for call to IEEE_1180_1990_dctf +< [eva] tests/idct/ieee_1180_1990.c:329: +< Reusing old results for call to IEEE_1180_1990_idctf +< [eva] tests/idct/ieee_1180_1990.c:330: Reusing old results for call to idct +< [eva] tests/idct/ieee_1180_1990.c:211: +< Reusing old results for call to IEEE_1180_1990_mkbk +< [eva] tests/idct/ieee_1180_1990.c:212: +< Reusing old results for call to IEEE_1180_1990_dctf +< [eva] tests/idct/ieee_1180_1990.c:213: +< Reusing old results for call to IEEE_1180_1990_idctf +< [eva] tests/idct/ieee_1180_1990.c:214: Reusing old results for call to idct +< [eva] tests/idct/ieee_1180_1990.c:236: +< Reusing old results for call to IEEE_1180_1990_dctf +< [eva] tests/idct/ieee_1180_1990.c:237: +< Reusing old results for call to IEEE_1180_1990_idctf +< [eva] tests/idct/ieee_1180_1990.c:238: Reusing old results for call to idct +< [eva] tests/idct/ieee_1180_1990.c:257: +< Reusing old results for call to IEEE_1180_1990_mkbk +< [eva] tests/idct/ieee_1180_1990.c:258: +< Reusing old results for call to IEEE_1180_1990_dctf +< [eva] tests/idct/ieee_1180_1990.c:259: +< Reusing old results for call to IEEE_1180_1990_idctf +< [eva] tests/idct/ieee_1180_1990.c:260: Reusing old results for call to idct +< [eva] tests/idct/ieee_1180_1990.c:282: +< Reusing old results for call to IEEE_1180_1990_dctf +< [eva] tests/idct/ieee_1180_1990.c:283: +< Reusing old results for call to IEEE_1180_1990_idctf +< [eva] tests/idct/ieee_1180_1990.c:284: Reusing old results for call to idct +< [eva] tests/idct/ieee_1180_1990.c:303: +< Reusing old results for call to IEEE_1180_1990_mkbk +< [eva] tests/idct/ieee_1180_1990.c:304: +< Reusing old results for call to IEEE_1180_1990_dctf +< [eva] tests/idct/ieee_1180_1990.c:305: +< Reusing old results for call to IEEE_1180_1990_idctf +< [eva] tests/idct/ieee_1180_1990.c:306: Reusing old results for call to idct +< [eva] tests/idct/ieee_1180_1990.c:328: +< Reusing old results for call to IEEE_1180_1990_dctf +< [eva] tests/idct/ieee_1180_1990.c:329: +< Reusing old results for call to IEEE_1180_1990_idctf +< [eva] tests/idct/ieee_1180_1990.c:330: Reusing old results for call to idct +< [eva] tests/idct/ieee_1180_1990.c:211: +< Reusing old results for call to IEEE_1180_1990_mkbk +< [eva] tests/idct/ieee_1180_1990.c:212: +< Reusing old results for call to IEEE_1180_1990_dctf +< [eva] tests/idct/ieee_1180_1990.c:213: +< Reusing old results for call to IEEE_1180_1990_idctf +< [eva] tests/idct/ieee_1180_1990.c:214: Reusing old results for call to idct +< [eva] tests/idct/ieee_1180_1990.c:236: +< Reusing old results for call to IEEE_1180_1990_dctf +< [eva] tests/idct/ieee_1180_1990.c:237: +< Reusing old results for call to IEEE_1180_1990_idctf +< [eva] tests/idct/ieee_1180_1990.c:238: Reusing old results for call to idct +< [eva] tests/idct/ieee_1180_1990.c:257: +< Reusing old results for call to IEEE_1180_1990_mkbk +< [eva] tests/idct/ieee_1180_1990.c:258: +< Reusing old results for call to IEEE_1180_1990_dctf +< [eva] tests/idct/ieee_1180_1990.c:259: +< Reusing old results for call to IEEE_1180_1990_idctf +< [eva] tests/idct/ieee_1180_1990.c:260: Reusing old results for call to idct +< [eva] tests/idct/ieee_1180_1990.c:282: +< Reusing old results for call to IEEE_1180_1990_dctf +< [eva] tests/idct/ieee_1180_1990.c:283: +< Reusing old results for call to IEEE_1180_1990_idctf +< [eva] tests/idct/ieee_1180_1990.c:284: Reusing old results for call to idct +< [eva] tests/idct/ieee_1180_1990.c:303: +< Reusing old results for call to IEEE_1180_1990_mkbk +< [eva] tests/idct/ieee_1180_1990.c:304: +< Reusing old results for call to IEEE_1180_1990_dctf +< [eva] tests/idct/ieee_1180_1990.c:305: +< Reusing old results for call to IEEE_1180_1990_idctf +< [eva] tests/idct/ieee_1180_1990.c:306: Reusing old results for call to idct +< [eva] tests/idct/ieee_1180_1990.c:328: +< Reusing old results for call to IEEE_1180_1990_dctf +< [eva] tests/idct/ieee_1180_1990.c:329: +< Reusing old results for call to IEEE_1180_1990_idctf +< [eva] tests/idct/ieee_1180_1990.c:330: Reusing old results for call to idct +--- > [eva] computing for function idct <- main. > Called from tests/idct/ieee_1180_1990.c:214. > [eva] Recording results for idct @@ -1636,6 +1799,10 @@ diff tests/idct/oracle/ieee_1180_1990.res.oracle tests/idct/oracle_apron/ieee_11 > Called from tests/idct/ieee_1180_1990.c:85. > [eva] Recording results for IEEE_1180_1990_rand > [eva] Done for function IEEE_1180_1990_rand +> [eva] computing for function IEEE_1180_1990_rand <- IEEE_1180_1990_mkbk <- main. +> Called from tests/idct/ieee_1180_1990.c:85. +> [eva] Recording results for IEEE_1180_1990_rand +> [eva] Done for function IEEE_1180_1990_rand > [eva] Recording results for IEEE_1180_1990_mkbk > [eva] Done for function IEEE_1180_1990_mkbk > [eva] computing for function IEEE_1180_1990_dctf <- main. @@ -1688,6 +1855,10 @@ diff tests/idct/oracle/ieee_1180_1990.res.oracle tests/idct/oracle_apron/ieee_11 > Called from tests/idct/ieee_1180_1990.c:85. > [eva] Recording results for IEEE_1180_1990_rand > [eva] Done for function IEEE_1180_1990_rand +> [eva] computing for function IEEE_1180_1990_rand <- IEEE_1180_1990_mkbk <- main. +> Called from tests/idct/ieee_1180_1990.c:85. +> [eva] Recording results for IEEE_1180_1990_rand +> [eva] Done for function IEEE_1180_1990_rand > [eva] Recording results for IEEE_1180_1990_mkbk > [eva] Done for function IEEE_1180_1990_mkbk > [eva] computing for function IEEE_1180_1990_dctf <- main. @@ -1714,11 +1885,3 @@ diff tests/idct/oracle/ieee_1180_1990.res.oracle tests/idct/oracle_apron/ieee_11 > Called from tests/idct/ieee_1180_1990.c:330. > [eva] Recording results for idct > [eva] Done for function idct -928c1957 -< M1[0..7][0..7] ∈ [--..--] ---- -> M1[0..7][0..7] ∈ [-2147483647..2147483647] -981c2010 -< M1[0..7][0..7] ∈ [--..--] ---- -> M1[0..7][0..7] ∈ [-2147483647..2147483647] diff --git a/tests/idct/diff_bitwise b/tests/idct/diff_bitwise index 19f21ca2757655aeae5469fe7ed060bf2bc7750b..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 --- a/tests/idct/diff_bitwise +++ b/tests/idct/diff_bitwise @@ -1,5 +0,0 @@ -diff tests/idct/oracle/ieee_1180_1990.res.oracle tests/idct/oracle_bitwise/ieee_1180_1990.res.oracle -920c920 -< i ∈ [0..2147483646] ---- -> i ∈ [0..2147483646],0%2 diff --git a/tests/idct/diff_equalities b/tests/idct/diff_equalities index 5f09e60791d3d583e2acf66b3d51a9cd27307033..c05946b24e4198945f24cbdb5026a6409c4233b5 100644 --- a/tests/idct/diff_equalities +++ b/tests/idct/diff_equalities @@ -1,136 +1,132 @@ diff tests/idct/oracle/ieee_1180_1990.res.oracle tests/idct/oracle_equalities/ieee_1180_1990.res.oracle -331a332,333 +355a356,357 > [eva] tests/idct/ieee_1180_1990.c:219: Warning: > 2's complement assumed for overflow -335a338,339 +359a362,363 > [eva] tests/idct/ieee_1180_1990.c:220: Warning: > 2's complement assumed for overflow -341,342d344 +365,366d368 < [eva] tests/idct/ieee_1180_1990.c:219: Warning: < 2's complement assumed for overflow -365a368,369 +391a394,395 > [eva] tests/idct/ieee_1180_1990.c:243: Warning: > 2's complement assumed for overflow -369a374,375 +395a400,401 > [eva] tests/idct/ieee_1180_1990.c:244: Warning: > 2's complement assumed for overflow -375,376d380 +401,402d406 < [eva] tests/idct/ieee_1180_1990.c:243: Warning: < 2's complement assumed for overflow -397a402,405 +423a428,435 > [eva] tests/idct/ieee_1180_1990.c:85: > Reusing old results for call to IEEE_1180_1990_rand > [eva] tests/idct/ieee_1180_1990.c:85: > Reusing old results for call to IEEE_1180_1990_rand -410a419,420 +> [eva] tests/idct/ieee_1180_1990.c:85: +> Reusing old results for call to IEEE_1180_1990_rand +> [eva] tests/idct/ieee_1180_1990.c:85: +> Reusing old results for call to IEEE_1180_1990_rand +436a449,450 > [eva] tests/idct/ieee_1180_1990.c:265: Warning: > 2's complement assumed for overflow -414a425,426 +440a455,456 > [eva] tests/idct/ieee_1180_1990.c:266: Warning: > 2's complement assumed for overflow -420,421d431 +446,447d461 < [eva] tests/idct/ieee_1180_1990.c:265: Warning: < 2's complement assumed for overflow -437a448,449 +465a480,481 > [eva] tests/idct/ieee_1180_1990.c:289: Warning: > 2's complement assumed for overflow -441a454,455 +469a486,487 > [eva] tests/idct/ieee_1180_1990.c:290: Warning: > 2's complement assumed for overflow -447,448d460 +475,476d492 < [eva] tests/idct/ieee_1180_1990.c:289: Warning: < 2's complement assumed for overflow -469a482,485 +497a514,521 > [eva] tests/idct/ieee_1180_1990.c:85: > Reusing old results for call to IEEE_1180_1990_rand > [eva] tests/idct/ieee_1180_1990.c:85: > Reusing old results for call to IEEE_1180_1990_rand -482a499,500 +> [eva] tests/idct/ieee_1180_1990.c:85: +> Reusing old results for call to IEEE_1180_1990_rand +> [eva] tests/idct/ieee_1180_1990.c:85: +> Reusing old results for call to IEEE_1180_1990_rand +510a535,536 > [eva] tests/idct/ieee_1180_1990.c:311: Warning: > 2's complement assumed for overflow -486a505,506 +514a541,542 > [eva] tests/idct/ieee_1180_1990.c:312: Warning: > 2's complement assumed for overflow -492,493d511 +520,521d547 < [eva] tests/idct/ieee_1180_1990.c:311: Warning: < 2's complement assumed for overflow -509a528,529 +539a566,567 > [eva] tests/idct/ieee_1180_1990.c:335: Warning: > 2's complement assumed for overflow -513a534,535 +543a572,573 > [eva] tests/idct/ieee_1180_1990.c:336: Warning: > 2's complement assumed for overflow -519,520d540 +549,550d578 < [eva] tests/idct/ieee_1180_1990.c:335: Warning: < 2's complement assumed for overflow -540a561,564 +570a599,606 +> [eva] tests/idct/ieee_1180_1990.c:85: +> Reusing old results for call to IEEE_1180_1990_rand > [eva] tests/idct/ieee_1180_1990.c:85: > Reusing old results for call to IEEE_1180_1990_rand > [eva] tests/idct/ieee_1180_1990.c:85: > Reusing old results for call to IEEE_1180_1990_rand -548a573,578 +> [eva] tests/idct/ieee_1180_1990.c:85: +> Reusing old results for call to IEEE_1180_1990_rand +578a615,632 > [eva] tests/idct/ieee_1180_1990.c:100: > Call to builtin Frama_C_sqrt for function sqrt > [eva] tests/idct/ieee_1180_1990.c:101: > Call to builtin Frama_C_cos for function cos > [eva] tests/idct/ieee_1180_1990.c:100: > Call to builtin Frama_C_sqrt for function sqrt -550a581,582 +> [eva] tests/idct/ieee_1180_1990.c:101: +> Call to builtin Frama_C_cos for function cos > [eva] tests/idct/ieee_1180_1990.c:100: > Call to builtin Frama_C_sqrt for function sqrt -552a585,590 +> [eva] tests/idct/ieee_1180_1990.c:101: +> Call to builtin Frama_C_cos for function cos > [eva] tests/idct/ieee_1180_1990.c:100: > Call to builtin Frama_C_sqrt for function sqrt > [eva] tests/idct/ieee_1180_1990.c:101: > Call to builtin Frama_C_cos for function cos > [eva] tests/idct/ieee_1180_1990.c:100: > Call to builtin Frama_C_sqrt for function sqrt -574a613,618 +580a635,636 +> [eva] tests/idct/ieee_1180_1990.c:100: +> Call to builtin Frama_C_sqrt for function sqrt +582a639,640 +> [eva] tests/idct/ieee_1180_1990.c:100: +> Call to builtin Frama_C_sqrt for function sqrt +604a663,676 > [eva] tests/idct/ieee_1180_1990.c:140: > Call to builtin Frama_C_sqrt for function sqrt > [eva] tests/idct/ieee_1180_1990.c:141: > Call to builtin Frama_C_cos for function cos > [eva] tests/idct/ieee_1180_1990.c:140: > Call to builtin Frama_C_sqrt for function sqrt -576a621,622 -> [eva] tests/idct/ieee_1180_1990.c:140: -> Call to builtin Frama_C_sqrt for function sqrt -578a625,630 +> [eva] tests/idct/ieee_1180_1990.c:141: +> Call to builtin Frama_C_cos for function cos > [eva] tests/idct/ieee_1180_1990.c:140: > Call to builtin Frama_C_sqrt for function sqrt > [eva] tests/idct/ieee_1180_1990.c:141: > Call to builtin Frama_C_cos for function cos > [eva] tests/idct/ieee_1180_1990.c:140: > Call to builtin Frama_C_sqrt for function sqrt -620a673,676 -> [eva] tests/idct/ieee_1180_1990.c:85: -> Reusing old results for call to IEEE_1180_1990_rand -> [eva] tests/idct/ieee_1180_1990.c:85: -> Reusing old results for call to IEEE_1180_1990_rand -650a707,710 -> [eva] tests/idct/ieee_1180_1990.c:85: -> Reusing old results for call to IEEE_1180_1990_rand -> [eva] tests/idct/ieee_1180_1990.c:85: -> Reusing old results for call to IEEE_1180_1990_rand -680a741,744 -> [eva] tests/idct/ieee_1180_1990.c:85: -> Reusing old results for call to IEEE_1180_1990_rand -> [eva] tests/idct/ieee_1180_1990.c:85: -> Reusing old results for call to IEEE_1180_1990_rand -688a753,754 -> [eva] tests/idct/ieee_1180_1990.c:100: -> Call to builtin Frama_C_sqrt for function sqrt -690a757,762 -> [eva] tests/idct/ieee_1180_1990.c:100: -> Call to builtin Frama_C_sqrt for function sqrt -> [eva] tests/idct/ieee_1180_1990.c:101: -> Call to builtin Frama_C_cos for function cos -> [eva] tests/idct/ieee_1180_1990.c:100: +606a679,680 +> [eva] tests/idct/ieee_1180_1990.c:140: > Call to builtin Frama_C_sqrt for function sqrt -692a765,770 -> [eva] tests/idct/ieee_1180_1990.c:100: +608a683,688 +> [eva] tests/idct/ieee_1180_1990.c:140: > Call to builtin Frama_C_sqrt for function sqrt -> [eva] tests/idct/ieee_1180_1990.c:101: +> [eva] tests/idct/ieee_1180_1990.c:141: > Call to builtin Frama_C_cos for function cos -> [eva] tests/idct/ieee_1180_1990.c:100: +> [eva] tests/idct/ieee_1180_1990.c:140: > Call to builtin Frama_C_sqrt for function sqrt diff --git a/tests/idct/diff_gauges b/tests/idct/diff_gauges index 9dadfa3ad4acafa682d4b75a2e68cf7d8501c8a7..2e026cd69baf3e0a3aaf3b9860e252aa0206841c 100644 --- a/tests/idct/diff_gauges +++ b/tests/idct/diff_gauges @@ -1,68 +1,7 @@ diff tests/idct/oracle/ieee_1180_1990.res.oracle tests/idct/oracle_gauges/ieee_1180_1990.res.oracle -51a52,55 -> [eva] tests/idct/idct.c:90: Call to builtin Frama_C_sqrt for function sqrt -> [eva] tests/idct/idct.c:91: Call to builtin Frama_C_cos for function cos -> [eva] tests/idct/idct.c:90: Call to builtin Frama_C_sqrt for function sqrt -> [eva] tests/idct/idct.c:91: Call to builtin Frama_C_cos for function cos -150a155,158 -> [eva] tests/idct/ieee_1180_1990.c:85: -> Reusing old results for call to IEEE_1180_1990_rand -> [eva] tests/idct/ieee_1180_1990.c:85: -> Reusing old results for call to IEEE_1180_1990_rand -198a207,214 +578a579,580 > [eva] tests/idct/ieee_1180_1990.c:100: > Call to builtin Frama_C_sqrt for function sqrt -> [eva] tests/idct/ieee_1180_1990.c:101: -> Call to builtin Frama_C_cos for function cos -> [eva] tests/idct/ieee_1180_1990.c:100: -> Call to builtin Frama_C_sqrt for function sqrt -> [eva] tests/idct/ieee_1180_1990.c:101: -> Call to builtin Frama_C_cos for function cos -280a297,304 -> [eva] tests/idct/ieee_1180_1990.c:140: -> Call to builtin Frama_C_sqrt for function sqrt -> [eva] tests/idct/ieee_1180_1990.c:141: -> Call to builtin Frama_C_cos for function cos -> [eva] tests/idct/ieee_1180_1990.c:140: -> Call to builtin Frama_C_sqrt for function sqrt -> [eva] tests/idct/ieee_1180_1990.c:141: -> Call to builtin Frama_C_cos for function cos -548a573,574 -> [eva] tests/idct/ieee_1180_1990.c:100: -> Call to builtin Frama_C_sqrt for function sqrt -574a601,602 +604a607,608 > [eva] tests/idct/ieee_1180_1990.c:140: > Call to builtin Frama_C_sqrt for function sqrt -688a717,718 -> [eva] tests/idct/ieee_1180_1990.c:100: -> Call to builtin Frama_C_sqrt for function sqrt -891a922,950 -> [eva] tests/idct/ieee_1180_1990.c:236: -> Reusing old results for call to IEEE_1180_1990_dctf -> [eva] tests/idct/ieee_1180_1990.c:237: -> Reusing old results for call to IEEE_1180_1990_idctf -> [eva] tests/idct/ieee_1180_1990.c:238: Reusing old results for call to idct -> [eva] tests/idct/ieee_1180_1990.c:257: -> Reusing old results for call to IEEE_1180_1990_mkbk -> [eva] tests/idct/ieee_1180_1990.c:258: -> Reusing old results for call to IEEE_1180_1990_dctf -> [eva] tests/idct/ieee_1180_1990.c:259: -> Reusing old results for call to IEEE_1180_1990_idctf -> [eva] tests/idct/ieee_1180_1990.c:260: Reusing old results for call to idct -> [eva] tests/idct/ieee_1180_1990.c:282: -> Reusing old results for call to IEEE_1180_1990_dctf -> [eva] tests/idct/ieee_1180_1990.c:283: -> Reusing old results for call to IEEE_1180_1990_idctf -> [eva] tests/idct/ieee_1180_1990.c:284: Reusing old results for call to idct -> [eva] tests/idct/ieee_1180_1990.c:303: -> Reusing old results for call to IEEE_1180_1990_mkbk -> [eva] tests/idct/ieee_1180_1990.c:304: -> Reusing old results for call to IEEE_1180_1990_dctf -> [eva] tests/idct/ieee_1180_1990.c:305: -> Reusing old results for call to IEEE_1180_1990_idctf -> [eva] tests/idct/ieee_1180_1990.c:306: Reusing old results for call to idct -> [eva] tests/idct/ieee_1180_1990.c:328: -> Reusing old results for call to IEEE_1180_1990_dctf -> [eva] tests/idct/ieee_1180_1990.c:329: -> Reusing old results for call to IEEE_1180_1990_idctf -> [eva] tests/idct/ieee_1180_1990.c:330: Reusing old results for call to idct diff --git a/tests/idct/ieee_1180_1990.c b/tests/idct/ieee_1180_1990.c index 96312c3a4753004347b02890d161b3b4f7eed72e..1f0f4325eeb430e18ca50f20b716f4ecdcc6f207 100644 --- a/tests/idct/ieee_1180_1990.c +++ b/tests/idct/ieee_1180_1990.c @@ -1,6 +1,6 @@ /* run.config* GCC: - STDOPT: +"-load-module report,scope,variadic -float-normal -no-warn-signed-overflow tests/idct/idct.c -remove-redundant-alarms -memexec-all -val-builtin sqrt:Frama_C_sqrt,cos:Frama_C_cos -then -report -report-print-properties" + STDOPT: +"-load-module report,scope,variadic -float-normal -no-warn-signed-overflow tests/idct/idct.c -remove-redundant-alarms -eva-memexec -eva-builtin sqrt:Frama_C_sqrt,cos:Frama_C_cos -then -report -report-print-properties" */ /* IEEE_1180_1990: a testbed for IDCT accuracy * Copyright (C) 2001 Renaud Pacalet diff --git a/tests/idct/oracle/ieee_1180_1990.res.oracle b/tests/idct/oracle/ieee_1180_1990.res.oracle index 8e96d4acb601c55097c9f49a4039a07fcd16fa68..2c7e41c81de51023519cf04af34b7d44f3d10625 100644 --- a/tests/idct/oracle/ieee_1180_1990.res.oracle +++ b/tests/idct/oracle/ieee_1180_1990.res.oracle @@ -49,6 +49,10 @@ [eva] tests/idct/idct.c:91: Call to builtin Frama_C_cos for function cos [eva] tests/idct/idct.c:90: Call to builtin Frama_C_sqrt for function sqrt [eva] tests/idct/idct.c:91: Call to builtin Frama_C_cos for function cos +[eva] tests/idct/idct.c:90: Call to builtin Frama_C_sqrt for function sqrt +[eva] tests/idct/idct.c:91: Call to builtin Frama_C_cos for function cos +[eva] tests/idct/idct.c:90: Call to builtin Frama_C_sqrt for function sqrt +[eva] tests/idct/idct.c:91: Call to builtin Frama_C_cos for function cos [eva] tests/idct/idct.c:128: starting to merge loop iterations [eva] tests/idct/idct.c:126: starting to merge loop iterations [eva:alarm] tests/idct/idct.c:129: Warning: @@ -148,6 +152,10 @@ Reusing old results for call to IEEE_1180_1990_rand [eva] tests/idct/ieee_1180_1990.c:85: Reusing old results for call to IEEE_1180_1990_rand +[eva] tests/idct/ieee_1180_1990.c:85: + Reusing old results for call to IEEE_1180_1990_rand +[eva] tests/idct/ieee_1180_1990.c:85: + Reusing old results for call to IEEE_1180_1990_rand [eva] Recording results for IEEE_1180_1990_mkbk [eva] Done for function IEEE_1180_1990_mkbk [eva] computing for function IEEE_1180_1990_dctf <- main. @@ -196,6 +204,14 @@ Call to builtin Frama_C_sqrt for function sqrt [eva] tests/idct/ieee_1180_1990.c:101: Call to builtin Frama_C_cos for function cos +[eva] tests/idct/ieee_1180_1990.c:100: + Call to builtin Frama_C_sqrt for function sqrt +[eva] tests/idct/ieee_1180_1990.c:101: + Call to builtin Frama_C_cos for function cos +[eva] tests/idct/ieee_1180_1990.c:100: + Call to builtin Frama_C_sqrt for function sqrt +[eva] tests/idct/ieee_1180_1990.c:101: + Call to builtin Frama_C_cos for function cos [eva] tests/idct/ieee_1180_1990.c:108: starting to merge loop iterations [eva] tests/idct/ieee_1180_1990.c:105: starting to merge loop iterations [eva:alarm] tests/idct/ieee_1180_1990.c:109: Warning: @@ -278,6 +294,14 @@ Call to builtin Frama_C_sqrt for function sqrt [eva] tests/idct/ieee_1180_1990.c:141: Call to builtin Frama_C_cos for function cos +[eva] tests/idct/ieee_1180_1990.c:140: + Call to builtin Frama_C_sqrt for function sqrt +[eva] tests/idct/ieee_1180_1990.c:141: + Call to builtin Frama_C_cos for function cos +[eva] tests/idct/ieee_1180_1990.c:140: + Call to builtin Frama_C_sqrt for function sqrt +[eva] tests/idct/ieee_1180_1990.c:141: + Call to builtin Frama_C_cos for function cos [eva:alarm] tests/idct/ieee_1180_1990.c:150: Warning: accessing uninitialized left-value. assert \initialized(&(*(m1 + k))[j]); [eva] tests/idct/ieee_1180_1990.c:149: starting to merge loop iterations @@ -345,6 +369,8 @@ [eva] tests/idct/ieee_1180_1990.c:215: starting to merge loop iterations [eva] tests/idct/ieee_1180_1990.c:234: starting to merge loop iterations [eva] tests/idct/ieee_1180_1990.c:233: starting to merge loop iterations +[eva] tests/idct/ieee_1180_1990.c:235: Warning: + 2's complement assumed for overflow [eva] computing for function IEEE_1180_1990_dctf <- main. Called from tests/idct/ieee_1180_1990.c:236. [eva] Recording results for IEEE_1180_1990_dctf @@ -422,6 +448,8 @@ [eva] tests/idct/ieee_1180_1990.c:277: Warning: 2's complement assumed for overflow [eva] tests/idct/ieee_1180_1990.c:261: starting to merge loop iterations +[eva] tests/idct/ieee_1180_1990.c:281: Warning: + 2's complement assumed for overflow [eva] tests/idct/ieee_1180_1990.c:280: starting to merge loop iterations [eva] tests/idct/ieee_1180_1990.c:279: starting to merge loop iterations [eva] tests/idct/ieee_1180_1990.c:282: @@ -494,6 +522,8 @@ [eva] tests/idct/ieee_1180_1990.c:323: Warning: 2's complement assumed for overflow [eva] tests/idct/ieee_1180_1990.c:307: starting to merge loop iterations +[eva] tests/idct/ieee_1180_1990.c:327: Warning: + 2's complement assumed for overflow [eva] tests/idct/ieee_1180_1990.c:326: starting to merge loop iterations [eva] tests/idct/ieee_1180_1990.c:325: starting to merge loop iterations [eva] tests/idct/ieee_1180_1990.c:328: @@ -593,119 +623,39 @@ [eva] Recording results for IEEE_1180_1990_idctf [eva] Done for function IEEE_1180_1990_idctf [eva] tests/idct/ieee_1180_1990.c:214: Reusing old results for call to idct -[eva] tests/idct/ieee_1180_1990.c:235: Warning: - 2's complement assumed for overflow -[eva] computing for function IEEE_1180_1990_dctf <- main. - Called from tests/idct/ieee_1180_1990.c:236. -[eva] Recording results for IEEE_1180_1990_dctf -[eva] Done for function IEEE_1180_1990_dctf +[eva] tests/idct/ieee_1180_1990.c:236: + Reusing old results for call to IEEE_1180_1990_dctf [eva] tests/idct/ieee_1180_1990.c:237: Reusing old results for call to IEEE_1180_1990_idctf [eva] tests/idct/ieee_1180_1990.c:238: Reusing old results for call to idct -[eva] computing for function IEEE_1180_1990_mkbk <- main. - Called from tests/idct/ieee_1180_1990.c:257. -[eva] tests/idct/ieee_1180_1990.c:85: - Reusing old results for call to IEEE_1180_1990_rand -[eva] tests/idct/ieee_1180_1990.c:85: - Reusing old results for call to IEEE_1180_1990_rand -[eva] tests/idct/ieee_1180_1990.c:85: - Reusing old results for call to IEEE_1180_1990_rand -[eva] tests/idct/ieee_1180_1990.c:85: - Reusing old results for call to IEEE_1180_1990_rand -[eva] tests/idct/ieee_1180_1990.c:85: - Reusing old results for call to IEEE_1180_1990_rand -[eva] tests/idct/ieee_1180_1990.c:85: - Reusing old results for call to IEEE_1180_1990_rand -[eva] tests/idct/ieee_1180_1990.c:85: - Reusing old results for call to IEEE_1180_1990_rand -[eva] Recording results for IEEE_1180_1990_mkbk -[eva] Done for function IEEE_1180_1990_mkbk +[eva] tests/idct/ieee_1180_1990.c:257: + Reusing old results for call to IEEE_1180_1990_mkbk [eva] tests/idct/ieee_1180_1990.c:258: Reusing old results for call to IEEE_1180_1990_dctf [eva] tests/idct/ieee_1180_1990.c:259: Reusing old results for call to IEEE_1180_1990_idctf [eva] tests/idct/ieee_1180_1990.c:260: Reusing old results for call to idct -[eva] tests/idct/ieee_1180_1990.c:281: Warning: - 2's complement assumed for overflow [eva] tests/idct/ieee_1180_1990.c:282: Reusing old results for call to IEEE_1180_1990_dctf [eva] tests/idct/ieee_1180_1990.c:283: Reusing old results for call to IEEE_1180_1990_idctf [eva] tests/idct/ieee_1180_1990.c:284: Reusing old results for call to idct -[eva] computing for function IEEE_1180_1990_mkbk <- main. - Called from tests/idct/ieee_1180_1990.c:303. -[eva] tests/idct/ieee_1180_1990.c:85: - Reusing old results for call to IEEE_1180_1990_rand -[eva] tests/idct/ieee_1180_1990.c:85: - Reusing old results for call to IEEE_1180_1990_rand -[eva] tests/idct/ieee_1180_1990.c:85: - Reusing old results for call to IEEE_1180_1990_rand -[eva] tests/idct/ieee_1180_1990.c:85: - Reusing old results for call to IEEE_1180_1990_rand -[eva] tests/idct/ieee_1180_1990.c:85: - Reusing old results for call to IEEE_1180_1990_rand -[eva] tests/idct/ieee_1180_1990.c:85: - Reusing old results for call to IEEE_1180_1990_rand -[eva] tests/idct/ieee_1180_1990.c:85: - Reusing old results for call to IEEE_1180_1990_rand -[eva] Recording results for IEEE_1180_1990_mkbk -[eva] Done for function IEEE_1180_1990_mkbk +[eva] tests/idct/ieee_1180_1990.c:303: + Reusing old results for call to IEEE_1180_1990_mkbk [eva] tests/idct/ieee_1180_1990.c:304: Reusing old results for call to IEEE_1180_1990_dctf [eva] tests/idct/ieee_1180_1990.c:305: Reusing old results for call to IEEE_1180_1990_idctf [eva] tests/idct/ieee_1180_1990.c:306: Reusing old results for call to idct -[eva] tests/idct/ieee_1180_1990.c:327: Warning: - 2's complement assumed for overflow [eva] tests/idct/ieee_1180_1990.c:328: Reusing old results for call to IEEE_1180_1990_dctf [eva] tests/idct/ieee_1180_1990.c:329: Reusing old results for call to IEEE_1180_1990_idctf [eva] tests/idct/ieee_1180_1990.c:330: Reusing old results for call to idct -[eva] computing for function IEEE_1180_1990_mkbk <- main. - Called from tests/idct/ieee_1180_1990.c:211. -[eva] tests/idct/ieee_1180_1990.c:85: - Reusing old results for call to IEEE_1180_1990_rand -[eva] tests/idct/ieee_1180_1990.c:85: - Reusing old results for call to IEEE_1180_1990_rand -[eva] tests/idct/ieee_1180_1990.c:85: - Reusing old results for call to IEEE_1180_1990_rand -[eva] tests/idct/ieee_1180_1990.c:85: - Reusing old results for call to IEEE_1180_1990_rand -[eva] tests/idct/ieee_1180_1990.c:85: - Reusing old results for call to IEEE_1180_1990_rand -[eva] tests/idct/ieee_1180_1990.c:85: - Reusing old results for call to IEEE_1180_1990_rand -[eva] tests/idct/ieee_1180_1990.c:85: - Reusing old results for call to IEEE_1180_1990_rand -[eva] Recording results for IEEE_1180_1990_mkbk -[eva] Done for function IEEE_1180_1990_mkbk -[eva] computing for function IEEE_1180_1990_dctf <- main. - Called from tests/idct/ieee_1180_1990.c:212. -[eva] tests/idct/ieee_1180_1990.c:100: - Call to builtin Frama_C_sqrt for function sqrt -[eva] tests/idct/ieee_1180_1990.c:101: - Call to builtin Frama_C_cos for function cos -[eva] tests/idct/ieee_1180_1990.c:101: - Call to builtin Frama_C_cos for function cos -[eva] tests/idct/ieee_1180_1990.c:101: - Call to builtin Frama_C_cos for function cos -[eva] tests/idct/ieee_1180_1990.c:101: - Call to builtin Frama_C_cos for function cos -[eva] tests/idct/ieee_1180_1990.c:100: - Call to builtin Frama_C_sqrt for function sqrt -[eva] tests/idct/ieee_1180_1990.c:101: - Call to builtin Frama_C_cos for function cos -[eva] tests/idct/ieee_1180_1990.c:100: - Call to builtin Frama_C_sqrt for function sqrt -[eva] tests/idct/ieee_1180_1990.c:101: - Call to builtin Frama_C_cos for function cos -[eva] tests/idct/ieee_1180_1990.c:100: - Call to builtin Frama_C_sqrt for function sqrt -[eva] tests/idct/ieee_1180_1990.c:101: - Call to builtin Frama_C_cos for function cos -[eva] Recording results for IEEE_1180_1990_dctf -[eva] Done for function IEEE_1180_1990_dctf +[eva] tests/idct/ieee_1180_1990.c:211: + Reusing old results for call to IEEE_1180_1990_mkbk +[eva] tests/idct/ieee_1180_1990.c:212: + Reusing old results for call to IEEE_1180_1990_dctf [eva] tests/idct/ieee_1180_1990.c:213: Reusing old results for call to IEEE_1180_1990_idctf [eva] tests/idct/ieee_1180_1990.c:214: Reusing old results for call to idct @@ -889,6 +839,35 @@ [eva] tests/idct/ieee_1180_1990.c:213: Reusing old results for call to IEEE_1180_1990_idctf [eva] tests/idct/ieee_1180_1990.c:214: Reusing old results for call to idct +[eva] tests/idct/ieee_1180_1990.c:236: + Reusing old results for call to IEEE_1180_1990_dctf +[eva] tests/idct/ieee_1180_1990.c:237: + Reusing old results for call to IEEE_1180_1990_idctf +[eva] tests/idct/ieee_1180_1990.c:238: Reusing old results for call to idct +[eva] tests/idct/ieee_1180_1990.c:257: + Reusing old results for call to IEEE_1180_1990_mkbk +[eva] tests/idct/ieee_1180_1990.c:258: + Reusing old results for call to IEEE_1180_1990_dctf +[eva] tests/idct/ieee_1180_1990.c:259: + Reusing old results for call to IEEE_1180_1990_idctf +[eva] tests/idct/ieee_1180_1990.c:260: Reusing old results for call to idct +[eva] tests/idct/ieee_1180_1990.c:282: + Reusing old results for call to IEEE_1180_1990_dctf +[eva] tests/idct/ieee_1180_1990.c:283: + Reusing old results for call to IEEE_1180_1990_idctf +[eva] tests/idct/ieee_1180_1990.c:284: Reusing old results for call to idct +[eva] tests/idct/ieee_1180_1990.c:303: + Reusing old results for call to IEEE_1180_1990_mkbk +[eva] tests/idct/ieee_1180_1990.c:304: + Reusing old results for call to IEEE_1180_1990_dctf +[eva] tests/idct/ieee_1180_1990.c:305: + Reusing old results for call to IEEE_1180_1990_idctf +[eva] tests/idct/ieee_1180_1990.c:306: Reusing old results for call to idct +[eva] tests/idct/ieee_1180_1990.c:328: + Reusing old results for call to IEEE_1180_1990_dctf +[eva] tests/idct/ieee_1180_1990.c:329: + Reusing old results for call to IEEE_1180_1990_idctf +[eva] tests/idct/ieee_1180_1990.c:330: Reusing old results for call to idct [eva:alarm] tests/idct/ieee_1180_1990.c:357: Warning: accessing uninitialized left-value. assert \initialized(&res[i].pmse[j][k]); [eva:alarm] tests/idct/ieee_1180_1990.c:368: Warning: @@ -917,7 +896,7 @@ [scope:rm_asserts] removing 16 assertion(s) [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function IEEE_1180_1990_rand: - i ∈ [0..2147483646] + i ∈ [0..2147483646],0%2 j ∈ [0..600] x ∈ [0.0000000000000000 .. 600.9999997201375663] IEEE_1180_1990_rand_randx ∈ [--..--] diff --git a/tests/impact/test_config b/tests/impact/test_config index b2aad4f48595001126f643f9c986fcdbf7c85c5e..867181e4aa33cdc439cb2b044e2c409f9e79f752 100644 --- a/tests/impact/test_config +++ b/tests/impact/test_config @@ -1 +1 @@ -OPT: -journal-disable -impact-print -val-show-progress +OPT: -journal-disable -impact-print -eva-show-progress diff --git a/tests/jcdb/compile_commands.json b/tests/jcdb/compile_commands.json index 4e2de9499f1dbb67517964f3363f5dcae6e38b35..dc47faa00ea9db4540ab33453afbd21de9f5e388 100644 --- a/tests/jcdb/compile_commands.json +++ b/tests/jcdb/compile_commands.json @@ -10,5 +10,9 @@ { "directory": "tests/jcdb", "command": "/usr/bin/clang++ -D'MSG=\"a \\\" \\\"b\"' -D'SINGLE_DOUBLE(a)=\"a \\\"with spaces and tab \"' -DSOMEDEF=\"With spaces, quotes and \\-es.\" -D\"DOUBLE_SINGLE(a)=a \\\"macro with spaces and non-escaped \\\\'\\\"\" -DEMPTY='' -DEMPTY2= -DTEST=42 -D'MACRO_FOR_INCR(s)=s+1' -DTOUNDEF -UTOUNDEF", "file": "jcdb.c" + }, + { + "command": "testing entry without 'directory' key", + "file": "jcdb.c" } ] diff --git a/tests/jcdb/jcdb.c b/tests/jcdb/jcdb.c index e065ddbec3380d2ffa6ebb902d1b3838a631422c..ddf00afcd0acb406597062b30cab1a821f769faf 100644 --- a/tests/jcdb/jcdb.c +++ b/tests/jcdb/jcdb.c @@ -2,7 +2,7 @@ EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs OPT: -json-compilation-database @PTEST_DIR@ -print OPT: -json-compilation-database @PTEST_DIR@/with_arguments.json -print -OPT: -json-compilation-database @PTEST_DIR@/with_arguments.json -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs +OPT: -json-compilation-database @PTEST_DIR@/with_arguments.json -no-autoload-plugins -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs EXECNOW: LOG list_files.res LOG list_files.err share/analysis-scripts/list_files.py @PTEST_DIR@/compile_commands_working.json > @PTEST_DIR@/result/list_files.res 2> @PTEST_DIR@/result/list_files.err */ #include <stdio.h> diff --git a/tests/jcdb/oracle/jcdb.0.res.oracle b/tests/jcdb/oracle/jcdb.0.res.oracle index fc6e678e7541aa6336f91a8044e67d6ac8a685c6..1a80090d55b0c602628524a47fa26ba90e0cf493 100644 --- a/tests/jcdb/oracle/jcdb.0.res.oracle +++ b/tests/jcdb/oracle/jcdb.0.res.oracle @@ -1,7 +1,8 @@ [kernel:pp:compilation-db] Warning: - found duplicate flags for 'tests/jcdb/jcdb.c'. - Previous flags: -DDUPLICATE_FLAGS_THAT_WILL_BE_OVERWRITTEN - New flags: -D'MSG="a \" \"b"' -D'SINGLE_DOUBLE(a)="a \"with spaces and tab "' -DSOMEDEF="With spaces, quotes and \-es." -D"DOUBLE_SINGLE(a)=a \"macro with spaces and non-escaped \\'\"" -DEMPTY='' -DEMPTY2= -DTEST=42 -D'MACRO_FOR_INCR(s)=s+1' -DTOUNDEF -UTOUNDEF + found duplicate flags for 'tests/jcdb/jcdb.c', replacing old flags. + Old flags no longer present: -D'MSG="a \" \"b"' -D'SINGLE_DOUBLE(a)="a \"with spaces and tab "' -DSOMEDEF="With spaces, quotes and \-es." -D"DOUBLE_SINGLE(a)=a \"macro with spaces and non-escaped \\'\"" -DEMPTY='' -DEMPTY2= -DTEST=42 -D'MACRO_FOR_INCR(s)=s+1' -DTOUNDEF -UTOUNDEF + New flags not previously present: -DDUPLICATE_FLAGS_THAT_WILL_BE_OVERWRITTEN + (warn-once: no further messages from category 'pp:compilation-db' will be emitted) [kernel] Parsing tests/jcdb/jcdb.c (with preprocessing) /* Generated by Frama-C */ #include "errno.h" diff --git a/tests/journal/control.i b/tests/journal/control.i index 39c8a21bacc6793da247ecb7c22390a20964cd35..8a7acc8e682ff542811632ac5f9436e3a9a0f4f9 100644 --- a/tests/journal/control.i +++ b/tests/journal/control.i @@ -1,14 +1,14 @@ /* run.config COMMENT: do not compare generated journals since they depend on current time - EXECNOW: BIN control_journal.ml BIN control_journal_bis.ml (./bin/toplevel.opt -journal-enable -check -val -deps -out -val-show-progress -main f -journal-name tests/journal/result/control_journal.ml tests/journal/control.i && cp tests/journal/result/control_journal.ml tests/journal/result/control_journal_bis.ml) > /dev/null 2> /dev/null + EXECNOW: BIN control_journal.ml BIN control_journal_bis.ml (./bin/toplevel.opt -journal-enable -check -eva -deps -out -eva-show-progress -main f -journal-name tests/journal/result/control_journal.ml tests/journal/control.i && cp tests/journal/result/control_journal.ml tests/journal/result/control_journal_bis.ml) > /dev/null 2> /dev/null CMD: FRAMAC_LIB=lib/fc ./bin/toplevel.byte OPT: -load-script tests/journal/result/control_journal -journal-disable CMD: FRAMAC_LIB=lib/fc ./bin/toplevel.byte OPT: -load-script tests/journal/result/control_journal_bis -calldeps -journal-disable - EXECNOW: BIN abstract_cpt_journal.ml FRAMAC_LIB=lib/fc ./bin/toplevel.byte -journal-enable -load-script tests/journal/abstract_cpt.ml -load-script tests/journal/use_cpt.ml -journal-name tests/journal/result/abstract_cpt_journal.ml > /dev/null 2> /dev/null + EXECNOW: make -s @PTEST_DIR@/abstract_cpt.cmxs + EXECNOW: BIN abstract_cpt_journal.ml FRAMAC_LIB=lib/fc ./bin/toplevel.byte -journal-enable -load-module @PTEST_DIR@/abstract_cpt -load-script tests/journal/use_cpt.ml -journal-name tests/journal/result/abstract_cpt_journal.ml > /dev/null 2> /dev/null CMD: FRAMAC_LIB=lib/fc ./bin/toplevel.byte - OPT: -load-script tests/journal/result/abstract_cpt_journal.ml -load-script tests/journal/abstract_cpt.ml -load-script tests/journal/use_cpt.ml - + OPT: -load-script tests/journal/result/abstract_cpt_journal.ml -load-module @PTEST_DIR@/abstract_cpt -load-script tests/journal/use_cpt.ml */ int x,y,c,d; diff --git a/tests/journal/control2.c b/tests/journal/control2.c index 23ddc595233ca4fa9916cec51ca7c8b50db6c2f3..8e04f8022b2c5bddd51246e207e48be678a99c8f 100644 --- a/tests/journal/control2.c +++ b/tests/journal/control2.c @@ -1,5 +1,5 @@ /* run.config - EXECNOW: BIN control_journal2.ml ./bin/toplevel.opt -journal-enable -val -deps -out -main f -journal-name tests/journal/result/control_journal2.ml tests/journal/control2.c > /dev/null 2> /dev/null + EXECNOW: BIN control_journal2.ml ./bin/toplevel.opt -journal-enable -eva -deps -out -main f -journal-name tests/journal/result/control_journal2.ml tests/journal/control2.c > /dev/null 2> /dev/null EXECNOW: LOG control2_sav.res LOG control2_sav.err BIN control_journal_next2.ml FRAMAC_LIB=lib/fc ./bin/toplevel.byte -journal-enable -load-script tests/journal/result/control_journal2 -lib-entry -journal-name tests/journal/result/control_journal_next2.ml tests/journal/control2.c > ./tests/journal/result/control2_sav.res 2> ./tests/journal/result/control2_sav.err CMD: FRAMAC_LIB=lib/fc ./bin/toplevel.byte OPT: -load-script tests/journal/result/control_journal_next2 diff --git a/tests/journal/intra.i b/tests/journal/intra.i index 7f995e7184bccb9f7321fa6505ddf97d9066ee27..dea5fdbface5e49569a2d52996e69ac8b4d52f06 100644 --- a/tests/journal/intra.i +++ b/tests/journal/intra.i @@ -1,7 +1,7 @@ /* run.config - EXECNOW: make -s tests/journal/intra.cmxs - EXECNOW: BIN intra_journal.ml @frama-c@ -val-show-progress -load-module ./tests/journal/intra -journal-enable -journal-name tests/journal/result/intra_journal.ml tests/journal/intra.i > /dev/null 2> /dev/null - CMD: @frama-c@ -load-module ./tests/journal/intra + EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs + EXECNOW: BIN intra_journal.ml @frama-c@ -eva-show-progress -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs -journal-enable -journal-name tests/journal/result/intra_journal.ml @PTEST_DIR@/@PTEST_NAME@.i > /dev/null 2> /dev/null + CMD: @frama-c@ -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs OPT: -load-script tests/journal/result/intra_journal -journal-disable */ diff --git a/tests/libc/check_parsing_individual_headers.ml b/tests/libc/check_parsing_individual_headers.ml index 48cf144e8e977d5284b4755beae39fe9637535bc..29066eb45e43d60b1375d4df389d319f1be5124d 100644 --- a/tests/libc/check_parsing_individual_headers.ml +++ b/tests/libc/check_parsing_individual_headers.ml @@ -11,7 +11,7 @@ let blacklist () = let libc = (Filename.concat (Sys.getenv "FRAMAC_SHARE") "libc") in List.map (fun f -> Datatype.Filepath.of_string (Filename.concat libc f)) - ["tgmath.h"; "complex.h"; "__fc_machdep_linux_gcc_shared.h"] + ["tgmath.h"; "complex.h"; "__fc_machdep_linux_shared.h"] (* only goes down one level, which is enough for the libc *) let collect_headers libc_dir = diff --git a/tests/libc/coverage.c b/tests/libc/coverage.c index a8ea5340d59344ea6d3d9c2a2617fb4307f78539..40d98270dc8eff9237744fe29ebf4c816fa0b825 100644 --- a/tests/libc/coverage.c +++ b/tests/libc/coverage.c @@ -1,5 +1,5 @@ /* run.config* - OPT: -no-val-builtins-auto -val-show-progress share/libc/string.c -val -slevel 6 -metrics-eva-cover -then -metrics-libc + OPT: -eva-no-builtins-auto -eva-show-progress share/libc/string.c -eva -slevel 6 -metrics-eva-cover -then -metrics-libc */ #include "string.h" diff --git a/tests/libc/fc_libc.c b/tests/libc/fc_libc.c index c110f77ab620ca49ccc9b96c4333bcb524f2a142..5688d0e6e4f9e8c9ab57ab0ce3c62c2b9fdbdbd0 100644 --- a/tests/libc/fc_libc.c +++ b/tests/libc/fc_libc.c @@ -1,7 +1,10 @@ /* run.config* - OPT: -load-script tests/libc/check_libc_naming_conventions.ml -print -cpp-extra-args='-nostdinc -Ishare/libc' -metrics -metrics-libc -load-script tests/libc/check_const.ml -load-module metrics -val @VALUECONFIG@ -then -lib-entry -no-print -metrics-no-libc + EXECNOW: make -s @PTEST_DIR@/check_libc_naming_conventions.cmxs + EXECNOW: make -s @PTEST_DIR@/check_const.cmxs + EXECNOW: make -s @PTEST_DIR@/check_parsing_individual_headers.cmxs + OPT: -load-module @PTEST_DIR@/check_libc_naming_conventions -print -cpp-extra-args='-nostdinc -Ishare/libc' -metrics -metrics-libc -load-module @PTEST_DIR@/check_const -load-module metrics -eva @VALUECONFIG@ -then -lib-entry -no-print -metrics-no-libc OPT: -print -print-libc - OPT: -load-script tests/libc/check_parsing_individual_headers.ml + OPT: -load-module @PTEST_DIR@/check_parsing_individual_headers CMD: ./tests/libc/check_full_libc.sh OPT: **/ @@ -13,7 +16,7 @@ // functions. #define _XOPEN_SOURCE 600 #define _POSIX_C_SOURCE 200112L - +#define _GNU_SOURCE 1 #include "share/libc/fc_runtime.c" @@ -63,9 +66,10 @@ #include "__fc_define_useconds_t.h" #include "__fc_define_wchar_t.h" #include "__fc_define_wint_t.h" +#include "__fc_gcc_builtins.h" #include "__fc_inet.h" #include "__fc_machdep.h" -//#include "__fc_machdep_linux_gcc_shared.h" +//#include "__fc_machdep_linux_shared.h" #include "fcntl.h" #include "__fc_select.h" #include "__fc_string_axiomatic.h" @@ -81,13 +85,7 @@ #include "inttypes.h" #include "iso646.h" #include "libgen.h" -#include "libintl.h" #include "limits.h" -#include "linux/fs.h" -#include "linux/if_addr.h" -#include "linux/if_netlink.h" -#include "linux/netlink.h" -#include "linux/rtnetlink.h" #include "locale.h" #include "malloc.h" #include "math.h" @@ -95,9 +93,6 @@ #include "netdb.h" #include "net/if.h" #include "netinet/in.h" -#include "netinet/in_systm.h" -#include "netinet/ip.h" -#include "netinet/ip_icmp.h" #include "netinet/tcp.h" #include "nl_types.h" #include "poll.h" @@ -123,7 +118,6 @@ #include "sys/ipc.h" #include "syslog.h" #include "sys/mman.h" -#include "sys/param.h" #include "sys/random.h" #include "sys/resource.h" #include "sys/select.h" @@ -131,7 +125,6 @@ #include "sys/signal.h" #include "sys/socket.h" #include "sys/stat.h" -#include "sys/sysctl.h" #include "sys/time.h" #include "sys/times.h" #include "sys/timex.h" @@ -143,7 +136,6 @@ #include "termios.h" #include "tgmath.h" #include "time.h" -#include "uchar.h" #include "unistd.h" #include "utime.h" #include "utmpx.h" diff --git a/tests/libc/inttypes_h.c b/tests/libc/inttypes_h.c index 4fbe71cf8a26e8cc0a391cf0df53002aa4263ac9..646c8009c1f74e1168210e690797f58305b83c23 100644 --- a/tests/libc/inttypes_h.c +++ b/tests/libc/inttypes_h.c @@ -1,12 +1,12 @@ /* run.config -OPT: -kernel-msg-key pp -machdep x86_16 -print -OPT: -kernel-msg-key pp -machdep x86_32 -print -OPT: -kernel-msg-key pp -machdep x86_64 -print -OPT: -kernel-msg-key pp -machdep gcc_x86_16 -print -OPT: -kernel-msg-key pp -machdep gcc_x86_32 -print -OPT: -kernel-msg-key pp -machdep gcc_x86_64 -print -OPT: -kernel-msg-key pp -machdep ppc_32 -print -OPT: -kernel-msg-key pp -machdep msvc_x86_64 -print +OPT: -machdep x86_16 -print +OPT: -machdep x86_32 -print +OPT: -machdep x86_64 -print +OPT: -machdep gcc_x86_16 -print +OPT: -machdep gcc_x86_32 -print +OPT: -machdep gcc_x86_64 -print +OPT: -machdep ppc_32 -print +OPT: -machdep msvc_x86_64 -print */ #include <inttypes.h> diff --git a/tests/libc/libgen_h.c b/tests/libc/libgen_h.c new file mode 100644 index 0000000000000000000000000000000000000000..df9e7eaf4c2e3f29d8f6deb6b76e7b5c4fb9fbab --- /dev/null +++ b/tests/libc/libgen_h.c @@ -0,0 +1,20 @@ +/*run.config + +*/ + +#include <libgen.h> + +int main() { + char path[128] = "/tmp/bla/ble.c"; + char *base = basename(path); + //@ assert valid_string(base); + char *base2 = basename(0); + //@ assert valid_string(base2); + + char *dir = dirname(path); + //@ assert valid_string(dir); + char *dir2 = dirname(0); + //@ assert valid_string(dir2); + + return 0; +} diff --git a/tests/libc/more_gcc_builtins.c b/tests/libc/more_gcc_builtins.c new file mode 100644 index 0000000000000000000000000000000000000000..835f64e8cc80a61eacd93ae770e9db917b75881f --- /dev/null +++ b/tests/libc/more_gcc_builtins.c @@ -0,0 +1,46 @@ +/* run.config + STDOPT: #"-machdep gcc_x86_32" + */ + + +#include <limits.h> + +int main() { + int res; + _Bool r = __builtin_sadd_overflow(42, 43, &res); + //@ assert res == 42 + 43; + //@ assert r == 0; + r = __builtin_sadd_overflow(42, INT_MAX, &res); + //@ assert res == (int)(42 + INT_MAX); + //@ assert r == 1; + long lres; + r = __builtin_saddl_overflow(42, LONG_MAX, &lres); + //@ assert lres == (long)(42 + LONG_MAX); + //@ assert r == 1; + r = __builtin_saddl_overflow(-2, -LONG_MAX, &lres); + //@ assert lres == (long)(-2 - LONG_MAX); + //@ assert r == 1; + long long llres; + r = __builtin_saddll_overflow(-5, -LLONG_MAX, &llres); + //@ assert llres == (long long)(-5 - LLONG_MAX); + //@ assert r == 1; + unsigned ures; + r = __builtin_uadd_overflow(9, UINT_MAX, &ures); + //@ assert ures == (unsigned)(9 + UINT_MAX); + //@ assert r == 1; + unsigned long ulres; + r = __builtin_uaddl_overflow(9, ULONG_MAX, &ulres); + //@ assert ulres == (unsigned long)(9 + ULONG_MAX); + //@ assert r == 1; + unsigned long long ullres; + r = __builtin_uaddll_overflow(9, ULLONG_MAX, &ullres); + //@ assert ullres == (unsigned long long)(9 + ULLONG_MAX); + //@ assert r == 1; + r = __builtin_usubll_overflow(-5, ULLONG_MAX, &ullres); + //@ assert ullres == (unsigned long long)(-5 - ULLONG_MAX); + //@ assert r == 1; + r = __builtin_smulll_overflow(-1, LLONG_MIN, &llres); + //@ assert llres == (long long)(-1 * LLONG_MIN); + //@ assert r == 1; + return 0; +} diff --git a/tests/libc/netdb_c.c b/tests/libc/netdb_c.c index c4bba7aca6d804fc27d7f76a2734b727f7cb22d8..ab3f26fe01cc2064fcbd2de3e9a4dce0f3f1c245 100644 --- a/tests/libc/netdb_c.c +++ b/tests/libc/netdb_c.c @@ -1,5 +1,5 @@ /*run.config - STDOPT: #"-val-split-return auto -slevel 2" + STDOPT: #"-eva-split-return auto -slevel 2" */ // Extract based on Linux Programmer's Manual, GETADDRINFO(3) man page #include <sys/types.h> diff --git a/tests/libc/oracle/fc_libc.0.res.oracle b/tests/libc/oracle/fc_libc.0.res.oracle index 70fdbed476dd6897f1d3a6ff345c8a34a98ed0b0..60e8d3f8a81faf8bef3d2ea162812f2ec0c00651 100644 --- a/tests/libc/oracle/fc_libc.0.res.oracle +++ b/tests/libc/oracle/fc_libc.0.res.oracle @@ -4,10 +4,10 @@ [eva] Initial state computed [eva:initial-state] Values of globals at initialization -[eva] tests/libc/fc_libc.c:156: assertion got status valid. -[eva] tests/libc/fc_libc.c:157: assertion got status valid. -[eva] tests/libc/fc_libc.c:158: assertion got status valid. -[eva] tests/libc/fc_libc.c:159: assertion got status valid. +[eva] tests/libc/fc_libc.c:148: assertion got status valid. +[eva] tests/libc/fc_libc.c:149: assertion got status valid. +[eva] tests/libc/fc_libc.c:150: assertion got status valid. +[eva] tests/libc/fc_libc.c:151: assertion got status valid. [eva] Recording results for main [eva] done for function main [eva] ====== VALUES COMPUTED ====== @@ -37,7 +37,7 @@ wcslen (2 calls); wcsncat (0 call); wcsncpy (0 call); wmemcpy (0 call); wmemset (0 call); - Undefined functions (320) + Undefined functions (360) ========================= FD_CLR (0 call); FD_ISSET (0 call); FD_SET (0 call); FD_ZERO (0 call); Frama_C_abort (1 call); Frama_C_char_interval (0 call); @@ -49,26 +49,36 @@ Frama_C_unsigned_long_interval (0 call); Frama_C_unsigned_long_long_interval (0 call); Frama_C_unsigned_short_interval (0 call); Frama_C_update_entropy (5 calls); - _Exit (0 call); __fc_fpclassify (0 call); __fc_fpclassifyf (0 call); - __va_fcntl_flock (0 call); __va_fcntl_int (0 call); - __va_fcntl_void (0 call); __va_ioctl_int (0 call); __va_ioctl_ptr (0 call); - __va_ioctl_void (0 call); __va_open_mode_t (0 call); - __va_open_void (0 call); __va_openat_mode_t (0 call); - __va_openat_void (0 call); abort (0 call); accept (0 call); access (0 call); - acos (0 call); acosf (0 call); acosh (0 call); acoshf (0 call); - acoshl (0 call); acosl (0 call); alloca (0 call); asin (0 call); - asinf (0 call); asinl (0 call); at_quick_exit (0 call); atan (0 call); - atan2 (0 call); atan2f (0 call); atanf (0 call); atanl (0 call); - atexit (0 call); atof (0 call); atol (0 call); atoll (0 call); - bind (0 call); bsearch (0 call); bzero (0 call); ceil (0 call); - ceilf (0 call); ceill (0 call); clearerr (0 call); - clearerr_unlocked (0 call); clock (0 call); clock_gettime (0 call); - clock_nanosleep (0 call); close (0 call); closedir (0 call); - closelog (0 call); connect (0 call); cos (0 call); cosf (0 call); - cosl (0 call); creat (0 call); difftime (0 call); div (0 call); - dup (0 call); dup2 (0 call); execl (0 call); execle (0 call); - execlp (0 call); execv (0 call); execve (0 call); execvp (0 call); - exit (0 call); exp (0 call); expf (0 call); fabsl (0 call); fclose (0 call); + _Exit (0 call); __builtin_sadd_overflow (0 call); + __builtin_saddl_overflow (0 call); __builtin_saddll_overflow (0 call); + __builtin_smul_overflow (0 call); __builtin_smull_overflow (0 call); + __builtin_smulll_overflow (0 call); __builtin_ssub_overflow (0 call); + __builtin_ssubl_overflow (0 call); __builtin_ssubll_overflow (0 call); + __builtin_uadd_overflow (0 call); __builtin_uaddl_overflow (0 call); + __builtin_uaddll_overflow (0 call); __builtin_umul_overflow (0 call); + __builtin_umull_overflow (0 call); __builtin_umulll_overflow (0 call); + __builtin_usub_overflow (0 call); __builtin_usubl_overflow (0 call); + __builtin_usubll_overflow (0 call); __fc_fpclassify (0 call); + __fc_fpclassifyf (0 call); __va_fcntl_flock (0 call); + __va_fcntl_int (0 call); __va_fcntl_void (0 call); __va_ioctl_int (0 call); + __va_ioctl_ptr (0 call); __va_ioctl_void (0 call); + __va_open_mode_t (0 call); __va_open_void (0 call); + __va_openat_mode_t (0 call); __va_openat_void (0 call); abort (0 call); + accept (0 call); access (0 call); acos (0 call); acosf (0 call); + acosh (0 call); acoshf (0 call); acoshl (0 call); acosl (0 call); + alloca (0 call); asin (0 call); asinf (0 call); asinl (0 call); + at_quick_exit (0 call); atan (0 call); atan2 (0 call); atan2f (0 call); + atanf (0 call); atanl (0 call); atexit (0 call); atof (0 call); + atol (0 call); atoll (0 call); basename (0 call); bind (0 call); + bsearch (0 call); bzero (0 call); ceil (0 call); ceilf (0 call); + ceill (0 call); clearerr (0 call); clearerr_unlocked (0 call); + clock (0 call); clock_gettime (0 call); clock_nanosleep (0 call); + close (0 call); closedir (0 call); closelog (0 call); connect (0 call); + cos (0 call); cosf (0 call); cosl (0 call); creat (0 call); ctime (0 call); + difftime (0 call); dirname (0 call); div (0 call); dup (0 call); + dup2 (0 call); execl (0 call); execle (0 call); execlp (0 call); + execv (0 call); execve (0 call); execvp (0 call); exit (0 call); + exp (0 call); expf (0 call); fabsl (0 call); fclose (0 call); fcntl (0 call); fdopen (0 call); feof (2 calls); feof_unlocked (0 call); ferror (2 calls); ferror_unlocked (0 call); fflush (0 call); fgetc (1 call); fgetpos (0 call); fgets (0 call); fgetws (0 call); fileno (0 call); @@ -79,12 +89,15 @@ freopen (0 call); fseek (0 call); fsetpos (0 call); ftell (0 call); ftrylockfile (0 call); funlockfile (0 call); fwrite (0 call); gai_strerror (0 call); getc (0 call); getc_unlocked (0 call); - getchar (0 call); getchar_unlocked (0 call); gethostname (0 call); + getchar (0 call); getchar_unlocked (0 call); getcwd (0 call); + getegid (0 call); geteuid (0 call); getgid (0 call); gethostname (0 call); getitimer (0 call); getopt (0 call); getopt_long (0 call); - getopt_long_only (0 call); getpriority (0 call); getrlimit (0 call); - getrusage (0 call); gets (0 call); getsockopt (0 call); - gettimeofday (0 call); getuid (0 call); gmtime (0 call); htonl (0 call); - htons (0 call); iconv (0 call); iconv_close (0 call); iconv_open (0 call); + getopt_long_only (0 call); getpid (0 call); getppid (0 call); + getpriority (0 call); getpwuid (0 call); getresgid (0 call); + getresuid (0 call); getrlimit (0 call); getrusage (0 call); gets (0 call); + getsid (0 call); getsockopt (0 call); gettimeofday (0 call); + getuid (0 call); gmtime (0 call); htonl (0 call); htons (0 call); + iconv (0 call); iconv_close (0 call); iconv_open (0 call); inet_addr (0 call); inet_ntoa (0 call); inet_ntop (0 call); inet_pton (0 call); isascii (0 call); kill (0 call); labs (0 call); ldiv (0 call); listen (0 call); llabs (0 call); lldiv (0 call); @@ -95,8 +108,8 @@ memoverlap (1 call); mkdir (0 call); mktime (0 call); nan (0 call); nanf (0 call); nanl (0 call); nanosleep (0 call); ntohl (0 call); ntohs (0 call); open (0 call); openat (0 call); opendir (0 call); - openlog (0 call); pclose (0 call); perror (0 call); pipe (0 call); - poll (0 call); popen (0 call); pow (0 call); powf (0 call); + openlog (0 call); pathconf (0 call); pclose (0 call); perror (0 call); + pipe (0 call); poll (0 call); popen (0 call); pow (0 call); powf (0 call); pthread_cond_broadcast (0 call); pthread_cond_destroy (0 call); pthread_cond_init (0 call); pthread_cond_wait (0 call); pthread_create (0 call); pthread_join (0 call); @@ -108,35 +121,40 @@ readv (0 call); realloc (3 calls); recv (0 call); recvmsg (0 call); remove (0 call); rename (0 call); rewind (0 call); round (0 call); roundf (0 call); roundl (0 call); select (0 call); send (0 call); - setbuf (0 call); sethostname (0 call); setitimer (0 call); setjmp (0 call); - setlogmask (0 call); setpriority (0 call); setrlimit (0 call); - setsid (0 call); setsockopt (0 call); settimeofday (0 call); - setvbuf (0 call); shutdown (0 call); sigaddset (0 call); sigdelset (0 call); - sigemptyset (0 call); sigfillset (0 call); sigismember (0 call); - siglongjmp (0 call); signal (0 call); sigprocmask (0 call); sin (0 call); - sinf (0 call); sinl (0 call); socket (0 call); socketpair (0 call); - sqrt (0 call); sqrtf (0 call); sqrtl (0 call); srand (0 call); - srand48 (0 call); srandom (0 call); stat (0 call); strcoll (0 call); - strcspn (0 call); strftime (0 call); strncasecmp (0 call); strpbrk (0 call); - strsep (0 call); strspn (0 call); strtod (0 call); strtof (0 call); - strtoimax (0 call); strtok (0 call); strtok_r (0 call); strtol (0 call); - strtold (0 call); strtoll (0 call); strtoul (0 call); strtoull (0 call); - strxfrm (0 call); sync (0 call); sysconf (0 call); syslog (0 call); - system (0 call); tcgetattr (0 call); tcsetattr (0 call); time (0 call); - times (0 call); tmpfile (0 call); tmpnam (0 call); trunc (0 call); - truncf (0 call); truncl (0 call); tzset (0 call); umask (0 call); - ungetc (0 call); usleep (0 call); utimes (0 call); vfprintf (0 call); - vfscanf (0 call); vprintf (0 call); vscanf (0 call); vsnprintf (0 call); - vsprintf (0 call); vsyslog (0 call); wait (0 call); waitpid (0 call); - wcschr (0 call); wcscmp (0 call); wcscspn (0 call); wcslcat (0 call); - wcslcpy (0 call); wcsncmp (0 call); wcspbrk (0 call); wcsrchr (0 call); - wcsspn (0 call); wcsstr (0 call); wcstombs (0 call); wctomb (0 call); - wmemchr (0 call); wmemcmp (0 call); wmemmove (0 call); write (0 call); + setbuf (0 call); setegid (0 call); seteuid (0 call); setgid (0 call); + sethostname (0 call); setitimer (0 call); setjmp (0 call); + setlogmask (0 call); setpriority (0 call); setregid (0 call); + setresgid (0 call); setresuid (0 call); setreuid (0 call); + setrlimit (0 call); setsid (0 call); setsockopt (0 call); + settimeofday (0 call); setuid (0 call); setvbuf (0 call); shutdown (0 call); + sigaddset (0 call); sigdelset (0 call); sigemptyset (0 call); + sigfillset (0 call); sigismember (0 call); siglongjmp (0 call); + signal (0 call); sigprocmask (0 call); sin (0 call); sinf (0 call); + sinl (0 call); socket (0 call); socketpair (0 call); sqrt (0 call); + sqrtf (0 call); sqrtl (0 call); srand (0 call); srand48 (0 call); + srandom (0 call); stat (0 call); strcoll (0 call); strcspn (0 call); + strftime (0 call); strncasecmp (0 call); strpbrk (0 call); strsep (0 call); + strspn (0 call); strtod (0 call); strtof (0 call); strtoimax (0 call); + strtok (0 call); strtok_r (0 call); strtol (0 call); strtold (0 call); + strtoll (0 call); strtoul (0 call); strtoull (0 call); strxfrm (0 call); + sync (0 call); sysconf (0 call); syslog (0 call); system (0 call); + tcgetattr (0 call); tcsetattr (0 call); time (0 call); times (0 call); + tmpfile (0 call); tmpnam (0 call); trunc (0 call); truncf (0 call); + truncl (0 call); tzset (0 call); umask (0 call); ungetc (0 call); + usleep (0 call); utimes (0 call); vfprintf (0 call); vfscanf (0 call); + vprintf (0 call); vscanf (0 call); vsnprintf (0 call); vsprintf (0 call); + vsyslog (0 call); wait (0 call); waitpid (0 call); wcschr (0 call); + wcscmp (0 call); wcscspn (0 call); wcslcat (0 call); wcslcpy (0 call); + wcsncmp (0 call); wcspbrk (0 call); wcsrchr (0 call); wcsspn (0 call); + wcsstr (0 call); wcstombs (0 call); wctomb (0 call); wmemchr (0 call); + wmemcmp (0 call); wmemmove (0 call); write (0 call); - 'Extern' global variables (9) - ============================= - __fc_hostname; __fc_mblen_state; __fc_mbtowc_state; __fc_strerror; - __fc_wctomb_state; optarg; opterr; optopt; tzname + 'Extern' global variables (17) + ============================== + __fc_basename; __fc_dirname; __fc_getpwuid_pw_dir; __fc_getpwuid_pw_gid; + __fc_getpwuid_pw_name; __fc_getpwuid_pw_passwd; __fc_getpwuid_pw_shell; + __fc_getpwuid_pw_uid; __fc_hostname; __fc_mblen_state; __fc_mbtowc_state; + __fc_strerror; __fc_wctomb_state; optarg; opterr; optopt; tzname Potential entry points (1) ========================== @@ -146,13 +164,13 @@ ============== Sloc = 948 Decision point = 183 - Global variables = 44 + Global variables = 58 If = 174 Loop = 40 Goto = 78 Assignment = 379 Exit point = 73 - Function = 393 + Function = 433 Function call = 73 Pointer dereferencing = 146 Cyclomatic complexity = 256 @@ -161,6 +179,7 @@ #include "__fc_builtin.h" #include "__fc_define_fd_set_t.h" #include "__fc_define_useconds_t.h" +#include "__fc_gcc_builtins.h" #include "__fc_select.h" #include "alloca.h" #include "assert.c" @@ -175,6 +194,7 @@ #include "glob.h" #include "iconv.h" #include "inttypes.h" +#include "libgen.h" #include "locale.c" #include "locale.h" #include "math.c" @@ -183,6 +203,7 @@ #include "netdb.h" #include "poll.h" #include "pthread.h" +#include "pwd.h" #include "setjmp.h" #include "signal.h" #include "stdarg.h" diff --git a/tests/libc/oracle/fc_libc.1.res.oracle b/tests/libc/oracle/fc_libc.1.res.oracle index e21d56b45d84a4b10ea1fcaf158bc7331500f8b8..ca6d82677730323b0caf2c381e8440319f4a8896 100644 --- a/tests/libc/oracle/fc_libc.1.res.oracle +++ b/tests/libc/oracle/fc_libc.1.res.oracle @@ -31,8 +31,8 @@ struct __anonstruct_glob_t_3 { void (*gl_closedir)(void *) ; void *(*gl_readdir)(void *) ; void *(*gl_opendir)(char const *) ; - int (*gl_lstat)(char const *, void *) ; - int (*gl_stat)(char const *, void *) ; + int (*gl_lstat)(char const * __restrict , void * __restrict ) ; + int (*gl_stat)(char const * __restrict , void * __restrict ) ; }; typedef struct __anonstruct_glob_t_3 glob_t; typedef int wchar_t; @@ -291,6 +291,14 @@ struct pollfd { short revents ; }; typedef unsigned long nfds_t; +struct passwd { + char *pw_name ; + char *pw_passwd ; + uid_t pw_uid ; + gid_t pw_gid ; + char *pw_dir ; + char *pw_shell ; +}; typedef int ( jmp_buf)[5]; struct __anonstruct_sigjmp_buf_43 { jmp_buf buf ; @@ -1398,7 +1406,7 @@ extern long long atoll(char const *nptr); complete behaviors store_position, no_storage; disjoint behaviors store_position, no_storage; */ -extern double strtod(char const *nptr, char **endptr); +extern double strtod(char const * __restrict nptr, char ** __restrict endptr); /*@ requires valid_nptr: \valid_read(nptr); requires separation: \separated(nptr, endptr); @@ -1426,7 +1434,7 @@ extern double strtod(char const *nptr, char **endptr); complete behaviors store_position, no_storage; disjoint behaviors store_position, no_storage; */ -extern float strtof(char const *nptr, char **endptr); +extern float strtof(char const * __restrict nptr, char ** __restrict endptr); /*@ requires valid_nptr: \valid_read(nptr); requires separation: \separated(nptr, endptr); @@ -1454,7 +1462,8 @@ extern float strtof(char const *nptr, char **endptr); complete behaviors store_position, no_storage; disjoint behaviors store_position, no_storage; */ -extern long double strtold(char const *nptr, char **endptr); +extern long double strtold(char const * __restrict nptr, + char ** __restrict endptr); /*@ requires valid_nptr: \valid_read(nptr); requires separation: \separated(nptr, endptr); @@ -1490,7 +1499,8 @@ extern long double strtold(char const *nptr, char **endptr); complete behaviors store_position, no_storage; disjoint behaviors store_position, no_storage; */ -extern long strtol(char const *nptr, char **endptr, int base); +extern long strtol(char const * __restrict nptr, char ** __restrict endptr, + int base); /*@ requires valid_nptr: \valid_read(nptr); requires separation: \separated(nptr, endptr); @@ -1526,7 +1536,8 @@ extern long strtol(char const *nptr, char **endptr, int base); complete behaviors store_position, no_storage; disjoint behaviors store_position, no_storage; */ -extern long long strtoll(char const *nptr, char **endptr, int base); +extern long long strtoll(char const * __restrict nptr, + char ** __restrict endptr, int base); /*@ requires valid_nptr: \valid_read(nptr); requires separation: \separated(nptr, endptr); @@ -1562,7 +1573,8 @@ extern long long strtoll(char const *nptr, char **endptr, int base); complete behaviors store_position, no_storage; disjoint behaviors store_position, no_storage; */ -extern unsigned long strtoul(char const *nptr, char **endptr, int base); +extern unsigned long strtoul(char const * __restrict nptr, + char ** __restrict endptr, int base); /*@ requires valid_nptr: \valid_read(nptr); requires separation: \separated(nptr, endptr); @@ -1598,7 +1610,8 @@ extern unsigned long strtoul(char const *nptr, char **endptr, int base); complete behaviors store_position, no_storage; disjoint behaviors store_position, no_storage; */ -extern unsigned long long strtoull(char const *nptr, char **endptr, int base); +extern unsigned long long strtoull(char const * __restrict nptr, + char ** __restrict endptr, int base); /*@ ghost extern int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); @@ -1860,7 +1873,8 @@ extern int mblen(char const *s, size_t n); \from (indirect: s), *(s + (0 .. n - 1)), (indirect: n), __fc_mbtowc_state; */ -extern int mbtowc(wchar_t *pwc, char const *s, size_t n); +extern int mbtowc(wchar_t * __restrict pwc, char const * __restrict s, + size_t n); /*@ ghost extern int __fc_wctomb_state; */ @@ -1878,7 +1892,8 @@ extern int wctomb(char *s, wchar_t wc); assigns *(pwcs + (0 .. n - 1)) \from (indirect: s), *(s + (0 .. n - 1)), (indirect: n); */ -extern size_t mbstowcs(wchar_t *pwcs, char const *s, size_t n); +extern size_t mbstowcs(wchar_t * __restrict pwcs, char const * __restrict s, + size_t n); /*@ requires separation: \separated(s, pwcs); assigns \result, *(s + (0 .. n - 1)); @@ -1888,7 +1903,8 @@ extern size_t mbstowcs(wchar_t *pwcs, char const *s, size_t n); assigns *(s + (0 .. n - 1)) \from (indirect: pwcs), *(pwcs + (0 .. n - 1)), (indirect: n); */ -extern size_t wcstombs(char *s, wchar_t const *pwcs, size_t n); +extern size_t wcstombs(char * __restrict s, wchar_t const * __restrict pwcs, + size_t n); int glob(char const *pattern, int flags, int (*errfunc)(char const *epath, int eerrno), glob_t *pglob) @@ -1995,7 +2011,8 @@ imaxdiv_t imaxdiv(intmax_t numer, intmax_t denom); assigns *(endptr + (..)) \from *(nptr + (..)), base; assigns __fc_errno \from *(nptr + (..)), base; */ -extern intmax_t strtoimax(char const *nptr, char **endptr, int base); +extern intmax_t strtoimax(char const * __restrict nptr, + char ** __restrict endptr, int base); /*@ requires abs_representable: (long long)(-c) ≢ c; assigns \result; @@ -2032,7 +2049,7 @@ imaxdiv_t imaxdiv(intmax_t numer, intmax_t denom) struct lconv *__frama_c_locale; -char *__frama_c_locale_names[1]; +char *__frama_c_locale_names[512]; char *setlocale(int category, char const *locale); @@ -2064,7 +2081,7 @@ struct lconv __C_locale = .int_p_sign_posn = (char)127, .int_n_sign_posn = (char)127}; struct lconv *__frama_c_locale = & __C_locale; -char *__frama_c_locale_names[1] = {(char *)"C"}; +char *__frama_c_locale_names[512] = {(char *)"C"}; /*@ requires locale_null_or_valid_string: locale ≡ \null ∨ valid_read_string(locale); @@ -2880,7 +2897,8 @@ extern int sigismember(sigset_t const *set, int signum); assigns oldset ≡ \null? \empty: *oldset \from (indirect: how), (indirect: oldset); */ -extern int sigprocmask(int how, sigset_t const *set, sigset_t *oldset); +extern int sigprocmask(int how, sigset_t const * __restrict set, + sigset_t * __restrict oldset); /*@ ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; assigns \result; @@ -3205,8 +3223,10 @@ char *__fc_gai_strerror = (char *)"<error message reported by gai_strerror>"; */ extern char const *gai_strerror(int errcode); -int getaddrinfo(char const *nodename, char const *servname, - struct addrinfo const *hints, struct addrinfo **res); +int getaddrinfo(char const * __restrict nodename, + char const * __restrict servname, + struct addrinfo const * __restrict hints, + struct addrinfo ** __restrict res); static unsigned int volatile getaddrinfo_net_state; /*@ requires @@ -3244,8 +3264,10 @@ static unsigned int volatile getaddrinfo_net_state; complete behaviors normal_request, empty_request; disjoint behaviors normal_request, empty_request; */ -int getaddrinfo(char const *nodename, char const *servname, - struct addrinfo const *hints, struct addrinfo **res) +int getaddrinfo(char const * __restrict nodename, + char const * __restrict servname, + struct addrinfo const * __restrict hints, + struct addrinfo ** __restrict res) { int __retres; if (nodename == (char const *)0) @@ -3370,7 +3392,8 @@ extern int fflush(FILE *stream); \from (indirect: *(filename + (..))), (indirect: *(mode + (..))), __fc_p_fopen; */ -extern FILE *fopen(char const *filename, char const *mode); +extern FILE *fopen(char const * __restrict filename, + char const * __restrict mode); /*@ requires valid_mode: valid_read_string(mode); ensures @@ -3401,15 +3424,17 @@ extern FILE *fdopen(int fd, char const *mode); \from (indirect: *(filename + (..))), (indirect: *(mode + (..))), __fc_p_fopen, (indirect: stream); */ -extern FILE *freopen(char const *filename, char const *mode, FILE *stream); +extern FILE *freopen(char const * __restrict filename, + char const * __restrict mode, FILE * __restrict stream); /*@ assigns *stream; assigns *stream \from buf; */ -extern void setbuf(FILE *stream, char *buf); +extern void setbuf(FILE * __restrict stream, char * __restrict buf); /*@ assigns *stream; assigns *stream \from buf, mode, size; */ -extern int setvbuf(FILE *stream, char *buf, int mode, size_t size); +extern int setvbuf(FILE * __restrict stream, char * __restrict buf, int mode, + size_t size); /*@ axiomatic format_length { logic ℤ format_length{L}(char *format) ; @@ -3419,29 +3444,33 @@ extern int setvbuf(FILE *stream, char *buf, int mode, size_t size); */ /*@ assigns *stream; assigns *stream \from *(format + (..)), arg; */ -extern int vfprintf(FILE *stream, char const *format, va_list arg); +extern int vfprintf(FILE * __restrict stream, char const * __restrict format, + va_list arg); /*@ assigns *stream; assigns *stream \from *(format + (..)), *stream; */ -extern int vfscanf(FILE *stream, char const *format, va_list arg); +extern int vfscanf(FILE * __restrict stream, char const * __restrict format, + va_list arg); /*@ assigns *__fc_stdout; assigns *__fc_stdout \from arg; */ -extern int vprintf(char const *format, va_list arg); +extern int vprintf(char const * __restrict format, va_list arg); /*@ assigns *__fc_stdin; assigns *__fc_stdin \from *(format + (..)); */ -extern int vscanf(char const *format, va_list arg); +extern int vscanf(char const * __restrict format, va_list arg); /*@ assigns *(s + (0 .. n - 1)); assigns *(s + (0 .. n - 1)) \from *(format + (..)), arg; */ -extern int vsnprintf(char *s, size_t n, char const *format, va_list arg); +extern int vsnprintf(char * __restrict s, size_t n, + char const * __restrict format, va_list arg); /*@ assigns *(s + (0 ..)); assigns *(s + (0 ..)) \from *(format + (..)), arg; */ -extern int vsprintf(char *s, char const *format, va_list arg); +extern int vsprintf(char * __restrict s, char const * __restrict format, + va_list arg); /*@ requires valid_stream: \valid(stream); ensures result_uchar_or_eof: (0 ≤ \result ≤ 255) ∨ \result ≡ -1; @@ -3460,14 +3489,14 @@ extern int fgetc(FILE *stream); assigns *(s + (0 .. size)) \from (indirect: size), (indirect: *stream); assigns \result \from s, (indirect: size), (indirect: *stream); */ -extern char *fgets(char *s, int size, FILE *stream); +extern char *fgets(char * __restrict s, int size, FILE * __restrict stream); /*@ assigns *stream; */ extern int fputc(int c, FILE *stream); /*@ assigns *stream; assigns *stream \from *(s + (..)); */ -extern int fputs(char const *s, FILE *stream); +extern int fputs(char const * __restrict s, FILE * __restrict stream); /*@ assigns \result, *stream; assigns \result \from *stream; @@ -3513,7 +3542,8 @@ extern int ungetc(int c, FILE *stream); \from size, nmemb, *stream; assigns \result \from size, *stream; */ -extern size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream); +extern size_t fread(void * __restrict ptr, size_t size, size_t nmemb, + FILE * __restrict stream); /*@ requires valid_ptr_block: \valid_read((char *)ptr + (0 .. nmemb * size - 1)); @@ -3523,11 +3553,12 @@ extern size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream); assigns *stream \from *((char *)ptr + (0 .. nmemb * size - 1)); assigns \result \from *((char *)ptr + (0 .. nmemb * size - 1)); */ -extern size_t fwrite(void const *ptr, size_t size, size_t nmemb, FILE *stream); +extern size_t fwrite(void const * __restrict ptr, size_t size, size_t nmemb, + FILE * __restrict stream); /*@ assigns *pos; assigns *pos \from *stream; */ -extern int fgetpos(FILE *stream, fpos_t *pos); +extern int fgetpos(FILE * __restrict stream, fpos_t * __restrict pos); /*@ requires valid_stream: \valid(stream); requires whence_enum: whence ≡ 0 ∨ whence ≡ 1 ∨ whence ≡ 2; @@ -3787,7 +3818,7 @@ int memcmp(void const *s1, void const *s2, size_t n); void *memchr(void const *s, int c, size_t n); -void *memcpy(void *dest, void const *src, size_t n); +void *memcpy(void * __restrict dest, void const * __restrict src, size_t n); void *memmove(void *dest, void const *src, size_t n); @@ -3907,7 +3938,7 @@ char *__fc_strtok_ptr; complete behaviors resume_str, new_str; disjoint behaviors resume_str, new_str; */ -extern char *strtok(char *s, char const *delim); +extern char *strtok(char * __restrict s, char const * __restrict delim); /*@ requires valid_string_delim: valid_read_string(delim); requires valid_saveptr: \valid(saveptr); @@ -3970,7 +4001,8 @@ extern char *strtok(char *s, char const *delim); complete behaviors resume_str, new_str; disjoint behaviors resume_str, new_str; */ -extern char *strtok_r(char *s, char const *delim, char **saveptr); +extern char *strtok_r(char * __restrict s, char const * __restrict delim, + char ** __restrict saveptr); /*@ requires valid_string_stringp: \valid(stringp) ∧ valid_string(*stringp); @@ -4001,13 +4033,17 @@ char *strncat(char *dest, char const *src, size_t n); \from (indirect: *(src + (0 ..))), (indirect: n); assigns \result \from dest; */ -extern size_t strxfrm(char *dest, char const *src, size_t n); +extern size_t strxfrm(char * __restrict dest, char const * __restrict src, + size_t n); char *strdup(char const *s); char *strndup(char const *s, size_t n); /*@ requires valid_memory_area: \valid((char *)s + (0 .. n - 1)); + ensures + s_initialized: initialization: + \initialized((char *)\old(s) + (0 .. \old(n) - 1)); ensures zero_initialized: \subset(*((char *)\old(s) + (0 .. \old(n) - 1)), {0}); assigns *((char *)s + (0 .. n - 1)); @@ -4325,7 +4361,7 @@ int unsetenv(char const *name) \from *((char *)src + (0 .. n - 1)); assigns \result \from dest; */ -void *memcpy(void *dest, void const *src, size_t n) +void *memcpy(void * __restrict dest, void const * __restrict src, size_t n) { { size_t i = (unsigned int)0; @@ -5129,6 +5165,20 @@ extern time_t mktime(struct tm *timeptr); */ extern time_t time(time_t *timer); +char __fc_ctime[26]; +char * const __fc_p_ctime = __fc_ctime; +/*@ requires valid_timer: \valid_read(timer); + requires initialization: init_timer: \initialized(timer); + ensures result_points_to_ctime: \result ≡ __fc_p_ctime; + ensures result_valid_string: valid_read_string(__fc_p_ctime); + assigns __fc_ctime[0 .. 25], \result; + assigns __fc_ctime[0 .. 25] + \from (indirect: *timer), (indirect: __fc_time); + assigns \result + \from (indirect: *timer), (indirect: __fc_time), __fc_p_ctime; + */ +extern char *ctime(time_t const *timer); + struct tm __fc_time_tm; struct tm * const __fc_p_time_tm = & __fc_time_tm; /*@ ensures @@ -5159,8 +5209,9 @@ extern struct tm *localtime(time_t const *timer); assigns \result \from (indirect: max), (indirect: *(format + (0 ..))), (indirect: *tm); */ -extern size_t strftime(char *s, size_t max, char const *format, - struct tm const *tm); +extern size_t strftime(char * __restrict s, size_t max, + char const * __restrict format, + struct tm const * __restrict tm); /*@ requires tp: \valid(tp); assigns \result, *tp, __fc_time; @@ -5386,7 +5437,8 @@ extern size_t wcscspn(wchar_t const *wcs, wchar_t const *accept); \from (indirect: *(dest + (0 ..))), (indirect: *(src + (0 .. n - 1))), (indirect: n); */ -extern size_t wcslcat(wchar_t *dest, wchar_t const *src, size_t n); +extern size_t wcslcat(wchar_t * __restrict dest, + wchar_t const * __restrict src, size_t n); /*@ requires separation: dest: src: @@ -5455,7 +5507,8 @@ extern wchar_t *wcsstr(wchar_t const *haystack, wchar_t const *needle); assigns *(ws + (0 .. n)) \from (indirect: n), (indirect: *stream); assigns \result \from ws, (indirect: n), (indirect: *stream); */ -extern wchar_t *fgetws(wchar_t *ws, int n, FILE *stream); +extern wchar_t *fgetws(wchar_t * __restrict ws, int n, + FILE * __restrict stream); /*@ axiomatic wformat_length { logic ℤ wformat_length{L}(wchar_t *format) ; @@ -5765,6 +5818,270 @@ extern void FD_SET(int fd, fd_set *fdset); */ extern void FD_ZERO(fd_set *fdset); +/*@ requires valid_res: \valid(res); + ensures initialization: res: \initialized(\old(res)); + ensures res_wrapped: *\old(res) ≡ (int)(\old(a) + \old(b)); + ensures + result_overflow: + \old(a) + \old(b) ≡ (int)(\old(a) + \old(b))? + \result ≡ 0: + \result ≡ 1; + assigns \result, *res; + assigns \result \from a, b; + assigns *res \from a, b; + */ +_Bool __builtin_sadd_overflow(int a, int b, int *res); + +/*@ requires valid_res: \valid(res); + ensures initialization: res: \initialized(\old(res)); + ensures res_wrapped: *\old(res) ≡ (long)(\old(a) + \old(b)); + ensures + result_overflow: + \old(a) + \old(b) ≡ (long)(\old(a) + \old(b))? + \result ≡ 0: + \result ≡ 1; + assigns \result, *res; + assigns \result \from a, b; + assigns *res \from a, b; + */ +_Bool __builtin_saddl_overflow(long a, long b, long *res); + +/*@ requires valid_res: \valid(res); + ensures initialization: res: \initialized(\old(res)); + ensures res_wrapped: *\old(res) ≡ (long long)(\old(a) + \old(b)); + ensures + result_overflow: + \old(a) + \old(b) ≡ (long long)(\old(a) + \old(b))? + \result ≡ 0: + \result ≡ 1; + assigns \result, *res; + assigns \result \from a, b; + assigns *res \from a, b; + */ +_Bool __builtin_saddll_overflow(long long a, long long b, long long *res); + +/*@ requires valid_res: \valid(res); + ensures initialization: res: \initialized(\old(res)); + ensures res_wrapped: *\old(res) ≡ (unsigned int)(\old(a) + \old(b)); + ensures + result_overflow: + \old(a) + \old(b) ≡ (unsigned int)(\old(a) + \old(b))? + \result ≡ 0: + \result ≡ 1; + assigns \result, *res; + assigns \result \from a, b; + assigns *res \from a, b; + */ +_Bool __builtin_uadd_overflow(unsigned int a, unsigned int b, + unsigned int *res); + +/*@ requires valid_res: \valid(res); + ensures initialization: res: \initialized(\old(res)); + ensures res_wrapped: *\old(res) ≡ (unsigned long)(\old(a) + \old(b)); + ensures + result_overflow: + \old(a) + \old(b) ≡ (unsigned long)(\old(a) + \old(b))? + \result ≡ 0: + \result ≡ 1; + assigns \result, *res; + assigns \result \from a, b; + assigns *res \from a, b; + */ +_Bool __builtin_uaddl_overflow(unsigned long a, unsigned long b, + unsigned long *res); + +/*@ requires valid_res: \valid(res); + ensures initialization: res: \initialized(\old(res)); + ensures + res_wrapped: *\old(res) ≡ (unsigned long long)(\old(a) + \old(b)); + ensures + result_overflow: + \old(a) + \old(b) ≡ (unsigned long long)(\old(a) + \old(b))? + \result ≡ 0: + \result ≡ 1; + assigns \result, *res; + assigns \result \from a, b; + assigns *res \from a, b; + */ +_Bool __builtin_uaddll_overflow(unsigned long long a, unsigned long long b, + unsigned long long *res); + +/*@ requires valid_res: \valid(res); + ensures initialization: res: \initialized(\old(res)); + ensures res_wrapped: *\old(res) ≡ (int)(\old(a) - \old(b)); + ensures + result_overflow: + \old(a) - \old(b) ≡ (int)(\old(a) - \old(b))? + \result ≡ 0: + \result ≡ 1; + assigns \result, *res; + assigns \result \from a, b; + assigns *res \from a, b; + */ +_Bool __builtin_ssub_overflow(int a, int b, int *res); + +/*@ requires valid_res: \valid(res); + ensures initialization: res: \initialized(\old(res)); + ensures res_wrapped: *\old(res) ≡ (long)(\old(a) - \old(b)); + ensures + result_overflow: + \old(a) - \old(b) ≡ (long)(\old(a) - \old(b))? + \result ≡ 0: + \result ≡ 1; + assigns \result, *res; + assigns \result \from a, b; + assigns *res \from a, b; + */ +_Bool __builtin_ssubl_overflow(long a, long b, long *res); + +/*@ requires valid_res: \valid(res); + ensures initialization: res: \initialized(\old(res)); + ensures res_wrapped: *\old(res) ≡ (long long)(\old(a) - \old(b)); + ensures + result_overflow: + \old(a) - \old(b) ≡ (long long)(\old(a) - \old(b))? + \result ≡ 0: + \result ≡ 1; + assigns \result, *res; + assigns \result \from a, b; + assigns *res \from a, b; + */ +_Bool __builtin_ssubll_overflow(long long a, long long b, long long *res); + +/*@ requires valid_res: \valid(res); + ensures initialization: res: \initialized(\old(res)); + ensures res_wrapped: *\old(res) ≡ (unsigned int)(\old(a) - \old(b)); + ensures + result_overflow: + \old(a) - \old(b) ≡ (unsigned int)(\old(a) - \old(b))? + \result ≡ 0: + \result ≡ 1; + assigns \result, *res; + assigns \result \from a, b; + assigns *res \from a, b; + */ +_Bool __builtin_usub_overflow(unsigned int a, unsigned int b, + unsigned int *res); + +/*@ requires valid_res: \valid(res); + ensures initialization: res: \initialized(\old(res)); + ensures res_wrapped: *\old(res) ≡ (unsigned long)(\old(a) - \old(b)); + ensures + result_overflow: + \old(a) - \old(b) ≡ (unsigned long)(\old(a) - \old(b))? + \result ≡ 0: + \result ≡ 1; + assigns \result, *res; + assigns \result \from a, b; + assigns *res \from a, b; + */ +_Bool __builtin_usubl_overflow(unsigned long a, unsigned long b, + unsigned long *res); + +/*@ requires valid_res: \valid(res); + ensures initialization: res: \initialized(\old(res)); + ensures + res_wrapped: *\old(res) ≡ (unsigned long long)(\old(a) - \old(b)); + ensures + result_overflow: + \old(a) - \old(b) ≡ (unsigned long long)(\old(a) - \old(b))? + \result ≡ 0: + \result ≡ 1; + assigns \result, *res; + assigns \result \from a, b; + assigns *res \from a, b; + */ +_Bool __builtin_usubll_overflow(unsigned long long a, unsigned long long b, + unsigned long long *res); + +/*@ requires valid_res: \valid(res); + ensures initialization: res: \initialized(\old(res)); + ensures res_wrapped: *\old(res) ≡ (int)(\old(a) * \old(b)); + ensures + result_overflow: + \old(a) * \old(b) ≡ (int)(\old(a) * \old(b))? + \result ≡ 0: + \result ≡ 1; + assigns \result, *res; + assigns \result \from a, b; + assigns *res \from a, b; + */ +_Bool __builtin_smul_overflow(int a, int b, int *res); + +/*@ requires valid_res: \valid(res); + ensures initialization: res: \initialized(\old(res)); + ensures res_wrapped: *\old(res) ≡ (long)(\old(a) * \old(b)); + ensures + result_overflow: + \old(a) * \old(b) ≡ (long)(\old(a) * \old(b))? + \result ≡ 0: + \result ≡ 1; + assigns \result, *res; + assigns \result \from a, b; + assigns *res \from a, b; + */ +_Bool __builtin_smull_overflow(long a, long b, long *res); + +/*@ requires valid_res: \valid(res); + ensures initialization: res: \initialized(\old(res)); + ensures res_wrapped: *\old(res) ≡ (long long)(\old(a) * \old(b)); + ensures + result_overflow: + \old(a) * \old(b) ≡ (long long)(\old(a) * \old(b))? + \result ≡ 0: + \result ≡ 1; + assigns \result, *res; + assigns \result \from a, b; + assigns *res \from a, b; + */ +_Bool __builtin_smulll_overflow(long long a, long long b, long long *res); + +/*@ requires valid_res: \valid(res); + ensures initialization: res: \initialized(\old(res)); + ensures res_wrapped: *\old(res) ≡ (unsigned int)(\old(a) * \old(b)); + ensures + result_overflow: + \old(a) * \old(b) ≡ (unsigned int)(\old(a) * \old(b))? + \result ≡ 0: + \result ≡ 1; + assigns \result, *res; + assigns \result \from a, b; + assigns *res \from a, b; + */ +_Bool __builtin_umul_overflow(unsigned int a, unsigned int b, + unsigned int *res); + +/*@ requires valid_res: \valid(res); + ensures initialization: res: \initialized(\old(res)); + ensures res_wrapped: *\old(res) ≡ (unsigned long)(\old(a) * \old(b)); + ensures + result_overflow: + \old(a) * \old(b) ≡ (unsigned long)(\old(a) * \old(b))? + \result ≡ 0: + \result ≡ 1; + assigns \result, *res; + assigns \result \from a, b; + assigns *res \from a, b; + */ +_Bool __builtin_umull_overflow(unsigned long a, unsigned long b, + unsigned long *res); + +/*@ requires valid_res: \valid(res); + ensures initialization: res: \initialized(\old(res)); + ensures + res_wrapped: *\old(res) ≡ (unsigned long long)(\old(a) * \old(b)); + ensures + result_overflow: + \old(a) * \old(b) ≡ (unsigned long long)(\old(a) * \old(b))? + \result ≡ 0: + \result ≡ 1; + assigns \result, *res; + assigns \result \from a, b; + assigns *res \from a, b; + */ +_Bool __builtin_umulll_overflow(unsigned long long a, unsigned long long b, + unsigned long long *res); + /*@ requires valid_filename: valid_read_string(filename); assigns \result; assigns \result \from (indirect: *(filename + (0 ..))), (indirect: mode); @@ -5912,7 +6229,7 @@ extern int utimes(char const *path, struct timeval const * /*[2]*/ times); tv_not_null, tv_and_tz_null; */ -extern int gettimeofday(struct timeval *tv, void *tz); +extern int gettimeofday(struct timeval * __restrict tv, void * __restrict tz); /*@ assigns \result, __fc_time, __fc_tz; assigns \result @@ -6031,8 +6348,9 @@ extern int getitimer(int which, struct itimerval *curr_value); disjoint behaviors invalid, prof, virtual, real; */ -extern int setitimer(int which, struct itimerval const *new_value, - struct itimerval *old_value); +extern int setitimer(int which, + struct itimerval const * __restrict new_value, + struct itimerval * __restrict old_value); /*@ ghost int volatile __fc_fds_state; */ /*@ requires nfds: nfds ≥ 0; @@ -6094,8 +6412,10 @@ extern int select(int nfds, fd_set *readfds, fd_set *writefds, assigns *(*(outbuf + (0 .. *outbytesleft - 1))) \from *(*(inbuf + (0 .. *inbytesleft - 1))); */ -extern size_t iconv(iconv_t cd, char **inbuf, size_t *inbytesleft, - char **outbuf, size_t *outbytesleft); +extern size_t iconv(iconv_t cd, char ** __restrict inbuf, + size_t * __restrict inbytesleft, + char ** __restrict outbuf, + size_t * __restrict outbytesleft); /*@ ensures result_zero_or_neg: \result ≡ 0 ∨ \result ≡ -1; assigns __fc_errno; @@ -6107,6 +6427,36 @@ extern int iconv_close(iconv_t); */ extern iconv_t iconv_open(char const *tocode, char const *fromcode); +extern char __fc_basename[256]; + +char *__fc_p_basename = __fc_basename; +/*@ requires + null_or_valid_string_path: path ≡ \null ∨ valid_read_string(path); + ensures + result_points_to_internal_storage_or_path: + \subset(\result, \union(__fc_p_basename, \old(path))); + assigns *(path + (0 ..)), __fc_basename[0 ..], \result; + assigns *(path + (0 ..)) \from *(path + (0 ..)), __fc_basename[0 ..]; + assigns __fc_basename[0 ..] \from *(path + (0 ..)), __fc_basename[0 ..]; + assigns \result \from __fc_p_basename, path; + */ +extern char *basename(char *path); + +extern char __fc_dirname[256]; + +char *__fc_p_dirname = __fc_dirname; +/*@ requires + null_or_valid_string_path: path ≡ \null ∨ valid_read_string(path); + ensures + result_points_to_internal_storage_or_path: + \subset(\result, \union(__fc_p_dirname, \old(path))); + assigns *(path + (0 ..)), __fc_dirname[0 ..], \result; + assigns *(path + (0 ..)) \from *(path + (0 ..)), __fc_dirname[0 ..]; + assigns __fc_dirname[0 ..] \from *(path + (0 ..)), __fc_dirname[0 ..]; + assigns \result \from __fc_p_dirname, path; + */ +extern char *dirname(char *path); + /*@ requires valid_file_descriptors: \valid(fds + (0 .. nfds - 1)); ensures error_timeout_or_bounded: @@ -6148,8 +6498,8 @@ extern int pthread_cond_destroy(pthread_cond_t *cond); assigns *cond \from *attr; assigns \result \from \nothing; */ -extern int pthread_cond_init(pthread_cond_t *cond, - pthread_condattr_t const *attr); +extern int pthread_cond_init(pthread_cond_t * __restrict cond, + pthread_condattr_t const * __restrict attr); /*@ requires valid_cond: \valid(cond); requires valid_mutex: \valid(mutex); @@ -6157,7 +6507,8 @@ extern int pthread_cond_init(pthread_cond_t *cond, assigns \result; assigns \result \from \nothing; */ -extern int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex); +extern int pthread_cond_wait(pthread_cond_t * __restrict cond, + pthread_mutex_t * __restrict mutex); /*@ requires valid_thread: \valid(thread); requires valid_null_attr: attr ≡ \null ∨ \valid_read(attr); @@ -6170,8 +6521,10 @@ extern int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex); assigns *thread \from *attr; assigns \result \from (indirect: *attr); */ -extern int pthread_create(pthread_t *thread, pthread_attr_t const *attr, - void *(*start_routine)(void *), void *arg); +extern int pthread_create(pthread_t * __restrict thread, + pthread_attr_t const * __restrict attr, + void *(*start_routine)(void *), + void * __restrict arg); /*@ requires valid_or_null_retval: retval ≡ \null ∨ \valid(retval); ensures @@ -6212,8 +6565,8 @@ extern int pthread_mutex_destroy(pthread_mutex_t *mutex); assigns *mutex \from *mutex, *attrs; assigns \result \from (indirect: *mutex), (indirect: *attrs); */ -extern int pthread_mutex_init(pthread_mutex_t *mutex, - pthread_mutexattr_t const *attrs); +extern int pthread_mutex_init(pthread_mutex_t * __restrict mutex, + pthread_mutexattr_t const * __restrict attrs); /*@ requires mutex_valid: \valid(mutex); ensures @@ -6234,6 +6587,35 @@ extern int pthread_mutex_lock(pthread_mutex_t *mutex); */ extern int pthread_mutex_unlock(pthread_mutex_t *mutex); +extern char __fc_getpwuid_pw_name[64]; + +extern char __fc_getpwuid_pw_passwd[64]; + +extern uid_t __fc_getpwuid_pw_uid; + +extern gid_t __fc_getpwuid_pw_gid; + +extern char __fc_getpwuid_pw_dir[64]; + +extern char __fc_getpwuid_pw_shell[64]; + +struct passwd __fc_getpwuid = + {.pw_name = __fc_getpwuid_pw_name, + .pw_passwd = __fc_getpwuid_pw_passwd, + .pw_uid = __fc_getpwuid_pw_uid, + .pw_gid = __fc_getpwuid_pw_gid, + .pw_dir = __fc_getpwuid_pw_dir, + .pw_shell = __fc_getpwuid_pw_shell}; +struct passwd *__fc_p_getpwuid = & __fc_getpwuid; +/*@ ensures + result_null_or_internal_struct: + \result ≡ \null ∨ \result ≡ __fc_p_getpwuid; + assigns \result, __fc_getpwuid; + assigns \result \from __fc_p_getpwuid, (indirect: uid); + assigns __fc_getpwuid \from (indirect: uid); + */ +extern struct passwd *getpwuid(uid_t uid); + /*@ assigns *(env + (0 .. 4)); */ extern int setjmp(int * /*[5]*/ env); @@ -6551,6 +6933,26 @@ extern int execvp(char const *path, char * const *argv); */ extern pid_t fork(void); +/*@ requires valid_buf: \valid(buf + (0 .. size - 1)); + ensures result_ok_or_error: \result ≡ \null ∨ \result ≡ \old(buf); + assigns *(buf + (0 .. size - 1)), \result; + assigns *(buf + (0 .. size - 1)) \from (indirect: buf), (indirect: size); + assigns \result \from buf, (indirect: size); + */ +extern char *getcwd(char *buf, size_t size); + +/*@ assigns \result; + assigns \result \from \nothing; */ +extern gid_t getegid(void); + +/*@ assigns \result; + assigns \result \from \nothing; */ +extern uid_t geteuid(void); + +/*@ assigns \result; + assigns \result \from \nothing; */ +extern gid_t getgid(void); + extern char volatile __fc_hostname[64]; /*@ requires name_has_room: \valid(name + (0 .. len - 1)); @@ -6573,10 +6975,28 @@ extern int gethostname(char *name, size_t len); */ extern int sethostname(char const *name, size_t len); +/*@ assigns \result; + assigns \result \from \nothing; */ +extern pid_t getpid(void); + +/*@ assigns \result; + assigns \result \from \nothing; */ +extern pid_t getppid(void); + +/*@ assigns \result; + assigns \result \from \nothing; */ +extern pid_t getsid(pid_t); + /*@ assigns \result; assigns \result \from \nothing; */ extern uid_t getuid(void); +/*@ requires valid_path: valid_read_string(path); + assigns \result; + assigns \result \from (indirect: *(path + (0 ..))), (indirect: name); + */ +extern long pathconf(char const *path, int name); + /*@ ensures initialization: pipefd: \initialized(\old(pipefd) + (0 .. 1)); ensures valid_fd0: 0 ≤ *(\old(pipefd) + 0) < 1024; ensures valid_fd1: 0 ≤ *(\old(pipefd) + 1) < 1024; @@ -6603,12 +7023,48 @@ extern int pipe(int * /*[2]*/ pipefd); */ extern ssize_t read(int fd, void *buf, size_t count); -/*@ ensures result_new_proc_group_or_error: \result ≥ 0 ∨ \result ≡ -1; +/*@ ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; + assigns \result; + assigns \result \from (indirect: gid); + */ +extern int setegid(gid_t gid); + +/*@ ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; + assigns \result; + assigns \result \from (indirect: uid); + */ +extern int seteuid(uid_t uid); + +/*@ ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; + assigns \result; + assigns \result \from (indirect: gid); + */ +extern int setgid(gid_t gid); + +/*@ ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; + assigns \result; + assigns \result \from (indirect: rgid), (indirect: egid); + */ +extern int setregid(gid_t rgid, gid_t egid); + +/*@ ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; + assigns \result; + assigns \result \from (indirect: ruid), (indirect: euid); + */ +extern int setreuid(uid_t ruid, uid_t euid); + +/*@ ensures result_pgid_or_error: \result ≡ -1 ∨ \result ≥ 0; assigns \result; assigns \result \from \nothing; */ extern pid_t setsid(void); +/*@ ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; + assigns \result; + assigns \result \from (indirect: uid); + */ +extern int setuid(uid_t uid); + /*@ assigns \nothing; */ extern void sync(void); @@ -6637,6 +7093,54 @@ extern int usleep(useconds_t usec); */ extern ssize_t write(int fd, void const *buf, size_t count); +/*@ requires valid_ruid: \valid(ruid); + requires valid_euid: \valid(suid); + requires valid_suid: \valid(euid); + ensures + initialization: result_ok_or_error: + (\result ≡ 0 ∧ \initialized(\old(ruid)) ∧ + \initialized(\old(euid)) ∧ \initialized(\old(suid))) ∨ + \result ≡ -1; + assigns *ruid, *euid, *suid, \result; + assigns *ruid \from \nothing; + assigns *euid \from \nothing; + assigns *suid \from \nothing; + assigns \result + \from (indirect: ruid), (indirect: euid), (indirect: suid); + */ +int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); + +/*@ ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; + assigns \result; + assigns \result + \from (indirect: ruid), (indirect: euid), (indirect: suid); + */ +int setresuid(uid_t ruid, uid_t euid, uid_t suid); + +/*@ requires valid_rgid: \valid(rgid); + requires valid_egid: \valid(sgid); + requires valid_sgid: \valid(egid); + ensures + initialization: result_ok_or_error: + (\result ≡ 0 ∧ \initialized(\old(rgid)) ∧ + \initialized(\old(egid)) ∧ \initialized(\old(sgid))) ∨ + \result ≡ -1; + assigns *rgid, *egid, *sgid, \result; + assigns *rgid \from \nothing; + assigns *egid \from \nothing; + assigns *sgid \from \nothing; + assigns \result + \from (indirect: rgid), (indirect: egid), (indirect: sgid); + */ +int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); + +/*@ ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; + assigns \result; + assigns \result + \from (indirect: rgid), (indirect: egid), (indirect: sgid); + */ +int setresgid(gid_t rgid, gid_t egid, gid_t sgid); + void main(void) { /*@ assert __fc_p_fopen ≡ (FILE *)(&__fc_fopen); */ ; diff --git a/tests/libc/oracle/fc_libc.2.res.oracle b/tests/libc/oracle/fc_libc.2.res.oracle index 7755f7bb95c43d8aa646ce492b553b4d76fdc033..6650a34b1f8c6d193393997a674224079b26f14a 100644 --- a/tests/libc/oracle/fc_libc.2.res.oracle +++ b/tests/libc/oracle/fc_libc.2.res.oracle @@ -34,9 +34,10 @@ [kernel] Parsing share/libc/__fc_define_useconds_t.h (with preprocessing) [kernel] Parsing share/libc/__fc_define_wchar_t.h (with preprocessing) [kernel] Parsing share/libc/__fc_define_wint_t.h (with preprocessing) +[kernel] Parsing share/libc/__fc_gcc_builtins.h (with preprocessing) [kernel] Parsing share/libc/__fc_inet.h (with preprocessing) [kernel] Parsing share/libc/__fc_machdep.h (with preprocessing) -skipping share/libc/__fc_machdep_linux_gcc_shared.h +skipping share/libc/__fc_machdep_linux_shared.h [kernel] Parsing share/libc/__fc_select.h (with preprocessing) [kernel] Parsing share/libc/__fc_string_axiomatic.h (with preprocessing) [kernel] Parsing share/libc/alloca.h (with preprocessing) @@ -62,13 +63,7 @@ skipping share/libc/complex.h [kernel] Parsing share/libc/inttypes.h (with preprocessing) [kernel] Parsing share/libc/iso646.h (with preprocessing) [kernel] Parsing share/libc/libgen.h (with preprocessing) -[kernel] Parsing share/libc/libintl.h (with preprocessing) [kernel] Parsing share/libc/limits.h (with preprocessing) -[kernel] Parsing share/libc/linux/fs.h (with preprocessing) -[kernel] Parsing share/libc/linux/if_addr.h (with preprocessing) -[kernel] Parsing share/libc/linux/if_netlink.h (with preprocessing) -[kernel] Parsing share/libc/linux/netlink.h (with preprocessing) -[kernel] Parsing share/libc/linux/rtnetlink.h (with preprocessing) [kernel] Parsing share/libc/locale.h (with preprocessing) [kernel] Parsing share/libc/malloc.h (with preprocessing) [kernel] Parsing share/libc/math.h (with preprocessing) @@ -76,9 +71,6 @@ skipping share/libc/complex.h [kernel] Parsing share/libc/net/if.h (with preprocessing) [kernel] Parsing share/libc/netdb.h (with preprocessing) [kernel] Parsing share/libc/netinet/in.h (with preprocessing) -[kernel] Parsing share/libc/netinet/in_systm.h (with preprocessing) -[kernel] Parsing share/libc/netinet/ip.h (with preprocessing) -[kernel] Parsing share/libc/netinet/ip_icmp.h (with preprocessing) [kernel] Parsing share/libc/netinet/tcp.h (with preprocessing) [kernel] Parsing share/libc/nl_types.h (with preprocessing) [kernel] Parsing share/libc/poll.h (with preprocessing) @@ -103,7 +95,6 @@ skipping share/libc/complex.h [kernel] Parsing share/libc/sys/ioctl.h (with preprocessing) [kernel] Parsing share/libc/sys/ipc.h (with preprocessing) [kernel] Parsing share/libc/sys/mman.h (with preprocessing) -[kernel] Parsing share/libc/sys/param.h (with preprocessing) [kernel] Parsing share/libc/sys/random.h (with preprocessing) [kernel] Parsing share/libc/sys/resource.h (with preprocessing) [kernel] Parsing share/libc/sys/select.h (with preprocessing) @@ -111,7 +102,6 @@ skipping share/libc/complex.h [kernel] Parsing share/libc/sys/signal.h (with preprocessing) [kernel] Parsing share/libc/sys/socket.h (with preprocessing) [kernel] Parsing share/libc/sys/stat.h (with preprocessing) -[kernel] Parsing share/libc/sys/sysctl.h (with preprocessing) [kernel] Parsing share/libc/sys/time.h (with preprocessing) [kernel] Parsing share/libc/sys/times.h (with preprocessing) [kernel] Parsing share/libc/sys/timex.h (with preprocessing) @@ -124,7 +114,6 @@ skipping share/libc/complex.h [kernel] Parsing share/libc/termios.h (with preprocessing) skipping share/libc/tgmath.h [kernel] Parsing share/libc/time.h (with preprocessing) -[kernel] Parsing share/libc/uchar.h (with preprocessing) [kernel] Parsing share/libc/unistd.h (with preprocessing) [kernel] Parsing share/libc/utime.h (with preprocessing) [kernel] Parsing share/libc/utmpx.h (with preprocessing) diff --git a/tests/libc/oracle/inttypes_h.0.res.oracle b/tests/libc/oracle/inttypes_h.0.res.oracle index 95a7c50626ca0688f6494161a16f81ac20021e51..eaaa132d690dde79c31b64fed1258454417d0d00 100644 --- a/tests/libc/oracle/inttypes_h.0.res.oracle +++ b/tests/libc/oracle/inttypes_h.0.res.oracle @@ -1,5 +1,3 @@ -[kernel:pp] - preprocessing with "gcc -E -C -I. -I./share/libc -D__FRAMAC__ -D__FC_MACHDEP_X86_16 -dD -nostdinc -m16 tests/libc/inttypes_h.c" [kernel] Parsing tests/libc/inttypes_h.c (with preprocessing) /* Generated by Frama-C */ #include "errno.h" @@ -22,7 +20,7 @@ \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_1(char const *format, signed char *param0); +int scanf_va_1(char const * __restrict format, signed char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -35,7 +33,7 @@ int scanf_va_1(char const *format, signed char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_1(char const *format, int param0); +int printf_va_1(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -51,7 +49,7 @@ int printf_va_1(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_2(char const *format, signed char *param0); +int scanf_va_2(char const * __restrict format, signed char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -64,7 +62,7 @@ int scanf_va_2(char const *format, signed char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_2(char const *format, int param0); +int printf_va_2(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -80,7 +78,7 @@ int printf_va_2(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_3(char const *format, unsigned char *param0); +int scanf_va_3(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -93,7 +91,7 @@ int scanf_va_3(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_3(char const *format, int param0); +int printf_va_3(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -109,7 +107,7 @@ int printf_va_3(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_4(char const *format, unsigned char *param0); +int scanf_va_4(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -122,7 +120,7 @@ int scanf_va_4(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_4(char const *format, int param0); +int printf_va_4(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -138,7 +136,7 @@ int printf_va_4(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_5(char const *format, unsigned char *param0); +int scanf_va_5(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -151,7 +149,7 @@ int scanf_va_5(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_5(char const *format, int param0); +int printf_va_5(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -167,7 +165,7 @@ int printf_va_5(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_6(char const *format, unsigned char *param0); +int scanf_va_6(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -180,7 +178,7 @@ int scanf_va_6(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_6(char const *format, int param0); +int printf_va_6(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -196,7 +194,7 @@ int printf_va_6(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_7(char const *format, short *param0); +int scanf_va_7(char const * __restrict format, short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -209,7 +207,7 @@ int scanf_va_7(char const *format, short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_7(char const *format, int param0); +int printf_va_7(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -225,7 +223,7 @@ int printf_va_7(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_8(char const *format, short *param0); +int scanf_va_8(char const * __restrict format, short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -238,7 +236,7 @@ int scanf_va_8(char const *format, short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_8(char const *format, int param0); +int printf_va_8(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -254,7 +252,7 @@ int printf_va_8(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_9(char const *format, unsigned short *param0); +int scanf_va_9(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -267,7 +265,7 @@ int scanf_va_9(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_9(char const *format, unsigned int param0); +int printf_va_9(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -283,7 +281,7 @@ int printf_va_9(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_10(char const *format, unsigned short *param0); +int scanf_va_10(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -296,7 +294,7 @@ int scanf_va_10(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_10(char const *format, unsigned int param0); +int printf_va_10(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -312,7 +310,7 @@ int printf_va_10(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_11(char const *format, unsigned short *param0); +int scanf_va_11(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -325,7 +323,7 @@ int scanf_va_11(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_11(char const *format, unsigned int param0); +int printf_va_11(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -341,7 +339,7 @@ int printf_va_11(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_12(char const *format, unsigned short *param0); +int scanf_va_12(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -354,7 +352,7 @@ int scanf_va_12(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_12(char const *format, unsigned int param0); +int printf_va_12(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -370,7 +368,7 @@ int printf_va_12(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_13(char const *format, long *param0); +int scanf_va_13(char const * __restrict format, long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -383,7 +381,7 @@ int scanf_va_13(char const *format, long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_13(char const *format, long param0); +int printf_va_13(char const * __restrict format, long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -399,7 +397,7 @@ int printf_va_13(char const *format, long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_14(char const *format, long *param0); +int scanf_va_14(char const * __restrict format, long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -412,7 +410,7 @@ int scanf_va_14(char const *format, long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_14(char const *format, long param0); +int printf_va_14(char const * __restrict format, long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -428,7 +426,7 @@ int printf_va_14(char const *format, long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_15(char const *format, unsigned long *param0); +int scanf_va_15(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -441,7 +439,7 @@ int scanf_va_15(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_15(char const *format, unsigned long param0); +int printf_va_15(char const * __restrict format, unsigned long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -457,7 +455,7 @@ int printf_va_15(char const *format, unsigned long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_16(char const *format, unsigned long *param0); +int scanf_va_16(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -470,7 +468,7 @@ int scanf_va_16(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_16(char const *format, unsigned long param0); +int printf_va_16(char const * __restrict format, unsigned long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -486,7 +484,7 @@ int printf_va_16(char const *format, unsigned long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_17(char const *format, unsigned long *param0); +int scanf_va_17(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -499,7 +497,7 @@ int scanf_va_17(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_17(char const *format, unsigned long param0); +int printf_va_17(char const * __restrict format, unsigned long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -515,7 +513,7 @@ int printf_va_17(char const *format, unsigned long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_18(char const *format, unsigned long *param0); +int scanf_va_18(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -528,7 +526,7 @@ int scanf_va_18(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_18(char const *format, unsigned long param0); +int printf_va_18(char const * __restrict format, unsigned long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -544,7 +542,7 @@ int printf_va_18(char const *format, unsigned long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_19(char const *format, long long *param0); +int scanf_va_19(char const * __restrict format, long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -557,7 +555,7 @@ int scanf_va_19(char const *format, long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_19(char const *format, long long param0); +int printf_va_19(char const * __restrict format, long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -573,7 +571,7 @@ int printf_va_19(char const *format, long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_20(char const *format, long long *param0); +int scanf_va_20(char const * __restrict format, long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -586,7 +584,7 @@ int scanf_va_20(char const *format, long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_20(char const *format, long long param0); +int printf_va_20(char const * __restrict format, long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -602,7 +600,7 @@ int printf_va_20(char const *format, long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_21(char const *format, unsigned long long *param0); +int scanf_va_21(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -615,7 +613,7 @@ int scanf_va_21(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_21(char const *format, unsigned long long param0); +int printf_va_21(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -631,7 +629,7 @@ int printf_va_21(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_22(char const *format, unsigned long long *param0); +int scanf_va_22(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -644,7 +642,7 @@ int scanf_va_22(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_22(char const *format, unsigned long long param0); +int printf_va_22(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -660,7 +658,7 @@ int printf_va_22(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_23(char const *format, unsigned long long *param0); +int scanf_va_23(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -673,7 +671,7 @@ int scanf_va_23(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_23(char const *format, unsigned long long param0); +int printf_va_23(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -689,7 +687,7 @@ int printf_va_23(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_24(char const *format, unsigned long long *param0); +int scanf_va_24(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -702,7 +700,7 @@ int scanf_va_24(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_24(char const *format, unsigned long long param0); +int printf_va_24(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -718,7 +716,7 @@ int printf_va_24(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_25(char const *format, signed char *param0); +int scanf_va_25(char const * __restrict format, signed char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -731,7 +729,7 @@ int scanf_va_25(char const *format, signed char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_25(char const *format, int param0); +int printf_va_25(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -747,7 +745,7 @@ int printf_va_25(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_26(char const *format, signed char *param0); +int scanf_va_26(char const * __restrict format, signed char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -760,7 +758,7 @@ int scanf_va_26(char const *format, signed char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_26(char const *format, int param0); +int printf_va_26(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -776,7 +774,7 @@ int printf_va_26(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_27(char const *format, unsigned char *param0); +int scanf_va_27(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -789,7 +787,7 @@ int scanf_va_27(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_27(char const *format, int param0); +int printf_va_27(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -805,7 +803,7 @@ int printf_va_27(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_28(char const *format, unsigned char *param0); +int scanf_va_28(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -818,7 +816,7 @@ int scanf_va_28(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_28(char const *format, int param0); +int printf_va_28(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -834,7 +832,7 @@ int printf_va_28(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_29(char const *format, unsigned char *param0); +int scanf_va_29(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -847,7 +845,7 @@ int scanf_va_29(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_29(char const *format, int param0); +int printf_va_29(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -863,7 +861,7 @@ int printf_va_29(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_30(char const *format, unsigned char *param0); +int scanf_va_30(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -876,7 +874,7 @@ int scanf_va_30(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_30(char const *format, int param0); +int printf_va_30(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -892,7 +890,7 @@ int printf_va_30(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_31(char const *format, short *param0); +int scanf_va_31(char const * __restrict format, short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -905,7 +903,7 @@ int scanf_va_31(char const *format, short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_31(char const *format, int param0); +int printf_va_31(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -921,7 +919,7 @@ int printf_va_31(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_32(char const *format, short *param0); +int scanf_va_32(char const * __restrict format, short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -934,7 +932,7 @@ int scanf_va_32(char const *format, short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_32(char const *format, int param0); +int printf_va_32(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -950,7 +948,7 @@ int printf_va_32(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_33(char const *format, unsigned short *param0); +int scanf_va_33(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -963,7 +961,7 @@ int scanf_va_33(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_33(char const *format, unsigned int param0); +int printf_va_33(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -979,7 +977,7 @@ int printf_va_33(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_34(char const *format, unsigned short *param0); +int scanf_va_34(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -992,7 +990,7 @@ int scanf_va_34(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_34(char const *format, unsigned int param0); +int printf_va_34(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1008,7 +1006,7 @@ int printf_va_34(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_35(char const *format, unsigned short *param0); +int scanf_va_35(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1021,7 +1019,7 @@ int scanf_va_35(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_35(char const *format, unsigned int param0); +int printf_va_35(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1037,7 +1035,7 @@ int printf_va_35(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_36(char const *format, unsigned short *param0); +int scanf_va_36(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1050,7 +1048,7 @@ int scanf_va_36(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_36(char const *format, unsigned int param0); +int printf_va_36(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1066,7 +1064,7 @@ int printf_va_36(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_37(char const *format, long *param0); +int scanf_va_37(char const * __restrict format, long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1079,7 +1077,7 @@ int scanf_va_37(char const *format, long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_37(char const *format, long param0); +int printf_va_37(char const * __restrict format, long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1095,7 +1093,7 @@ int printf_va_37(char const *format, long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_38(char const *format, long *param0); +int scanf_va_38(char const * __restrict format, long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1108,7 +1106,7 @@ int scanf_va_38(char const *format, long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_38(char const *format, long param0); +int printf_va_38(char const * __restrict format, long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1124,7 +1122,7 @@ int printf_va_38(char const *format, long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_39(char const *format, unsigned long *param0); +int scanf_va_39(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1137,7 +1135,7 @@ int scanf_va_39(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_39(char const *format, unsigned long param0); +int printf_va_39(char const * __restrict format, unsigned long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1153,7 +1151,7 @@ int printf_va_39(char const *format, unsigned long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_40(char const *format, unsigned long *param0); +int scanf_va_40(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1166,7 +1164,7 @@ int scanf_va_40(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_40(char const *format, unsigned long param0); +int printf_va_40(char const * __restrict format, unsigned long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1182,7 +1180,7 @@ int printf_va_40(char const *format, unsigned long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_41(char const *format, unsigned long *param0); +int scanf_va_41(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1195,7 +1193,7 @@ int scanf_va_41(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_41(char const *format, unsigned long param0); +int printf_va_41(char const * __restrict format, unsigned long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1211,7 +1209,7 @@ int printf_va_41(char const *format, unsigned long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_42(char const *format, unsigned long *param0); +int scanf_va_42(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1224,7 +1222,7 @@ int scanf_va_42(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_42(char const *format, unsigned long param0); +int printf_va_42(char const * __restrict format, unsigned long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1240,7 +1238,7 @@ int printf_va_42(char const *format, unsigned long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_43(char const *format, long long *param0); +int scanf_va_43(char const * __restrict format, long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1253,7 +1251,7 @@ int scanf_va_43(char const *format, long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_43(char const *format, long long param0); +int printf_va_43(char const * __restrict format, long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1269,7 +1267,7 @@ int printf_va_43(char const *format, long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_44(char const *format, long long *param0); +int scanf_va_44(char const * __restrict format, long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1282,7 +1280,7 @@ int scanf_va_44(char const *format, long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_44(char const *format, long long param0); +int printf_va_44(char const * __restrict format, long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1298,7 +1296,7 @@ int printf_va_44(char const *format, long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_45(char const *format, unsigned long long *param0); +int scanf_va_45(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1311,7 +1309,7 @@ int scanf_va_45(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_45(char const *format, unsigned long long param0); +int printf_va_45(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1327,7 +1325,7 @@ int printf_va_45(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_46(char const *format, unsigned long long *param0); +int scanf_va_46(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1340,7 +1338,7 @@ int scanf_va_46(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_46(char const *format, unsigned long long param0); +int printf_va_46(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1356,7 +1354,7 @@ int printf_va_46(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_47(char const *format, unsigned long long *param0); +int scanf_va_47(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1369,7 +1367,7 @@ int scanf_va_47(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_47(char const *format, unsigned long long param0); +int printf_va_47(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1385,7 +1383,7 @@ int printf_va_47(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_48(char const *format, unsigned long long *param0); +int scanf_va_48(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1398,7 +1396,7 @@ int scanf_va_48(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_48(char const *format, unsigned long long param0); +int printf_va_48(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1414,7 +1412,7 @@ int printf_va_48(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_49(char const *format, signed char *param0); +int scanf_va_49(char const * __restrict format, signed char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1427,7 +1425,7 @@ int scanf_va_49(char const *format, signed char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_49(char const *format, int param0); +int printf_va_49(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1443,7 +1441,7 @@ int printf_va_49(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_50(char const *format, signed char *param0); +int scanf_va_50(char const * __restrict format, signed char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1456,7 +1454,7 @@ int scanf_va_50(char const *format, signed char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_50(char const *format, int param0); +int printf_va_50(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1472,7 +1470,7 @@ int printf_va_50(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_51(char const *format, unsigned char *param0); +int scanf_va_51(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1485,7 +1483,7 @@ int scanf_va_51(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_51(char const *format, int param0); +int printf_va_51(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1501,7 +1499,7 @@ int printf_va_51(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_52(char const *format, unsigned char *param0); +int scanf_va_52(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1514,7 +1512,7 @@ int scanf_va_52(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_52(char const *format, int param0); +int printf_va_52(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1530,7 +1528,7 @@ int printf_va_52(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_53(char const *format, unsigned char *param0); +int scanf_va_53(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1543,7 +1541,7 @@ int scanf_va_53(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_53(char const *format, int param0); +int printf_va_53(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1559,7 +1557,7 @@ int printf_va_53(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_54(char const *format, unsigned char *param0); +int scanf_va_54(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1572,7 +1570,7 @@ int scanf_va_54(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_54(char const *format, int param0); +int printf_va_54(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1588,7 +1586,7 @@ int printf_va_54(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_55(char const *format, int *param0); +int scanf_va_55(char const * __restrict format, int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1601,7 +1599,7 @@ int scanf_va_55(char const *format, int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_55(char const *format, int param0); +int printf_va_55(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1617,7 +1615,7 @@ int printf_va_55(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_56(char const *format, int *param0); +int scanf_va_56(char const * __restrict format, int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1630,7 +1628,7 @@ int scanf_va_56(char const *format, int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_56(char const *format, int param0); +int printf_va_56(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1646,7 +1644,7 @@ int printf_va_56(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_57(char const *format, unsigned int *param0); +int scanf_va_57(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1659,7 +1657,7 @@ int scanf_va_57(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_57(char const *format, unsigned int param0); +int printf_va_57(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1675,7 +1673,7 @@ int printf_va_57(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_58(char const *format, unsigned int *param0); +int scanf_va_58(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1688,7 +1686,7 @@ int scanf_va_58(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_58(char const *format, unsigned int param0); +int printf_va_58(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1704,7 +1702,7 @@ int printf_va_58(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_59(char const *format, unsigned int *param0); +int scanf_va_59(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1717,7 +1715,7 @@ int scanf_va_59(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_59(char const *format, unsigned int param0); +int printf_va_59(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1733,7 +1731,7 @@ int printf_va_59(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_60(char const *format, unsigned int *param0); +int scanf_va_60(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1746,7 +1744,7 @@ int scanf_va_60(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_60(char const *format, unsigned int param0); +int printf_va_60(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1762,7 +1760,7 @@ int printf_va_60(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_61(char const *format, long *param0); +int scanf_va_61(char const * __restrict format, long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1775,7 +1773,7 @@ int scanf_va_61(char const *format, long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_61(char const *format, long param0); +int printf_va_61(char const * __restrict format, long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1791,7 +1789,7 @@ int printf_va_61(char const *format, long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_62(char const *format, long *param0); +int scanf_va_62(char const * __restrict format, long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1804,7 +1802,7 @@ int scanf_va_62(char const *format, long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_62(char const *format, long param0); +int printf_va_62(char const * __restrict format, long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1820,7 +1818,7 @@ int printf_va_62(char const *format, long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_63(char const *format, unsigned long *param0); +int scanf_va_63(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1833,7 +1831,7 @@ int scanf_va_63(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_63(char const *format, unsigned long param0); +int printf_va_63(char const * __restrict format, unsigned long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1849,7 +1847,7 @@ int printf_va_63(char const *format, unsigned long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_64(char const *format, unsigned long *param0); +int scanf_va_64(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1862,7 +1860,7 @@ int scanf_va_64(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_64(char const *format, unsigned long param0); +int printf_va_64(char const * __restrict format, unsigned long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1878,7 +1876,7 @@ int printf_va_64(char const *format, unsigned long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_65(char const *format, unsigned long *param0); +int scanf_va_65(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1891,7 +1889,7 @@ int scanf_va_65(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_65(char const *format, unsigned long param0); +int printf_va_65(char const * __restrict format, unsigned long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1907,7 +1905,7 @@ int printf_va_65(char const *format, unsigned long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_66(char const *format, unsigned long *param0); +int scanf_va_66(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1920,7 +1918,7 @@ int scanf_va_66(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_66(char const *format, unsigned long param0); +int printf_va_66(char const * __restrict format, unsigned long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1936,7 +1934,7 @@ int printf_va_66(char const *format, unsigned long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_67(char const *format, long long *param0); +int scanf_va_67(char const * __restrict format, long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1949,7 +1947,7 @@ int scanf_va_67(char const *format, long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_67(char const *format, long long param0); +int printf_va_67(char const * __restrict format, long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1965,7 +1963,7 @@ int printf_va_67(char const *format, long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_68(char const *format, long long *param0); +int scanf_va_68(char const * __restrict format, long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1978,7 +1976,7 @@ int scanf_va_68(char const *format, long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_68(char const *format, long long param0); +int printf_va_68(char const * __restrict format, long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1994,7 +1992,7 @@ int printf_va_68(char const *format, long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_69(char const *format, unsigned long long *param0); +int scanf_va_69(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2007,7 +2005,7 @@ int scanf_va_69(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_69(char const *format, unsigned long long param0); +int printf_va_69(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2023,7 +2021,7 @@ int printf_va_69(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_70(char const *format, unsigned long long *param0); +int scanf_va_70(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2036,7 +2034,7 @@ int scanf_va_70(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_70(char const *format, unsigned long long param0); +int printf_va_70(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2052,7 +2050,7 @@ int printf_va_70(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_71(char const *format, unsigned long long *param0); +int scanf_va_71(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2065,7 +2063,7 @@ int scanf_va_71(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_71(char const *format, unsigned long long param0); +int printf_va_71(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2081,7 +2079,7 @@ int printf_va_71(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_72(char const *format, unsigned long long *param0); +int scanf_va_72(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2094,7 +2092,7 @@ int scanf_va_72(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_72(char const *format, unsigned long long param0); +int printf_va_72(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2110,7 +2108,7 @@ int printf_va_72(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_73(char const *format, long long *param0); +int scanf_va_73(char const * __restrict format, long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2123,7 +2121,7 @@ int scanf_va_73(char const *format, long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_73(char const *format, long long param0); +int printf_va_73(char const * __restrict format, long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2139,7 +2137,7 @@ int printf_va_73(char const *format, long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_74(char const *format, long long *param0); +int scanf_va_74(char const * __restrict format, long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2152,7 +2150,7 @@ int scanf_va_74(char const *format, long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_74(char const *format, long long param0); +int printf_va_74(char const * __restrict format, long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2168,7 +2166,7 @@ int printf_va_74(char const *format, long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_75(char const *format, unsigned long long *param0); +int scanf_va_75(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2181,7 +2179,7 @@ int scanf_va_75(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_75(char const *format, unsigned long long param0); +int printf_va_75(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2197,7 +2195,7 @@ int printf_va_75(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_76(char const *format, unsigned long long *param0); +int scanf_va_76(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2210,7 +2208,7 @@ int scanf_va_76(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_76(char const *format, unsigned long long param0); +int printf_va_76(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2226,7 +2224,7 @@ int printf_va_76(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_77(char const *format, unsigned long long *param0); +int scanf_va_77(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2239,7 +2237,7 @@ int scanf_va_77(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_77(char const *format, unsigned long long param0); +int printf_va_77(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2255,7 +2253,7 @@ int printf_va_77(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_78(char const *format, unsigned long long *param0); +int scanf_va_78(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2268,7 +2266,7 @@ int scanf_va_78(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_78(char const *format, unsigned long long param0); +int printf_va_78(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2284,7 +2282,7 @@ int printf_va_78(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_79(char const *format, long *param0); +int scanf_va_79(char const * __restrict format, long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2297,7 +2295,7 @@ int scanf_va_79(char const *format, long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_79(char const *format, long param0); +int printf_va_79(char const * __restrict format, long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2313,7 +2311,7 @@ int printf_va_79(char const *format, long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_80(char const *format, long *param0); +int scanf_va_80(char const * __restrict format, long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2326,7 +2324,7 @@ int scanf_va_80(char const *format, long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_80(char const *format, long param0); +int printf_va_80(char const * __restrict format, long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2342,7 +2340,7 @@ int printf_va_80(char const *format, long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_81(char const *format, unsigned long *param0); +int scanf_va_81(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2355,7 +2353,7 @@ int scanf_va_81(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_81(char const *format, unsigned long param0); +int printf_va_81(char const * __restrict format, unsigned long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2371,7 +2369,7 @@ int printf_va_81(char const *format, unsigned long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_82(char const *format, unsigned long *param0); +int scanf_va_82(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2384,7 +2382,7 @@ int scanf_va_82(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_82(char const *format, unsigned long param0); +int printf_va_82(char const * __restrict format, unsigned long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2400,7 +2398,7 @@ int printf_va_82(char const *format, unsigned long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_83(char const *format, unsigned long *param0); +int scanf_va_83(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2413,7 +2411,7 @@ int scanf_va_83(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_83(char const *format, unsigned long param0); +int printf_va_83(char const * __restrict format, unsigned long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2429,7 +2427,7 @@ int printf_va_83(char const *format, unsigned long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_84(char const *format, unsigned long *param0); +int scanf_va_84(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2442,7 +2440,7 @@ int scanf_va_84(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_84(char const *format, unsigned long param0); +int printf_va_84(char const * __restrict format, unsigned long param0); int main(void) { diff --git a/tests/libc/oracle/inttypes_h.1.res.oracle b/tests/libc/oracle/inttypes_h.1.res.oracle index 4df9581be573ecef7688d9571e79fae65a599248..ee3b253caf33cceda5773e2ab7553f01ef3d5e2d 100644 --- a/tests/libc/oracle/inttypes_h.1.res.oracle +++ b/tests/libc/oracle/inttypes_h.1.res.oracle @@ -1,5 +1,3 @@ -[kernel:pp] - preprocessing with "gcc -E -C -I. -I./share/libc -D__FRAMAC__ -D__FC_MACHDEP_X86_32 -dD -nostdinc -m32 tests/libc/inttypes_h.c" [kernel] Parsing tests/libc/inttypes_h.c (with preprocessing) /* Generated by Frama-C */ #include "errno.h" @@ -22,7 +20,7 @@ \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_1(char const *format, signed char *param0); +int scanf_va_1(char const * __restrict format, signed char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -35,7 +33,7 @@ int scanf_va_1(char const *format, signed char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_1(char const *format, int param0); +int printf_va_1(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -51,7 +49,7 @@ int printf_va_1(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_2(char const *format, signed char *param0); +int scanf_va_2(char const * __restrict format, signed char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -64,7 +62,7 @@ int scanf_va_2(char const *format, signed char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_2(char const *format, int param0); +int printf_va_2(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -80,7 +78,7 @@ int printf_va_2(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_3(char const *format, unsigned char *param0); +int scanf_va_3(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -93,7 +91,7 @@ int scanf_va_3(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_3(char const *format, int param0); +int printf_va_3(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -109,7 +107,7 @@ int printf_va_3(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_4(char const *format, unsigned char *param0); +int scanf_va_4(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -122,7 +120,7 @@ int scanf_va_4(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_4(char const *format, int param0); +int printf_va_4(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -138,7 +136,7 @@ int printf_va_4(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_5(char const *format, unsigned char *param0); +int scanf_va_5(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -151,7 +149,7 @@ int scanf_va_5(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_5(char const *format, int param0); +int printf_va_5(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -167,7 +165,7 @@ int printf_va_5(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_6(char const *format, unsigned char *param0); +int scanf_va_6(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -180,7 +178,7 @@ int scanf_va_6(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_6(char const *format, int param0); +int printf_va_6(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -196,7 +194,7 @@ int printf_va_6(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_7(char const *format, short *param0); +int scanf_va_7(char const * __restrict format, short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -209,7 +207,7 @@ int scanf_va_7(char const *format, short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_7(char const *format, int param0); +int printf_va_7(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -225,7 +223,7 @@ int printf_va_7(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_8(char const *format, short *param0); +int scanf_va_8(char const * __restrict format, short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -238,7 +236,7 @@ int scanf_va_8(char const *format, short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_8(char const *format, int param0); +int printf_va_8(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -254,7 +252,7 @@ int printf_va_8(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_9(char const *format, unsigned short *param0); +int scanf_va_9(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -267,7 +265,7 @@ int scanf_va_9(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_9(char const *format, int param0); +int printf_va_9(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -283,7 +281,7 @@ int printf_va_9(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_10(char const *format, unsigned short *param0); +int scanf_va_10(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -296,7 +294,7 @@ int scanf_va_10(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_10(char const *format, int param0); +int printf_va_10(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -312,7 +310,7 @@ int printf_va_10(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_11(char const *format, unsigned short *param0); +int scanf_va_11(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -325,7 +323,7 @@ int scanf_va_11(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_11(char const *format, int param0); +int printf_va_11(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -341,7 +339,7 @@ int printf_va_11(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_12(char const *format, unsigned short *param0); +int scanf_va_12(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -354,7 +352,7 @@ int scanf_va_12(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_12(char const *format, int param0); +int printf_va_12(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -370,7 +368,7 @@ int printf_va_12(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_13(char const *format, int *param0); +int scanf_va_13(char const * __restrict format, int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -383,7 +381,7 @@ int scanf_va_13(char const *format, int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_13(char const *format, int param0); +int printf_va_13(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -399,7 +397,7 @@ int printf_va_13(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_14(char const *format, int *param0); +int scanf_va_14(char const * __restrict format, int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -412,7 +410,7 @@ int scanf_va_14(char const *format, int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_14(char const *format, int param0); +int printf_va_14(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -428,7 +426,7 @@ int printf_va_14(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_15(char const *format, unsigned int *param0); +int scanf_va_15(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -441,7 +439,7 @@ int scanf_va_15(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_15(char const *format, unsigned int param0); +int printf_va_15(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -457,7 +455,7 @@ int printf_va_15(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_16(char const *format, unsigned int *param0); +int scanf_va_16(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -470,7 +468,7 @@ int scanf_va_16(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_16(char const *format, unsigned int param0); +int printf_va_16(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -486,7 +484,7 @@ int printf_va_16(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_17(char const *format, unsigned int *param0); +int scanf_va_17(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -499,7 +497,7 @@ int scanf_va_17(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_17(char const *format, unsigned int param0); +int printf_va_17(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -515,7 +513,7 @@ int printf_va_17(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_18(char const *format, unsigned int *param0); +int scanf_va_18(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -528,7 +526,7 @@ int scanf_va_18(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_18(char const *format, unsigned int param0); +int printf_va_18(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -544,7 +542,7 @@ int printf_va_18(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_19(char const *format, long long *param0); +int scanf_va_19(char const * __restrict format, long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -557,7 +555,7 @@ int scanf_va_19(char const *format, long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_19(char const *format, long long param0); +int printf_va_19(char const * __restrict format, long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -573,7 +571,7 @@ int printf_va_19(char const *format, long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_20(char const *format, long long *param0); +int scanf_va_20(char const * __restrict format, long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -586,7 +584,7 @@ int scanf_va_20(char const *format, long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_20(char const *format, long long param0); +int printf_va_20(char const * __restrict format, long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -602,7 +600,7 @@ int printf_va_20(char const *format, long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_21(char const *format, unsigned long long *param0); +int scanf_va_21(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -615,7 +613,7 @@ int scanf_va_21(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_21(char const *format, unsigned long long param0); +int printf_va_21(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -631,7 +629,7 @@ int printf_va_21(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_22(char const *format, unsigned long long *param0); +int scanf_va_22(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -644,7 +642,7 @@ int scanf_va_22(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_22(char const *format, unsigned long long param0); +int printf_va_22(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -660,7 +658,7 @@ int printf_va_22(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_23(char const *format, unsigned long long *param0); +int scanf_va_23(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -673,7 +671,7 @@ int scanf_va_23(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_23(char const *format, unsigned long long param0); +int printf_va_23(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -689,7 +687,7 @@ int printf_va_23(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_24(char const *format, unsigned long long *param0); +int scanf_va_24(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -702,7 +700,7 @@ int scanf_va_24(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_24(char const *format, unsigned long long param0); +int printf_va_24(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -718,7 +716,7 @@ int printf_va_24(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_25(char const *format, signed char *param0); +int scanf_va_25(char const * __restrict format, signed char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -731,7 +729,7 @@ int scanf_va_25(char const *format, signed char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_25(char const *format, int param0); +int printf_va_25(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -747,7 +745,7 @@ int printf_va_25(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_26(char const *format, signed char *param0); +int scanf_va_26(char const * __restrict format, signed char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -760,7 +758,7 @@ int scanf_va_26(char const *format, signed char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_26(char const *format, int param0); +int printf_va_26(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -776,7 +774,7 @@ int printf_va_26(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_27(char const *format, unsigned char *param0); +int scanf_va_27(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -789,7 +787,7 @@ int scanf_va_27(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_27(char const *format, int param0); +int printf_va_27(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -805,7 +803,7 @@ int printf_va_27(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_28(char const *format, unsigned char *param0); +int scanf_va_28(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -818,7 +816,7 @@ int scanf_va_28(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_28(char const *format, int param0); +int printf_va_28(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -834,7 +832,7 @@ int printf_va_28(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_29(char const *format, unsigned char *param0); +int scanf_va_29(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -847,7 +845,7 @@ int scanf_va_29(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_29(char const *format, int param0); +int printf_va_29(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -863,7 +861,7 @@ int printf_va_29(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_30(char const *format, unsigned char *param0); +int scanf_va_30(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -876,7 +874,7 @@ int scanf_va_30(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_30(char const *format, int param0); +int printf_va_30(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -892,7 +890,7 @@ int printf_va_30(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_31(char const *format, short *param0); +int scanf_va_31(char const * __restrict format, short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -905,7 +903,7 @@ int scanf_va_31(char const *format, short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_31(char const *format, int param0); +int printf_va_31(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -921,7 +919,7 @@ int printf_va_31(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_32(char const *format, short *param0); +int scanf_va_32(char const * __restrict format, short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -934,7 +932,7 @@ int scanf_va_32(char const *format, short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_32(char const *format, int param0); +int printf_va_32(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -950,7 +948,7 @@ int printf_va_32(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_33(char const *format, unsigned short *param0); +int scanf_va_33(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -963,7 +961,7 @@ int scanf_va_33(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_33(char const *format, int param0); +int printf_va_33(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -979,7 +977,7 @@ int printf_va_33(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_34(char const *format, unsigned short *param0); +int scanf_va_34(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -992,7 +990,7 @@ int scanf_va_34(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_34(char const *format, int param0); +int printf_va_34(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1008,7 +1006,7 @@ int printf_va_34(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_35(char const *format, unsigned short *param0); +int scanf_va_35(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1021,7 +1019,7 @@ int scanf_va_35(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_35(char const *format, int param0); +int printf_va_35(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1037,7 +1035,7 @@ int printf_va_35(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_36(char const *format, unsigned short *param0); +int scanf_va_36(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1050,7 +1048,7 @@ int scanf_va_36(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_36(char const *format, int param0); +int printf_va_36(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1066,7 +1064,7 @@ int printf_va_36(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_37(char const *format, int *param0); +int scanf_va_37(char const * __restrict format, int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1079,7 +1077,7 @@ int scanf_va_37(char const *format, int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_37(char const *format, int param0); +int printf_va_37(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1095,7 +1093,7 @@ int printf_va_37(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_38(char const *format, int *param0); +int scanf_va_38(char const * __restrict format, int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1108,7 +1106,7 @@ int scanf_va_38(char const *format, int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_38(char const *format, int param0); +int printf_va_38(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1124,7 +1122,7 @@ int printf_va_38(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_39(char const *format, unsigned int *param0); +int scanf_va_39(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1137,7 +1135,7 @@ int scanf_va_39(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_39(char const *format, unsigned int param0); +int printf_va_39(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1153,7 +1151,7 @@ int printf_va_39(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_40(char const *format, unsigned int *param0); +int scanf_va_40(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1166,7 +1164,7 @@ int scanf_va_40(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_40(char const *format, unsigned int param0); +int printf_va_40(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1182,7 +1180,7 @@ int printf_va_40(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_41(char const *format, unsigned int *param0); +int scanf_va_41(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1195,7 +1193,7 @@ int scanf_va_41(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_41(char const *format, unsigned int param0); +int printf_va_41(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1211,7 +1209,7 @@ int printf_va_41(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_42(char const *format, unsigned int *param0); +int scanf_va_42(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1224,7 +1222,7 @@ int scanf_va_42(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_42(char const *format, unsigned int param0); +int printf_va_42(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1240,7 +1238,7 @@ int printf_va_42(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_43(char const *format, long long *param0); +int scanf_va_43(char const * __restrict format, long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1253,7 +1251,7 @@ int scanf_va_43(char const *format, long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_43(char const *format, long long param0); +int printf_va_43(char const * __restrict format, long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1269,7 +1267,7 @@ int printf_va_43(char const *format, long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_44(char const *format, long long *param0); +int scanf_va_44(char const * __restrict format, long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1282,7 +1280,7 @@ int scanf_va_44(char const *format, long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_44(char const *format, long long param0); +int printf_va_44(char const * __restrict format, long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1298,7 +1296,7 @@ int printf_va_44(char const *format, long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_45(char const *format, unsigned long long *param0); +int scanf_va_45(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1311,7 +1309,7 @@ int scanf_va_45(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_45(char const *format, unsigned long long param0); +int printf_va_45(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1327,7 +1325,7 @@ int printf_va_45(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_46(char const *format, unsigned long long *param0); +int scanf_va_46(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1340,7 +1338,7 @@ int scanf_va_46(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_46(char const *format, unsigned long long param0); +int printf_va_46(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1356,7 +1354,7 @@ int printf_va_46(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_47(char const *format, unsigned long long *param0); +int scanf_va_47(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1369,7 +1367,7 @@ int scanf_va_47(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_47(char const *format, unsigned long long param0); +int printf_va_47(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1385,7 +1383,7 @@ int printf_va_47(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_48(char const *format, unsigned long long *param0); +int scanf_va_48(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1398,7 +1396,7 @@ int scanf_va_48(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_48(char const *format, unsigned long long param0); +int printf_va_48(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1414,7 +1412,7 @@ int printf_va_48(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_49(char const *format, signed char *param0); +int scanf_va_49(char const * __restrict format, signed char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1427,7 +1425,7 @@ int scanf_va_49(char const *format, signed char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_49(char const *format, int param0); +int printf_va_49(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1443,7 +1441,7 @@ int printf_va_49(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_50(char const *format, signed char *param0); +int scanf_va_50(char const * __restrict format, signed char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1456,7 +1454,7 @@ int scanf_va_50(char const *format, signed char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_50(char const *format, int param0); +int printf_va_50(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1472,7 +1470,7 @@ int printf_va_50(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_51(char const *format, unsigned char *param0); +int scanf_va_51(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1485,7 +1483,7 @@ int scanf_va_51(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_51(char const *format, int param0); +int printf_va_51(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1501,7 +1499,7 @@ int printf_va_51(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_52(char const *format, unsigned char *param0); +int scanf_va_52(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1514,7 +1512,7 @@ int scanf_va_52(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_52(char const *format, int param0); +int printf_va_52(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1530,7 +1528,7 @@ int printf_va_52(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_53(char const *format, unsigned char *param0); +int scanf_va_53(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1543,7 +1541,7 @@ int scanf_va_53(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_53(char const *format, int param0); +int printf_va_53(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1559,7 +1557,7 @@ int printf_va_53(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_54(char const *format, unsigned char *param0); +int scanf_va_54(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1572,7 +1570,7 @@ int scanf_va_54(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_54(char const *format, int param0); +int printf_va_54(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1588,7 +1586,7 @@ int printf_va_54(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_55(char const *format, int *param0); +int scanf_va_55(char const * __restrict format, int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1601,7 +1599,7 @@ int scanf_va_55(char const *format, int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_55(char const *format, int param0); +int printf_va_55(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1617,7 +1615,7 @@ int printf_va_55(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_56(char const *format, int *param0); +int scanf_va_56(char const * __restrict format, int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1630,7 +1628,7 @@ int scanf_va_56(char const *format, int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_56(char const *format, int param0); +int printf_va_56(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1646,7 +1644,7 @@ int printf_va_56(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_57(char const *format, unsigned int *param0); +int scanf_va_57(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1659,7 +1657,7 @@ int scanf_va_57(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_57(char const *format, unsigned int param0); +int printf_va_57(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1675,7 +1673,7 @@ int printf_va_57(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_58(char const *format, unsigned int *param0); +int scanf_va_58(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1688,7 +1686,7 @@ int scanf_va_58(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_58(char const *format, unsigned int param0); +int printf_va_58(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1704,7 +1702,7 @@ int printf_va_58(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_59(char const *format, unsigned int *param0); +int scanf_va_59(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1717,7 +1715,7 @@ int scanf_va_59(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_59(char const *format, unsigned int param0); +int printf_va_59(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1733,7 +1731,7 @@ int printf_va_59(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_60(char const *format, unsigned int *param0); +int scanf_va_60(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1746,7 +1744,7 @@ int scanf_va_60(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_60(char const *format, unsigned int param0); +int printf_va_60(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1762,7 +1760,7 @@ int printf_va_60(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_61(char const *format, int *param0); +int scanf_va_61(char const * __restrict format, int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1775,7 +1773,7 @@ int scanf_va_61(char const *format, int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_61(char const *format, int param0); +int printf_va_61(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1791,7 +1789,7 @@ int printf_va_61(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_62(char const *format, int *param0); +int scanf_va_62(char const * __restrict format, int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1804,7 +1802,7 @@ int scanf_va_62(char const *format, int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_62(char const *format, int param0); +int printf_va_62(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1820,7 +1818,7 @@ int printf_va_62(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_63(char const *format, unsigned int *param0); +int scanf_va_63(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1833,7 +1831,7 @@ int scanf_va_63(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_63(char const *format, unsigned int param0); +int printf_va_63(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1849,7 +1847,7 @@ int printf_va_63(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_64(char const *format, unsigned int *param0); +int scanf_va_64(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1862,7 +1860,7 @@ int scanf_va_64(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_64(char const *format, unsigned int param0); +int printf_va_64(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1878,7 +1876,7 @@ int printf_va_64(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_65(char const *format, unsigned int *param0); +int scanf_va_65(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1891,7 +1889,7 @@ int scanf_va_65(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_65(char const *format, unsigned int param0); +int printf_va_65(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1907,7 +1905,7 @@ int printf_va_65(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_66(char const *format, unsigned int *param0); +int scanf_va_66(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1920,7 +1918,7 @@ int scanf_va_66(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_66(char const *format, unsigned int param0); +int printf_va_66(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1936,7 +1934,7 @@ int printf_va_66(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_67(char const *format, long long *param0); +int scanf_va_67(char const * __restrict format, long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1949,7 +1947,7 @@ int scanf_va_67(char const *format, long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_67(char const *format, long long param0); +int printf_va_67(char const * __restrict format, long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1965,7 +1963,7 @@ int printf_va_67(char const *format, long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_68(char const *format, long long *param0); +int scanf_va_68(char const * __restrict format, long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1978,7 +1976,7 @@ int scanf_va_68(char const *format, long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_68(char const *format, long long param0); +int printf_va_68(char const * __restrict format, long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1994,7 +1992,7 @@ int printf_va_68(char const *format, long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_69(char const *format, unsigned long long *param0); +int scanf_va_69(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2007,7 +2005,7 @@ int scanf_va_69(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_69(char const *format, unsigned long long param0); +int printf_va_69(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2023,7 +2021,7 @@ int printf_va_69(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_70(char const *format, unsigned long long *param0); +int scanf_va_70(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2036,7 +2034,7 @@ int scanf_va_70(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_70(char const *format, unsigned long long param0); +int printf_va_70(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2052,7 +2050,7 @@ int printf_va_70(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_71(char const *format, unsigned long long *param0); +int scanf_va_71(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2065,7 +2063,7 @@ int scanf_va_71(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_71(char const *format, unsigned long long param0); +int printf_va_71(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2081,7 +2079,7 @@ int printf_va_71(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_72(char const *format, unsigned long long *param0); +int scanf_va_72(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2094,7 +2092,7 @@ int scanf_va_72(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_72(char const *format, unsigned long long param0); +int printf_va_72(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2110,7 +2108,7 @@ int printf_va_72(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_73(char const *format, long long *param0); +int scanf_va_73(char const * __restrict format, long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2123,7 +2121,7 @@ int scanf_va_73(char const *format, long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_73(char const *format, long long param0); +int printf_va_73(char const * __restrict format, long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2139,7 +2137,7 @@ int printf_va_73(char const *format, long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_74(char const *format, long long *param0); +int scanf_va_74(char const * __restrict format, long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2152,7 +2150,7 @@ int scanf_va_74(char const *format, long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_74(char const *format, long long param0); +int printf_va_74(char const * __restrict format, long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2168,7 +2166,7 @@ int printf_va_74(char const *format, long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_75(char const *format, unsigned long long *param0); +int scanf_va_75(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2181,7 +2179,7 @@ int scanf_va_75(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_75(char const *format, unsigned long long param0); +int printf_va_75(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2197,7 +2195,7 @@ int printf_va_75(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_76(char const *format, unsigned long long *param0); +int scanf_va_76(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2210,7 +2208,7 @@ int scanf_va_76(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_76(char const *format, unsigned long long param0); +int printf_va_76(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2226,7 +2224,7 @@ int printf_va_76(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_77(char const *format, unsigned long long *param0); +int scanf_va_77(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2239,7 +2237,7 @@ int scanf_va_77(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_77(char const *format, unsigned long long param0); +int printf_va_77(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2255,7 +2253,7 @@ int printf_va_77(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_78(char const *format, unsigned long long *param0); +int scanf_va_78(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2268,7 +2266,7 @@ int scanf_va_78(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_78(char const *format, unsigned long long param0); +int printf_va_78(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2284,7 +2282,7 @@ int printf_va_78(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_79(char const *format, int *param0); +int scanf_va_79(char const * __restrict format, int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2297,7 +2295,7 @@ int scanf_va_79(char const *format, int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_79(char const *format, int param0); +int printf_va_79(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2313,7 +2311,7 @@ int printf_va_79(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_80(char const *format, int *param0); +int scanf_va_80(char const * __restrict format, int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2326,7 +2324,7 @@ int scanf_va_80(char const *format, int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_80(char const *format, int param0); +int printf_va_80(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2342,7 +2340,7 @@ int printf_va_80(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_81(char const *format, unsigned int *param0); +int scanf_va_81(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2355,7 +2353,7 @@ int scanf_va_81(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_81(char const *format, unsigned int param0); +int printf_va_81(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2371,7 +2369,7 @@ int printf_va_81(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_82(char const *format, unsigned int *param0); +int scanf_va_82(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2384,7 +2382,7 @@ int scanf_va_82(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_82(char const *format, unsigned int param0); +int printf_va_82(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2400,7 +2398,7 @@ int printf_va_82(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_83(char const *format, unsigned int *param0); +int scanf_va_83(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2413,7 +2411,7 @@ int scanf_va_83(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_83(char const *format, unsigned int param0); +int printf_va_83(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2429,7 +2427,7 @@ int printf_va_83(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_84(char const *format, unsigned int *param0); +int scanf_va_84(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2442,7 +2440,7 @@ int scanf_va_84(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_84(char const *format, unsigned int param0); +int printf_va_84(char const * __restrict format, unsigned int param0); int main(void) { diff --git a/tests/libc/oracle/inttypes_h.2.res.oracle b/tests/libc/oracle/inttypes_h.2.res.oracle index d26cb3da44afc0937151213ed1c835f0be9d9412..a70f22663383c9b382e0ba42f879d9fb625fa700 100644 --- a/tests/libc/oracle/inttypes_h.2.res.oracle +++ b/tests/libc/oracle/inttypes_h.2.res.oracle @@ -1,5 +1,3 @@ -[kernel:pp] - preprocessing with "gcc -E -C -I. -I./share/libc -D__FRAMAC__ -D__FC_MACHDEP_X86_64 -dD -nostdinc -m64 tests/libc/inttypes_h.c" [kernel] Parsing tests/libc/inttypes_h.c (with preprocessing) /* Generated by Frama-C */ #include "errno.h" @@ -22,7 +20,7 @@ \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_1(char const *format, signed char *param0); +int scanf_va_1(char const * __restrict format, signed char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -35,7 +33,7 @@ int scanf_va_1(char const *format, signed char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_1(char const *format, int param0); +int printf_va_1(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -51,7 +49,7 @@ int printf_va_1(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_2(char const *format, signed char *param0); +int scanf_va_2(char const * __restrict format, signed char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -64,7 +62,7 @@ int scanf_va_2(char const *format, signed char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_2(char const *format, int param0); +int printf_va_2(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -80,7 +78,7 @@ int printf_va_2(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_3(char const *format, unsigned char *param0); +int scanf_va_3(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -93,7 +91,7 @@ int scanf_va_3(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_3(char const *format, int param0); +int printf_va_3(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -109,7 +107,7 @@ int printf_va_3(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_4(char const *format, unsigned char *param0); +int scanf_va_4(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -122,7 +120,7 @@ int scanf_va_4(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_4(char const *format, int param0); +int printf_va_4(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -138,7 +136,7 @@ int printf_va_4(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_5(char const *format, unsigned char *param0); +int scanf_va_5(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -151,7 +149,7 @@ int scanf_va_5(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_5(char const *format, int param0); +int printf_va_5(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -167,7 +165,7 @@ int printf_va_5(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_6(char const *format, unsigned char *param0); +int scanf_va_6(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -180,7 +178,7 @@ int scanf_va_6(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_6(char const *format, int param0); +int printf_va_6(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -196,7 +194,7 @@ int printf_va_6(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_7(char const *format, short *param0); +int scanf_va_7(char const * __restrict format, short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -209,7 +207,7 @@ int scanf_va_7(char const *format, short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_7(char const *format, int param0); +int printf_va_7(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -225,7 +223,7 @@ int printf_va_7(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_8(char const *format, short *param0); +int scanf_va_8(char const * __restrict format, short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -238,7 +236,7 @@ int scanf_va_8(char const *format, short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_8(char const *format, int param0); +int printf_va_8(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -254,7 +252,7 @@ int printf_va_8(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_9(char const *format, unsigned short *param0); +int scanf_va_9(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -267,7 +265,7 @@ int scanf_va_9(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_9(char const *format, int param0); +int printf_va_9(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -283,7 +281,7 @@ int printf_va_9(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_10(char const *format, unsigned short *param0); +int scanf_va_10(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -296,7 +294,7 @@ int scanf_va_10(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_10(char const *format, int param0); +int printf_va_10(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -312,7 +310,7 @@ int printf_va_10(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_11(char const *format, unsigned short *param0); +int scanf_va_11(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -325,7 +323,7 @@ int scanf_va_11(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_11(char const *format, int param0); +int printf_va_11(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -341,7 +339,7 @@ int printf_va_11(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_12(char const *format, unsigned short *param0); +int scanf_va_12(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -354,7 +352,7 @@ int scanf_va_12(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_12(char const *format, int param0); +int printf_va_12(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -370,7 +368,7 @@ int printf_va_12(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_13(char const *format, int *param0); +int scanf_va_13(char const * __restrict format, int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -383,7 +381,7 @@ int scanf_va_13(char const *format, int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_13(char const *format, int param0); +int printf_va_13(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -399,7 +397,7 @@ int printf_va_13(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_14(char const *format, int *param0); +int scanf_va_14(char const * __restrict format, int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -412,7 +410,7 @@ int scanf_va_14(char const *format, int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_14(char const *format, int param0); +int printf_va_14(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -428,7 +426,7 @@ int printf_va_14(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_15(char const *format, unsigned int *param0); +int scanf_va_15(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -441,7 +439,7 @@ int scanf_va_15(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_15(char const *format, unsigned int param0); +int printf_va_15(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -457,7 +455,7 @@ int printf_va_15(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_16(char const *format, unsigned int *param0); +int scanf_va_16(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -470,7 +468,7 @@ int scanf_va_16(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_16(char const *format, unsigned int param0); +int printf_va_16(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -486,7 +484,7 @@ int printf_va_16(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_17(char const *format, unsigned int *param0); +int scanf_va_17(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -499,7 +497,7 @@ int scanf_va_17(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_17(char const *format, unsigned int param0); +int printf_va_17(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -515,7 +513,7 @@ int printf_va_17(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_18(char const *format, unsigned int *param0); +int scanf_va_18(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -528,7 +526,7 @@ int scanf_va_18(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_18(char const *format, unsigned int param0); +int printf_va_18(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -544,7 +542,7 @@ int printf_va_18(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_19(char const *format, long *param0); +int scanf_va_19(char const * __restrict format, long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -557,7 +555,7 @@ int scanf_va_19(char const *format, long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_19(char const *format, long param0); +int printf_va_19(char const * __restrict format, long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -573,7 +571,7 @@ int printf_va_19(char const *format, long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_20(char const *format, long *param0); +int scanf_va_20(char const * __restrict format, long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -586,7 +584,7 @@ int scanf_va_20(char const *format, long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_20(char const *format, long param0); +int printf_va_20(char const * __restrict format, long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -602,7 +600,7 @@ int printf_va_20(char const *format, long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_21(char const *format, unsigned long *param0); +int scanf_va_21(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -615,7 +613,7 @@ int scanf_va_21(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_21(char const *format, unsigned long param0); +int printf_va_21(char const * __restrict format, unsigned long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -631,7 +629,7 @@ int printf_va_21(char const *format, unsigned long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_22(char const *format, unsigned long *param0); +int scanf_va_22(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -644,7 +642,7 @@ int scanf_va_22(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_22(char const *format, unsigned long param0); +int printf_va_22(char const * __restrict format, unsigned long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -660,7 +658,7 @@ int printf_va_22(char const *format, unsigned long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_23(char const *format, unsigned long *param0); +int scanf_va_23(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -673,7 +671,7 @@ int scanf_va_23(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_23(char const *format, unsigned long param0); +int printf_va_23(char const * __restrict format, unsigned long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -689,7 +687,7 @@ int printf_va_23(char const *format, unsigned long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_24(char const *format, unsigned long *param0); +int scanf_va_24(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -702,7 +700,7 @@ int scanf_va_24(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_24(char const *format, unsigned long param0); +int printf_va_24(char const * __restrict format, unsigned long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -718,7 +716,7 @@ int printf_va_24(char const *format, unsigned long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_25(char const *format, signed char *param0); +int scanf_va_25(char const * __restrict format, signed char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -731,7 +729,7 @@ int scanf_va_25(char const *format, signed char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_25(char const *format, int param0); +int printf_va_25(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -747,7 +745,7 @@ int printf_va_25(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_26(char const *format, signed char *param0); +int scanf_va_26(char const * __restrict format, signed char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -760,7 +758,7 @@ int scanf_va_26(char const *format, signed char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_26(char const *format, int param0); +int printf_va_26(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -776,7 +774,7 @@ int printf_va_26(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_27(char const *format, unsigned char *param0); +int scanf_va_27(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -789,7 +787,7 @@ int scanf_va_27(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_27(char const *format, int param0); +int printf_va_27(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -805,7 +803,7 @@ int printf_va_27(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_28(char const *format, unsigned char *param0); +int scanf_va_28(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -818,7 +816,7 @@ int scanf_va_28(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_28(char const *format, int param0); +int printf_va_28(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -834,7 +832,7 @@ int printf_va_28(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_29(char const *format, unsigned char *param0); +int scanf_va_29(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -847,7 +845,7 @@ int scanf_va_29(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_29(char const *format, int param0); +int printf_va_29(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -863,7 +861,7 @@ int printf_va_29(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_30(char const *format, unsigned char *param0); +int scanf_va_30(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -876,7 +874,7 @@ int scanf_va_30(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_30(char const *format, int param0); +int printf_va_30(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -892,7 +890,7 @@ int printf_va_30(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_31(char const *format, short *param0); +int scanf_va_31(char const * __restrict format, short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -905,7 +903,7 @@ int scanf_va_31(char const *format, short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_31(char const *format, int param0); +int printf_va_31(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -921,7 +919,7 @@ int printf_va_31(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_32(char const *format, short *param0); +int scanf_va_32(char const * __restrict format, short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -934,7 +932,7 @@ int scanf_va_32(char const *format, short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_32(char const *format, int param0); +int printf_va_32(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -950,7 +948,7 @@ int printf_va_32(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_33(char const *format, unsigned short *param0); +int scanf_va_33(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -963,7 +961,7 @@ int scanf_va_33(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_33(char const *format, int param0); +int printf_va_33(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -979,7 +977,7 @@ int printf_va_33(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_34(char const *format, unsigned short *param0); +int scanf_va_34(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -992,7 +990,7 @@ int scanf_va_34(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_34(char const *format, int param0); +int printf_va_34(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1008,7 +1006,7 @@ int printf_va_34(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_35(char const *format, unsigned short *param0); +int scanf_va_35(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1021,7 +1019,7 @@ int scanf_va_35(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_35(char const *format, int param0); +int printf_va_35(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1037,7 +1035,7 @@ int printf_va_35(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_36(char const *format, unsigned short *param0); +int scanf_va_36(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1050,7 +1048,7 @@ int scanf_va_36(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_36(char const *format, int param0); +int printf_va_36(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1066,7 +1064,7 @@ int printf_va_36(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_37(char const *format, int *param0); +int scanf_va_37(char const * __restrict format, int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1079,7 +1077,7 @@ int scanf_va_37(char const *format, int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_37(char const *format, int param0); +int printf_va_37(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1095,7 +1093,7 @@ int printf_va_37(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_38(char const *format, int *param0); +int scanf_va_38(char const * __restrict format, int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1108,7 +1106,7 @@ int scanf_va_38(char const *format, int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_38(char const *format, int param0); +int printf_va_38(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1124,7 +1122,7 @@ int printf_va_38(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_39(char const *format, unsigned int *param0); +int scanf_va_39(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1137,7 +1135,7 @@ int scanf_va_39(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_39(char const *format, unsigned int param0); +int printf_va_39(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1153,7 +1151,7 @@ int printf_va_39(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_40(char const *format, unsigned int *param0); +int scanf_va_40(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1166,7 +1164,7 @@ int scanf_va_40(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_40(char const *format, unsigned int param0); +int printf_va_40(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1182,7 +1180,7 @@ int printf_va_40(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_41(char const *format, unsigned int *param0); +int scanf_va_41(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1195,7 +1193,7 @@ int scanf_va_41(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_41(char const *format, unsigned int param0); +int printf_va_41(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1211,7 +1209,7 @@ int printf_va_41(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_42(char const *format, unsigned int *param0); +int scanf_va_42(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1224,7 +1222,7 @@ int scanf_va_42(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_42(char const *format, unsigned int param0); +int printf_va_42(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1240,7 +1238,7 @@ int printf_va_42(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_43(char const *format, long *param0); +int scanf_va_43(char const * __restrict format, long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1253,7 +1251,7 @@ int scanf_va_43(char const *format, long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_43(char const *format, long param0); +int printf_va_43(char const * __restrict format, long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1269,7 +1267,7 @@ int printf_va_43(char const *format, long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_44(char const *format, long *param0); +int scanf_va_44(char const * __restrict format, long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1282,7 +1280,7 @@ int scanf_va_44(char const *format, long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_44(char const *format, long param0); +int printf_va_44(char const * __restrict format, long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1298,7 +1296,7 @@ int printf_va_44(char const *format, long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_45(char const *format, unsigned long *param0); +int scanf_va_45(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1311,7 +1309,7 @@ int scanf_va_45(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_45(char const *format, unsigned long param0); +int printf_va_45(char const * __restrict format, unsigned long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1327,7 +1325,7 @@ int printf_va_45(char const *format, unsigned long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_46(char const *format, unsigned long *param0); +int scanf_va_46(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1340,7 +1338,7 @@ int scanf_va_46(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_46(char const *format, unsigned long param0); +int printf_va_46(char const * __restrict format, unsigned long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1356,7 +1354,7 @@ int printf_va_46(char const *format, unsigned long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_47(char const *format, unsigned long *param0); +int scanf_va_47(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1369,7 +1367,7 @@ int scanf_va_47(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_47(char const *format, unsigned long param0); +int printf_va_47(char const * __restrict format, unsigned long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1385,7 +1383,7 @@ int printf_va_47(char const *format, unsigned long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_48(char const *format, unsigned long *param0); +int scanf_va_48(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1398,7 +1396,7 @@ int scanf_va_48(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_48(char const *format, unsigned long param0); +int printf_va_48(char const * __restrict format, unsigned long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1414,7 +1412,7 @@ int printf_va_48(char const *format, unsigned long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_49(char const *format, signed char *param0); +int scanf_va_49(char const * __restrict format, signed char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1427,7 +1425,7 @@ int scanf_va_49(char const *format, signed char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_49(char const *format, int param0); +int printf_va_49(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1443,7 +1441,7 @@ int printf_va_49(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_50(char const *format, signed char *param0); +int scanf_va_50(char const * __restrict format, signed char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1456,7 +1454,7 @@ int scanf_va_50(char const *format, signed char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_50(char const *format, int param0); +int printf_va_50(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1472,7 +1470,7 @@ int printf_va_50(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_51(char const *format, unsigned char *param0); +int scanf_va_51(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1485,7 +1483,7 @@ int scanf_va_51(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_51(char const *format, int param0); +int printf_va_51(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1501,7 +1499,7 @@ int printf_va_51(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_52(char const *format, unsigned char *param0); +int scanf_va_52(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1514,7 +1512,7 @@ int scanf_va_52(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_52(char const *format, int param0); +int printf_va_52(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1530,7 +1528,7 @@ int printf_va_52(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_53(char const *format, unsigned char *param0); +int scanf_va_53(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1543,7 +1541,7 @@ int scanf_va_53(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_53(char const *format, int param0); +int printf_va_53(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1559,7 +1557,7 @@ int printf_va_53(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_54(char const *format, unsigned char *param0); +int scanf_va_54(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1572,7 +1570,7 @@ int scanf_va_54(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_54(char const *format, int param0); +int printf_va_54(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1588,7 +1586,7 @@ int printf_va_54(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_55(char const *format, int *param0); +int scanf_va_55(char const * __restrict format, int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1601,7 +1599,7 @@ int scanf_va_55(char const *format, int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_55(char const *format, int param0); +int printf_va_55(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1617,7 +1615,7 @@ int printf_va_55(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_56(char const *format, int *param0); +int scanf_va_56(char const * __restrict format, int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1630,7 +1628,7 @@ int scanf_va_56(char const *format, int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_56(char const *format, int param0); +int printf_va_56(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1646,7 +1644,7 @@ int printf_va_56(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_57(char const *format, unsigned int *param0); +int scanf_va_57(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1659,7 +1657,7 @@ int scanf_va_57(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_57(char const *format, unsigned int param0); +int printf_va_57(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1675,7 +1673,7 @@ int printf_va_57(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_58(char const *format, unsigned int *param0); +int scanf_va_58(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1688,7 +1686,7 @@ int scanf_va_58(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_58(char const *format, unsigned int param0); +int printf_va_58(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1704,7 +1702,7 @@ int printf_va_58(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_59(char const *format, unsigned int *param0); +int scanf_va_59(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1717,7 +1715,7 @@ int scanf_va_59(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_59(char const *format, unsigned int param0); +int printf_va_59(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1733,7 +1731,7 @@ int printf_va_59(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_60(char const *format, unsigned int *param0); +int scanf_va_60(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1746,7 +1744,7 @@ int scanf_va_60(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_60(char const *format, unsigned int param0); +int printf_va_60(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1762,7 +1760,7 @@ int printf_va_60(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_61(char const *format, int *param0); +int scanf_va_61(char const * __restrict format, int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1775,7 +1773,7 @@ int scanf_va_61(char const *format, int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_61(char const *format, int param0); +int printf_va_61(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1791,7 +1789,7 @@ int printf_va_61(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_62(char const *format, int *param0); +int scanf_va_62(char const * __restrict format, int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1804,7 +1802,7 @@ int scanf_va_62(char const *format, int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_62(char const *format, int param0); +int printf_va_62(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1820,7 +1818,7 @@ int printf_va_62(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_63(char const *format, unsigned int *param0); +int scanf_va_63(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1833,7 +1831,7 @@ int scanf_va_63(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_63(char const *format, unsigned int param0); +int printf_va_63(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1849,7 +1847,7 @@ int printf_va_63(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_64(char const *format, unsigned int *param0); +int scanf_va_64(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1862,7 +1860,7 @@ int scanf_va_64(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_64(char const *format, unsigned int param0); +int printf_va_64(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1878,7 +1876,7 @@ int printf_va_64(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_65(char const *format, unsigned int *param0); +int scanf_va_65(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1891,7 +1889,7 @@ int scanf_va_65(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_65(char const *format, unsigned int param0); +int printf_va_65(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1907,7 +1905,7 @@ int printf_va_65(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_66(char const *format, unsigned int *param0); +int scanf_va_66(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1920,7 +1918,7 @@ int scanf_va_66(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_66(char const *format, unsigned int param0); +int printf_va_66(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1936,7 +1934,7 @@ int printf_va_66(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_67(char const *format, long *param0); +int scanf_va_67(char const * __restrict format, long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1949,7 +1947,7 @@ int scanf_va_67(char const *format, long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_67(char const *format, long param0); +int printf_va_67(char const * __restrict format, long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1965,7 +1963,7 @@ int printf_va_67(char const *format, long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_68(char const *format, long *param0); +int scanf_va_68(char const * __restrict format, long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1978,7 +1976,7 @@ int scanf_va_68(char const *format, long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_68(char const *format, long param0); +int printf_va_68(char const * __restrict format, long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1994,7 +1992,7 @@ int printf_va_68(char const *format, long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_69(char const *format, unsigned long *param0); +int scanf_va_69(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2007,7 +2005,7 @@ int scanf_va_69(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_69(char const *format, unsigned long param0); +int printf_va_69(char const * __restrict format, unsigned long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2023,7 +2021,7 @@ int printf_va_69(char const *format, unsigned long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_70(char const *format, unsigned long *param0); +int scanf_va_70(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2036,7 +2034,7 @@ int scanf_va_70(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_70(char const *format, unsigned long param0); +int printf_va_70(char const * __restrict format, unsigned long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2052,7 +2050,7 @@ int printf_va_70(char const *format, unsigned long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_71(char const *format, unsigned long *param0); +int scanf_va_71(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2065,7 +2063,7 @@ int scanf_va_71(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_71(char const *format, unsigned long param0); +int printf_va_71(char const * __restrict format, unsigned long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2081,7 +2079,7 @@ int printf_va_71(char const *format, unsigned long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_72(char const *format, unsigned long *param0); +int scanf_va_72(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2094,7 +2092,7 @@ int scanf_va_72(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_72(char const *format, unsigned long param0); +int printf_va_72(char const * __restrict format, unsigned long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2110,7 +2108,7 @@ int printf_va_72(char const *format, unsigned long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_73(char const *format, long long *param0); +int scanf_va_73(char const * __restrict format, long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2123,7 +2121,7 @@ int scanf_va_73(char const *format, long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_73(char const *format, long long param0); +int printf_va_73(char const * __restrict format, long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2139,7 +2137,7 @@ int printf_va_73(char const *format, long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_74(char const *format, long long *param0); +int scanf_va_74(char const * __restrict format, long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2152,7 +2150,7 @@ int scanf_va_74(char const *format, long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_74(char const *format, long long param0); +int printf_va_74(char const * __restrict format, long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2168,7 +2166,7 @@ int printf_va_74(char const *format, long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_75(char const *format, unsigned long long *param0); +int scanf_va_75(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2181,7 +2179,7 @@ int scanf_va_75(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_75(char const *format, unsigned long long param0); +int printf_va_75(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2197,7 +2195,7 @@ int printf_va_75(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_76(char const *format, unsigned long long *param0); +int scanf_va_76(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2210,7 +2208,7 @@ int scanf_va_76(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_76(char const *format, unsigned long long param0); +int printf_va_76(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2226,7 +2224,7 @@ int printf_va_76(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_77(char const *format, unsigned long long *param0); +int scanf_va_77(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2239,7 +2237,7 @@ int scanf_va_77(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_77(char const *format, unsigned long long param0); +int printf_va_77(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2255,7 +2253,7 @@ int printf_va_77(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_78(char const *format, unsigned long long *param0); +int scanf_va_78(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2268,7 +2266,7 @@ int scanf_va_78(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_78(char const *format, unsigned long long param0); +int printf_va_78(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2284,7 +2282,7 @@ int printf_va_78(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_79(char const *format, long *param0); +int scanf_va_79(char const * __restrict format, long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2297,7 +2295,7 @@ int scanf_va_79(char const *format, long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_79(char const *format, long param0); +int printf_va_79(char const * __restrict format, long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2313,7 +2311,7 @@ int printf_va_79(char const *format, long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_80(char const *format, long *param0); +int scanf_va_80(char const * __restrict format, long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2326,7 +2324,7 @@ int scanf_va_80(char const *format, long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_80(char const *format, long param0); +int printf_va_80(char const * __restrict format, long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2342,7 +2340,7 @@ int printf_va_80(char const *format, long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_81(char const *format, unsigned long *param0); +int scanf_va_81(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2355,7 +2353,7 @@ int scanf_va_81(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_81(char const *format, unsigned long param0); +int printf_va_81(char const * __restrict format, unsigned long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2371,7 +2369,7 @@ int printf_va_81(char const *format, unsigned long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_82(char const *format, unsigned long *param0); +int scanf_va_82(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2384,7 +2382,7 @@ int scanf_va_82(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_82(char const *format, unsigned long param0); +int printf_va_82(char const * __restrict format, unsigned long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2400,7 +2398,7 @@ int printf_va_82(char const *format, unsigned long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_83(char const *format, unsigned long *param0); +int scanf_va_83(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2413,7 +2411,7 @@ int scanf_va_83(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_83(char const *format, unsigned long param0); +int printf_va_83(char const * __restrict format, unsigned long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2429,7 +2427,7 @@ int printf_va_83(char const *format, unsigned long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_84(char const *format, unsigned long *param0); +int scanf_va_84(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2442,7 +2440,7 @@ int scanf_va_84(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_84(char const *format, unsigned long param0); +int printf_va_84(char const * __restrict format, unsigned long param0); int main(void) { diff --git a/tests/libc/oracle/inttypes_h.3.res.oracle b/tests/libc/oracle/inttypes_h.3.res.oracle index 95a7c50626ca0688f6494161a16f81ac20021e51..eaaa132d690dde79c31b64fed1258454417d0d00 100644 --- a/tests/libc/oracle/inttypes_h.3.res.oracle +++ b/tests/libc/oracle/inttypes_h.3.res.oracle @@ -1,5 +1,3 @@ -[kernel:pp] - preprocessing with "gcc -E -C -I. -I./share/libc -D__FRAMAC__ -D__FC_MACHDEP_X86_16 -dD -nostdinc -m16 tests/libc/inttypes_h.c" [kernel] Parsing tests/libc/inttypes_h.c (with preprocessing) /* Generated by Frama-C */ #include "errno.h" @@ -22,7 +20,7 @@ \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_1(char const *format, signed char *param0); +int scanf_va_1(char const * __restrict format, signed char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -35,7 +33,7 @@ int scanf_va_1(char const *format, signed char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_1(char const *format, int param0); +int printf_va_1(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -51,7 +49,7 @@ int printf_va_1(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_2(char const *format, signed char *param0); +int scanf_va_2(char const * __restrict format, signed char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -64,7 +62,7 @@ int scanf_va_2(char const *format, signed char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_2(char const *format, int param0); +int printf_va_2(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -80,7 +78,7 @@ int printf_va_2(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_3(char const *format, unsigned char *param0); +int scanf_va_3(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -93,7 +91,7 @@ int scanf_va_3(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_3(char const *format, int param0); +int printf_va_3(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -109,7 +107,7 @@ int printf_va_3(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_4(char const *format, unsigned char *param0); +int scanf_va_4(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -122,7 +120,7 @@ int scanf_va_4(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_4(char const *format, int param0); +int printf_va_4(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -138,7 +136,7 @@ int printf_va_4(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_5(char const *format, unsigned char *param0); +int scanf_va_5(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -151,7 +149,7 @@ int scanf_va_5(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_5(char const *format, int param0); +int printf_va_5(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -167,7 +165,7 @@ int printf_va_5(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_6(char const *format, unsigned char *param0); +int scanf_va_6(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -180,7 +178,7 @@ int scanf_va_6(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_6(char const *format, int param0); +int printf_va_6(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -196,7 +194,7 @@ int printf_va_6(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_7(char const *format, short *param0); +int scanf_va_7(char const * __restrict format, short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -209,7 +207,7 @@ int scanf_va_7(char const *format, short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_7(char const *format, int param0); +int printf_va_7(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -225,7 +223,7 @@ int printf_va_7(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_8(char const *format, short *param0); +int scanf_va_8(char const * __restrict format, short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -238,7 +236,7 @@ int scanf_va_8(char const *format, short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_8(char const *format, int param0); +int printf_va_8(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -254,7 +252,7 @@ int printf_va_8(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_9(char const *format, unsigned short *param0); +int scanf_va_9(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -267,7 +265,7 @@ int scanf_va_9(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_9(char const *format, unsigned int param0); +int printf_va_9(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -283,7 +281,7 @@ int printf_va_9(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_10(char const *format, unsigned short *param0); +int scanf_va_10(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -296,7 +294,7 @@ int scanf_va_10(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_10(char const *format, unsigned int param0); +int printf_va_10(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -312,7 +310,7 @@ int printf_va_10(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_11(char const *format, unsigned short *param0); +int scanf_va_11(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -325,7 +323,7 @@ int scanf_va_11(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_11(char const *format, unsigned int param0); +int printf_va_11(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -341,7 +339,7 @@ int printf_va_11(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_12(char const *format, unsigned short *param0); +int scanf_va_12(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -354,7 +352,7 @@ int scanf_va_12(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_12(char const *format, unsigned int param0); +int printf_va_12(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -370,7 +368,7 @@ int printf_va_12(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_13(char const *format, long *param0); +int scanf_va_13(char const * __restrict format, long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -383,7 +381,7 @@ int scanf_va_13(char const *format, long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_13(char const *format, long param0); +int printf_va_13(char const * __restrict format, long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -399,7 +397,7 @@ int printf_va_13(char const *format, long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_14(char const *format, long *param0); +int scanf_va_14(char const * __restrict format, long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -412,7 +410,7 @@ int scanf_va_14(char const *format, long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_14(char const *format, long param0); +int printf_va_14(char const * __restrict format, long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -428,7 +426,7 @@ int printf_va_14(char const *format, long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_15(char const *format, unsigned long *param0); +int scanf_va_15(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -441,7 +439,7 @@ int scanf_va_15(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_15(char const *format, unsigned long param0); +int printf_va_15(char const * __restrict format, unsigned long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -457,7 +455,7 @@ int printf_va_15(char const *format, unsigned long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_16(char const *format, unsigned long *param0); +int scanf_va_16(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -470,7 +468,7 @@ int scanf_va_16(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_16(char const *format, unsigned long param0); +int printf_va_16(char const * __restrict format, unsigned long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -486,7 +484,7 @@ int printf_va_16(char const *format, unsigned long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_17(char const *format, unsigned long *param0); +int scanf_va_17(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -499,7 +497,7 @@ int scanf_va_17(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_17(char const *format, unsigned long param0); +int printf_va_17(char const * __restrict format, unsigned long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -515,7 +513,7 @@ int printf_va_17(char const *format, unsigned long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_18(char const *format, unsigned long *param0); +int scanf_va_18(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -528,7 +526,7 @@ int scanf_va_18(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_18(char const *format, unsigned long param0); +int printf_va_18(char const * __restrict format, unsigned long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -544,7 +542,7 @@ int printf_va_18(char const *format, unsigned long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_19(char const *format, long long *param0); +int scanf_va_19(char const * __restrict format, long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -557,7 +555,7 @@ int scanf_va_19(char const *format, long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_19(char const *format, long long param0); +int printf_va_19(char const * __restrict format, long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -573,7 +571,7 @@ int printf_va_19(char const *format, long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_20(char const *format, long long *param0); +int scanf_va_20(char const * __restrict format, long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -586,7 +584,7 @@ int scanf_va_20(char const *format, long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_20(char const *format, long long param0); +int printf_va_20(char const * __restrict format, long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -602,7 +600,7 @@ int printf_va_20(char const *format, long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_21(char const *format, unsigned long long *param0); +int scanf_va_21(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -615,7 +613,7 @@ int scanf_va_21(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_21(char const *format, unsigned long long param0); +int printf_va_21(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -631,7 +629,7 @@ int printf_va_21(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_22(char const *format, unsigned long long *param0); +int scanf_va_22(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -644,7 +642,7 @@ int scanf_va_22(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_22(char const *format, unsigned long long param0); +int printf_va_22(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -660,7 +658,7 @@ int printf_va_22(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_23(char const *format, unsigned long long *param0); +int scanf_va_23(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -673,7 +671,7 @@ int scanf_va_23(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_23(char const *format, unsigned long long param0); +int printf_va_23(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -689,7 +687,7 @@ int printf_va_23(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_24(char const *format, unsigned long long *param0); +int scanf_va_24(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -702,7 +700,7 @@ int scanf_va_24(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_24(char const *format, unsigned long long param0); +int printf_va_24(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -718,7 +716,7 @@ int printf_va_24(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_25(char const *format, signed char *param0); +int scanf_va_25(char const * __restrict format, signed char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -731,7 +729,7 @@ int scanf_va_25(char const *format, signed char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_25(char const *format, int param0); +int printf_va_25(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -747,7 +745,7 @@ int printf_va_25(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_26(char const *format, signed char *param0); +int scanf_va_26(char const * __restrict format, signed char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -760,7 +758,7 @@ int scanf_va_26(char const *format, signed char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_26(char const *format, int param0); +int printf_va_26(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -776,7 +774,7 @@ int printf_va_26(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_27(char const *format, unsigned char *param0); +int scanf_va_27(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -789,7 +787,7 @@ int scanf_va_27(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_27(char const *format, int param0); +int printf_va_27(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -805,7 +803,7 @@ int printf_va_27(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_28(char const *format, unsigned char *param0); +int scanf_va_28(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -818,7 +816,7 @@ int scanf_va_28(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_28(char const *format, int param0); +int printf_va_28(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -834,7 +832,7 @@ int printf_va_28(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_29(char const *format, unsigned char *param0); +int scanf_va_29(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -847,7 +845,7 @@ int scanf_va_29(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_29(char const *format, int param0); +int printf_va_29(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -863,7 +861,7 @@ int printf_va_29(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_30(char const *format, unsigned char *param0); +int scanf_va_30(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -876,7 +874,7 @@ int scanf_va_30(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_30(char const *format, int param0); +int printf_va_30(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -892,7 +890,7 @@ int printf_va_30(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_31(char const *format, short *param0); +int scanf_va_31(char const * __restrict format, short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -905,7 +903,7 @@ int scanf_va_31(char const *format, short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_31(char const *format, int param0); +int printf_va_31(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -921,7 +919,7 @@ int printf_va_31(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_32(char const *format, short *param0); +int scanf_va_32(char const * __restrict format, short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -934,7 +932,7 @@ int scanf_va_32(char const *format, short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_32(char const *format, int param0); +int printf_va_32(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -950,7 +948,7 @@ int printf_va_32(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_33(char const *format, unsigned short *param0); +int scanf_va_33(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -963,7 +961,7 @@ int scanf_va_33(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_33(char const *format, unsigned int param0); +int printf_va_33(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -979,7 +977,7 @@ int printf_va_33(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_34(char const *format, unsigned short *param0); +int scanf_va_34(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -992,7 +990,7 @@ int scanf_va_34(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_34(char const *format, unsigned int param0); +int printf_va_34(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1008,7 +1006,7 @@ int printf_va_34(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_35(char const *format, unsigned short *param0); +int scanf_va_35(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1021,7 +1019,7 @@ int scanf_va_35(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_35(char const *format, unsigned int param0); +int printf_va_35(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1037,7 +1035,7 @@ int printf_va_35(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_36(char const *format, unsigned short *param0); +int scanf_va_36(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1050,7 +1048,7 @@ int scanf_va_36(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_36(char const *format, unsigned int param0); +int printf_va_36(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1066,7 +1064,7 @@ int printf_va_36(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_37(char const *format, long *param0); +int scanf_va_37(char const * __restrict format, long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1079,7 +1077,7 @@ int scanf_va_37(char const *format, long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_37(char const *format, long param0); +int printf_va_37(char const * __restrict format, long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1095,7 +1093,7 @@ int printf_va_37(char const *format, long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_38(char const *format, long *param0); +int scanf_va_38(char const * __restrict format, long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1108,7 +1106,7 @@ int scanf_va_38(char const *format, long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_38(char const *format, long param0); +int printf_va_38(char const * __restrict format, long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1124,7 +1122,7 @@ int printf_va_38(char const *format, long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_39(char const *format, unsigned long *param0); +int scanf_va_39(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1137,7 +1135,7 @@ int scanf_va_39(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_39(char const *format, unsigned long param0); +int printf_va_39(char const * __restrict format, unsigned long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1153,7 +1151,7 @@ int printf_va_39(char const *format, unsigned long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_40(char const *format, unsigned long *param0); +int scanf_va_40(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1166,7 +1164,7 @@ int scanf_va_40(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_40(char const *format, unsigned long param0); +int printf_va_40(char const * __restrict format, unsigned long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1182,7 +1180,7 @@ int printf_va_40(char const *format, unsigned long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_41(char const *format, unsigned long *param0); +int scanf_va_41(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1195,7 +1193,7 @@ int scanf_va_41(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_41(char const *format, unsigned long param0); +int printf_va_41(char const * __restrict format, unsigned long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1211,7 +1209,7 @@ int printf_va_41(char const *format, unsigned long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_42(char const *format, unsigned long *param0); +int scanf_va_42(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1224,7 +1222,7 @@ int scanf_va_42(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_42(char const *format, unsigned long param0); +int printf_va_42(char const * __restrict format, unsigned long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1240,7 +1238,7 @@ int printf_va_42(char const *format, unsigned long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_43(char const *format, long long *param0); +int scanf_va_43(char const * __restrict format, long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1253,7 +1251,7 @@ int scanf_va_43(char const *format, long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_43(char const *format, long long param0); +int printf_va_43(char const * __restrict format, long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1269,7 +1267,7 @@ int printf_va_43(char const *format, long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_44(char const *format, long long *param0); +int scanf_va_44(char const * __restrict format, long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1282,7 +1280,7 @@ int scanf_va_44(char const *format, long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_44(char const *format, long long param0); +int printf_va_44(char const * __restrict format, long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1298,7 +1296,7 @@ int printf_va_44(char const *format, long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_45(char const *format, unsigned long long *param0); +int scanf_va_45(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1311,7 +1309,7 @@ int scanf_va_45(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_45(char const *format, unsigned long long param0); +int printf_va_45(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1327,7 +1325,7 @@ int printf_va_45(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_46(char const *format, unsigned long long *param0); +int scanf_va_46(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1340,7 +1338,7 @@ int scanf_va_46(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_46(char const *format, unsigned long long param0); +int printf_va_46(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1356,7 +1354,7 @@ int printf_va_46(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_47(char const *format, unsigned long long *param0); +int scanf_va_47(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1369,7 +1367,7 @@ int scanf_va_47(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_47(char const *format, unsigned long long param0); +int printf_va_47(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1385,7 +1383,7 @@ int printf_va_47(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_48(char const *format, unsigned long long *param0); +int scanf_va_48(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1398,7 +1396,7 @@ int scanf_va_48(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_48(char const *format, unsigned long long param0); +int printf_va_48(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1414,7 +1412,7 @@ int printf_va_48(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_49(char const *format, signed char *param0); +int scanf_va_49(char const * __restrict format, signed char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1427,7 +1425,7 @@ int scanf_va_49(char const *format, signed char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_49(char const *format, int param0); +int printf_va_49(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1443,7 +1441,7 @@ int printf_va_49(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_50(char const *format, signed char *param0); +int scanf_va_50(char const * __restrict format, signed char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1456,7 +1454,7 @@ int scanf_va_50(char const *format, signed char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_50(char const *format, int param0); +int printf_va_50(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1472,7 +1470,7 @@ int printf_va_50(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_51(char const *format, unsigned char *param0); +int scanf_va_51(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1485,7 +1483,7 @@ int scanf_va_51(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_51(char const *format, int param0); +int printf_va_51(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1501,7 +1499,7 @@ int printf_va_51(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_52(char const *format, unsigned char *param0); +int scanf_va_52(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1514,7 +1512,7 @@ int scanf_va_52(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_52(char const *format, int param0); +int printf_va_52(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1530,7 +1528,7 @@ int printf_va_52(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_53(char const *format, unsigned char *param0); +int scanf_va_53(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1543,7 +1541,7 @@ int scanf_va_53(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_53(char const *format, int param0); +int printf_va_53(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1559,7 +1557,7 @@ int printf_va_53(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_54(char const *format, unsigned char *param0); +int scanf_va_54(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1572,7 +1570,7 @@ int scanf_va_54(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_54(char const *format, int param0); +int printf_va_54(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1588,7 +1586,7 @@ int printf_va_54(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_55(char const *format, int *param0); +int scanf_va_55(char const * __restrict format, int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1601,7 +1599,7 @@ int scanf_va_55(char const *format, int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_55(char const *format, int param0); +int printf_va_55(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1617,7 +1615,7 @@ int printf_va_55(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_56(char const *format, int *param0); +int scanf_va_56(char const * __restrict format, int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1630,7 +1628,7 @@ int scanf_va_56(char const *format, int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_56(char const *format, int param0); +int printf_va_56(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1646,7 +1644,7 @@ int printf_va_56(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_57(char const *format, unsigned int *param0); +int scanf_va_57(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1659,7 +1657,7 @@ int scanf_va_57(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_57(char const *format, unsigned int param0); +int printf_va_57(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1675,7 +1673,7 @@ int printf_va_57(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_58(char const *format, unsigned int *param0); +int scanf_va_58(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1688,7 +1686,7 @@ int scanf_va_58(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_58(char const *format, unsigned int param0); +int printf_va_58(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1704,7 +1702,7 @@ int printf_va_58(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_59(char const *format, unsigned int *param0); +int scanf_va_59(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1717,7 +1715,7 @@ int scanf_va_59(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_59(char const *format, unsigned int param0); +int printf_va_59(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1733,7 +1731,7 @@ int printf_va_59(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_60(char const *format, unsigned int *param0); +int scanf_va_60(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1746,7 +1744,7 @@ int scanf_va_60(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_60(char const *format, unsigned int param0); +int printf_va_60(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1762,7 +1760,7 @@ int printf_va_60(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_61(char const *format, long *param0); +int scanf_va_61(char const * __restrict format, long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1775,7 +1773,7 @@ int scanf_va_61(char const *format, long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_61(char const *format, long param0); +int printf_va_61(char const * __restrict format, long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1791,7 +1789,7 @@ int printf_va_61(char const *format, long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_62(char const *format, long *param0); +int scanf_va_62(char const * __restrict format, long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1804,7 +1802,7 @@ int scanf_va_62(char const *format, long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_62(char const *format, long param0); +int printf_va_62(char const * __restrict format, long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1820,7 +1818,7 @@ int printf_va_62(char const *format, long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_63(char const *format, unsigned long *param0); +int scanf_va_63(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1833,7 +1831,7 @@ int scanf_va_63(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_63(char const *format, unsigned long param0); +int printf_va_63(char const * __restrict format, unsigned long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1849,7 +1847,7 @@ int printf_va_63(char const *format, unsigned long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_64(char const *format, unsigned long *param0); +int scanf_va_64(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1862,7 +1860,7 @@ int scanf_va_64(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_64(char const *format, unsigned long param0); +int printf_va_64(char const * __restrict format, unsigned long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1878,7 +1876,7 @@ int printf_va_64(char const *format, unsigned long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_65(char const *format, unsigned long *param0); +int scanf_va_65(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1891,7 +1889,7 @@ int scanf_va_65(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_65(char const *format, unsigned long param0); +int printf_va_65(char const * __restrict format, unsigned long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1907,7 +1905,7 @@ int printf_va_65(char const *format, unsigned long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_66(char const *format, unsigned long *param0); +int scanf_va_66(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1920,7 +1918,7 @@ int scanf_va_66(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_66(char const *format, unsigned long param0); +int printf_va_66(char const * __restrict format, unsigned long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1936,7 +1934,7 @@ int printf_va_66(char const *format, unsigned long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_67(char const *format, long long *param0); +int scanf_va_67(char const * __restrict format, long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1949,7 +1947,7 @@ int scanf_va_67(char const *format, long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_67(char const *format, long long param0); +int printf_va_67(char const * __restrict format, long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1965,7 +1963,7 @@ int printf_va_67(char const *format, long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_68(char const *format, long long *param0); +int scanf_va_68(char const * __restrict format, long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1978,7 +1976,7 @@ int scanf_va_68(char const *format, long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_68(char const *format, long long param0); +int printf_va_68(char const * __restrict format, long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1994,7 +1992,7 @@ int printf_va_68(char const *format, long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_69(char const *format, unsigned long long *param0); +int scanf_va_69(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2007,7 +2005,7 @@ int scanf_va_69(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_69(char const *format, unsigned long long param0); +int printf_va_69(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2023,7 +2021,7 @@ int printf_va_69(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_70(char const *format, unsigned long long *param0); +int scanf_va_70(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2036,7 +2034,7 @@ int scanf_va_70(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_70(char const *format, unsigned long long param0); +int printf_va_70(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2052,7 +2050,7 @@ int printf_va_70(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_71(char const *format, unsigned long long *param0); +int scanf_va_71(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2065,7 +2063,7 @@ int scanf_va_71(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_71(char const *format, unsigned long long param0); +int printf_va_71(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2081,7 +2079,7 @@ int printf_va_71(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_72(char const *format, unsigned long long *param0); +int scanf_va_72(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2094,7 +2092,7 @@ int scanf_va_72(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_72(char const *format, unsigned long long param0); +int printf_va_72(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2110,7 +2108,7 @@ int printf_va_72(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_73(char const *format, long long *param0); +int scanf_va_73(char const * __restrict format, long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2123,7 +2121,7 @@ int scanf_va_73(char const *format, long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_73(char const *format, long long param0); +int printf_va_73(char const * __restrict format, long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2139,7 +2137,7 @@ int printf_va_73(char const *format, long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_74(char const *format, long long *param0); +int scanf_va_74(char const * __restrict format, long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2152,7 +2150,7 @@ int scanf_va_74(char const *format, long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_74(char const *format, long long param0); +int printf_va_74(char const * __restrict format, long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2168,7 +2166,7 @@ int printf_va_74(char const *format, long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_75(char const *format, unsigned long long *param0); +int scanf_va_75(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2181,7 +2179,7 @@ int scanf_va_75(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_75(char const *format, unsigned long long param0); +int printf_va_75(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2197,7 +2195,7 @@ int printf_va_75(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_76(char const *format, unsigned long long *param0); +int scanf_va_76(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2210,7 +2208,7 @@ int scanf_va_76(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_76(char const *format, unsigned long long param0); +int printf_va_76(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2226,7 +2224,7 @@ int printf_va_76(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_77(char const *format, unsigned long long *param0); +int scanf_va_77(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2239,7 +2237,7 @@ int scanf_va_77(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_77(char const *format, unsigned long long param0); +int printf_va_77(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2255,7 +2253,7 @@ int printf_va_77(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_78(char const *format, unsigned long long *param0); +int scanf_va_78(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2268,7 +2266,7 @@ int scanf_va_78(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_78(char const *format, unsigned long long param0); +int printf_va_78(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2284,7 +2282,7 @@ int printf_va_78(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_79(char const *format, long *param0); +int scanf_va_79(char const * __restrict format, long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2297,7 +2295,7 @@ int scanf_va_79(char const *format, long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_79(char const *format, long param0); +int printf_va_79(char const * __restrict format, long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2313,7 +2311,7 @@ int printf_va_79(char const *format, long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_80(char const *format, long *param0); +int scanf_va_80(char const * __restrict format, long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2326,7 +2324,7 @@ int scanf_va_80(char const *format, long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_80(char const *format, long param0); +int printf_va_80(char const * __restrict format, long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2342,7 +2340,7 @@ int printf_va_80(char const *format, long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_81(char const *format, unsigned long *param0); +int scanf_va_81(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2355,7 +2353,7 @@ int scanf_va_81(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_81(char const *format, unsigned long param0); +int printf_va_81(char const * __restrict format, unsigned long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2371,7 +2369,7 @@ int printf_va_81(char const *format, unsigned long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_82(char const *format, unsigned long *param0); +int scanf_va_82(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2384,7 +2382,7 @@ int scanf_va_82(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_82(char const *format, unsigned long param0); +int printf_va_82(char const * __restrict format, unsigned long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2400,7 +2398,7 @@ int printf_va_82(char const *format, unsigned long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_83(char const *format, unsigned long *param0); +int scanf_va_83(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2413,7 +2411,7 @@ int scanf_va_83(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_83(char const *format, unsigned long param0); +int printf_va_83(char const * __restrict format, unsigned long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2429,7 +2427,7 @@ int printf_va_83(char const *format, unsigned long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_84(char const *format, unsigned long *param0); +int scanf_va_84(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2442,7 +2440,7 @@ int scanf_va_84(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_84(char const *format, unsigned long param0); +int printf_va_84(char const * __restrict format, unsigned long param0); int main(void) { diff --git a/tests/libc/oracle/inttypes_h.4.res.oracle b/tests/libc/oracle/inttypes_h.4.res.oracle index 4df9581be573ecef7688d9571e79fae65a599248..ee3b253caf33cceda5773e2ab7553f01ef3d5e2d 100644 --- a/tests/libc/oracle/inttypes_h.4.res.oracle +++ b/tests/libc/oracle/inttypes_h.4.res.oracle @@ -1,5 +1,3 @@ -[kernel:pp] - preprocessing with "gcc -E -C -I. -I./share/libc -D__FRAMAC__ -D__FC_MACHDEP_X86_32 -dD -nostdinc -m32 tests/libc/inttypes_h.c" [kernel] Parsing tests/libc/inttypes_h.c (with preprocessing) /* Generated by Frama-C */ #include "errno.h" @@ -22,7 +20,7 @@ \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_1(char const *format, signed char *param0); +int scanf_va_1(char const * __restrict format, signed char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -35,7 +33,7 @@ int scanf_va_1(char const *format, signed char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_1(char const *format, int param0); +int printf_va_1(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -51,7 +49,7 @@ int printf_va_1(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_2(char const *format, signed char *param0); +int scanf_va_2(char const * __restrict format, signed char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -64,7 +62,7 @@ int scanf_va_2(char const *format, signed char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_2(char const *format, int param0); +int printf_va_2(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -80,7 +78,7 @@ int printf_va_2(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_3(char const *format, unsigned char *param0); +int scanf_va_3(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -93,7 +91,7 @@ int scanf_va_3(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_3(char const *format, int param0); +int printf_va_3(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -109,7 +107,7 @@ int printf_va_3(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_4(char const *format, unsigned char *param0); +int scanf_va_4(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -122,7 +120,7 @@ int scanf_va_4(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_4(char const *format, int param0); +int printf_va_4(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -138,7 +136,7 @@ int printf_va_4(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_5(char const *format, unsigned char *param0); +int scanf_va_5(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -151,7 +149,7 @@ int scanf_va_5(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_5(char const *format, int param0); +int printf_va_5(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -167,7 +165,7 @@ int printf_va_5(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_6(char const *format, unsigned char *param0); +int scanf_va_6(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -180,7 +178,7 @@ int scanf_va_6(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_6(char const *format, int param0); +int printf_va_6(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -196,7 +194,7 @@ int printf_va_6(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_7(char const *format, short *param0); +int scanf_va_7(char const * __restrict format, short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -209,7 +207,7 @@ int scanf_va_7(char const *format, short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_7(char const *format, int param0); +int printf_va_7(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -225,7 +223,7 @@ int printf_va_7(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_8(char const *format, short *param0); +int scanf_va_8(char const * __restrict format, short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -238,7 +236,7 @@ int scanf_va_8(char const *format, short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_8(char const *format, int param0); +int printf_va_8(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -254,7 +252,7 @@ int printf_va_8(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_9(char const *format, unsigned short *param0); +int scanf_va_9(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -267,7 +265,7 @@ int scanf_va_9(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_9(char const *format, int param0); +int printf_va_9(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -283,7 +281,7 @@ int printf_va_9(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_10(char const *format, unsigned short *param0); +int scanf_va_10(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -296,7 +294,7 @@ int scanf_va_10(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_10(char const *format, int param0); +int printf_va_10(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -312,7 +310,7 @@ int printf_va_10(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_11(char const *format, unsigned short *param0); +int scanf_va_11(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -325,7 +323,7 @@ int scanf_va_11(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_11(char const *format, int param0); +int printf_va_11(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -341,7 +339,7 @@ int printf_va_11(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_12(char const *format, unsigned short *param0); +int scanf_va_12(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -354,7 +352,7 @@ int scanf_va_12(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_12(char const *format, int param0); +int printf_va_12(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -370,7 +368,7 @@ int printf_va_12(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_13(char const *format, int *param0); +int scanf_va_13(char const * __restrict format, int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -383,7 +381,7 @@ int scanf_va_13(char const *format, int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_13(char const *format, int param0); +int printf_va_13(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -399,7 +397,7 @@ int printf_va_13(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_14(char const *format, int *param0); +int scanf_va_14(char const * __restrict format, int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -412,7 +410,7 @@ int scanf_va_14(char const *format, int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_14(char const *format, int param0); +int printf_va_14(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -428,7 +426,7 @@ int printf_va_14(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_15(char const *format, unsigned int *param0); +int scanf_va_15(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -441,7 +439,7 @@ int scanf_va_15(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_15(char const *format, unsigned int param0); +int printf_va_15(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -457,7 +455,7 @@ int printf_va_15(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_16(char const *format, unsigned int *param0); +int scanf_va_16(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -470,7 +468,7 @@ int scanf_va_16(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_16(char const *format, unsigned int param0); +int printf_va_16(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -486,7 +484,7 @@ int printf_va_16(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_17(char const *format, unsigned int *param0); +int scanf_va_17(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -499,7 +497,7 @@ int scanf_va_17(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_17(char const *format, unsigned int param0); +int printf_va_17(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -515,7 +513,7 @@ int printf_va_17(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_18(char const *format, unsigned int *param0); +int scanf_va_18(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -528,7 +526,7 @@ int scanf_va_18(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_18(char const *format, unsigned int param0); +int printf_va_18(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -544,7 +542,7 @@ int printf_va_18(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_19(char const *format, long long *param0); +int scanf_va_19(char const * __restrict format, long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -557,7 +555,7 @@ int scanf_va_19(char const *format, long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_19(char const *format, long long param0); +int printf_va_19(char const * __restrict format, long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -573,7 +571,7 @@ int printf_va_19(char const *format, long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_20(char const *format, long long *param0); +int scanf_va_20(char const * __restrict format, long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -586,7 +584,7 @@ int scanf_va_20(char const *format, long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_20(char const *format, long long param0); +int printf_va_20(char const * __restrict format, long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -602,7 +600,7 @@ int printf_va_20(char const *format, long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_21(char const *format, unsigned long long *param0); +int scanf_va_21(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -615,7 +613,7 @@ int scanf_va_21(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_21(char const *format, unsigned long long param0); +int printf_va_21(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -631,7 +629,7 @@ int printf_va_21(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_22(char const *format, unsigned long long *param0); +int scanf_va_22(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -644,7 +642,7 @@ int scanf_va_22(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_22(char const *format, unsigned long long param0); +int printf_va_22(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -660,7 +658,7 @@ int printf_va_22(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_23(char const *format, unsigned long long *param0); +int scanf_va_23(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -673,7 +671,7 @@ int scanf_va_23(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_23(char const *format, unsigned long long param0); +int printf_va_23(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -689,7 +687,7 @@ int printf_va_23(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_24(char const *format, unsigned long long *param0); +int scanf_va_24(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -702,7 +700,7 @@ int scanf_va_24(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_24(char const *format, unsigned long long param0); +int printf_va_24(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -718,7 +716,7 @@ int printf_va_24(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_25(char const *format, signed char *param0); +int scanf_va_25(char const * __restrict format, signed char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -731,7 +729,7 @@ int scanf_va_25(char const *format, signed char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_25(char const *format, int param0); +int printf_va_25(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -747,7 +745,7 @@ int printf_va_25(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_26(char const *format, signed char *param0); +int scanf_va_26(char const * __restrict format, signed char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -760,7 +758,7 @@ int scanf_va_26(char const *format, signed char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_26(char const *format, int param0); +int printf_va_26(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -776,7 +774,7 @@ int printf_va_26(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_27(char const *format, unsigned char *param0); +int scanf_va_27(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -789,7 +787,7 @@ int scanf_va_27(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_27(char const *format, int param0); +int printf_va_27(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -805,7 +803,7 @@ int printf_va_27(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_28(char const *format, unsigned char *param0); +int scanf_va_28(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -818,7 +816,7 @@ int scanf_va_28(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_28(char const *format, int param0); +int printf_va_28(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -834,7 +832,7 @@ int printf_va_28(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_29(char const *format, unsigned char *param0); +int scanf_va_29(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -847,7 +845,7 @@ int scanf_va_29(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_29(char const *format, int param0); +int printf_va_29(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -863,7 +861,7 @@ int printf_va_29(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_30(char const *format, unsigned char *param0); +int scanf_va_30(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -876,7 +874,7 @@ int scanf_va_30(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_30(char const *format, int param0); +int printf_va_30(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -892,7 +890,7 @@ int printf_va_30(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_31(char const *format, short *param0); +int scanf_va_31(char const * __restrict format, short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -905,7 +903,7 @@ int scanf_va_31(char const *format, short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_31(char const *format, int param0); +int printf_va_31(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -921,7 +919,7 @@ int printf_va_31(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_32(char const *format, short *param0); +int scanf_va_32(char const * __restrict format, short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -934,7 +932,7 @@ int scanf_va_32(char const *format, short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_32(char const *format, int param0); +int printf_va_32(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -950,7 +948,7 @@ int printf_va_32(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_33(char const *format, unsigned short *param0); +int scanf_va_33(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -963,7 +961,7 @@ int scanf_va_33(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_33(char const *format, int param0); +int printf_va_33(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -979,7 +977,7 @@ int printf_va_33(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_34(char const *format, unsigned short *param0); +int scanf_va_34(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -992,7 +990,7 @@ int scanf_va_34(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_34(char const *format, int param0); +int printf_va_34(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1008,7 +1006,7 @@ int printf_va_34(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_35(char const *format, unsigned short *param0); +int scanf_va_35(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1021,7 +1019,7 @@ int scanf_va_35(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_35(char const *format, int param0); +int printf_va_35(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1037,7 +1035,7 @@ int printf_va_35(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_36(char const *format, unsigned short *param0); +int scanf_va_36(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1050,7 +1048,7 @@ int scanf_va_36(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_36(char const *format, int param0); +int printf_va_36(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1066,7 +1064,7 @@ int printf_va_36(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_37(char const *format, int *param0); +int scanf_va_37(char const * __restrict format, int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1079,7 +1077,7 @@ int scanf_va_37(char const *format, int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_37(char const *format, int param0); +int printf_va_37(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1095,7 +1093,7 @@ int printf_va_37(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_38(char const *format, int *param0); +int scanf_va_38(char const * __restrict format, int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1108,7 +1106,7 @@ int scanf_va_38(char const *format, int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_38(char const *format, int param0); +int printf_va_38(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1124,7 +1122,7 @@ int printf_va_38(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_39(char const *format, unsigned int *param0); +int scanf_va_39(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1137,7 +1135,7 @@ int scanf_va_39(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_39(char const *format, unsigned int param0); +int printf_va_39(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1153,7 +1151,7 @@ int printf_va_39(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_40(char const *format, unsigned int *param0); +int scanf_va_40(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1166,7 +1164,7 @@ int scanf_va_40(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_40(char const *format, unsigned int param0); +int printf_va_40(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1182,7 +1180,7 @@ int printf_va_40(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_41(char const *format, unsigned int *param0); +int scanf_va_41(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1195,7 +1193,7 @@ int scanf_va_41(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_41(char const *format, unsigned int param0); +int printf_va_41(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1211,7 +1209,7 @@ int printf_va_41(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_42(char const *format, unsigned int *param0); +int scanf_va_42(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1224,7 +1222,7 @@ int scanf_va_42(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_42(char const *format, unsigned int param0); +int printf_va_42(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1240,7 +1238,7 @@ int printf_va_42(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_43(char const *format, long long *param0); +int scanf_va_43(char const * __restrict format, long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1253,7 +1251,7 @@ int scanf_va_43(char const *format, long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_43(char const *format, long long param0); +int printf_va_43(char const * __restrict format, long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1269,7 +1267,7 @@ int printf_va_43(char const *format, long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_44(char const *format, long long *param0); +int scanf_va_44(char const * __restrict format, long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1282,7 +1280,7 @@ int scanf_va_44(char const *format, long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_44(char const *format, long long param0); +int printf_va_44(char const * __restrict format, long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1298,7 +1296,7 @@ int printf_va_44(char const *format, long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_45(char const *format, unsigned long long *param0); +int scanf_va_45(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1311,7 +1309,7 @@ int scanf_va_45(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_45(char const *format, unsigned long long param0); +int printf_va_45(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1327,7 +1325,7 @@ int printf_va_45(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_46(char const *format, unsigned long long *param0); +int scanf_va_46(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1340,7 +1338,7 @@ int scanf_va_46(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_46(char const *format, unsigned long long param0); +int printf_va_46(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1356,7 +1354,7 @@ int printf_va_46(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_47(char const *format, unsigned long long *param0); +int scanf_va_47(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1369,7 +1367,7 @@ int scanf_va_47(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_47(char const *format, unsigned long long param0); +int printf_va_47(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1385,7 +1383,7 @@ int printf_va_47(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_48(char const *format, unsigned long long *param0); +int scanf_va_48(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1398,7 +1396,7 @@ int scanf_va_48(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_48(char const *format, unsigned long long param0); +int printf_va_48(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1414,7 +1412,7 @@ int printf_va_48(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_49(char const *format, signed char *param0); +int scanf_va_49(char const * __restrict format, signed char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1427,7 +1425,7 @@ int scanf_va_49(char const *format, signed char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_49(char const *format, int param0); +int printf_va_49(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1443,7 +1441,7 @@ int printf_va_49(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_50(char const *format, signed char *param0); +int scanf_va_50(char const * __restrict format, signed char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1456,7 +1454,7 @@ int scanf_va_50(char const *format, signed char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_50(char const *format, int param0); +int printf_va_50(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1472,7 +1470,7 @@ int printf_va_50(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_51(char const *format, unsigned char *param0); +int scanf_va_51(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1485,7 +1483,7 @@ int scanf_va_51(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_51(char const *format, int param0); +int printf_va_51(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1501,7 +1499,7 @@ int printf_va_51(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_52(char const *format, unsigned char *param0); +int scanf_va_52(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1514,7 +1512,7 @@ int scanf_va_52(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_52(char const *format, int param0); +int printf_va_52(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1530,7 +1528,7 @@ int printf_va_52(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_53(char const *format, unsigned char *param0); +int scanf_va_53(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1543,7 +1541,7 @@ int scanf_va_53(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_53(char const *format, int param0); +int printf_va_53(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1559,7 +1557,7 @@ int printf_va_53(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_54(char const *format, unsigned char *param0); +int scanf_va_54(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1572,7 +1570,7 @@ int scanf_va_54(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_54(char const *format, int param0); +int printf_va_54(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1588,7 +1586,7 @@ int printf_va_54(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_55(char const *format, int *param0); +int scanf_va_55(char const * __restrict format, int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1601,7 +1599,7 @@ int scanf_va_55(char const *format, int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_55(char const *format, int param0); +int printf_va_55(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1617,7 +1615,7 @@ int printf_va_55(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_56(char const *format, int *param0); +int scanf_va_56(char const * __restrict format, int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1630,7 +1628,7 @@ int scanf_va_56(char const *format, int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_56(char const *format, int param0); +int printf_va_56(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1646,7 +1644,7 @@ int printf_va_56(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_57(char const *format, unsigned int *param0); +int scanf_va_57(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1659,7 +1657,7 @@ int scanf_va_57(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_57(char const *format, unsigned int param0); +int printf_va_57(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1675,7 +1673,7 @@ int printf_va_57(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_58(char const *format, unsigned int *param0); +int scanf_va_58(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1688,7 +1686,7 @@ int scanf_va_58(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_58(char const *format, unsigned int param0); +int printf_va_58(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1704,7 +1702,7 @@ int printf_va_58(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_59(char const *format, unsigned int *param0); +int scanf_va_59(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1717,7 +1715,7 @@ int scanf_va_59(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_59(char const *format, unsigned int param0); +int printf_va_59(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1733,7 +1731,7 @@ int printf_va_59(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_60(char const *format, unsigned int *param0); +int scanf_va_60(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1746,7 +1744,7 @@ int scanf_va_60(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_60(char const *format, unsigned int param0); +int printf_va_60(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1762,7 +1760,7 @@ int printf_va_60(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_61(char const *format, int *param0); +int scanf_va_61(char const * __restrict format, int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1775,7 +1773,7 @@ int scanf_va_61(char const *format, int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_61(char const *format, int param0); +int printf_va_61(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1791,7 +1789,7 @@ int printf_va_61(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_62(char const *format, int *param0); +int scanf_va_62(char const * __restrict format, int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1804,7 +1802,7 @@ int scanf_va_62(char const *format, int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_62(char const *format, int param0); +int printf_va_62(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1820,7 +1818,7 @@ int printf_va_62(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_63(char const *format, unsigned int *param0); +int scanf_va_63(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1833,7 +1831,7 @@ int scanf_va_63(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_63(char const *format, unsigned int param0); +int printf_va_63(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1849,7 +1847,7 @@ int printf_va_63(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_64(char const *format, unsigned int *param0); +int scanf_va_64(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1862,7 +1860,7 @@ int scanf_va_64(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_64(char const *format, unsigned int param0); +int printf_va_64(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1878,7 +1876,7 @@ int printf_va_64(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_65(char const *format, unsigned int *param0); +int scanf_va_65(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1891,7 +1889,7 @@ int scanf_va_65(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_65(char const *format, unsigned int param0); +int printf_va_65(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1907,7 +1905,7 @@ int printf_va_65(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_66(char const *format, unsigned int *param0); +int scanf_va_66(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1920,7 +1918,7 @@ int scanf_va_66(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_66(char const *format, unsigned int param0); +int printf_va_66(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1936,7 +1934,7 @@ int printf_va_66(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_67(char const *format, long long *param0); +int scanf_va_67(char const * __restrict format, long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1949,7 +1947,7 @@ int scanf_va_67(char const *format, long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_67(char const *format, long long param0); +int printf_va_67(char const * __restrict format, long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1965,7 +1963,7 @@ int printf_va_67(char const *format, long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_68(char const *format, long long *param0); +int scanf_va_68(char const * __restrict format, long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1978,7 +1976,7 @@ int scanf_va_68(char const *format, long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_68(char const *format, long long param0); +int printf_va_68(char const * __restrict format, long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1994,7 +1992,7 @@ int printf_va_68(char const *format, long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_69(char const *format, unsigned long long *param0); +int scanf_va_69(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2007,7 +2005,7 @@ int scanf_va_69(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_69(char const *format, unsigned long long param0); +int printf_va_69(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2023,7 +2021,7 @@ int printf_va_69(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_70(char const *format, unsigned long long *param0); +int scanf_va_70(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2036,7 +2034,7 @@ int scanf_va_70(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_70(char const *format, unsigned long long param0); +int printf_va_70(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2052,7 +2050,7 @@ int printf_va_70(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_71(char const *format, unsigned long long *param0); +int scanf_va_71(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2065,7 +2063,7 @@ int scanf_va_71(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_71(char const *format, unsigned long long param0); +int printf_va_71(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2081,7 +2079,7 @@ int printf_va_71(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_72(char const *format, unsigned long long *param0); +int scanf_va_72(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2094,7 +2092,7 @@ int scanf_va_72(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_72(char const *format, unsigned long long param0); +int printf_va_72(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2110,7 +2108,7 @@ int printf_va_72(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_73(char const *format, long long *param0); +int scanf_va_73(char const * __restrict format, long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2123,7 +2121,7 @@ int scanf_va_73(char const *format, long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_73(char const *format, long long param0); +int printf_va_73(char const * __restrict format, long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2139,7 +2137,7 @@ int printf_va_73(char const *format, long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_74(char const *format, long long *param0); +int scanf_va_74(char const * __restrict format, long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2152,7 +2150,7 @@ int scanf_va_74(char const *format, long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_74(char const *format, long long param0); +int printf_va_74(char const * __restrict format, long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2168,7 +2166,7 @@ int printf_va_74(char const *format, long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_75(char const *format, unsigned long long *param0); +int scanf_va_75(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2181,7 +2179,7 @@ int scanf_va_75(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_75(char const *format, unsigned long long param0); +int printf_va_75(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2197,7 +2195,7 @@ int printf_va_75(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_76(char const *format, unsigned long long *param0); +int scanf_va_76(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2210,7 +2208,7 @@ int scanf_va_76(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_76(char const *format, unsigned long long param0); +int printf_va_76(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2226,7 +2224,7 @@ int printf_va_76(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_77(char const *format, unsigned long long *param0); +int scanf_va_77(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2239,7 +2237,7 @@ int scanf_va_77(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_77(char const *format, unsigned long long param0); +int printf_va_77(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2255,7 +2253,7 @@ int printf_va_77(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_78(char const *format, unsigned long long *param0); +int scanf_va_78(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2268,7 +2266,7 @@ int scanf_va_78(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_78(char const *format, unsigned long long param0); +int printf_va_78(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2284,7 +2282,7 @@ int printf_va_78(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_79(char const *format, int *param0); +int scanf_va_79(char const * __restrict format, int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2297,7 +2295,7 @@ int scanf_va_79(char const *format, int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_79(char const *format, int param0); +int printf_va_79(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2313,7 +2311,7 @@ int printf_va_79(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_80(char const *format, int *param0); +int scanf_va_80(char const * __restrict format, int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2326,7 +2324,7 @@ int scanf_va_80(char const *format, int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_80(char const *format, int param0); +int printf_va_80(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2342,7 +2340,7 @@ int printf_va_80(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_81(char const *format, unsigned int *param0); +int scanf_va_81(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2355,7 +2353,7 @@ int scanf_va_81(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_81(char const *format, unsigned int param0); +int printf_va_81(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2371,7 +2369,7 @@ int printf_va_81(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_82(char const *format, unsigned int *param0); +int scanf_va_82(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2384,7 +2382,7 @@ int scanf_va_82(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_82(char const *format, unsigned int param0); +int printf_va_82(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2400,7 +2398,7 @@ int printf_va_82(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_83(char const *format, unsigned int *param0); +int scanf_va_83(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2413,7 +2411,7 @@ int scanf_va_83(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_83(char const *format, unsigned int param0); +int printf_va_83(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2429,7 +2427,7 @@ int printf_va_83(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_84(char const *format, unsigned int *param0); +int scanf_va_84(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2442,7 +2440,7 @@ int scanf_va_84(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_84(char const *format, unsigned int param0); +int printf_va_84(char const * __restrict format, unsigned int param0); int main(void) { diff --git a/tests/libc/oracle/inttypes_h.5.res.oracle b/tests/libc/oracle/inttypes_h.5.res.oracle index d26cb3da44afc0937151213ed1c835f0be9d9412..a70f22663383c9b382e0ba42f879d9fb625fa700 100644 --- a/tests/libc/oracle/inttypes_h.5.res.oracle +++ b/tests/libc/oracle/inttypes_h.5.res.oracle @@ -1,5 +1,3 @@ -[kernel:pp] - preprocessing with "gcc -E -C -I. -I./share/libc -D__FRAMAC__ -D__FC_MACHDEP_X86_64 -dD -nostdinc -m64 tests/libc/inttypes_h.c" [kernel] Parsing tests/libc/inttypes_h.c (with preprocessing) /* Generated by Frama-C */ #include "errno.h" @@ -22,7 +20,7 @@ \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_1(char const *format, signed char *param0); +int scanf_va_1(char const * __restrict format, signed char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -35,7 +33,7 @@ int scanf_va_1(char const *format, signed char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_1(char const *format, int param0); +int printf_va_1(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -51,7 +49,7 @@ int printf_va_1(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_2(char const *format, signed char *param0); +int scanf_va_2(char const * __restrict format, signed char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -64,7 +62,7 @@ int scanf_va_2(char const *format, signed char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_2(char const *format, int param0); +int printf_va_2(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -80,7 +78,7 @@ int printf_va_2(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_3(char const *format, unsigned char *param0); +int scanf_va_3(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -93,7 +91,7 @@ int scanf_va_3(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_3(char const *format, int param0); +int printf_va_3(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -109,7 +107,7 @@ int printf_va_3(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_4(char const *format, unsigned char *param0); +int scanf_va_4(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -122,7 +120,7 @@ int scanf_va_4(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_4(char const *format, int param0); +int printf_va_4(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -138,7 +136,7 @@ int printf_va_4(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_5(char const *format, unsigned char *param0); +int scanf_va_5(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -151,7 +149,7 @@ int scanf_va_5(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_5(char const *format, int param0); +int printf_va_5(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -167,7 +165,7 @@ int printf_va_5(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_6(char const *format, unsigned char *param0); +int scanf_va_6(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -180,7 +178,7 @@ int scanf_va_6(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_6(char const *format, int param0); +int printf_va_6(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -196,7 +194,7 @@ int printf_va_6(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_7(char const *format, short *param0); +int scanf_va_7(char const * __restrict format, short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -209,7 +207,7 @@ int scanf_va_7(char const *format, short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_7(char const *format, int param0); +int printf_va_7(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -225,7 +223,7 @@ int printf_va_7(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_8(char const *format, short *param0); +int scanf_va_8(char const * __restrict format, short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -238,7 +236,7 @@ int scanf_va_8(char const *format, short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_8(char const *format, int param0); +int printf_va_8(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -254,7 +252,7 @@ int printf_va_8(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_9(char const *format, unsigned short *param0); +int scanf_va_9(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -267,7 +265,7 @@ int scanf_va_9(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_9(char const *format, int param0); +int printf_va_9(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -283,7 +281,7 @@ int printf_va_9(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_10(char const *format, unsigned short *param0); +int scanf_va_10(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -296,7 +294,7 @@ int scanf_va_10(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_10(char const *format, int param0); +int printf_va_10(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -312,7 +310,7 @@ int printf_va_10(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_11(char const *format, unsigned short *param0); +int scanf_va_11(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -325,7 +323,7 @@ int scanf_va_11(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_11(char const *format, int param0); +int printf_va_11(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -341,7 +339,7 @@ int printf_va_11(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_12(char const *format, unsigned short *param0); +int scanf_va_12(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -354,7 +352,7 @@ int scanf_va_12(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_12(char const *format, int param0); +int printf_va_12(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -370,7 +368,7 @@ int printf_va_12(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_13(char const *format, int *param0); +int scanf_va_13(char const * __restrict format, int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -383,7 +381,7 @@ int scanf_va_13(char const *format, int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_13(char const *format, int param0); +int printf_va_13(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -399,7 +397,7 @@ int printf_va_13(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_14(char const *format, int *param0); +int scanf_va_14(char const * __restrict format, int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -412,7 +410,7 @@ int scanf_va_14(char const *format, int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_14(char const *format, int param0); +int printf_va_14(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -428,7 +426,7 @@ int printf_va_14(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_15(char const *format, unsigned int *param0); +int scanf_va_15(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -441,7 +439,7 @@ int scanf_va_15(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_15(char const *format, unsigned int param0); +int printf_va_15(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -457,7 +455,7 @@ int printf_va_15(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_16(char const *format, unsigned int *param0); +int scanf_va_16(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -470,7 +468,7 @@ int scanf_va_16(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_16(char const *format, unsigned int param0); +int printf_va_16(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -486,7 +484,7 @@ int printf_va_16(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_17(char const *format, unsigned int *param0); +int scanf_va_17(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -499,7 +497,7 @@ int scanf_va_17(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_17(char const *format, unsigned int param0); +int printf_va_17(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -515,7 +513,7 @@ int printf_va_17(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_18(char const *format, unsigned int *param0); +int scanf_va_18(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -528,7 +526,7 @@ int scanf_va_18(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_18(char const *format, unsigned int param0); +int printf_va_18(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -544,7 +542,7 @@ int printf_va_18(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_19(char const *format, long *param0); +int scanf_va_19(char const * __restrict format, long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -557,7 +555,7 @@ int scanf_va_19(char const *format, long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_19(char const *format, long param0); +int printf_va_19(char const * __restrict format, long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -573,7 +571,7 @@ int printf_va_19(char const *format, long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_20(char const *format, long *param0); +int scanf_va_20(char const * __restrict format, long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -586,7 +584,7 @@ int scanf_va_20(char const *format, long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_20(char const *format, long param0); +int printf_va_20(char const * __restrict format, long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -602,7 +600,7 @@ int printf_va_20(char const *format, long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_21(char const *format, unsigned long *param0); +int scanf_va_21(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -615,7 +613,7 @@ int scanf_va_21(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_21(char const *format, unsigned long param0); +int printf_va_21(char const * __restrict format, unsigned long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -631,7 +629,7 @@ int printf_va_21(char const *format, unsigned long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_22(char const *format, unsigned long *param0); +int scanf_va_22(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -644,7 +642,7 @@ int scanf_va_22(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_22(char const *format, unsigned long param0); +int printf_va_22(char const * __restrict format, unsigned long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -660,7 +658,7 @@ int printf_va_22(char const *format, unsigned long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_23(char const *format, unsigned long *param0); +int scanf_va_23(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -673,7 +671,7 @@ int scanf_va_23(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_23(char const *format, unsigned long param0); +int printf_va_23(char const * __restrict format, unsigned long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -689,7 +687,7 @@ int printf_va_23(char const *format, unsigned long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_24(char const *format, unsigned long *param0); +int scanf_va_24(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -702,7 +700,7 @@ int scanf_va_24(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_24(char const *format, unsigned long param0); +int printf_va_24(char const * __restrict format, unsigned long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -718,7 +716,7 @@ int printf_va_24(char const *format, unsigned long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_25(char const *format, signed char *param0); +int scanf_va_25(char const * __restrict format, signed char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -731,7 +729,7 @@ int scanf_va_25(char const *format, signed char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_25(char const *format, int param0); +int printf_va_25(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -747,7 +745,7 @@ int printf_va_25(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_26(char const *format, signed char *param0); +int scanf_va_26(char const * __restrict format, signed char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -760,7 +758,7 @@ int scanf_va_26(char const *format, signed char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_26(char const *format, int param0); +int printf_va_26(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -776,7 +774,7 @@ int printf_va_26(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_27(char const *format, unsigned char *param0); +int scanf_va_27(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -789,7 +787,7 @@ int scanf_va_27(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_27(char const *format, int param0); +int printf_va_27(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -805,7 +803,7 @@ int printf_va_27(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_28(char const *format, unsigned char *param0); +int scanf_va_28(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -818,7 +816,7 @@ int scanf_va_28(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_28(char const *format, int param0); +int printf_va_28(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -834,7 +832,7 @@ int printf_va_28(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_29(char const *format, unsigned char *param0); +int scanf_va_29(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -847,7 +845,7 @@ int scanf_va_29(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_29(char const *format, int param0); +int printf_va_29(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -863,7 +861,7 @@ int printf_va_29(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_30(char const *format, unsigned char *param0); +int scanf_va_30(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -876,7 +874,7 @@ int scanf_va_30(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_30(char const *format, int param0); +int printf_va_30(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -892,7 +890,7 @@ int printf_va_30(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_31(char const *format, short *param0); +int scanf_va_31(char const * __restrict format, short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -905,7 +903,7 @@ int scanf_va_31(char const *format, short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_31(char const *format, int param0); +int printf_va_31(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -921,7 +919,7 @@ int printf_va_31(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_32(char const *format, short *param0); +int scanf_va_32(char const * __restrict format, short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -934,7 +932,7 @@ int scanf_va_32(char const *format, short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_32(char const *format, int param0); +int printf_va_32(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -950,7 +948,7 @@ int printf_va_32(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_33(char const *format, unsigned short *param0); +int scanf_va_33(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -963,7 +961,7 @@ int scanf_va_33(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_33(char const *format, int param0); +int printf_va_33(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -979,7 +977,7 @@ int printf_va_33(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_34(char const *format, unsigned short *param0); +int scanf_va_34(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -992,7 +990,7 @@ int scanf_va_34(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_34(char const *format, int param0); +int printf_va_34(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1008,7 +1006,7 @@ int printf_va_34(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_35(char const *format, unsigned short *param0); +int scanf_va_35(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1021,7 +1019,7 @@ int scanf_va_35(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_35(char const *format, int param0); +int printf_va_35(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1037,7 +1035,7 @@ int printf_va_35(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_36(char const *format, unsigned short *param0); +int scanf_va_36(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1050,7 +1048,7 @@ int scanf_va_36(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_36(char const *format, int param0); +int printf_va_36(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1066,7 +1064,7 @@ int printf_va_36(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_37(char const *format, int *param0); +int scanf_va_37(char const * __restrict format, int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1079,7 +1077,7 @@ int scanf_va_37(char const *format, int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_37(char const *format, int param0); +int printf_va_37(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1095,7 +1093,7 @@ int printf_va_37(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_38(char const *format, int *param0); +int scanf_va_38(char const * __restrict format, int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1108,7 +1106,7 @@ int scanf_va_38(char const *format, int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_38(char const *format, int param0); +int printf_va_38(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1124,7 +1122,7 @@ int printf_va_38(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_39(char const *format, unsigned int *param0); +int scanf_va_39(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1137,7 +1135,7 @@ int scanf_va_39(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_39(char const *format, unsigned int param0); +int printf_va_39(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1153,7 +1151,7 @@ int printf_va_39(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_40(char const *format, unsigned int *param0); +int scanf_va_40(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1166,7 +1164,7 @@ int scanf_va_40(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_40(char const *format, unsigned int param0); +int printf_va_40(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1182,7 +1180,7 @@ int printf_va_40(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_41(char const *format, unsigned int *param0); +int scanf_va_41(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1195,7 +1193,7 @@ int scanf_va_41(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_41(char const *format, unsigned int param0); +int printf_va_41(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1211,7 +1209,7 @@ int printf_va_41(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_42(char const *format, unsigned int *param0); +int scanf_va_42(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1224,7 +1222,7 @@ int scanf_va_42(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_42(char const *format, unsigned int param0); +int printf_va_42(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1240,7 +1238,7 @@ int printf_va_42(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_43(char const *format, long *param0); +int scanf_va_43(char const * __restrict format, long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1253,7 +1251,7 @@ int scanf_va_43(char const *format, long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_43(char const *format, long param0); +int printf_va_43(char const * __restrict format, long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1269,7 +1267,7 @@ int printf_va_43(char const *format, long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_44(char const *format, long *param0); +int scanf_va_44(char const * __restrict format, long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1282,7 +1280,7 @@ int scanf_va_44(char const *format, long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_44(char const *format, long param0); +int printf_va_44(char const * __restrict format, long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1298,7 +1296,7 @@ int printf_va_44(char const *format, long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_45(char const *format, unsigned long *param0); +int scanf_va_45(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1311,7 +1309,7 @@ int scanf_va_45(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_45(char const *format, unsigned long param0); +int printf_va_45(char const * __restrict format, unsigned long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1327,7 +1325,7 @@ int printf_va_45(char const *format, unsigned long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_46(char const *format, unsigned long *param0); +int scanf_va_46(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1340,7 +1338,7 @@ int scanf_va_46(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_46(char const *format, unsigned long param0); +int printf_va_46(char const * __restrict format, unsigned long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1356,7 +1354,7 @@ int printf_va_46(char const *format, unsigned long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_47(char const *format, unsigned long *param0); +int scanf_va_47(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1369,7 +1367,7 @@ int scanf_va_47(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_47(char const *format, unsigned long param0); +int printf_va_47(char const * __restrict format, unsigned long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1385,7 +1383,7 @@ int printf_va_47(char const *format, unsigned long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_48(char const *format, unsigned long *param0); +int scanf_va_48(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1398,7 +1396,7 @@ int scanf_va_48(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_48(char const *format, unsigned long param0); +int printf_va_48(char const * __restrict format, unsigned long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1414,7 +1412,7 @@ int printf_va_48(char const *format, unsigned long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_49(char const *format, signed char *param0); +int scanf_va_49(char const * __restrict format, signed char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1427,7 +1425,7 @@ int scanf_va_49(char const *format, signed char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_49(char const *format, int param0); +int printf_va_49(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1443,7 +1441,7 @@ int printf_va_49(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_50(char const *format, signed char *param0); +int scanf_va_50(char const * __restrict format, signed char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1456,7 +1454,7 @@ int scanf_va_50(char const *format, signed char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_50(char const *format, int param0); +int printf_va_50(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1472,7 +1470,7 @@ int printf_va_50(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_51(char const *format, unsigned char *param0); +int scanf_va_51(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1485,7 +1483,7 @@ int scanf_va_51(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_51(char const *format, int param0); +int printf_va_51(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1501,7 +1499,7 @@ int printf_va_51(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_52(char const *format, unsigned char *param0); +int scanf_va_52(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1514,7 +1512,7 @@ int scanf_va_52(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_52(char const *format, int param0); +int printf_va_52(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1530,7 +1528,7 @@ int printf_va_52(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_53(char const *format, unsigned char *param0); +int scanf_va_53(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1543,7 +1541,7 @@ int scanf_va_53(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_53(char const *format, int param0); +int printf_va_53(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1559,7 +1557,7 @@ int printf_va_53(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_54(char const *format, unsigned char *param0); +int scanf_va_54(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1572,7 +1570,7 @@ int scanf_va_54(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_54(char const *format, int param0); +int printf_va_54(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1588,7 +1586,7 @@ int printf_va_54(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_55(char const *format, int *param0); +int scanf_va_55(char const * __restrict format, int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1601,7 +1599,7 @@ int scanf_va_55(char const *format, int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_55(char const *format, int param0); +int printf_va_55(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1617,7 +1615,7 @@ int printf_va_55(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_56(char const *format, int *param0); +int scanf_va_56(char const * __restrict format, int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1630,7 +1628,7 @@ int scanf_va_56(char const *format, int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_56(char const *format, int param0); +int printf_va_56(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1646,7 +1644,7 @@ int printf_va_56(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_57(char const *format, unsigned int *param0); +int scanf_va_57(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1659,7 +1657,7 @@ int scanf_va_57(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_57(char const *format, unsigned int param0); +int printf_va_57(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1675,7 +1673,7 @@ int printf_va_57(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_58(char const *format, unsigned int *param0); +int scanf_va_58(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1688,7 +1686,7 @@ int scanf_va_58(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_58(char const *format, unsigned int param0); +int printf_va_58(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1704,7 +1702,7 @@ int printf_va_58(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_59(char const *format, unsigned int *param0); +int scanf_va_59(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1717,7 +1715,7 @@ int scanf_va_59(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_59(char const *format, unsigned int param0); +int printf_va_59(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1733,7 +1731,7 @@ int printf_va_59(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_60(char const *format, unsigned int *param0); +int scanf_va_60(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1746,7 +1744,7 @@ int scanf_va_60(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_60(char const *format, unsigned int param0); +int printf_va_60(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1762,7 +1760,7 @@ int printf_va_60(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_61(char const *format, int *param0); +int scanf_va_61(char const * __restrict format, int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1775,7 +1773,7 @@ int scanf_va_61(char const *format, int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_61(char const *format, int param0); +int printf_va_61(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1791,7 +1789,7 @@ int printf_va_61(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_62(char const *format, int *param0); +int scanf_va_62(char const * __restrict format, int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1804,7 +1802,7 @@ int scanf_va_62(char const *format, int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_62(char const *format, int param0); +int printf_va_62(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1820,7 +1818,7 @@ int printf_va_62(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_63(char const *format, unsigned int *param0); +int scanf_va_63(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1833,7 +1831,7 @@ int scanf_va_63(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_63(char const *format, unsigned int param0); +int printf_va_63(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1849,7 +1847,7 @@ int printf_va_63(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_64(char const *format, unsigned int *param0); +int scanf_va_64(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1862,7 +1860,7 @@ int scanf_va_64(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_64(char const *format, unsigned int param0); +int printf_va_64(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1878,7 +1876,7 @@ int printf_va_64(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_65(char const *format, unsigned int *param0); +int scanf_va_65(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1891,7 +1889,7 @@ int scanf_va_65(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_65(char const *format, unsigned int param0); +int printf_va_65(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1907,7 +1905,7 @@ int printf_va_65(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_66(char const *format, unsigned int *param0); +int scanf_va_66(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1920,7 +1918,7 @@ int scanf_va_66(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_66(char const *format, unsigned int param0); +int printf_va_66(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1936,7 +1934,7 @@ int printf_va_66(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_67(char const *format, long *param0); +int scanf_va_67(char const * __restrict format, long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1949,7 +1947,7 @@ int scanf_va_67(char const *format, long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_67(char const *format, long param0); +int printf_va_67(char const * __restrict format, long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1965,7 +1963,7 @@ int printf_va_67(char const *format, long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_68(char const *format, long *param0); +int scanf_va_68(char const * __restrict format, long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1978,7 +1976,7 @@ int scanf_va_68(char const *format, long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_68(char const *format, long param0); +int printf_va_68(char const * __restrict format, long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1994,7 +1992,7 @@ int printf_va_68(char const *format, long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_69(char const *format, unsigned long *param0); +int scanf_va_69(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2007,7 +2005,7 @@ int scanf_va_69(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_69(char const *format, unsigned long param0); +int printf_va_69(char const * __restrict format, unsigned long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2023,7 +2021,7 @@ int printf_va_69(char const *format, unsigned long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_70(char const *format, unsigned long *param0); +int scanf_va_70(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2036,7 +2034,7 @@ int scanf_va_70(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_70(char const *format, unsigned long param0); +int printf_va_70(char const * __restrict format, unsigned long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2052,7 +2050,7 @@ int printf_va_70(char const *format, unsigned long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_71(char const *format, unsigned long *param0); +int scanf_va_71(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2065,7 +2063,7 @@ int scanf_va_71(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_71(char const *format, unsigned long param0); +int printf_va_71(char const * __restrict format, unsigned long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2081,7 +2079,7 @@ int printf_va_71(char const *format, unsigned long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_72(char const *format, unsigned long *param0); +int scanf_va_72(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2094,7 +2092,7 @@ int scanf_va_72(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_72(char const *format, unsigned long param0); +int printf_va_72(char const * __restrict format, unsigned long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2110,7 +2108,7 @@ int printf_va_72(char const *format, unsigned long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_73(char const *format, long long *param0); +int scanf_va_73(char const * __restrict format, long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2123,7 +2121,7 @@ int scanf_va_73(char const *format, long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_73(char const *format, long long param0); +int printf_va_73(char const * __restrict format, long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2139,7 +2137,7 @@ int printf_va_73(char const *format, long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_74(char const *format, long long *param0); +int scanf_va_74(char const * __restrict format, long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2152,7 +2150,7 @@ int scanf_va_74(char const *format, long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_74(char const *format, long long param0); +int printf_va_74(char const * __restrict format, long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2168,7 +2166,7 @@ int printf_va_74(char const *format, long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_75(char const *format, unsigned long long *param0); +int scanf_va_75(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2181,7 +2179,7 @@ int scanf_va_75(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_75(char const *format, unsigned long long param0); +int printf_va_75(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2197,7 +2195,7 @@ int printf_va_75(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_76(char const *format, unsigned long long *param0); +int scanf_va_76(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2210,7 +2208,7 @@ int scanf_va_76(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_76(char const *format, unsigned long long param0); +int printf_va_76(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2226,7 +2224,7 @@ int printf_va_76(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_77(char const *format, unsigned long long *param0); +int scanf_va_77(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2239,7 +2237,7 @@ int scanf_va_77(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_77(char const *format, unsigned long long param0); +int printf_va_77(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2255,7 +2253,7 @@ int printf_va_77(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_78(char const *format, unsigned long long *param0); +int scanf_va_78(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2268,7 +2266,7 @@ int scanf_va_78(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_78(char const *format, unsigned long long param0); +int printf_va_78(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2284,7 +2282,7 @@ int printf_va_78(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_79(char const *format, long *param0); +int scanf_va_79(char const * __restrict format, long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2297,7 +2295,7 @@ int scanf_va_79(char const *format, long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_79(char const *format, long param0); +int printf_va_79(char const * __restrict format, long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2313,7 +2311,7 @@ int printf_va_79(char const *format, long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_80(char const *format, long *param0); +int scanf_va_80(char const * __restrict format, long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2326,7 +2324,7 @@ int scanf_va_80(char const *format, long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_80(char const *format, long param0); +int printf_va_80(char const * __restrict format, long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2342,7 +2340,7 @@ int printf_va_80(char const *format, long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_81(char const *format, unsigned long *param0); +int scanf_va_81(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2355,7 +2353,7 @@ int scanf_va_81(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_81(char const *format, unsigned long param0); +int printf_va_81(char const * __restrict format, unsigned long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2371,7 +2369,7 @@ int printf_va_81(char const *format, unsigned long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_82(char const *format, unsigned long *param0); +int scanf_va_82(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2384,7 +2382,7 @@ int scanf_va_82(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_82(char const *format, unsigned long param0); +int printf_va_82(char const * __restrict format, unsigned long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2400,7 +2398,7 @@ int printf_va_82(char const *format, unsigned long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_83(char const *format, unsigned long *param0); +int scanf_va_83(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2413,7 +2411,7 @@ int scanf_va_83(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_83(char const *format, unsigned long param0); +int printf_va_83(char const * __restrict format, unsigned long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2429,7 +2427,7 @@ int printf_va_83(char const *format, unsigned long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_84(char const *format, unsigned long *param0); +int scanf_va_84(char const * __restrict format, unsigned long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2442,7 +2440,7 @@ int scanf_va_84(char const *format, unsigned long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_84(char const *format, unsigned long param0); +int printf_va_84(char const * __restrict format, unsigned long param0); int main(void) { diff --git a/tests/libc/oracle/inttypes_h.6.res.oracle b/tests/libc/oracle/inttypes_h.6.res.oracle index af0fd3b5fbf27db2a447425bf5afe46749504d5c..ee3b253caf33cceda5773e2ab7553f01ef3d5e2d 100644 --- a/tests/libc/oracle/inttypes_h.6.res.oracle +++ b/tests/libc/oracle/inttypes_h.6.res.oracle @@ -1,5 +1,3 @@ -[kernel:pp] - preprocessing with "gcc -E -C -I. -I./share/libc -D__FRAMAC__ -D__FC_MACHDEP_PPC_32 -dD -nostdinc -m32 tests/libc/inttypes_h.c" [kernel] Parsing tests/libc/inttypes_h.c (with preprocessing) /* Generated by Frama-C */ #include "errno.h" @@ -22,7 +20,7 @@ \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_1(char const *format, signed char *param0); +int scanf_va_1(char const * __restrict format, signed char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -35,7 +33,7 @@ int scanf_va_1(char const *format, signed char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_1(char const *format, int param0); +int printf_va_1(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -51,7 +49,7 @@ int printf_va_1(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_2(char const *format, signed char *param0); +int scanf_va_2(char const * __restrict format, signed char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -64,7 +62,7 @@ int scanf_va_2(char const *format, signed char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_2(char const *format, int param0); +int printf_va_2(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -80,7 +78,7 @@ int printf_va_2(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_3(char const *format, unsigned char *param0); +int scanf_va_3(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -93,7 +91,7 @@ int scanf_va_3(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_3(char const *format, int param0); +int printf_va_3(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -109,7 +107,7 @@ int printf_va_3(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_4(char const *format, unsigned char *param0); +int scanf_va_4(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -122,7 +120,7 @@ int scanf_va_4(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_4(char const *format, int param0); +int printf_va_4(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -138,7 +136,7 @@ int printf_va_4(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_5(char const *format, unsigned char *param0); +int scanf_va_5(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -151,7 +149,7 @@ int scanf_va_5(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_5(char const *format, int param0); +int printf_va_5(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -167,7 +165,7 @@ int printf_va_5(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_6(char const *format, unsigned char *param0); +int scanf_va_6(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -180,7 +178,7 @@ int scanf_va_6(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_6(char const *format, int param0); +int printf_va_6(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -196,7 +194,7 @@ int printf_va_6(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_7(char const *format, short *param0); +int scanf_va_7(char const * __restrict format, short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -209,7 +207,7 @@ int scanf_va_7(char const *format, short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_7(char const *format, int param0); +int printf_va_7(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -225,7 +223,7 @@ int printf_va_7(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_8(char const *format, short *param0); +int scanf_va_8(char const * __restrict format, short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -238,7 +236,7 @@ int scanf_va_8(char const *format, short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_8(char const *format, int param0); +int printf_va_8(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -254,7 +252,7 @@ int printf_va_8(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_9(char const *format, unsigned short *param0); +int scanf_va_9(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -267,7 +265,7 @@ int scanf_va_9(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_9(char const *format, int param0); +int printf_va_9(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -283,7 +281,7 @@ int printf_va_9(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_10(char const *format, unsigned short *param0); +int scanf_va_10(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -296,7 +294,7 @@ int scanf_va_10(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_10(char const *format, int param0); +int printf_va_10(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -312,7 +310,7 @@ int printf_va_10(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_11(char const *format, unsigned short *param0); +int scanf_va_11(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -325,7 +323,7 @@ int scanf_va_11(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_11(char const *format, int param0); +int printf_va_11(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -341,7 +339,7 @@ int printf_va_11(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_12(char const *format, unsigned short *param0); +int scanf_va_12(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -354,7 +352,7 @@ int scanf_va_12(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_12(char const *format, int param0); +int printf_va_12(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -370,7 +368,7 @@ int printf_va_12(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_13(char const *format, int *param0); +int scanf_va_13(char const * __restrict format, int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -383,7 +381,7 @@ int scanf_va_13(char const *format, int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_13(char const *format, int param0); +int printf_va_13(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -399,7 +397,7 @@ int printf_va_13(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_14(char const *format, int *param0); +int scanf_va_14(char const * __restrict format, int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -412,7 +410,7 @@ int scanf_va_14(char const *format, int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_14(char const *format, int param0); +int printf_va_14(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -428,7 +426,7 @@ int printf_va_14(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_15(char const *format, unsigned int *param0); +int scanf_va_15(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -441,7 +439,7 @@ int scanf_va_15(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_15(char const *format, unsigned int param0); +int printf_va_15(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -457,7 +455,7 @@ int printf_va_15(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_16(char const *format, unsigned int *param0); +int scanf_va_16(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -470,7 +468,7 @@ int scanf_va_16(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_16(char const *format, unsigned int param0); +int printf_va_16(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -486,7 +484,7 @@ int printf_va_16(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_17(char const *format, unsigned int *param0); +int scanf_va_17(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -499,7 +497,7 @@ int scanf_va_17(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_17(char const *format, unsigned int param0); +int printf_va_17(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -515,7 +513,7 @@ int printf_va_17(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_18(char const *format, unsigned int *param0); +int scanf_va_18(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -528,7 +526,7 @@ int scanf_va_18(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_18(char const *format, unsigned int param0); +int printf_va_18(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -544,7 +542,7 @@ int printf_va_18(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_19(char const *format, long long *param0); +int scanf_va_19(char const * __restrict format, long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -557,7 +555,7 @@ int scanf_va_19(char const *format, long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_19(char const *format, long long param0); +int printf_va_19(char const * __restrict format, long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -573,7 +571,7 @@ int printf_va_19(char const *format, long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_20(char const *format, long long *param0); +int scanf_va_20(char const * __restrict format, long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -586,7 +584,7 @@ int scanf_va_20(char const *format, long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_20(char const *format, long long param0); +int printf_va_20(char const * __restrict format, long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -602,7 +600,7 @@ int printf_va_20(char const *format, long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_21(char const *format, unsigned long long *param0); +int scanf_va_21(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -615,7 +613,7 @@ int scanf_va_21(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_21(char const *format, unsigned long long param0); +int printf_va_21(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -631,7 +629,7 @@ int printf_va_21(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_22(char const *format, unsigned long long *param0); +int scanf_va_22(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -644,7 +642,7 @@ int scanf_va_22(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_22(char const *format, unsigned long long param0); +int printf_va_22(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -660,7 +658,7 @@ int printf_va_22(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_23(char const *format, unsigned long long *param0); +int scanf_va_23(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -673,7 +671,7 @@ int scanf_va_23(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_23(char const *format, unsigned long long param0); +int printf_va_23(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -689,7 +687,7 @@ int printf_va_23(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_24(char const *format, unsigned long long *param0); +int scanf_va_24(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -702,7 +700,7 @@ int scanf_va_24(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_24(char const *format, unsigned long long param0); +int printf_va_24(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -718,7 +716,7 @@ int printf_va_24(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_25(char const *format, signed char *param0); +int scanf_va_25(char const * __restrict format, signed char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -731,7 +729,7 @@ int scanf_va_25(char const *format, signed char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_25(char const *format, int param0); +int printf_va_25(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -747,7 +745,7 @@ int printf_va_25(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_26(char const *format, signed char *param0); +int scanf_va_26(char const * __restrict format, signed char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -760,7 +758,7 @@ int scanf_va_26(char const *format, signed char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_26(char const *format, int param0); +int printf_va_26(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -776,7 +774,7 @@ int printf_va_26(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_27(char const *format, unsigned char *param0); +int scanf_va_27(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -789,7 +787,7 @@ int scanf_va_27(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_27(char const *format, int param0); +int printf_va_27(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -805,7 +803,7 @@ int printf_va_27(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_28(char const *format, unsigned char *param0); +int scanf_va_28(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -818,7 +816,7 @@ int scanf_va_28(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_28(char const *format, int param0); +int printf_va_28(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -834,7 +832,7 @@ int printf_va_28(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_29(char const *format, unsigned char *param0); +int scanf_va_29(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -847,7 +845,7 @@ int scanf_va_29(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_29(char const *format, int param0); +int printf_va_29(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -863,7 +861,7 @@ int printf_va_29(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_30(char const *format, unsigned char *param0); +int scanf_va_30(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -876,7 +874,7 @@ int scanf_va_30(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_30(char const *format, int param0); +int printf_va_30(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -892,7 +890,7 @@ int printf_va_30(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_31(char const *format, short *param0); +int scanf_va_31(char const * __restrict format, short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -905,7 +903,7 @@ int scanf_va_31(char const *format, short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_31(char const *format, int param0); +int printf_va_31(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -921,7 +919,7 @@ int printf_va_31(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_32(char const *format, short *param0); +int scanf_va_32(char const * __restrict format, short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -934,7 +932,7 @@ int scanf_va_32(char const *format, short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_32(char const *format, int param0); +int printf_va_32(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -950,7 +948,7 @@ int printf_va_32(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_33(char const *format, unsigned short *param0); +int scanf_va_33(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -963,7 +961,7 @@ int scanf_va_33(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_33(char const *format, int param0); +int printf_va_33(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -979,7 +977,7 @@ int printf_va_33(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_34(char const *format, unsigned short *param0); +int scanf_va_34(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -992,7 +990,7 @@ int scanf_va_34(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_34(char const *format, int param0); +int printf_va_34(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1008,7 +1006,7 @@ int printf_va_34(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_35(char const *format, unsigned short *param0); +int scanf_va_35(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1021,7 +1019,7 @@ int scanf_va_35(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_35(char const *format, int param0); +int printf_va_35(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1037,7 +1035,7 @@ int printf_va_35(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_36(char const *format, unsigned short *param0); +int scanf_va_36(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1050,7 +1048,7 @@ int scanf_va_36(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_36(char const *format, int param0); +int printf_va_36(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1066,7 +1064,7 @@ int printf_va_36(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_37(char const *format, int *param0); +int scanf_va_37(char const * __restrict format, int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1079,7 +1077,7 @@ int scanf_va_37(char const *format, int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_37(char const *format, int param0); +int printf_va_37(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1095,7 +1093,7 @@ int printf_va_37(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_38(char const *format, int *param0); +int scanf_va_38(char const * __restrict format, int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1108,7 +1106,7 @@ int scanf_va_38(char const *format, int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_38(char const *format, int param0); +int printf_va_38(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1124,7 +1122,7 @@ int printf_va_38(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_39(char const *format, unsigned int *param0); +int scanf_va_39(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1137,7 +1135,7 @@ int scanf_va_39(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_39(char const *format, unsigned int param0); +int printf_va_39(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1153,7 +1151,7 @@ int printf_va_39(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_40(char const *format, unsigned int *param0); +int scanf_va_40(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1166,7 +1164,7 @@ int scanf_va_40(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_40(char const *format, unsigned int param0); +int printf_va_40(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1182,7 +1180,7 @@ int printf_va_40(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_41(char const *format, unsigned int *param0); +int scanf_va_41(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1195,7 +1193,7 @@ int scanf_va_41(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_41(char const *format, unsigned int param0); +int printf_va_41(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1211,7 +1209,7 @@ int printf_va_41(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_42(char const *format, unsigned int *param0); +int scanf_va_42(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1224,7 +1222,7 @@ int scanf_va_42(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_42(char const *format, unsigned int param0); +int printf_va_42(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1240,7 +1238,7 @@ int printf_va_42(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_43(char const *format, long long *param0); +int scanf_va_43(char const * __restrict format, long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1253,7 +1251,7 @@ int scanf_va_43(char const *format, long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_43(char const *format, long long param0); +int printf_va_43(char const * __restrict format, long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1269,7 +1267,7 @@ int printf_va_43(char const *format, long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_44(char const *format, long long *param0); +int scanf_va_44(char const * __restrict format, long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1282,7 +1280,7 @@ int scanf_va_44(char const *format, long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_44(char const *format, long long param0); +int printf_va_44(char const * __restrict format, long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1298,7 +1296,7 @@ int printf_va_44(char const *format, long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_45(char const *format, unsigned long long *param0); +int scanf_va_45(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1311,7 +1309,7 @@ int scanf_va_45(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_45(char const *format, unsigned long long param0); +int printf_va_45(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1327,7 +1325,7 @@ int printf_va_45(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_46(char const *format, unsigned long long *param0); +int scanf_va_46(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1340,7 +1338,7 @@ int scanf_va_46(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_46(char const *format, unsigned long long param0); +int printf_va_46(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1356,7 +1354,7 @@ int printf_va_46(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_47(char const *format, unsigned long long *param0); +int scanf_va_47(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1369,7 +1367,7 @@ int scanf_va_47(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_47(char const *format, unsigned long long param0); +int printf_va_47(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1385,7 +1383,7 @@ int printf_va_47(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_48(char const *format, unsigned long long *param0); +int scanf_va_48(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1398,7 +1396,7 @@ int scanf_va_48(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_48(char const *format, unsigned long long param0); +int printf_va_48(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1414,7 +1412,7 @@ int printf_va_48(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_49(char const *format, signed char *param0); +int scanf_va_49(char const * __restrict format, signed char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1427,7 +1425,7 @@ int scanf_va_49(char const *format, signed char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_49(char const *format, int param0); +int printf_va_49(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1443,7 +1441,7 @@ int printf_va_49(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_50(char const *format, signed char *param0); +int scanf_va_50(char const * __restrict format, signed char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1456,7 +1454,7 @@ int scanf_va_50(char const *format, signed char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_50(char const *format, int param0); +int printf_va_50(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1472,7 +1470,7 @@ int printf_va_50(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_51(char const *format, unsigned char *param0); +int scanf_va_51(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1485,7 +1483,7 @@ int scanf_va_51(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_51(char const *format, int param0); +int printf_va_51(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1501,7 +1499,7 @@ int printf_va_51(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_52(char const *format, unsigned char *param0); +int scanf_va_52(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1514,7 +1512,7 @@ int scanf_va_52(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_52(char const *format, int param0); +int printf_va_52(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1530,7 +1528,7 @@ int printf_va_52(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_53(char const *format, unsigned char *param0); +int scanf_va_53(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1543,7 +1541,7 @@ int scanf_va_53(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_53(char const *format, int param0); +int printf_va_53(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1559,7 +1557,7 @@ int printf_va_53(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_54(char const *format, unsigned char *param0); +int scanf_va_54(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1572,7 +1570,7 @@ int scanf_va_54(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_54(char const *format, int param0); +int printf_va_54(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1588,7 +1586,7 @@ int printf_va_54(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_55(char const *format, int *param0); +int scanf_va_55(char const * __restrict format, int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1601,7 +1599,7 @@ int scanf_va_55(char const *format, int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_55(char const *format, int param0); +int printf_va_55(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1617,7 +1615,7 @@ int printf_va_55(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_56(char const *format, int *param0); +int scanf_va_56(char const * __restrict format, int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1630,7 +1628,7 @@ int scanf_va_56(char const *format, int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_56(char const *format, int param0); +int printf_va_56(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1646,7 +1644,7 @@ int printf_va_56(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_57(char const *format, unsigned int *param0); +int scanf_va_57(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1659,7 +1657,7 @@ int scanf_va_57(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_57(char const *format, unsigned int param0); +int printf_va_57(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1675,7 +1673,7 @@ int printf_va_57(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_58(char const *format, unsigned int *param0); +int scanf_va_58(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1688,7 +1686,7 @@ int scanf_va_58(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_58(char const *format, unsigned int param0); +int printf_va_58(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1704,7 +1702,7 @@ int printf_va_58(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_59(char const *format, unsigned int *param0); +int scanf_va_59(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1717,7 +1715,7 @@ int scanf_va_59(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_59(char const *format, unsigned int param0); +int printf_va_59(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1733,7 +1731,7 @@ int printf_va_59(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_60(char const *format, unsigned int *param0); +int scanf_va_60(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1746,7 +1744,7 @@ int scanf_va_60(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_60(char const *format, unsigned int param0); +int printf_va_60(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1762,7 +1760,7 @@ int printf_va_60(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_61(char const *format, int *param0); +int scanf_va_61(char const * __restrict format, int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1775,7 +1773,7 @@ int scanf_va_61(char const *format, int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_61(char const *format, int param0); +int printf_va_61(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1791,7 +1789,7 @@ int printf_va_61(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_62(char const *format, int *param0); +int scanf_va_62(char const * __restrict format, int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1804,7 +1802,7 @@ int scanf_va_62(char const *format, int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_62(char const *format, int param0); +int printf_va_62(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1820,7 +1818,7 @@ int printf_va_62(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_63(char const *format, unsigned int *param0); +int scanf_va_63(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1833,7 +1831,7 @@ int scanf_va_63(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_63(char const *format, unsigned int param0); +int printf_va_63(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1849,7 +1847,7 @@ int printf_va_63(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_64(char const *format, unsigned int *param0); +int scanf_va_64(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1862,7 +1860,7 @@ int scanf_va_64(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_64(char const *format, unsigned int param0); +int printf_va_64(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1878,7 +1876,7 @@ int printf_va_64(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_65(char const *format, unsigned int *param0); +int scanf_va_65(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1891,7 +1889,7 @@ int scanf_va_65(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_65(char const *format, unsigned int param0); +int printf_va_65(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1907,7 +1905,7 @@ int printf_va_65(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_66(char const *format, unsigned int *param0); +int scanf_va_66(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1920,7 +1918,7 @@ int scanf_va_66(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_66(char const *format, unsigned int param0); +int printf_va_66(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1936,7 +1934,7 @@ int printf_va_66(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_67(char const *format, long long *param0); +int scanf_va_67(char const * __restrict format, long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1949,7 +1947,7 @@ int scanf_va_67(char const *format, long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_67(char const *format, long long param0); +int printf_va_67(char const * __restrict format, long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1965,7 +1963,7 @@ int printf_va_67(char const *format, long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_68(char const *format, long long *param0); +int scanf_va_68(char const * __restrict format, long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1978,7 +1976,7 @@ int scanf_va_68(char const *format, long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_68(char const *format, long long param0); +int printf_va_68(char const * __restrict format, long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1994,7 +1992,7 @@ int printf_va_68(char const *format, long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_69(char const *format, unsigned long long *param0); +int scanf_va_69(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2007,7 +2005,7 @@ int scanf_va_69(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_69(char const *format, unsigned long long param0); +int printf_va_69(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2023,7 +2021,7 @@ int printf_va_69(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_70(char const *format, unsigned long long *param0); +int scanf_va_70(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2036,7 +2034,7 @@ int scanf_va_70(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_70(char const *format, unsigned long long param0); +int printf_va_70(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2052,7 +2050,7 @@ int printf_va_70(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_71(char const *format, unsigned long long *param0); +int scanf_va_71(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2065,7 +2063,7 @@ int scanf_va_71(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_71(char const *format, unsigned long long param0); +int printf_va_71(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2081,7 +2079,7 @@ int printf_va_71(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_72(char const *format, unsigned long long *param0); +int scanf_va_72(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2094,7 +2092,7 @@ int scanf_va_72(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_72(char const *format, unsigned long long param0); +int printf_va_72(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2110,7 +2108,7 @@ int printf_va_72(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_73(char const *format, long long *param0); +int scanf_va_73(char const * __restrict format, long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2123,7 +2121,7 @@ int scanf_va_73(char const *format, long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_73(char const *format, long long param0); +int printf_va_73(char const * __restrict format, long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2139,7 +2137,7 @@ int printf_va_73(char const *format, long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_74(char const *format, long long *param0); +int scanf_va_74(char const * __restrict format, long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2152,7 +2150,7 @@ int scanf_va_74(char const *format, long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_74(char const *format, long long param0); +int printf_va_74(char const * __restrict format, long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2168,7 +2166,7 @@ int printf_va_74(char const *format, long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_75(char const *format, unsigned long long *param0); +int scanf_va_75(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2181,7 +2179,7 @@ int scanf_va_75(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_75(char const *format, unsigned long long param0); +int printf_va_75(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2197,7 +2195,7 @@ int printf_va_75(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_76(char const *format, unsigned long long *param0); +int scanf_va_76(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2210,7 +2208,7 @@ int scanf_va_76(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_76(char const *format, unsigned long long param0); +int printf_va_76(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2226,7 +2224,7 @@ int printf_va_76(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_77(char const *format, unsigned long long *param0); +int scanf_va_77(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2239,7 +2237,7 @@ int scanf_va_77(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_77(char const *format, unsigned long long param0); +int printf_va_77(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2255,7 +2253,7 @@ int printf_va_77(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_78(char const *format, unsigned long long *param0); +int scanf_va_78(char const * __restrict format, unsigned long long *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2268,7 +2266,7 @@ int scanf_va_78(char const *format, unsigned long long *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_78(char const *format, unsigned long long param0); +int printf_va_78(char const * __restrict format, unsigned long long param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2284,7 +2282,7 @@ int printf_va_78(char const *format, unsigned long long param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_79(char const *format, int *param0); +int scanf_va_79(char const * __restrict format, int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2297,7 +2295,7 @@ int scanf_va_79(char const *format, int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_79(char const *format, int param0); +int printf_va_79(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2313,7 +2311,7 @@ int printf_va_79(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_80(char const *format, int *param0); +int scanf_va_80(char const * __restrict format, int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2326,7 +2324,7 @@ int scanf_va_80(char const *format, int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_80(char const *format, int param0); +int printf_va_80(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2342,7 +2340,7 @@ int printf_va_80(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_81(char const *format, unsigned int *param0); +int scanf_va_81(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2355,7 +2353,7 @@ int scanf_va_81(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_81(char const *format, unsigned int param0); +int printf_va_81(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2371,7 +2369,7 @@ int printf_va_81(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_82(char const *format, unsigned int *param0); +int scanf_va_82(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2384,7 +2382,7 @@ int scanf_va_82(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_82(char const *format, unsigned int param0); +int printf_va_82(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2400,7 +2398,7 @@ int printf_va_82(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_83(char const *format, unsigned int *param0); +int scanf_va_83(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2413,7 +2411,7 @@ int scanf_va_83(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_83(char const *format, unsigned int param0); +int printf_va_83(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2429,7 +2427,7 @@ int printf_va_83(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_84(char const *format, unsigned int *param0); +int scanf_va_84(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2442,7 +2440,7 @@ int scanf_va_84(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_84(char const *format, unsigned int param0); +int printf_va_84(char const * __restrict format, unsigned int param0); int main(void) { diff --git a/tests/libc/oracle/inttypes_h.7.res.oracle b/tests/libc/oracle/inttypes_h.7.res.oracle index a18859b1b29028bb40c022eb623e704a7e884468..6a5939c36733097f68a48520a54e40a8899a5d42 100644 --- a/tests/libc/oracle/inttypes_h.7.res.oracle +++ b/tests/libc/oracle/inttypes_h.7.res.oracle @@ -1,5 +1,3 @@ -[kernel:pp] - preprocessing with "gcc -E -C -I. -I./share/libc -D__FRAMAC__ -D__FC_MACHDEP_MSVC_X86_64 -dD -nostdinc -m64 tests/libc/inttypes_h.c" [kernel] Parsing tests/libc/inttypes_h.c (with preprocessing) /* Generated by Frama-C */ #include "errno.h" @@ -22,7 +20,7 @@ \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_1(char const *format, signed char *param0); +int scanf_va_1(char const * __restrict format, signed char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -35,7 +33,7 @@ int scanf_va_1(char const *format, signed char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_1(char const *format, int param0); +int printf_va_1(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -51,7 +49,7 @@ int printf_va_1(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_2(char const *format, signed char *param0); +int scanf_va_2(char const * __restrict format, signed char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -64,7 +62,7 @@ int scanf_va_2(char const *format, signed char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_2(char const *format, int param0); +int printf_va_2(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -80,7 +78,7 @@ int printf_va_2(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_3(char const *format, unsigned char *param0); +int scanf_va_3(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -93,7 +91,7 @@ int scanf_va_3(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_3(char const *format, int param0); +int printf_va_3(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -109,7 +107,7 @@ int printf_va_3(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_4(char const *format, unsigned char *param0); +int scanf_va_4(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -122,7 +120,7 @@ int scanf_va_4(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_4(char const *format, int param0); +int printf_va_4(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -138,7 +136,7 @@ int printf_va_4(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_5(char const *format, unsigned char *param0); +int scanf_va_5(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -151,7 +149,7 @@ int scanf_va_5(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_5(char const *format, int param0); +int printf_va_5(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -167,7 +165,7 @@ int printf_va_5(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_6(char const *format, unsigned char *param0); +int scanf_va_6(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -180,7 +178,7 @@ int scanf_va_6(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_6(char const *format, int param0); +int printf_va_6(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -196,7 +194,7 @@ int printf_va_6(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_7(char const *format, short *param0); +int scanf_va_7(char const * __restrict format, short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -209,7 +207,7 @@ int scanf_va_7(char const *format, short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_7(char const *format, int param0); +int printf_va_7(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -225,7 +223,7 @@ int printf_va_7(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_8(char const *format, short *param0); +int scanf_va_8(char const * __restrict format, short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -238,7 +236,7 @@ int scanf_va_8(char const *format, short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_8(char const *format, int param0); +int printf_va_8(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -254,7 +252,7 @@ int printf_va_8(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_9(char const *format, unsigned short *param0); +int scanf_va_9(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -267,7 +265,7 @@ int scanf_va_9(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_9(char const *format, int param0); +int printf_va_9(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -283,7 +281,7 @@ int printf_va_9(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_10(char const *format, unsigned short *param0); +int scanf_va_10(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -296,7 +294,7 @@ int scanf_va_10(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_10(char const *format, int param0); +int printf_va_10(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -312,7 +310,7 @@ int printf_va_10(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_11(char const *format, unsigned short *param0); +int scanf_va_11(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -325,7 +323,7 @@ int scanf_va_11(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_11(char const *format, int param0); +int printf_va_11(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -341,7 +339,7 @@ int printf_va_11(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_12(char const *format, unsigned short *param0); +int scanf_va_12(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -354,7 +352,7 @@ int scanf_va_12(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_12(char const *format, int param0); +int printf_va_12(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -370,7 +368,7 @@ int printf_va_12(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_13(char const *format, int *param0); +int scanf_va_13(char const * __restrict format, int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -383,7 +381,7 @@ int scanf_va_13(char const *format, int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_13(char const *format, int param0); +int printf_va_13(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -399,7 +397,7 @@ int printf_va_13(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_14(char const *format, int *param0); +int scanf_va_14(char const * __restrict format, int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -412,7 +410,7 @@ int scanf_va_14(char const *format, int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_14(char const *format, int param0); +int printf_va_14(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -428,7 +426,7 @@ int printf_va_14(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_15(char const *format, unsigned int *param0); +int scanf_va_15(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -441,7 +439,7 @@ int scanf_va_15(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_15(char const *format, unsigned int param0); +int printf_va_15(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -457,7 +455,7 @@ int printf_va_15(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_16(char const *format, unsigned int *param0); +int scanf_va_16(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -470,7 +468,7 @@ int scanf_va_16(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_16(char const *format, unsigned int param0); +int printf_va_16(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -486,7 +484,7 @@ int printf_va_16(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_17(char const *format, unsigned int *param0); +int scanf_va_17(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -499,7 +497,7 @@ int scanf_va_17(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_17(char const *format, unsigned int param0); +int printf_va_17(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -515,7 +513,7 @@ int printf_va_17(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_18(char const *format, unsigned int *param0); +int scanf_va_18(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -528,7 +526,7 @@ int scanf_va_18(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_18(char const *format, unsigned int param0); +int printf_va_18(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -544,7 +542,7 @@ int printf_va_18(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_19(char const *format, __int64 *param0); +int scanf_va_19(char const * __restrict format, __int64 *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -557,7 +555,7 @@ int scanf_va_19(char const *format, __int64 *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_19(char const *format, __int64 param0); +int printf_va_19(char const * __restrict format, __int64 param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -573,7 +571,7 @@ int printf_va_19(char const *format, __int64 param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_20(char const *format, __int64 *param0); +int scanf_va_20(char const * __restrict format, __int64 *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -586,7 +584,7 @@ int scanf_va_20(char const *format, __int64 *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_20(char const *format, __int64 param0); +int printf_va_20(char const * __restrict format, __int64 param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -602,7 +600,7 @@ int printf_va_20(char const *format, __int64 param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_21(char const *format, unsigned __int64 *param0); +int scanf_va_21(char const * __restrict format, unsigned __int64 *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -615,7 +613,7 @@ int scanf_va_21(char const *format, unsigned __int64 *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_21(char const *format, unsigned __int64 param0); +int printf_va_21(char const * __restrict format, unsigned __int64 param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -631,7 +629,7 @@ int printf_va_21(char const *format, unsigned __int64 param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_22(char const *format, unsigned __int64 *param0); +int scanf_va_22(char const * __restrict format, unsigned __int64 *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -644,7 +642,7 @@ int scanf_va_22(char const *format, unsigned __int64 *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_22(char const *format, unsigned __int64 param0); +int printf_va_22(char const * __restrict format, unsigned __int64 param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -660,7 +658,7 @@ int printf_va_22(char const *format, unsigned __int64 param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_23(char const *format, unsigned __int64 *param0); +int scanf_va_23(char const * __restrict format, unsigned __int64 *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -673,7 +671,7 @@ int scanf_va_23(char const *format, unsigned __int64 *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_23(char const *format, unsigned __int64 param0); +int printf_va_23(char const * __restrict format, unsigned __int64 param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -689,7 +687,7 @@ int printf_va_23(char const *format, unsigned __int64 param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_24(char const *format, unsigned __int64 *param0); +int scanf_va_24(char const * __restrict format, unsigned __int64 *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -702,7 +700,7 @@ int scanf_va_24(char const *format, unsigned __int64 *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_24(char const *format, unsigned __int64 param0); +int printf_va_24(char const * __restrict format, unsigned __int64 param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -718,7 +716,7 @@ int printf_va_24(char const *format, unsigned __int64 param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_25(char const *format, signed char *param0); +int scanf_va_25(char const * __restrict format, signed char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -731,7 +729,7 @@ int scanf_va_25(char const *format, signed char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_25(char const *format, int param0); +int printf_va_25(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -747,7 +745,7 @@ int printf_va_25(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_26(char const *format, signed char *param0); +int scanf_va_26(char const * __restrict format, signed char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -760,7 +758,7 @@ int scanf_va_26(char const *format, signed char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_26(char const *format, int param0); +int printf_va_26(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -776,7 +774,7 @@ int printf_va_26(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_27(char const *format, unsigned char *param0); +int scanf_va_27(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -789,7 +787,7 @@ int scanf_va_27(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_27(char const *format, int param0); +int printf_va_27(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -805,7 +803,7 @@ int printf_va_27(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_28(char const *format, unsigned char *param0); +int scanf_va_28(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -818,7 +816,7 @@ int scanf_va_28(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_28(char const *format, int param0); +int printf_va_28(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -834,7 +832,7 @@ int printf_va_28(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_29(char const *format, unsigned char *param0); +int scanf_va_29(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -847,7 +845,7 @@ int scanf_va_29(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_29(char const *format, int param0); +int printf_va_29(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -863,7 +861,7 @@ int printf_va_29(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_30(char const *format, unsigned char *param0); +int scanf_va_30(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -876,7 +874,7 @@ int scanf_va_30(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_30(char const *format, int param0); +int printf_va_30(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -892,7 +890,7 @@ int printf_va_30(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_31(char const *format, short *param0); +int scanf_va_31(char const * __restrict format, short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -905,7 +903,7 @@ int scanf_va_31(char const *format, short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_31(char const *format, int param0); +int printf_va_31(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -921,7 +919,7 @@ int printf_va_31(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_32(char const *format, short *param0); +int scanf_va_32(char const * __restrict format, short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -934,7 +932,7 @@ int scanf_va_32(char const *format, short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_32(char const *format, int param0); +int printf_va_32(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -950,7 +948,7 @@ int printf_va_32(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_33(char const *format, unsigned short *param0); +int scanf_va_33(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -963,7 +961,7 @@ int scanf_va_33(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_33(char const *format, int param0); +int printf_va_33(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -979,7 +977,7 @@ int printf_va_33(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_34(char const *format, unsigned short *param0); +int scanf_va_34(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -992,7 +990,7 @@ int scanf_va_34(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_34(char const *format, int param0); +int printf_va_34(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1008,7 +1006,7 @@ int printf_va_34(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_35(char const *format, unsigned short *param0); +int scanf_va_35(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1021,7 +1019,7 @@ int scanf_va_35(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_35(char const *format, int param0); +int printf_va_35(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1037,7 +1035,7 @@ int printf_va_35(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_36(char const *format, unsigned short *param0); +int scanf_va_36(char const * __restrict format, unsigned short *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1050,7 +1048,7 @@ int scanf_va_36(char const *format, unsigned short *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_36(char const *format, int param0); +int printf_va_36(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1066,7 +1064,7 @@ int printf_va_36(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_37(char const *format, int *param0); +int scanf_va_37(char const * __restrict format, int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1079,7 +1077,7 @@ int scanf_va_37(char const *format, int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_37(char const *format, int param0); +int printf_va_37(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1095,7 +1093,7 @@ int printf_va_37(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_38(char const *format, int *param0); +int scanf_va_38(char const * __restrict format, int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1108,7 +1106,7 @@ int scanf_va_38(char const *format, int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_38(char const *format, int param0); +int printf_va_38(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1124,7 +1122,7 @@ int printf_va_38(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_39(char const *format, unsigned int *param0); +int scanf_va_39(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1137,7 +1135,7 @@ int scanf_va_39(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_39(char const *format, unsigned int param0); +int printf_va_39(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1153,7 +1151,7 @@ int printf_va_39(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_40(char const *format, unsigned int *param0); +int scanf_va_40(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1166,7 +1164,7 @@ int scanf_va_40(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_40(char const *format, unsigned int param0); +int printf_va_40(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1182,7 +1180,7 @@ int printf_va_40(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_41(char const *format, unsigned int *param0); +int scanf_va_41(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1195,7 +1193,7 @@ int scanf_va_41(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_41(char const *format, unsigned int param0); +int printf_va_41(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1211,7 +1209,7 @@ int printf_va_41(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_42(char const *format, unsigned int *param0); +int scanf_va_42(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1224,7 +1222,7 @@ int scanf_va_42(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_42(char const *format, unsigned int param0); +int printf_va_42(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1240,7 +1238,7 @@ int printf_va_42(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_43(char const *format, __int64 *param0); +int scanf_va_43(char const * __restrict format, __int64 *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1253,7 +1251,7 @@ int scanf_va_43(char const *format, __int64 *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_43(char const *format, __int64 param0); +int printf_va_43(char const * __restrict format, __int64 param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1269,7 +1267,7 @@ int printf_va_43(char const *format, __int64 param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_44(char const *format, __int64 *param0); +int scanf_va_44(char const * __restrict format, __int64 *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1282,7 +1280,7 @@ int scanf_va_44(char const *format, __int64 *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_44(char const *format, __int64 param0); +int printf_va_44(char const * __restrict format, __int64 param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1298,7 +1296,7 @@ int printf_va_44(char const *format, __int64 param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_45(char const *format, unsigned __int64 *param0); +int scanf_va_45(char const * __restrict format, unsigned __int64 *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1311,7 +1309,7 @@ int scanf_va_45(char const *format, unsigned __int64 *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_45(char const *format, unsigned __int64 param0); +int printf_va_45(char const * __restrict format, unsigned __int64 param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1327,7 +1325,7 @@ int printf_va_45(char const *format, unsigned __int64 param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_46(char const *format, unsigned __int64 *param0); +int scanf_va_46(char const * __restrict format, unsigned __int64 *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1340,7 +1338,7 @@ int scanf_va_46(char const *format, unsigned __int64 *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_46(char const *format, unsigned __int64 param0); +int printf_va_46(char const * __restrict format, unsigned __int64 param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1356,7 +1354,7 @@ int printf_va_46(char const *format, unsigned __int64 param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_47(char const *format, unsigned __int64 *param0); +int scanf_va_47(char const * __restrict format, unsigned __int64 *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1369,7 +1367,7 @@ int scanf_va_47(char const *format, unsigned __int64 *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_47(char const *format, unsigned __int64 param0); +int printf_va_47(char const * __restrict format, unsigned __int64 param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1385,7 +1383,7 @@ int printf_va_47(char const *format, unsigned __int64 param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_48(char const *format, unsigned __int64 *param0); +int scanf_va_48(char const * __restrict format, unsigned __int64 *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1398,7 +1396,7 @@ int scanf_va_48(char const *format, unsigned __int64 *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_48(char const *format, unsigned __int64 param0); +int printf_va_48(char const * __restrict format, unsigned __int64 param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1414,7 +1412,7 @@ int printf_va_48(char const *format, unsigned __int64 param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_49(char const *format, signed char *param0); +int scanf_va_49(char const * __restrict format, signed char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1427,7 +1425,7 @@ int scanf_va_49(char const *format, signed char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_49(char const *format, int param0); +int printf_va_49(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1443,7 +1441,7 @@ int printf_va_49(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_50(char const *format, signed char *param0); +int scanf_va_50(char const * __restrict format, signed char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1456,7 +1454,7 @@ int scanf_va_50(char const *format, signed char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_50(char const *format, int param0); +int printf_va_50(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1472,7 +1470,7 @@ int printf_va_50(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_51(char const *format, unsigned char *param0); +int scanf_va_51(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1485,7 +1483,7 @@ int scanf_va_51(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_51(char const *format, int param0); +int printf_va_51(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1501,7 +1499,7 @@ int printf_va_51(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_52(char const *format, unsigned char *param0); +int scanf_va_52(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1514,7 +1512,7 @@ int scanf_va_52(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_52(char const *format, int param0); +int printf_va_52(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1530,7 +1528,7 @@ int printf_va_52(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_53(char const *format, unsigned char *param0); +int scanf_va_53(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1543,7 +1541,7 @@ int scanf_va_53(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_53(char const *format, int param0); +int printf_va_53(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1559,7 +1557,7 @@ int printf_va_53(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_54(char const *format, unsigned char *param0); +int scanf_va_54(char const * __restrict format, unsigned char *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1572,7 +1570,7 @@ int scanf_va_54(char const *format, unsigned char *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_54(char const *format, int param0); +int printf_va_54(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1588,7 +1586,7 @@ int printf_va_54(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_55(char const *format, int *param0); +int scanf_va_55(char const * __restrict format, int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1601,7 +1599,7 @@ int scanf_va_55(char const *format, int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_55(char const *format, int param0); +int printf_va_55(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1617,7 +1615,7 @@ int printf_va_55(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_56(char const *format, int *param0); +int scanf_va_56(char const * __restrict format, int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1630,7 +1628,7 @@ int scanf_va_56(char const *format, int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_56(char const *format, int param0); +int printf_va_56(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1646,7 +1644,7 @@ int printf_va_56(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_57(char const *format, unsigned int *param0); +int scanf_va_57(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1659,7 +1657,7 @@ int scanf_va_57(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_57(char const *format, unsigned int param0); +int printf_va_57(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1675,7 +1673,7 @@ int printf_va_57(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_58(char const *format, unsigned int *param0); +int scanf_va_58(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1688,7 +1686,7 @@ int scanf_va_58(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_58(char const *format, unsigned int param0); +int printf_va_58(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1704,7 +1702,7 @@ int printf_va_58(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_59(char const *format, unsigned int *param0); +int scanf_va_59(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1717,7 +1715,7 @@ int scanf_va_59(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_59(char const *format, unsigned int param0); +int printf_va_59(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1733,7 +1731,7 @@ int printf_va_59(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_60(char const *format, unsigned int *param0); +int scanf_va_60(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1746,7 +1744,7 @@ int scanf_va_60(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_60(char const *format, unsigned int param0); +int printf_va_60(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1762,7 +1760,7 @@ int printf_va_60(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_61(char const *format, int *param0); +int scanf_va_61(char const * __restrict format, int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1775,7 +1773,7 @@ int scanf_va_61(char const *format, int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_61(char const *format, int param0); +int printf_va_61(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1791,7 +1789,7 @@ int printf_va_61(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_62(char const *format, int *param0); +int scanf_va_62(char const * __restrict format, int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1804,7 +1802,7 @@ int scanf_va_62(char const *format, int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_62(char const *format, int param0); +int printf_va_62(char const * __restrict format, int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1820,7 +1818,7 @@ int printf_va_62(char const *format, int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_63(char const *format, unsigned int *param0); +int scanf_va_63(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1833,7 +1831,7 @@ int scanf_va_63(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_63(char const *format, unsigned int param0); +int printf_va_63(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1849,7 +1847,7 @@ int printf_va_63(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_64(char const *format, unsigned int *param0); +int scanf_va_64(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1862,7 +1860,7 @@ int scanf_va_64(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_64(char const *format, unsigned int param0); +int printf_va_64(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1878,7 +1876,7 @@ int printf_va_64(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_65(char const *format, unsigned int *param0); +int scanf_va_65(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1891,7 +1889,7 @@ int scanf_va_65(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_65(char const *format, unsigned int param0); +int printf_va_65(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1907,7 +1905,7 @@ int printf_va_65(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_66(char const *format, unsigned int *param0); +int scanf_va_66(char const * __restrict format, unsigned int *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1920,7 +1918,7 @@ int scanf_va_66(char const *format, unsigned int *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_66(char const *format, unsigned int param0); +int printf_va_66(char const * __restrict format, unsigned int param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1936,7 +1934,7 @@ int printf_va_66(char const *format, unsigned int param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_67(char const *format, __int64 *param0); +int scanf_va_67(char const * __restrict format, __int64 *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1949,7 +1947,7 @@ int scanf_va_67(char const *format, __int64 *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_67(char const *format, __int64 param0); +int printf_va_67(char const * __restrict format, __int64 param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1965,7 +1963,7 @@ int printf_va_67(char const *format, __int64 param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_68(char const *format, __int64 *param0); +int scanf_va_68(char const * __restrict format, __int64 *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -1978,7 +1976,7 @@ int scanf_va_68(char const *format, __int64 *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_68(char const *format, __int64 param0); +int printf_va_68(char const * __restrict format, __int64 param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -1994,7 +1992,7 @@ int printf_va_68(char const *format, __int64 param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_69(char const *format, unsigned __int64 *param0); +int scanf_va_69(char const * __restrict format, unsigned __int64 *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2007,7 +2005,7 @@ int scanf_va_69(char const *format, unsigned __int64 *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_69(char const *format, unsigned __int64 param0); +int printf_va_69(char const * __restrict format, unsigned __int64 param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2023,7 +2021,7 @@ int printf_va_69(char const *format, unsigned __int64 param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_70(char const *format, unsigned __int64 *param0); +int scanf_va_70(char const * __restrict format, unsigned __int64 *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2036,7 +2034,7 @@ int scanf_va_70(char const *format, unsigned __int64 *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_70(char const *format, unsigned __int64 param0); +int printf_va_70(char const * __restrict format, unsigned __int64 param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2052,7 +2050,7 @@ int printf_va_70(char const *format, unsigned __int64 param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_71(char const *format, unsigned __int64 *param0); +int scanf_va_71(char const * __restrict format, unsigned __int64 *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2065,7 +2063,7 @@ int scanf_va_71(char const *format, unsigned __int64 *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_71(char const *format, unsigned __int64 param0); +int printf_va_71(char const * __restrict format, unsigned __int64 param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2081,7 +2079,7 @@ int printf_va_71(char const *format, unsigned __int64 param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_72(char const *format, unsigned __int64 *param0); +int scanf_va_72(char const * __restrict format, unsigned __int64 *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2094,7 +2092,7 @@ int scanf_va_72(char const *format, unsigned __int64 *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_72(char const *format, unsigned __int64 param0); +int printf_va_72(char const * __restrict format, unsigned __int64 param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2110,7 +2108,7 @@ int printf_va_72(char const *format, unsigned __int64 param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_73(char const *format, __int64 *param0); +int scanf_va_73(char const * __restrict format, __int64 *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2123,7 +2121,7 @@ int scanf_va_73(char const *format, __int64 *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_73(char const *format, __int64 param0); +int printf_va_73(char const * __restrict format, __int64 param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2139,7 +2137,7 @@ int printf_va_73(char const *format, __int64 param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_74(char const *format, __int64 *param0); +int scanf_va_74(char const * __restrict format, __int64 *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2152,7 +2150,7 @@ int scanf_va_74(char const *format, __int64 *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_74(char const *format, __int64 param0); +int printf_va_74(char const * __restrict format, __int64 param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2168,7 +2166,7 @@ int printf_va_74(char const *format, __int64 param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_75(char const *format, unsigned __int64 *param0); +int scanf_va_75(char const * __restrict format, unsigned __int64 *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2181,7 +2179,7 @@ int scanf_va_75(char const *format, unsigned __int64 *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_75(char const *format, unsigned __int64 param0); +int printf_va_75(char const * __restrict format, unsigned __int64 param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2197,7 +2195,7 @@ int printf_va_75(char const *format, unsigned __int64 param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_76(char const *format, unsigned __int64 *param0); +int scanf_va_76(char const * __restrict format, unsigned __int64 *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2210,7 +2208,7 @@ int scanf_va_76(char const *format, unsigned __int64 *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_76(char const *format, unsigned __int64 param0); +int printf_va_76(char const * __restrict format, unsigned __int64 param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2226,7 +2224,7 @@ int printf_va_76(char const *format, unsigned __int64 param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_77(char const *format, unsigned __int64 *param0); +int scanf_va_77(char const * __restrict format, unsigned __int64 *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2239,7 +2237,7 @@ int scanf_va_77(char const *format, unsigned __int64 *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_77(char const *format, unsigned __int64 param0); +int printf_va_77(char const * __restrict format, unsigned __int64 param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2255,7 +2253,7 @@ int printf_va_77(char const *format, unsigned __int64 param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_78(char const *format, unsigned __int64 *param0); +int scanf_va_78(char const * __restrict format, unsigned __int64 *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2268,7 +2266,7 @@ int scanf_va_78(char const *format, unsigned __int64 *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_78(char const *format, unsigned __int64 param0); +int printf_va_78(char const * __restrict format, unsigned __int64 param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2284,7 +2282,7 @@ int printf_va_78(char const *format, unsigned __int64 param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_79(char const *format, __int64 *param0); +int scanf_va_79(char const * __restrict format, __int64 *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2297,7 +2295,7 @@ int scanf_va_79(char const *format, __int64 *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_79(char const *format, __int64 param0); +int printf_va_79(char const * __restrict format, __int64 param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2313,7 +2311,7 @@ int printf_va_79(char const *format, __int64 param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_80(char const *format, __int64 *param0); +int scanf_va_80(char const * __restrict format, __int64 *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2326,7 +2324,7 @@ int scanf_va_80(char const *format, __int64 *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_80(char const *format, __int64 param0); +int printf_va_80(char const * __restrict format, __int64 param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2342,7 +2340,7 @@ int printf_va_80(char const *format, __int64 param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_81(char const *format, unsigned __int64 *param0); +int scanf_va_81(char const * __restrict format, unsigned __int64 *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2355,7 +2353,7 @@ int scanf_va_81(char const *format, unsigned __int64 *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_81(char const *format, unsigned __int64 param0); +int printf_va_81(char const * __restrict format, unsigned __int64 param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2371,7 +2369,7 @@ int printf_va_81(char const *format, unsigned __int64 param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_82(char const *format, unsigned __int64 *param0); +int scanf_va_82(char const * __restrict format, unsigned __int64 *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2384,7 +2382,7 @@ int scanf_va_82(char const *format, unsigned __int64 *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_82(char const *format, unsigned __int64 param0); +int printf_va_82(char const * __restrict format, unsigned __int64 param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2400,7 +2398,7 @@ int printf_va_82(char const *format, unsigned __int64 param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_83(char const *format, unsigned __int64 *param0); +int scanf_va_83(char const * __restrict format, unsigned __int64 *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2413,7 +2411,7 @@ int scanf_va_83(char const *format, unsigned __int64 *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_83(char const *format, unsigned __int64 param0); +int printf_va_83(char const * __restrict format, unsigned __int64 param0); /*@ requires valid_read_string(format); requires \valid(param0); @@ -2429,7 +2427,7 @@ int printf_va_83(char const *format, unsigned __int64 param0); \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int scanf_va_84(char const *format, unsigned __int64 *param0); +int scanf_va_84(char const * __restrict format, unsigned __int64 *param0); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -2442,7 +2440,7 @@ int scanf_va_84(char const *format, unsigned __int64 *param0); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_84(char const *format, unsigned __int64 param0); +int printf_va_84(char const * __restrict format, unsigned __int64 param0); int main(void) { diff --git a/tests/libc/oracle/libgen_h.res.oracle b/tests/libc/oracle/libgen_h.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..ca158666adf08acb2890a53b2ae8fecfddb3e132 --- /dev/null +++ b/tests/libc/oracle/libgen_h.res.oracle @@ -0,0 +1,48 @@ +[kernel] Parsing tests/libc/libgen_h.c (with preprocessing) +[eva] Analyzing a complete application starting at main +[eva] Computing initial state +[eva] Initial state computed +[eva:initial-state] Values of globals at initialization + +[eva] computing for function basename <- main. + Called from tests/libc/libgen_h.c:9. +[eva] using specification for function basename +[eva] tests/libc/libgen_h.c:9: + function basename: precondition 'null_or_valid_string_path' got status valid. +[eva] Done for function basename +[eva:alarm] tests/libc/libgen_h.c:10: Warning: assertion got status unknown. +[eva] computing for function basename <- main. + Called from tests/libc/libgen_h.c:11. +[eva] tests/libc/libgen_h.c:11: + function basename: precondition 'null_or_valid_string_path' got status valid. +[eva] tests/libc/libgen_h.c:11: Warning: + Completely invalid destination for assigns clause *(path + (0 ..)). Ignoring. +[eva] Done for function basename +[eva:alarm] tests/libc/libgen_h.c:12: Warning: assertion got status unknown. +[eva] computing for function dirname <- main. + Called from tests/libc/libgen_h.c:14. +[eva] using specification for function dirname +[eva:alarm] tests/libc/libgen_h.c:14: Warning: + function dirname: precondition 'null_or_valid_string_path' got status unknown. +[eva] Done for function dirname +[eva:alarm] tests/libc/libgen_h.c:15: Warning: assertion got status unknown. +[eva] computing for function dirname <- main. + Called from tests/libc/libgen_h.c:16. +[eva] tests/libc/libgen_h.c:16: + function dirname: precondition 'null_or_valid_string_path' got status valid. +[eva] tests/libc/libgen_h.c:16: Warning: + Completely invalid destination for assigns clause *(path + (0 ..)). Ignoring. +[eva] Done for function dirname +[eva:alarm] tests/libc/libgen_h.c:17: Warning: assertion got status unknown. +[eva] Recording results for main +[eva] done for function main +[eva] ====== VALUES COMPUTED ====== +[eva:final-states] Values at end of function main: + __fc_basename[0..255] ∈ [--..--] + __fc_dirname[0..255] ∈ [--..--] + path[0..127] ∈ [--..--] + base ∈ {{ &__fc_basename[0] ; &path[0] }} + base2 ∈ {{ NULL ; &__fc_basename[0] }} + dir ∈ {{ &__fc_dirname[0] ; &path[0] }} + dir2 ∈ {{ NULL ; &__fc_dirname[0] }} + __retres ∈ {0} diff --git a/tests/libc/oracle/more_gcc_builtins.res.oracle b/tests/libc/oracle/more_gcc_builtins.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..0ad30701226b8bdd8f77ce8a05a61da4d36caca3 --- /dev/null +++ b/tests/libc/oracle/more_gcc_builtins.res.oracle @@ -0,0 +1,96 @@ +[kernel] Parsing tests/libc/more_gcc_builtins.c (with preprocessing) +[eva] Analyzing a complete application starting at main +[eva] Computing initial state +[eva] Initial state computed +[eva:initial-state] Values of globals at initialization + +[eva] computing for function __builtin_sadd_overflow <- main. + Called from tests/libc/more_gcc_builtins.c:10. +[eva] using specification for function __builtin_sadd_overflow +[eva] tests/libc/more_gcc_builtins.c:10: + function __builtin_sadd_overflow: precondition 'valid_res' got status valid. +[eva] Done for function __builtin_sadd_overflow +[eva] tests/libc/more_gcc_builtins.c:11: assertion got status valid. +[eva] tests/libc/more_gcc_builtins.c:12: assertion got status valid. +[eva] computing for function __builtin_sadd_overflow <- main. + Called from tests/libc/more_gcc_builtins.c:13. +[eva] tests/libc/more_gcc_builtins.c:13: + function __builtin_sadd_overflow: precondition 'valid_res' got status valid. +[eva] Done for function __builtin_sadd_overflow +[eva] tests/libc/more_gcc_builtins.c:14: assertion got status valid. +[eva] tests/libc/more_gcc_builtins.c:15: assertion got status valid. +[eva] computing for function __builtin_saddl_overflow <- main. + Called from tests/libc/more_gcc_builtins.c:17. +[eva] using specification for function __builtin_saddl_overflow +[eva] tests/libc/more_gcc_builtins.c:17: + function __builtin_saddl_overflow: precondition 'valid_res' got status valid. +[eva] Done for function __builtin_saddl_overflow +[eva] tests/libc/more_gcc_builtins.c:18: assertion got status valid. +[eva] tests/libc/more_gcc_builtins.c:19: assertion got status valid. +[eva] computing for function __builtin_saddl_overflow <- main. + Called from tests/libc/more_gcc_builtins.c:20. +[eva] tests/libc/more_gcc_builtins.c:20: + function __builtin_saddl_overflow: precondition 'valid_res' got status valid. +[eva] Done for function __builtin_saddl_overflow +[eva] tests/libc/more_gcc_builtins.c:21: assertion got status valid. +[eva] tests/libc/more_gcc_builtins.c:22: assertion got status valid. +[eva] computing for function __builtin_saddll_overflow <- main. + Called from tests/libc/more_gcc_builtins.c:24. +[eva] using specification for function __builtin_saddll_overflow +[eva] tests/libc/more_gcc_builtins.c:24: + function __builtin_saddll_overflow: precondition 'valid_res' got status valid. +[eva] Done for function __builtin_saddll_overflow +[eva] tests/libc/more_gcc_builtins.c:25: assertion got status valid. +[eva] tests/libc/more_gcc_builtins.c:26: assertion got status valid. +[eva] computing for function __builtin_uadd_overflow <- main. + Called from tests/libc/more_gcc_builtins.c:28. +[eva] using specification for function __builtin_uadd_overflow +[eva] tests/libc/more_gcc_builtins.c:28: + function __builtin_uadd_overflow: precondition 'valid_res' got status valid. +[eva] Done for function __builtin_uadd_overflow +[eva] tests/libc/more_gcc_builtins.c:29: assertion got status valid. +[eva] tests/libc/more_gcc_builtins.c:30: assertion got status valid. +[eva] computing for function __builtin_uaddl_overflow <- main. + Called from tests/libc/more_gcc_builtins.c:32. +[eva] using specification for function __builtin_uaddl_overflow +[eva] tests/libc/more_gcc_builtins.c:32: + function __builtin_uaddl_overflow: precondition 'valid_res' got status valid. +[eva] Done for function __builtin_uaddl_overflow +[eva] tests/libc/more_gcc_builtins.c:33: assertion got status valid. +[eva] tests/libc/more_gcc_builtins.c:34: assertion got status valid. +[eva] computing for function __builtin_uaddll_overflow <- main. + Called from tests/libc/more_gcc_builtins.c:36. +[eva] using specification for function __builtin_uaddll_overflow +[eva] tests/libc/more_gcc_builtins.c:36: + function __builtin_uaddll_overflow: precondition 'valid_res' got status valid. +[eva] Done for function __builtin_uaddll_overflow +[eva] tests/libc/more_gcc_builtins.c:37: assertion got status valid. +[eva] tests/libc/more_gcc_builtins.c:38: assertion got status valid. +[eva] computing for function __builtin_usubll_overflow <- main. + Called from tests/libc/more_gcc_builtins.c:39. +[eva] using specification for function __builtin_usubll_overflow +[eva] tests/libc/more_gcc_builtins.c:39: + function __builtin_usubll_overflow: precondition 'valid_res' got status valid. +[eva] Done for function __builtin_usubll_overflow +[eva] tests/libc/more_gcc_builtins.c:40: assertion got status valid. +[eva] tests/libc/more_gcc_builtins.c:41: assertion got status valid. +[eva] computing for function __builtin_smulll_overflow <- main. + Called from tests/libc/more_gcc_builtins.c:42. +[eva] using specification for function __builtin_smulll_overflow +[eva] tests/libc/more_gcc_builtins.c:42: + function __builtin_smulll_overflow: precondition 'valid_res' got status valid. +[eva] Done for function __builtin_smulll_overflow +[eva] tests/libc/more_gcc_builtins.c:43: assertion got status valid. +[eva] tests/libc/more_gcc_builtins.c:44: assertion got status valid. +[eva] Recording results for main +[eva] done for function main +[eva] ====== VALUES COMPUTED ====== +[eva:final-states] Values at end of function main: + res ∈ {-2147483607} + r ∈ {1} + lres ∈ {2147483647} + llres ∈ {-9223372036854775808} + ures ∈ {8} + ulres ∈ {8} + ullres ∈ {18446744073709551612} + __retres ∈ {0} diff --git a/tests/libc/oracle/netdb_c.res.oracle b/tests/libc/oracle/netdb_c.res.oracle index bc856685ab9bc76bab759347fb8ab72855d45478..b8c3b75e0ae244c71120466dc56dd0e42bda4a7e 100644 --- a/tests/libc/oracle/netdb_c.res.oracle +++ b/tests/libc/oracle/netdb_c.res.oracle @@ -13,6 +13,7 @@ \return(realloc) == 0 (auto) \return(getenv) == 0 (auto) \return(bsearch) == 0 (auto) + \return(getcwd) == 0 (auto) \return(memchr) == 0 (auto) \return(memcpy) == 0 (auto) \return(memmove) == 0 (auto) diff --git a/tests/libc/oracle/pwd_h.res.oracle b/tests/libc/oracle/pwd_h.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..3eca6d0e89b983073071c40135ceee07c627421e --- /dev/null +++ b/tests/libc/oracle/pwd_h.res.oracle @@ -0,0 +1,27 @@ +[kernel] Parsing tests/libc/pwd_h.c (with preprocessing) +[eva] Analyzing a complete application starting at main +[eva] Computing initial state +[eva] Initial state computed +[eva:initial-state] Values of globals at initialization + uid ∈ [--..--] +[eva] computing for function getpwuid <- main. + Called from tests/libc/pwd_h.c:10. +[eva] using specification for function getpwuid +[eva] Done for function getpwuid +[eva:alarm] tests/libc/pwd_h.c:13: Warning: assertion got status unknown. +[eva:alarm] tests/libc/pwd_h.c:14: Warning: assertion got status unknown. +[eva:alarm] tests/libc/pwd_h.c:15: Warning: assertion got status unknown. +[eva:alarm] tests/libc/pwd_h.c:16: Warning: assertion got status unknown. +[eva] Recording results for main +[eva] done for function main +[eva] ====== VALUES COMPUTED ====== +[eva:final-states] Values at end of function main: + __fc_getpwuid.pw_name ∈ {{ NULL + [--..--] ; &__fc_getpwuid_pw_name[0] }} + .pw_passwd ∈ + {{ NULL + [--..--] ; &__fc_getpwuid_pw_passwd[0] }} + {.pw_uid; .pw_gid} ∈ [--..--] + .pw_dir ∈ {{ NULL + [--..--] ; &__fc_getpwuid_pw_dir[0] }} + .pw_shell ∈ + {{ NULL + [--..--] ; &__fc_getpwuid_pw_shell[0] }} + pw ∈ {{ NULL ; &__fc_getpwuid }} + __retres ∈ {0} diff --git a/tests/libc/oracle/strings_h.res.oracle b/tests/libc/oracle/strings_h.res.oracle index d675e204e1f114ab718cf914d67dda5be9c77ef5..5545c5be19e053286fcb4acc33a16cad2d023eef 100644 --- a/tests/libc/oracle/strings_h.res.oracle +++ b/tests/libc/oracle/strings_h.res.oracle @@ -55,6 +55,13 @@ [eva] tests/libc/strings_h.c:15: function strncasecmp: precondition 'valid_string_s2' got status valid. [eva] Done for function strncasecmp +[eva] computing for function bzero <- main. + Called from tests/libc/strings_h.c:18. +[eva] using specification for function bzero +[eva] tests/libc/strings_h.c:18: + function bzero: precondition 'valid_memory_area' got status valid. +[eva] Done for function bzero +[eva] tests/libc/strings_h.c:19: assertion got status valid. [eva] Recording results for main [eva] done for function main [eva] ====== VALUES COMPUTED ====== @@ -70,3 +77,4 @@ r3 ∈ [--..--] r4 ∈ [--..--] r5 ∈ [--..--] + s4[0..9] ∈ {0} diff --git a/tests/libc/oracle/time_c.res.oracle b/tests/libc/oracle/time_c.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..2b6021a7f03a5dd174de37138c6d674ede2e1b88 --- /dev/null +++ b/tests/libc/oracle/time_c.res.oracle @@ -0,0 +1,34 @@ +[kernel] Parsing tests/libc/time_c.c (with preprocessing) +[eva] Analyzing a complete application starting at main +[eva] Computing initial state +[eva] Initial state computed +[eva:initial-state] Values of globals at initialization + v ∈ [--..--] +[eva] computing for function ctime <- main. + Called from tests/libc/time_c.c:8. +[eva] share/libc/time.c:30: assertion got status valid. +[eva:alarm] share/libc/time.c:31: Warning: assertion got status unknown. +[eva] computing for function Frama_C_make_unknown <- ctime <- main. + Called from share/libc/time.c:32. +[eva] using specification for function Frama_C_make_unknown +[eva] share/libc/time.c:32: + function Frama_C_make_unknown: precondition 'valid_p' got status valid. +[eva] Done for function Frama_C_make_unknown +[eva] Recording results for ctime +[eva] Done for function ctime +[eva] tests/libc/time_c.c:9: assertion got status valid. +[eva] Recording results for main +[eva] done for function main +[eva] ====== VALUES COMPUTED ====== +[eva:final-states] Values at end of function ctime: + __fc_ctime[0..24] ∈ [--..--] + [25] ∈ {0} + Frama_C_entropy_source ∈ [--..--] + __retres ∈ {{ &__fc_ctime[0] }} +[eva:final-states] Values at end of function main: + __fc_ctime[0..24] ∈ [--..--] + [25] ∈ {0} + Frama_C_entropy_source ∈ [--..--] + t ∈ {42} + s ∈ {{ &__fc_ctime[0] }} + __retres ∈ {0} diff --git a/tests/libc/oracle/time_h.res.oracle b/tests/libc/oracle/time_h.res.oracle index dd05409c1abbb38d6e69d462c654f258af058285..5fcd6c6d027bc01e634adfc623934e6e724e7607 100644 --- a/tests/libc/oracle/time_h.res.oracle +++ b/tests/libc/oracle/time_h.res.oracle @@ -102,14 +102,29 @@ [eva] computing for function clock_nanosleep <- main. Called from tests/libc/time_h.c:36. [eva] Done for function clock_nanosleep +[eva] computing for function ctime <- main. + Called from tests/libc/time_h.c:43. +[eva] using specification for function ctime +[eva] tests/libc/time_h.c:43: + function ctime: precondition 'valid_timer' got status valid. +[eva] tests/libc/time_h.c:43: + function ctime: precondition 'initialization,init_timer' got status valid. +[eva] Done for function ctime +[eva] computing for function ctime <- main. + Called from tests/libc/time_h.c:43. +[eva] Done for function ctime +[eva:alarm] tests/libc/time_h.c:44: Warning: assertion got status unknown. [eva] Recording results for main [eva] done for function main [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function main: + __fc_ctime[0..25] ∈ [--..--] req.tv_sec ∈ [--..--] .tv_nsec ∈ [0..999999999] rem ∈ [--..--] or UNINITIALIZED r ∈ {-1; 0; 4; 22} creq.tv_sec ∈ [--..--] or UNINITIALIZED .tv_nsec ∈ [0..999999999] or UNINITIALIZED + tt ∈ {42} + time_str ∈ {{ &__fc_ctime[0] }} __retres ∈ {0; 1; 2} diff --git a/tests/libc/oracle/time.res.oracle b/tests/libc/oracle/time_misc.res.oracle similarity index 56% rename from tests/libc/oracle/time.res.oracle rename to tests/libc/oracle/time_misc.res.oracle index e757ceb27f8c16b44567a46c09f8552151df3066..11b3437a14bb4490511094ca437543e11a7ed99e 100644 --- a/tests/libc/oracle/time.res.oracle +++ b/tests/libc/oracle/time_misc.res.oracle @@ -1,44 +1,61 @@ -[kernel] Parsing tests/libc/time.c (with preprocessing) +[kernel] Parsing tests/libc/time_misc.c (with preprocessing) [eva] Analyzing a complete application starting at main [eva] Computing initial state [eva] Initial state computed [eva:initial-state] Values of globals at initialization - + v ∈ [--..--] [eva] computing for function test_gettimeofday <- main. - Called from tests/libc/time.c:27. + Called from tests/libc/time_misc.c:37. [eva] computing for function gettimeofday <- test_gettimeofday <- main. - Called from tests/libc/time.c:7. + Called from tests/libc/time_misc.c:7. [eva] using specification for function gettimeofday [eva] Done for function gettimeofday -[eva] tests/libc/time.c:8: assertion got status valid. -[eva] tests/libc/time.c:9: assertion got status valid. +[eva] tests/libc/time_misc.c:8: assertion got status valid. +[eva] tests/libc/time_misc.c:9: assertion got status valid. [eva] Recording results for test_gettimeofday [eva] Done for function test_gettimeofday [eva] computing for function test_strftime <- main. - Called from tests/libc/time.c:28. + Called from tests/libc/time_misc.c:38. [eva] computing for function time <- test_strftime <- main. - Called from tests/libc/time.c:18. + Called from tests/libc/time_misc.c:18. [eva] using specification for function time [eva] Done for function time [eva] computing for function localtime <- test_strftime <- main. - Called from tests/libc/time.c:19. + Called from tests/libc/time_misc.c:19. [eva] using specification for function localtime [eva] Done for function localtime [eva] computing for function strftime <- test_strftime <- main. - Called from tests/libc/time.c:21. + Called from tests/libc/time_misc.c:21. [eva] using specification for function strftime -[eva] tests/libc/time.c:21: +[eva] tests/libc/time_misc.c:21: function strftime: precondition 'dst_has_room' got status valid. -[eva] tests/libc/time.c:21: +[eva] tests/libc/time_misc.c:21: function strftime: precondition 'valid_format' got status valid. -[eva] tests/libc/time.c:21: +[eva] tests/libc/time_misc.c:21: function strftime: precondition 'valid_tm' got status valid. [eva] Done for function strftime [eva] Recording results for test_strftime [eva] Done for function test_strftime +[eva] computing for function test_ctime <- main. + Called from tests/libc/time_misc.c:39. +[eva] computing for function ctime <- test_ctime <- main. + Called from tests/libc/time_misc.c:31. +[eva] using specification for function ctime +[eva] tests/libc/time_misc.c:31: + function ctime: precondition 'valid_timer' got status valid. +[eva:alarm] tests/libc/time_misc.c:31: Warning: + function ctime: precondition 'initialization,init_timer' got status unknown. +[eva] Done for function ctime +[eva:alarm] tests/libc/time_misc.c:32: Warning: assertion got status unknown. +[eva] Recording results for test_ctime +[eva] Done for function test_ctime [eva] Recording results for main [eva] done for function main [eva] ====== VALUES COMPUTED ====== +[eva:final-states] Values at end of function test_ctime: + __fc_ctime[0..25] ∈ [--..--] + t ∈ {42} + s ∈ {{ &__fc_ctime[0] }} [eva:final-states] Values at end of function test_gettimeofday: tv.tv_sec ∈ [--..--] .tv_usec ∈ [0..999999] @@ -49,5 +66,6 @@ tmp ∈ {{ NULL ; &__fc_time_tm }} res ∈ [0..200] or UNINITIALIZED [eva:final-states] Values at end of function main: + __fc_ctime[0..25] ∈ [--..--] __fc_time_tm ∈ [--..--] __retres ∈ {0} diff --git a/tests/libc/oracle/unistd_h.0.res.oracle b/tests/libc/oracle/unistd_h.0.res.oracle index fb134e926aa45632cc77de6c0074df2e0115b2cf..b3c282aca8b923b282ddb7a0b4b20aef5ee7ef9f 100644 --- a/tests/libc/oracle/unistd_h.0.res.oracle +++ b/tests/libc/oracle/unistd_h.0.res.oracle @@ -1,6 +1,21 @@ [kernel] Parsing tests/libc/unistd_h.c (with preprocessing) -[kernel:typing:implicit-function-declaration] tests/libc/unistd_h.c:12: Warning: - Calling undeclared function usleep. Old style K&R code? +[eva] Splitting return states on: + \return(access) == 0 (auto) + \return(dup) == -1 (auto) + \return(getcwd) == 0 (auto) + \return(gethostname) == 0 (auto) + \return(setegid) == 0 (auto) + \return(seteuid) == 0 (auto) + \return(setgid) == 0 (auto) + \return(setregid) == 0 (auto) + \return(setreuid) == 0 (auto) + \return(setsid) == 0 (auto) + \return(setuid) == 0 (auto) + \return(usleep) == 0 (auto) + \return(getresuid) == 0 (auto) + \return(setresuid) == 0 (auto) + \return(getresgid) == 0 (auto) + \return(setresgid) == 0 (auto) [eva] Analyzing a complete application starting at main [eva] Computing initial state [eva] Initial state computed @@ -8,19 +23,23 @@ nondet ∈ [--..--] [eva] computing for function usleep <- main. Called from tests/libc/unistd_h.c:12. -[kernel:annot:missing-spec] tests/libc/unistd_h.c:12: Warning: - Neither code nor specification for function usleep, generating default assigns from the prototype [eva] using specification for function usleep [eva] Done for function usleep [eva] computing for function usleep <- main. Called from tests/libc/unistd_h.c:13. [eva] Done for function usleep +[eva] computing for function usleep <- main. + Called from tests/libc/unistd_h.c:13. +[eva] Done for function usleep [eva] computing for function gethostname <- main. Called from tests/libc/unistd_h.c:15. [eva] using specification for function gethostname [eva] tests/libc/unistd_h.c:15: function gethostname: precondition 'name_has_room' got status valid. [eva] Done for function gethostname +[eva] computing for function gethostname <- main. + Called from tests/libc/unistd_h.c:15. +[eva] Done for function gethostname [eva] computing for function execv <- main. Called from tests/libc/unistd_h.c:17. [eva] using specification for function execv @@ -29,6 +48,9 @@ [eva] tests/libc/unistd_h.c:17: function execv: precondition 'valid_string_argv0' got status valid. [eva] Done for function execv +[eva] computing for function execv <- main. + Called from tests/libc/unistd_h.c:17. +[eva] Done for function execv [eva] computing for function access <- main. Called from tests/libc/unistd_h.c:19. [eva] using specification for function access @@ -37,6 +59,9 @@ [eva] tests/libc/unistd_h.c:19: function access: precondition 'valid_amode' got status valid. [eva] Done for function access +[eva] computing for function access <- main. + Called from tests/libc/unistd_h.c:19. +[eva] Done for function access [eva] tests/libc/unistd_h.c:20: assertion got status valid. [eva] computing for function dup <- main. Called from tests/libc/unistd_h.c:22. @@ -44,6 +69,9 @@ [eva] tests/libc/unistd_h.c:22: function dup: precondition 'valid_fildes' got status valid. [eva] Done for function dup +[eva] computing for function dup <- main. + Called from tests/libc/unistd_h.c:22. +[eva] Done for function dup [eva] tests/libc/unistd_h.c:23: assertion got status valid. [eva] computing for function dup2 <- main. Called from tests/libc/unistd_h.c:26. @@ -53,6 +81,9 @@ [eva] tests/libc/unistd_h.c:26: function dup2: precondition 'valid_fildes2' got status valid. [eva] Done for function dup2 +[eva] computing for function dup2 <- main. + Called from tests/libc/unistd_h.c:26. +[eva] Done for function dup2 [eva] computing for function dup2 <- main. Called from tests/libc/unistd_h.c:28. [eva] tests/libc/unistd_h.c:28: @@ -60,15 +91,66 @@ [eva:alarm] tests/libc/unistd_h.c:28: Warning: function dup2: precondition 'valid_fildes2' got status invalid. [eva] Done for function dup2 +[eva] computing for function dup2 <- main. + Called from tests/libc/unistd_h.c:28. +[eva] Done for function dup2 +[eva] computing for function dup2 <- main. + Called from tests/libc/unistd_h.c:28. +[eva] Done for function dup2 +[eva] computing for function dup2 <- main. + Called from tests/libc/unistd_h.c:28. +[eva] Done for function dup2 [eva] computing for function fork <- main. Called from tests/libc/unistd_h.c:32. [eva] using specification for function fork [eva] Done for function fork +[eva] computing for function fork <- main. + Called from tests/libc/unistd_h.c:32. +[eva] Done for function fork +[eva] computing for function fork <- main. + Called from tests/libc/unistd_h.c:32. +[eva] Done for function fork +[eva] computing for function fork <- main. + Called from tests/libc/unistd_h.c:32. +[eva] Done for function fork [eva] tests/libc/unistd_h.c:33: assertion got status valid. [eva] computing for function setsid <- main. Called from tests/libc/unistd_h.c:35. [eva] using specification for function setsid [eva] Done for function setsid +[eva] computing for function setsid <- main. + Called from tests/libc/unistd_h.c:35. +[eva] Done for function setsid +[eva] computing for function setsid <- main. + Called from tests/libc/unistd_h.c:35. +[eva] Done for function setsid +[eva] computing for function setsid <- main. + Called from tests/libc/unistd_h.c:35. +[eva] Done for function setsid +[eva] computing for function setsid <- main. + Called from tests/libc/unistd_h.c:35. +[eva] Done for function setsid +[eva] computing for function setsid <- main. + Called from tests/libc/unistd_h.c:35. +[eva] Done for function setsid +[eva] computing for function setsid <- main. + Called from tests/libc/unistd_h.c:35. +[eva] Done for function setsid +[eva] computing for function setsid <- main. + Called from tests/libc/unistd_h.c:35. +[eva] Done for function setsid +[eva] computing for function setsid <- main. + Called from tests/libc/unistd_h.c:35. +[eva] Done for function setsid +[eva] computing for function setsid <- main. + Called from tests/libc/unistd_h.c:35. +[eva] Done for function setsid +[eva] computing for function setsid <- main. + Called from tests/libc/unistd_h.c:35. +[eva] Done for function setsid +[eva] computing for function setsid <- main. + Called from tests/libc/unistd_h.c:35. +[eva] Done for function setsid [eva] computing for function sync <- main. Called from tests/libc/unistd_h.c:37. [eva] using specification for function sync @@ -77,15 +159,336 @@ Called from tests/libc/unistd_h.c:39. [eva] using specification for function sysconf [eva] Done for function sysconf +[eva] computing for function getcwd <- main. + Called from tests/libc/unistd_h.c:42. +[eva] using specification for function getcwd +[eva] tests/libc/unistd_h.c:42: + function getcwd: precondition 'valid_buf' got status valid. +[eva] Done for function getcwd +[eva] tests/libc/unistd_h.c:44: assertion got status valid. +[eva:alarm] tests/libc/unistd_h.c:45: Warning: assertion got status unknown. +[eva] computing for function pathconf <- main. + Called from tests/libc/unistd_h.c:48. +[eva] using specification for function pathconf +[eva] tests/libc/unistd_h.c:48: + function pathconf: precondition 'valid_path' got status valid. +[eva] Done for function pathconf +[eva] computing for function pathconf <- main. + Called from tests/libc/unistd_h.c:48. +[eva] Done for function pathconf +[eva] computing for function getresuid <- main. + Called from tests/libc/unistd_h.c:51. +[eva] using specification for function getresuid +[eva] tests/libc/unistd_h.c:51: + function getresuid: precondition 'valid_ruid' got status valid. +[eva] tests/libc/unistd_h.c:51: + function getresuid: precondition 'valid_euid' got status valid. +[eva] tests/libc/unistd_h.c:51: + function getresuid: precondition 'valid_suid' got status valid. +[eva] Done for function getresuid +[eva] computing for function getresuid <- main. + Called from tests/libc/unistd_h.c:51. +[eva] Done for function getresuid +[eva] computing for function setresuid <- main. + Called from tests/libc/unistd_h.c:53. +[eva] using specification for function setresuid +[eva] Done for function setresuid +[eva] computing for function setresuid <- main. + Called from tests/libc/unistd_h.c:53. +[eva] Done for function setresuid +[eva] tests/libc/unistd_h.c:54: assertion got status valid. +[eva] computing for function getresgid <- main. + Called from tests/libc/unistd_h.c:57. +[eva] using specification for function getresgid +[eva] tests/libc/unistd_h.c:57: + function getresgid: precondition 'valid_rgid' got status valid. +[eva] tests/libc/unistd_h.c:57: + function getresgid: precondition 'valid_egid' got status valid. +[eva] tests/libc/unistd_h.c:57: + function getresgid: precondition 'valid_sgid' got status valid. +[eva] Done for function getresgid +[eva] computing for function getresgid <- main. + Called from tests/libc/unistd_h.c:57. +[eva] Done for function getresgid +[eva] computing for function getresgid <- main. + Called from tests/libc/unistd_h.c:57. +[eva] Done for function getresgid +[eva] computing for function getresgid <- main. + Called from tests/libc/unistd_h.c:57. +[eva] Done for function getresgid +[eva] computing for function getresgid <- main. + Called from tests/libc/unistd_h.c:57. +[eva] Done for function getresgid +[eva] computing for function getresgid <- main. + Called from tests/libc/unistd_h.c:57. +[eva] Done for function getresgid +[eva] computing for function setresgid <- main. + Called from tests/libc/unistd_h.c:59. +[eva] using specification for function setresgid +[eva] Done for function setresgid +[eva] computing for function setresgid <- main. + Called from tests/libc/unistd_h.c:59. +[eva] Done for function setresgid +[eva] computing for function setresgid <- main. + Called from tests/libc/unistd_h.c:59. +[eva] Done for function setresgid +[eva] computing for function setresgid <- main. + Called from tests/libc/unistd_h.c:59. +[eva] Done for function setresgid +[eva] tests/libc/unistd_h.c:60: assertion got status valid. +[eva] computing for function getpid <- main. + Called from tests/libc/unistd_h.c:62. +[eva] using specification for function getpid +[eva] Done for function getpid +[eva] computing for function getpid <- main. + Called from tests/libc/unistd_h.c:62. +[eva] Done for function getpid +[eva] computing for function getpid <- main. + Called from tests/libc/unistd_h.c:62. +[eva] Done for function getpid +[eva] computing for function getpid <- main. + Called from tests/libc/unistd_h.c:62. +[eva] Done for function getpid +[eva] computing for function getpid <- main. + Called from tests/libc/unistd_h.c:62. +[eva] Done for function getpid +[eva] computing for function getpid <- main. + Called from tests/libc/unistd_h.c:62. +[eva] Done for function getpid +[eva] computing for function getpid <- main. + Called from tests/libc/unistd_h.c:62. +[eva] Done for function getpid +[eva] computing for function getpid <- main. + Called from tests/libc/unistd_h.c:62. +[eva] Done for function getpid +[eva] computing for function getppid <- main. + Called from tests/libc/unistd_h.c:63. +[eva] using specification for function getppid +[eva] Done for function getppid +[eva] computing for function getppid <- main. + Called from tests/libc/unistd_h.c:63. +[eva] Done for function getppid +[eva] computing for function getppid <- main. + Called from tests/libc/unistd_h.c:63. +[eva] Done for function getppid +[eva] computing for function getppid <- main. + Called from tests/libc/unistd_h.c:63. +[eva] Done for function getppid +[eva] computing for function getppid <- main. + Called from tests/libc/unistd_h.c:63. +[eva] Done for function getppid +[eva] computing for function getppid <- main. + Called from tests/libc/unistd_h.c:63. +[eva] Done for function getppid +[eva] computing for function getppid <- main. + Called from tests/libc/unistd_h.c:63. +[eva] Done for function getppid +[eva] computing for function getppid <- main. + Called from tests/libc/unistd_h.c:63. +[eva] Done for function getppid +[eva] computing for function getsid <- main. + Called from tests/libc/unistd_h.c:64. +[eva] using specification for function getsid +[eva] Done for function getsid +[eva] computing for function getsid <- main. + Called from tests/libc/unistd_h.c:64. +[eva] Done for function getsid +[eva] computing for function getsid <- main. + Called from tests/libc/unistd_h.c:64. +[eva] Done for function getsid +[eva] computing for function getsid <- main. + Called from tests/libc/unistd_h.c:64. +[eva] Done for function getsid +[eva] computing for function getsid <- main. + Called from tests/libc/unistd_h.c:64. +[eva] Done for function getsid +[eva] computing for function getsid <- main. + Called from tests/libc/unistd_h.c:64. +[eva] Done for function getsid +[eva] computing for function getsid <- main. + Called from tests/libc/unistd_h.c:64. +[eva] Done for function getsid +[eva] computing for function getsid <- main. + Called from tests/libc/unistd_h.c:64. +[eva] Done for function getsid +[eva] computing for function getuid <- main. + Called from tests/libc/unistd_h.c:65. +[eva] using specification for function getuid +[eva] Done for function getuid +[eva] computing for function getuid <- main. + Called from tests/libc/unistd_h.c:65. +[eva] Done for function getuid +[eva] computing for function getuid <- main. + Called from tests/libc/unistd_h.c:65. +[eva] Done for function getuid +[eva] computing for function getuid <- main. + Called from tests/libc/unistd_h.c:65. +[eva] Done for function getuid +[eva] computing for function getuid <- main. + Called from tests/libc/unistd_h.c:65. +[eva] Done for function getuid +[eva] computing for function getuid <- main. + Called from tests/libc/unistd_h.c:65. +[eva] Done for function getuid +[eva] computing for function getuid <- main. + Called from tests/libc/unistd_h.c:65. +[eva] Done for function getuid +[eva] computing for function getuid <- main. + Called from tests/libc/unistd_h.c:65. +[eva] Done for function getuid +[eva] computing for function getgid <- main. + Called from tests/libc/unistd_h.c:66. +[eva] using specification for function getgid +[eva] Done for function getgid +[eva] computing for function getgid <- main. + Called from tests/libc/unistd_h.c:66. +[eva] Done for function getgid +[eva] computing for function getgid <- main. + Called from tests/libc/unistd_h.c:66. +[eva] Done for function getgid +[eva] computing for function getgid <- main. + Called from tests/libc/unistd_h.c:66. +[eva] Done for function getgid +[eva] computing for function getgid <- main. + Called from tests/libc/unistd_h.c:66. +[eva] Done for function getgid +[eva] computing for function getgid <- main. + Called from tests/libc/unistd_h.c:66. +[eva] Done for function getgid +[eva] computing for function getgid <- main. + Called from tests/libc/unistd_h.c:66. +[eva] Done for function getgid +[eva] computing for function getgid <- main. + Called from tests/libc/unistd_h.c:66. +[eva] Done for function getgid +[eva] computing for function geteuid <- main. + Called from tests/libc/unistd_h.c:67. +[eva] using specification for function geteuid +[eva] Done for function geteuid +[eva] computing for function geteuid <- main. + Called from tests/libc/unistd_h.c:67. +[eva] Done for function geteuid +[eva] computing for function geteuid <- main. + Called from tests/libc/unistd_h.c:67. +[eva] Done for function geteuid +[eva] computing for function geteuid <- main. + Called from tests/libc/unistd_h.c:67. +[eva] Done for function geteuid +[eva] computing for function geteuid <- main. + Called from tests/libc/unistd_h.c:67. +[eva] Done for function geteuid +[eva] computing for function geteuid <- main. + Called from tests/libc/unistd_h.c:67. +[eva] Done for function geteuid +[eva] computing for function geteuid <- main. + Called from tests/libc/unistd_h.c:67. +[eva] Done for function geteuid +[eva] computing for function geteuid <- main. + Called from tests/libc/unistd_h.c:67. +[eva] Done for function geteuid +[eva] computing for function getegid <- main. + Called from tests/libc/unistd_h.c:68. +[eva] using specification for function getegid +[eva] Done for function getegid +[eva] computing for function getegid <- main. + Called from tests/libc/unistd_h.c:68. +[eva] Done for function getegid +[eva] computing for function getegid <- main. + Called from tests/libc/unistd_h.c:68. +[eva] Done for function getegid +[eva] computing for function getegid <- main. + Called from tests/libc/unistd_h.c:68. +[eva] Done for function getegid +[eva] computing for function getegid <- main. + Called from tests/libc/unistd_h.c:68. +[eva] Done for function getegid +[eva] computing for function getegid <- main. + Called from tests/libc/unistd_h.c:68. +[eva] Done for function getegid +[eva] computing for function getegid <- main. + Called from tests/libc/unistd_h.c:68. +[eva] Done for function getegid +[eva] computing for function getegid <- main. + Called from tests/libc/unistd_h.c:68. +[eva] Done for function getegid +[eva] computing for function setegid <- main. + Called from tests/libc/unistd_h.c:69. +[eva] using specification for function setegid +[eva] Done for function setegid +[eva] computing for function setegid <- main. + Called from tests/libc/unistd_h.c:69. +[eva] Done for function setegid +[eva] computing for function setegid <- main. + Called from tests/libc/unistd_h.c:69. +[eva] Done for function setegid +[eva] computing for function setegid <- main. + Called from tests/libc/unistd_h.c:69. +[eva] Done for function setegid +[eva] computing for function setegid <- main. + Called from tests/libc/unistd_h.c:69. +[eva] Done for function setegid +[eva] computing for function setegid <- main. + Called from tests/libc/unistd_h.c:69. +[eva] Done for function setegid +[eva] computing for function setegid <- main. + Called from tests/libc/unistd_h.c:69. +[eva] Done for function setegid +[eva] computing for function setegid <- main. + Called from tests/libc/unistd_h.c:69. +[eva] Done for function setegid +[eva] computing for function seteuid <- main. + Called from tests/libc/unistd_h.c:70. +[eva] using specification for function seteuid +[eva] Done for function seteuid +[eva] computing for function setgid <- main. + Called from tests/libc/unistd_h.c:71. +[eva] using specification for function setgid +[eva] Done for function setgid +[eva] computing for function setgid <- main. + Called from tests/libc/unistd_h.c:71. +[eva] Done for function setgid +[eva] computing for function setuid <- main. + Called from tests/libc/unistd_h.c:72. +[eva] using specification for function setuid +[eva] Done for function setuid +[eva] computing for function setuid <- main. + Called from tests/libc/unistd_h.c:72. +[eva] Done for function setuid +[eva] computing for function setregid <- main. + Called from tests/libc/unistd_h.c:73. +[eva] using specification for function setregid +[eva] Done for function setregid +[eva] computing for function setregid <- main. + Called from tests/libc/unistd_h.c:73. +[eva] Done for function setregid +[eva] computing for function setreuid <- main. + Called from tests/libc/unistd_h.c:74. +[eva] using specification for function setreuid +[eva] Done for function setreuid +[eva] computing for function setreuid <- main. + Called from tests/libc/unistd_h.c:74. +[eva] Done for function setreuid [eva] Recording results for main [eva] done for function main [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function main: - __fc_fds[0..1023] ∈ [--..--] - r ∈ [-1..2147483647] + Frama_C_entropy_source ∈ [--..--] + __fc_fds[0] ∈ {0} + [1..1023] ∈ [--..--] + r ∈ {-1; 0} hostname[0..255] ∈ [--..--] or UNINITIALIZED fd ∈ [-1..1023] fd2 ∈ [-1..1023] pid ∈ [-1..2147483647] l ∈ [--..--] + cwd[0..63] ∈ [--..--] or UNINITIALIZED + res_getcwd ∈ {{ NULL ; &cwd[0] }} + pconf ∈ [--..--] + ruid ∈ [--..--] or UNINITIALIZED + euid ∈ [--..--] or UNINITIALIZED + suid ∈ [--..--] or UNINITIALIZED + rgid ∈ [--..--] or UNINITIALIZED + egid ∈ [--..--] or UNINITIALIZED + sgid ∈ [--..--] or UNINITIALIZED + p ∈ [--..--] __retres ∈ {0; 1} diff --git a/tests/libc/oracle/unistd_h.1.res.oracle b/tests/libc/oracle/unistd_h.1.res.oracle index 6998a827de8f42d0b699f80c8941c9dc83a4f964..2b8e38fde21be6b2a210316f37aea41ee8d236a8 100644 --- a/tests/libc/oracle/unistd_h.1.res.oracle +++ b/tests/libc/oracle/unistd_h.1.res.oracle @@ -1,6 +1,21 @@ [kernel] Parsing tests/libc/unistd_h.c (with preprocessing) -[kernel:typing:implicit-function-declaration] tests/libc/unistd_h.c:12: Warning: - Calling undeclared function usleep. Old style K&R code? +[eva] Splitting return states on: + \return(access) == 0 (auto) + \return(dup) == -1 (auto) + \return(getcwd) == 0 (auto) + \return(gethostname) == 0 (auto) + \return(setegid) == 0 (auto) + \return(seteuid) == 0 (auto) + \return(setgid) == 0 (auto) + \return(setregid) == 0 (auto) + \return(setreuid) == 0 (auto) + \return(setsid) == 0 (auto) + \return(setuid) == 0 (auto) + \return(usleep) == 0 (auto) + \return(getresuid) == 0 (auto) + \return(setresuid) == 0 (auto) + \return(getresgid) == 0 (auto) + \return(setresgid) == 0 (auto) [eva] Analyzing a complete application starting at main [eva] Computing initial state [eva] Initial state computed @@ -8,19 +23,23 @@ nondet ∈ [--..--] [eva] computing for function usleep <- main. Called from tests/libc/unistd_h.c:12. -[kernel:annot:missing-spec] tests/libc/unistd_h.c:12: Warning: - Neither code nor specification for function usleep, generating default assigns from the prototype [eva] using specification for function usleep [eva] Done for function usleep [eva] computing for function usleep <- main. Called from tests/libc/unistd_h.c:13. [eva] Done for function usleep +[eva] computing for function usleep <- main. + Called from tests/libc/unistd_h.c:13. +[eva] Done for function usleep [eva] computing for function gethostname <- main. Called from tests/libc/unistd_h.c:15. [eva] using specification for function gethostname [eva] tests/libc/unistd_h.c:15: function gethostname: precondition 'name_has_room' got status valid. [eva] Done for function gethostname +[eva] computing for function gethostname <- main. + Called from tests/libc/unistd_h.c:15. +[eva] Done for function gethostname [eva] computing for function execl <- main. Called from tests/libc/unistd_h.c:17. [eva] using specification for function execl @@ -29,6 +48,9 @@ [eva] tests/libc/unistd_h.c:17: function execl: precondition 'valid_string_arg' got status valid. [eva] Done for function execl +[eva] computing for function execl <- main. + Called from tests/libc/unistd_h.c:17. +[eva] Done for function execl [eva] computing for function access <- main. Called from tests/libc/unistd_h.c:19. [eva] using specification for function access @@ -37,6 +59,9 @@ [eva] tests/libc/unistd_h.c:19: function access: precondition 'valid_amode' got status valid. [eva] Done for function access +[eva] computing for function access <- main. + Called from tests/libc/unistd_h.c:19. +[eva] Done for function access [eva] tests/libc/unistd_h.c:20: assertion got status valid. [eva] computing for function dup <- main. Called from tests/libc/unistd_h.c:22. @@ -44,6 +69,9 @@ [eva] tests/libc/unistd_h.c:22: function dup: precondition 'valid_fildes' got status valid. [eva] Done for function dup +[eva] computing for function dup <- main. + Called from tests/libc/unistd_h.c:22. +[eva] Done for function dup [eva] tests/libc/unistd_h.c:23: assertion got status valid. [eva] computing for function dup2 <- main. Called from tests/libc/unistd_h.c:26. @@ -53,6 +81,9 @@ [eva] tests/libc/unistd_h.c:26: function dup2: precondition 'valid_fildes2' got status valid. [eva] Done for function dup2 +[eva] computing for function dup2 <- main. + Called from tests/libc/unistd_h.c:26. +[eva] Done for function dup2 [eva] computing for function dup2 <- main. Called from tests/libc/unistd_h.c:28. [eva] tests/libc/unistd_h.c:28: @@ -60,15 +91,66 @@ [eva:alarm] tests/libc/unistd_h.c:28: Warning: function dup2: precondition 'valid_fildes2' got status invalid. [eva] Done for function dup2 +[eva] computing for function dup2 <- main. + Called from tests/libc/unistd_h.c:28. +[eva] Done for function dup2 +[eva] computing for function dup2 <- main. + Called from tests/libc/unistd_h.c:28. +[eva] Done for function dup2 +[eva] computing for function dup2 <- main. + Called from tests/libc/unistd_h.c:28. +[eva] Done for function dup2 [eva] computing for function fork <- main. Called from tests/libc/unistd_h.c:32. [eva] using specification for function fork [eva] Done for function fork +[eva] computing for function fork <- main. + Called from tests/libc/unistd_h.c:32. +[eva] Done for function fork +[eva] computing for function fork <- main. + Called from tests/libc/unistd_h.c:32. +[eva] Done for function fork +[eva] computing for function fork <- main. + Called from tests/libc/unistd_h.c:32. +[eva] Done for function fork [eva] tests/libc/unistd_h.c:33: assertion got status valid. [eva] computing for function setsid <- main. Called from tests/libc/unistd_h.c:35. [eva] using specification for function setsid [eva] Done for function setsid +[eva] computing for function setsid <- main. + Called from tests/libc/unistd_h.c:35. +[eva] Done for function setsid +[eva] computing for function setsid <- main. + Called from tests/libc/unistd_h.c:35. +[eva] Done for function setsid +[eva] computing for function setsid <- main. + Called from tests/libc/unistd_h.c:35. +[eva] Done for function setsid +[eva] computing for function setsid <- main. + Called from tests/libc/unistd_h.c:35. +[eva] Done for function setsid +[eva] computing for function setsid <- main. + Called from tests/libc/unistd_h.c:35. +[eva] Done for function setsid +[eva] computing for function setsid <- main. + Called from tests/libc/unistd_h.c:35. +[eva] Done for function setsid +[eva] computing for function setsid <- main. + Called from tests/libc/unistd_h.c:35. +[eva] Done for function setsid +[eva] computing for function setsid <- main. + Called from tests/libc/unistd_h.c:35. +[eva] Done for function setsid +[eva] computing for function setsid <- main. + Called from tests/libc/unistd_h.c:35. +[eva] Done for function setsid +[eva] computing for function setsid <- main. + Called from tests/libc/unistd_h.c:35. +[eva] Done for function setsid +[eva] computing for function setsid <- main. + Called from tests/libc/unistd_h.c:35. +[eva] Done for function setsid [eva] computing for function sync <- main. Called from tests/libc/unistd_h.c:37. [eva] using specification for function sync @@ -77,15 +159,336 @@ Called from tests/libc/unistd_h.c:39. [eva] using specification for function sysconf [eva] Done for function sysconf +[eva] computing for function getcwd <- main. + Called from tests/libc/unistd_h.c:42. +[eva] using specification for function getcwd +[eva] tests/libc/unistd_h.c:42: + function getcwd: precondition 'valid_buf' got status valid. +[eva] Done for function getcwd +[eva] tests/libc/unistd_h.c:44: assertion got status valid. +[eva:alarm] tests/libc/unistd_h.c:45: Warning: assertion got status unknown. +[eva] computing for function pathconf <- main. + Called from tests/libc/unistd_h.c:48. +[eva] using specification for function pathconf +[eva] tests/libc/unistd_h.c:48: + function pathconf: precondition 'valid_path' got status valid. +[eva] Done for function pathconf +[eva] computing for function pathconf <- main. + Called from tests/libc/unistd_h.c:48. +[eva] Done for function pathconf +[eva] computing for function getresuid <- main. + Called from tests/libc/unistd_h.c:51. +[eva] using specification for function getresuid +[eva] tests/libc/unistd_h.c:51: + function getresuid: precondition 'valid_ruid' got status valid. +[eva] tests/libc/unistd_h.c:51: + function getresuid: precondition 'valid_euid' got status valid. +[eva] tests/libc/unistd_h.c:51: + function getresuid: precondition 'valid_suid' got status valid. +[eva] Done for function getresuid +[eva] computing for function getresuid <- main. + Called from tests/libc/unistd_h.c:51. +[eva] Done for function getresuid +[eva] computing for function setresuid <- main. + Called from tests/libc/unistd_h.c:53. +[eva] using specification for function setresuid +[eva] Done for function setresuid +[eva] computing for function setresuid <- main. + Called from tests/libc/unistd_h.c:53. +[eva] Done for function setresuid +[eva] tests/libc/unistd_h.c:54: assertion got status valid. +[eva] computing for function getresgid <- main. + Called from tests/libc/unistd_h.c:57. +[eva] using specification for function getresgid +[eva] tests/libc/unistd_h.c:57: + function getresgid: precondition 'valid_rgid' got status valid. +[eva] tests/libc/unistd_h.c:57: + function getresgid: precondition 'valid_egid' got status valid. +[eva] tests/libc/unistd_h.c:57: + function getresgid: precondition 'valid_sgid' got status valid. +[eva] Done for function getresgid +[eva] computing for function getresgid <- main. + Called from tests/libc/unistd_h.c:57. +[eva] Done for function getresgid +[eva] computing for function getresgid <- main. + Called from tests/libc/unistd_h.c:57. +[eva] Done for function getresgid +[eva] computing for function getresgid <- main. + Called from tests/libc/unistd_h.c:57. +[eva] Done for function getresgid +[eva] computing for function getresgid <- main. + Called from tests/libc/unistd_h.c:57. +[eva] Done for function getresgid +[eva] computing for function getresgid <- main. + Called from tests/libc/unistd_h.c:57. +[eva] Done for function getresgid +[eva] computing for function setresgid <- main. + Called from tests/libc/unistd_h.c:59. +[eva] using specification for function setresgid +[eva] Done for function setresgid +[eva] computing for function setresgid <- main. + Called from tests/libc/unistd_h.c:59. +[eva] Done for function setresgid +[eva] computing for function setresgid <- main. + Called from tests/libc/unistd_h.c:59. +[eva] Done for function setresgid +[eva] computing for function setresgid <- main. + Called from tests/libc/unistd_h.c:59. +[eva] Done for function setresgid +[eva] tests/libc/unistd_h.c:60: assertion got status valid. +[eva] computing for function getpid <- main. + Called from tests/libc/unistd_h.c:62. +[eva] using specification for function getpid +[eva] Done for function getpid +[eva] computing for function getpid <- main. + Called from tests/libc/unistd_h.c:62. +[eva] Done for function getpid +[eva] computing for function getpid <- main. + Called from tests/libc/unistd_h.c:62. +[eva] Done for function getpid +[eva] computing for function getpid <- main. + Called from tests/libc/unistd_h.c:62. +[eva] Done for function getpid +[eva] computing for function getpid <- main. + Called from tests/libc/unistd_h.c:62. +[eva] Done for function getpid +[eva] computing for function getpid <- main. + Called from tests/libc/unistd_h.c:62. +[eva] Done for function getpid +[eva] computing for function getpid <- main. + Called from tests/libc/unistd_h.c:62. +[eva] Done for function getpid +[eva] computing for function getpid <- main. + Called from tests/libc/unistd_h.c:62. +[eva] Done for function getpid +[eva] computing for function getppid <- main. + Called from tests/libc/unistd_h.c:63. +[eva] using specification for function getppid +[eva] Done for function getppid +[eva] computing for function getppid <- main. + Called from tests/libc/unistd_h.c:63. +[eva] Done for function getppid +[eva] computing for function getppid <- main. + Called from tests/libc/unistd_h.c:63. +[eva] Done for function getppid +[eva] computing for function getppid <- main. + Called from tests/libc/unistd_h.c:63. +[eva] Done for function getppid +[eva] computing for function getppid <- main. + Called from tests/libc/unistd_h.c:63. +[eva] Done for function getppid +[eva] computing for function getppid <- main. + Called from tests/libc/unistd_h.c:63. +[eva] Done for function getppid +[eva] computing for function getppid <- main. + Called from tests/libc/unistd_h.c:63. +[eva] Done for function getppid +[eva] computing for function getppid <- main. + Called from tests/libc/unistd_h.c:63. +[eva] Done for function getppid +[eva] computing for function getsid <- main. + Called from tests/libc/unistd_h.c:64. +[eva] using specification for function getsid +[eva] Done for function getsid +[eva] computing for function getsid <- main. + Called from tests/libc/unistd_h.c:64. +[eva] Done for function getsid +[eva] computing for function getsid <- main. + Called from tests/libc/unistd_h.c:64. +[eva] Done for function getsid +[eva] computing for function getsid <- main. + Called from tests/libc/unistd_h.c:64. +[eva] Done for function getsid +[eva] computing for function getsid <- main. + Called from tests/libc/unistd_h.c:64. +[eva] Done for function getsid +[eva] computing for function getsid <- main. + Called from tests/libc/unistd_h.c:64. +[eva] Done for function getsid +[eva] computing for function getsid <- main. + Called from tests/libc/unistd_h.c:64. +[eva] Done for function getsid +[eva] computing for function getsid <- main. + Called from tests/libc/unistd_h.c:64. +[eva] Done for function getsid +[eva] computing for function getuid <- main. + Called from tests/libc/unistd_h.c:65. +[eva] using specification for function getuid +[eva] Done for function getuid +[eva] computing for function getuid <- main. + Called from tests/libc/unistd_h.c:65. +[eva] Done for function getuid +[eva] computing for function getuid <- main. + Called from tests/libc/unistd_h.c:65. +[eva] Done for function getuid +[eva] computing for function getuid <- main. + Called from tests/libc/unistd_h.c:65. +[eva] Done for function getuid +[eva] computing for function getuid <- main. + Called from tests/libc/unistd_h.c:65. +[eva] Done for function getuid +[eva] computing for function getuid <- main. + Called from tests/libc/unistd_h.c:65. +[eva] Done for function getuid +[eva] computing for function getuid <- main. + Called from tests/libc/unistd_h.c:65. +[eva] Done for function getuid +[eva] computing for function getuid <- main. + Called from tests/libc/unistd_h.c:65. +[eva] Done for function getuid +[eva] computing for function getgid <- main. + Called from tests/libc/unistd_h.c:66. +[eva] using specification for function getgid +[eva] Done for function getgid +[eva] computing for function getgid <- main. + Called from tests/libc/unistd_h.c:66. +[eva] Done for function getgid +[eva] computing for function getgid <- main. + Called from tests/libc/unistd_h.c:66. +[eva] Done for function getgid +[eva] computing for function getgid <- main. + Called from tests/libc/unistd_h.c:66. +[eva] Done for function getgid +[eva] computing for function getgid <- main. + Called from tests/libc/unistd_h.c:66. +[eva] Done for function getgid +[eva] computing for function getgid <- main. + Called from tests/libc/unistd_h.c:66. +[eva] Done for function getgid +[eva] computing for function getgid <- main. + Called from tests/libc/unistd_h.c:66. +[eva] Done for function getgid +[eva] computing for function getgid <- main. + Called from tests/libc/unistd_h.c:66. +[eva] Done for function getgid +[eva] computing for function geteuid <- main. + Called from tests/libc/unistd_h.c:67. +[eva] using specification for function geteuid +[eva] Done for function geteuid +[eva] computing for function geteuid <- main. + Called from tests/libc/unistd_h.c:67. +[eva] Done for function geteuid +[eva] computing for function geteuid <- main. + Called from tests/libc/unistd_h.c:67. +[eva] Done for function geteuid +[eva] computing for function geteuid <- main. + Called from tests/libc/unistd_h.c:67. +[eva] Done for function geteuid +[eva] computing for function geteuid <- main. + Called from tests/libc/unistd_h.c:67. +[eva] Done for function geteuid +[eva] computing for function geteuid <- main. + Called from tests/libc/unistd_h.c:67. +[eva] Done for function geteuid +[eva] computing for function geteuid <- main. + Called from tests/libc/unistd_h.c:67. +[eva] Done for function geteuid +[eva] computing for function geteuid <- main. + Called from tests/libc/unistd_h.c:67. +[eva] Done for function geteuid +[eva] computing for function getegid <- main. + Called from tests/libc/unistd_h.c:68. +[eva] using specification for function getegid +[eva] Done for function getegid +[eva] computing for function getegid <- main. + Called from tests/libc/unistd_h.c:68. +[eva] Done for function getegid +[eva] computing for function getegid <- main. + Called from tests/libc/unistd_h.c:68. +[eva] Done for function getegid +[eva] computing for function getegid <- main. + Called from tests/libc/unistd_h.c:68. +[eva] Done for function getegid +[eva] computing for function getegid <- main. + Called from tests/libc/unistd_h.c:68. +[eva] Done for function getegid +[eva] computing for function getegid <- main. + Called from tests/libc/unistd_h.c:68. +[eva] Done for function getegid +[eva] computing for function getegid <- main. + Called from tests/libc/unistd_h.c:68. +[eva] Done for function getegid +[eva] computing for function getegid <- main. + Called from tests/libc/unistd_h.c:68. +[eva] Done for function getegid +[eva] computing for function setegid <- main. + Called from tests/libc/unistd_h.c:69. +[eva] using specification for function setegid +[eva] Done for function setegid +[eva] computing for function setegid <- main. + Called from tests/libc/unistd_h.c:69. +[eva] Done for function setegid +[eva] computing for function setegid <- main. + Called from tests/libc/unistd_h.c:69. +[eva] Done for function setegid +[eva] computing for function setegid <- main. + Called from tests/libc/unistd_h.c:69. +[eva] Done for function setegid +[eva] computing for function setegid <- main. + Called from tests/libc/unistd_h.c:69. +[eva] Done for function setegid +[eva] computing for function setegid <- main. + Called from tests/libc/unistd_h.c:69. +[eva] Done for function setegid +[eva] computing for function setegid <- main. + Called from tests/libc/unistd_h.c:69. +[eva] Done for function setegid +[eva] computing for function setegid <- main. + Called from tests/libc/unistd_h.c:69. +[eva] Done for function setegid +[eva] computing for function seteuid <- main. + Called from tests/libc/unistd_h.c:70. +[eva] using specification for function seteuid +[eva] Done for function seteuid +[eva] computing for function setgid <- main. + Called from tests/libc/unistd_h.c:71. +[eva] using specification for function setgid +[eva] Done for function setgid +[eva] computing for function setgid <- main. + Called from tests/libc/unistd_h.c:71. +[eva] Done for function setgid +[eva] computing for function setuid <- main. + Called from tests/libc/unistd_h.c:72. +[eva] using specification for function setuid +[eva] Done for function setuid +[eva] computing for function setuid <- main. + Called from tests/libc/unistd_h.c:72. +[eva] Done for function setuid +[eva] computing for function setregid <- main. + Called from tests/libc/unistd_h.c:73. +[eva] using specification for function setregid +[eva] Done for function setregid +[eva] computing for function setregid <- main. + Called from tests/libc/unistd_h.c:73. +[eva] Done for function setregid +[eva] computing for function setreuid <- main. + Called from tests/libc/unistd_h.c:74. +[eva] using specification for function setreuid +[eva] Done for function setreuid +[eva] computing for function setreuid <- main. + Called from tests/libc/unistd_h.c:74. +[eva] Done for function setreuid [eva] Recording results for main [eva] done for function main [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function main: - __fc_fds[0..1023] ∈ [--..--] - r ∈ [-1..2147483647] + Frama_C_entropy_source ∈ [--..--] + __fc_fds[0] ∈ {0} + [1..1023] ∈ [--..--] + r ∈ {-1; 0} hostname[0..255] ∈ [--..--] or UNINITIALIZED fd ∈ [-1..1023] fd2 ∈ [-1..1023] pid ∈ [-1..2147483647] l ∈ [--..--] + cwd[0..63] ∈ [--..--] or UNINITIALIZED + res_getcwd ∈ {{ NULL ; &cwd[0] }} + pconf ∈ [--..--] + ruid ∈ [--..--] or UNINITIALIZED + euid ∈ [--..--] or UNINITIALIZED + suid ∈ [--..--] or UNINITIALIZED + rgid ∈ [--..--] or UNINITIALIZED + egid ∈ [--..--] or UNINITIALIZED + sgid ∈ [--..--] or UNINITIALIZED + p ∈ [--..--] __retres ∈ {0; 1} diff --git a/tests/libc/pwd_h.c b/tests/libc/pwd_h.c new file mode 100644 index 0000000000000000000000000000000000000000..78abed115d3dfb2967fac487d9e6b7ce46e7c1a4 --- /dev/null +++ b/tests/libc/pwd_h.c @@ -0,0 +1,18 @@ +/*run.config + STDOPT: +*/ +#include <pwd.h> +#include "__fc_string_axiomatic.h" + +extern uid_t uid; + +int main() { + struct passwd *pw = getpwuid(uid); + if (pw) { + //Note: the assertions below are currently imprecise + //@ assert valid_read_string(pw->pw_name); + //@ assert valid_read_string(pw->pw_passwd); + //@ assert valid_read_string(pw->pw_dir); + //@ assert valid_read_string(pw->pw_shell); + } +} diff --git a/tests/libc/socket.c b/tests/libc/socket.c index fb66a52f3a8f437b0156fac3dc40ddaa5de0960b..80d886bc510fa9e3016d04d938d08ff4e6ea1a50 100644 --- a/tests/libc/socket.c +++ b/tests/libc/socket.c @@ -1,6 +1,6 @@ /* run.config - STDOPT: +"-value-verbose 2 -no-val-builtins-auto" - STDOPT: +"-value-verbose 2 -machdep x86_64 -no-val-builtins-auto" + STDOPT: +"-eva-verbose 2 -eva-no-builtins-auto" + STDOPT: +"-eva-verbose 2 -machdep x86_64 -eva-no-builtins-auto" */ #include <sys/types.h> #include <sys/socket.h> diff --git a/tests/libc/stdlib_c.c b/tests/libc/stdlib_c.c index ef875e82f922d12cc2ff6a0e198adb289d07d072..3bb9f5f8b671b06e7652ac3745dc3dea1ccf0cfa 100644 --- a/tests/libc/stdlib_c.c +++ b/tests/libc/stdlib_c.c @@ -1,7 +1,7 @@ /* run.config - STDOPT: #"-no-val-builtins-auto -slevel 10 -val-builtin calloc:Frama_C_calloc_by_stack -value-msg-key malloc" - STDOPT: #"-no-val-builtins-auto -slevel 10 -val-builtin calloc:Frama_C_calloc_by_stack -no-val-alloc-returns-null -value-msg-key malloc" - STDOPT: #"-no-val-builtins-auto" + STDOPT: #"-eva-no-builtins-auto -slevel 10 -eva-builtin calloc:Frama_C_calloc_by_stack -eva-msg-key malloc" + STDOPT: #"-eva-no-builtins-auto -slevel 10 -eva-builtin calloc:Frama_C_calloc_by_stack -eva-no-alloc-returns-null -eva-msg-key malloc" + STDOPT: #"-eva-no-builtins-auto" */ // slevel is used to unroll loops #define malloc(n) Frama_C_malloc_by_stack(n) @@ -10,7 +10,7 @@ #include <stdint.h> int main() { - // always succeeds if -no-val-alloc-returns-null, otherwise may succeed + // always succeeds if -eva-no-alloc-returns-null, otherwise may succeed int *p = calloc(1, sizeof(int)); if (p) { //@ assert \valid(p); diff --git a/tests/libc/string_c.c b/tests/libc/string_c.c index 56c39cd1203ee851e4231b604c8bc6aa37d66328..05e5dc7c140cd844555e21f6bfb9dbbdd56a3635 100644 --- a/tests/libc/string_c.c +++ b/tests/libc/string_c.c @@ -1,5 +1,5 @@ /* run.config - STDOPT: #"-no-val-builtins-auto -slevel 1000 -no-val-skip-stdlib-specs" + STDOPT: #"-eva-no-builtins-auto -slevel 1000 -eva-no-skip-stdlib-specs" */ // slevel is used to unroll loops #include "string.c" diff --git a/tests/libc/string_c_generic.c b/tests/libc/string_c_generic.c index 5bffd6a4b6d78edb2ea6167b001fb539e9c3cf58..9168f43d7369f9d476d037a417f24a713326f6c4 100644 --- a/tests/libc/string_c_generic.c +++ b/tests/libc/string_c_generic.c @@ -1,5 +1,5 @@ /* run.config - STDOPT: #"-no-val-builtins-auto -cpp-extra-args=-includeshare/libc/string.c -slevel-function strcpy:20,strncpy:5,strcmp:6,strchr:20,strrchr:20,strncat:4,memset:32,strlen:20,memcmp:8 -no-val-skip-stdlib-specs" + STDOPT: #"-eva-no-builtins-auto -cpp-extra-args=-includeshare/libc/string.c -slevel-function strcpy:20,strncpy:5,strcmp:6,strchr:20,strrchr:20,strncat:4,memset:32,strlen:20,memcmp:8 -eva-no-skip-stdlib-specs" */ /* This file has been adapted from libc-test, which is licensed under the following standard MIT license: diff --git a/tests/libc/string_c_strchr.c b/tests/libc/string_c_strchr.c index 7bee1f0adc39dd4c77be2ff45939580818261367..54ed8fab06ee3065c2a13d88a927732181b67b38 100644 --- a/tests/libc/string_c_strchr.c +++ b/tests/libc/string_c_strchr.c @@ -1,5 +1,5 @@ /* run.config - STDOPT: #"-cpp-extra-args=-includeshare/libc/string.c -slevel-function strchr:256,main:256 -val-slevel-merge-after-loop main -no-val-builtins-auto -no-val-skip-stdlib-specs" + STDOPT: #"-cpp-extra-args=-includeshare/libc/string.c -slevel-function strchr:256,main:256 -eva-slevel-merge-after-loop main -eva-no-builtins-auto -eva-no-skip-stdlib-specs" */ /* This file has been adapted from libc-test, which is licensed under the following standard MIT license: diff --git a/tests/libc/string_c_strstr.c b/tests/libc/string_c_strstr.c index d6dbc06239bc9bbd36d1d94eb3674989b07e4682..9f0613b351594afcadd9c41bc092315d666f320e 100644 --- a/tests/libc/string_c_strstr.c +++ b/tests/libc/string_c_strstr.c @@ -1,5 +1,5 @@ /* run.config - STDOPT: #"-cpp-extra-args=-includeshare/libc/string.c -slevel-function strstr:30 -no-val-skip-stdlib-specs" + STDOPT: #"-cpp-extra-args=-includeshare/libc/string.c -slevel-function strstr:30 -eva-no-skip-stdlib-specs" */ /* This file has been adapted from libc-test, which is licensed under the following standard MIT license: diff --git a/tests/libc/strings_h.c b/tests/libc/strings_h.c index a1af1541ec7eae739b614e1f8cb309af73632c7b..587b961e6ef5517cf3ec3b2fd254d10c6e9dd243 100644 --- a/tests/libc/strings_h.c +++ b/tests/libc/strings_h.c @@ -13,4 +13,8 @@ void main() { int r4 = strncasecmp(s1, s, 3); if (nondet) strncasecmp(s1, s, 4); int r5 = strncasecmp(s1, s2, 0); + + char s4[10]; + bzero(s4, 10); + //@ assert s4[9] == s4[8] == 0; } diff --git a/tests/libc/test_config b/tests/libc/test_config index 4c10d1e3cae5176275599fc61a1a02fbda2aebe6..b4e089126e464d84fb2a71e38521bdf4e07a07a7 100644 --- a/tests/libc/test_config +++ b/tests/libc/test_config @@ -1 +1 @@ -OPT: -val -val-show-progress -cpp-extra-args='-nostdinc -Ishare/libc' \ No newline at end of file +OPT: -eva -eva-show-progress -cpp-extra-args='-nostdinc -Ishare/libc' diff --git a/tests/libc/time_c.c b/tests/libc/time_c.c new file mode 100644 index 0000000000000000000000000000000000000000..c833527b0c07b22bd568457b94bd7dcfd628de3a --- /dev/null +++ b/tests/libc/time_c.c @@ -0,0 +1,12 @@ +#include "time.c" + +volatile int v; + +int main() { + time_t t; + if (v) t = 42; + char *s = ctime(&t); // warn about initialization + //@ assert valid_read_string(s); + + return 0; +} diff --git a/tests/libc/time_h.c b/tests/libc/time_h.c index a265f44be03db228fa54b67a63d79090dc19650a..0ce0180a8c7a2892d0da7f2dafafa7c3fd04bc8b 100644 --- a/tests/libc/time_h.c +++ b/tests/libc/time_h.c @@ -38,5 +38,9 @@ int main() { return 1; } } + + time_t tt = 42; + char *time_str = ctime(&tt); + //@ assert valid_string(time_str); return 0; } diff --git a/tests/libc/time.c b/tests/libc/time_misc.c similarity index 78% rename from tests/libc/time.c rename to tests/libc/time_misc.c index 5cec32d3ff1ffa35b917686439a78c60f5a807df..8123a1641dc5e5ff829cde5f958e3b14d5f24656 100644 --- a/tests/libc/time.c +++ b/tests/libc/time_misc.c @@ -22,10 +22,21 @@ void test_strftime(void) } } +volatile int v; + +void test_ctime(void) +{ + time_t t; + if (v) t = 42; + char *s = ctime(&t); // warn about initialization + //@ assert valid_read_string(s); +} + int main(int argc, char **argv) { test_gettimeofday(); test_strftime(); + test_ctime(); return 0; } diff --git a/tests/libc/unistd_h.c b/tests/libc/unistd_h.c index fce0f9ad035baeac2155a59aeba1232049a0d11a..d0f26a9bb533cfcd4ecc21ea3368c432382d277c 100644 --- a/tests/libc/unistd_h.c +++ b/tests/libc/unistd_h.c @@ -1,10 +1,10 @@ /*run.config - STDOPT: - STDOPT: #"-variadic-no-translation" + STDOPT: #"-slevel 12" #"-val-split-return auto" + STDOPT: #"-variadic-no-translation" #"-slevel 12" #"-val-split-return auto" */ -#include <unistd.h> - +#define _GNU_SOURCE #define _XOPEN_SOURCE 600 +#include <unistd.h> volatile int nondet; @@ -38,5 +38,40 @@ int main() { long l = sysconf(ARG_MAX); + char cwd[64]; + char *res_getcwd = getcwd(cwd, 64); + if (res_getcwd) { + //@ assert res_getcwd == cwd; + //@ assert valid_read_string((char*)cwd); // currently imprecise + } + + long pconf = pathconf("/tmp/conf.cfg", _PC_NAME_MAX); + + uid_t ruid, euid, suid; + r = getresuid(&ruid, &euid, &suid); + if (!r) { + r = setresuid(ruid, euid, suid); + //@ assert r == 0 || r == -1; + } + gid_t rgid, egid, sgid; + r = getresgid(&rgid, &egid, &sgid); + if (!r) { + r = setresgid(rgid, egid, sgid); + //@ assert r == 0 || r == -1; + } + pid_t p = getpid(); + p = getppid(); + p = getsid(0); + ruid = getuid(); + rgid = getgid(); + euid = geteuid(); + egid = getegid(); + r = setegid(egid); + r = seteuid(euid); + r = setgid(rgid); + r = setuid(ruid); + r = setregid(rgid, egid); + r = setreuid(ruid, euid); + return 0; } diff --git a/tests/metrics/libc.c b/tests/metrics/libc.c index 65c09940c1374bc9cfa3a643cdd15371e7941983..c9c41a18762157b7fe04cf2289fd0ee154a0fb75 100644 --- a/tests/metrics/libc.c +++ b/tests/metrics/libc.c @@ -1,6 +1,6 @@ /* run.config - STDOPT: #"-metrics-no-libc -metrics-value-cover" - STDOPT: #"-metrics-libc -metrics-value-cover" + STDOPT: #"-metrics-no-libc -metrics-eva-cover" + STDOPT: #"-metrics-libc -metrics-eva-cover" */ #include <ctype.h> #include <stdio.h> // defines external variables diff --git a/tests/misc/add_assigns.i b/tests/misc/add_assigns.i index 5b2b95af84a9f8b267b95b237093296b438f8229..a6a820ecce977ef9f528f95bcb149fe3df18001a 100644 --- a/tests/misc/add_assigns.i +++ b/tests/misc/add_assigns.i @@ -1,6 +1,6 @@ /* run.config EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs -OPT: -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs -then -report -then -print +OPT: -no-autoload-plugins -load-module report,@PTEST_DIR@/@PTEST_NAME@.cmxs -then -report -then -print */ /*@ assigns *x; */ diff --git a/tests/misc/behavior_names.i b/tests/misc/behavior_names.i index 969831729e947a8c410642c19d50fbd01730a3f1..d4e48cb5bf64a0462aa4b9196b3d1dd23f533b9a 100644 --- a/tests/misc/behavior_names.i +++ b/tests/misc/behavior_names.i @@ -1,5 +1,6 @@ /* run.config - OPT: -load-script tests/misc/behavior_names.ml + EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs + OPT: -no-autoload-plugins -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs */ /*@ behavior foo: ensures \true; */ diff --git a/tests/misc/bts0452.i b/tests/misc/bts0452.i index 98005844997d596e37329504f7abdabeaf175f76..1f3fc795582b79b21aad809bf852bfb655ce3cd7 100644 --- a/tests/misc/bts0452.i +++ b/tests/misc/bts0452.i @@ -1,7 +1,7 @@ /* run.config - OPT: -typecheck -load-script tests/misc/bts0452.ml + EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs + OPT: -typecheck -no-autoload-plugins -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs */ - /* must emit falls-through warning. */ int f (int foo, char** args) { switch(foo) { diff --git a/tests/misc/bts0489.i b/tests/misc/bts0489.i index db94a185c42a8f4948e11331ceed034f854b9a1f..c33db7d4c1a3f7b4d29d0fc48a0aeaf37101775b 100644 --- a/tests/misc/bts0489.i +++ b/tests/misc/bts0489.i @@ -1,5 +1,6 @@ /* run.config - OPT: -load-script tests/misc/bts0489.ml + EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs + OPT: -no-autoload-plugins -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs */ typedef unsigned char uint8_t; diff --git a/tests/misc/bts0541.c b/tests/misc/bts0541.c index 6bec6dbab693999428fc766aa2eb7ced151e30de..4eb6a3004bab742c81fa24c2bb4d3567b9d01a6b 100644 --- a/tests/misc/bts0541.c +++ b/tests/misc/bts0541.c @@ -1,5 +1,5 @@ /* run.config - OPT: -pp-annot -cpp-extra-args="-I./share/libc" -pp-annot -val -val-show-progress + OPT: -pp-annot -cpp-extra-args="-I./share/libc" -pp-annot -eva -eva-show-progress */ #include <stdbool.h> diff --git a/tests/misc/bts1201.i b/tests/misc/bts1201.i index 360a37c17f64390cec01effff67685f601d60de9..cbaf4a4e3d114ba17709f3f7fc7bfe0c6f8f5d27 100644 --- a/tests/misc/bts1201.i +++ b/tests/misc/bts1201.i @@ -1,8 +1,8 @@ /* run.config - OPT: -value-verbose 2 -load-script tests/misc/bts1201.ml -print + EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs + OPT: -eva-verbose 2 -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs -print */ -void main() { - //@ assert \true; +void main() { //@ assert \true; } void main2() { diff --git a/tests/misc/bts1347.i b/tests/misc/bts1347.i index 15a08daaf6e9f4b2225655aa490fa21b09688c8f..54f633c7beacbf0a298590ec7bd5efb20003b577 100644 --- a/tests/misc/bts1347.i +++ b/tests/misc/bts1347.i @@ -1,6 +1,6 @@ /* run.config - OPT: -load-script tests/misc/bts1347.ml -val-show-progress -then -report + EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs + OPT: -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs -eva-show-progress -then -report */ - int f(int *x) { return *x; } int g(int *x) { return *(x++); } diff --git a/tests/misc/bug_0209.c b/tests/misc/bug_0209.c index e1c584267f93d9cbebcfba033d9ae35f99eec16f..a345a39f3b0ce1c51d4d918965de6620914abbde 100644 --- a/tests/misc/bug_0209.c +++ b/tests/misc/bug_0209.c @@ -1,5 +1,6 @@ /* run.config - OPT: -load-script tests/misc/bug_0209.ml + EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs + OPT: -no-autoload-plugins -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs */ // Everything is done by the script diff --git a/tests/misc/callsite.i b/tests/misc/callsite.i index cb222eb5e95aa3ea93f1f110a8eb5e8b88bca06e..7dcfc493a8c89c38f1bb6189b0c562cccb8841e9 100644 --- a/tests/misc/callsite.i +++ b/tests/misc/callsite.i @@ -1,5 +1,6 @@ /* run.config - OPT: -load-script tests/misc/callsite.ml + EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs + OPT: -no-autoload-plugins -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs */ // Don't use -debug 1 option in the test command. diff --git a/tests/misc/change_main.i b/tests/misc/change_main.i index 1501281468c0e0b43cfd40bb47b76caf62203a51..c6f70943352c91f4348680131c67bb9e27329040 100644 --- a/tests/misc/change_main.i +++ b/tests/misc/change_main.i @@ -1,5 +1,6 @@ /* run.config* -OPT: -val -main f -load-script tests/misc/change_main.ml -then-on change_main -main g -val +EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs +OPT: -eva -main f -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs -then-on change_main -main g -eva */ int f(int x) { return x; } diff --git a/tests/misc/cli_string_multiple_map.i b/tests/misc/cli_string_multiple_map.i index 35a34f02c7751c7f8f58cc91af0f557d408f1c04..b4a7c3bc23730ae8b09c9d851046c6b3e300b520 100644 --- a/tests/misc/cli_string_multiple_map.i +++ b/tests/misc/cli_string_multiple_map.i @@ -1,3 +1,4 @@ /* run.config - OPT: -load-script tests/misc/cli_string_multiple_map.ml -multiple-map a:1,b:2,a:3 + EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs + OPT: -no-autoload-plugins -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs -multiple-map a:1,b:2,a:3 */ diff --git a/tests/misc/copy_kf.i b/tests/misc/copy_kf.i index 029cbd00d67d6d1580476a8703c235814ecc057c..15fe7d6bc47b3ae91e25275f2bc159cebaeca86d 100644 --- a/tests/misc/copy_kf.i +++ b/tests/misc/copy_kf.i @@ -1,6 +1,6 @@ /* run.config EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs -OPT: -load-module @PTEST_DIR@/@PTEST_NAME@ +OPT: -no-autoload-plugins -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs */ /*@ requires \valid(p); assigns *p; ensures *p == x; */ diff --git a/tests/misc/copy_machdep.i b/tests/misc/copy_machdep.i index 3c150a094ff67a252ea8c3875e854a75b839b327..0b6f32f439f5a76fcda2d18135977d049f386d84 100644 --- a/tests/misc/copy_machdep.i +++ b/tests/misc/copy_machdep.i @@ -1,6 +1,6 @@ /* run.config EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs -OPT: -load-module @PTEST_DIR@/@PTEST_NAME@ -machdep x86_64 -enums int -no-unicode +OPT: -no-autoload-plugins -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs -machdep x86_64 -enums int -no-unicode */ int main () { return 0; } diff --git a/tests/misc/custom_machdep.c b/tests/misc/custom_machdep.c index e92b67f2a8e902f76929347cdee85a7b35688149..f7a377dc16250f21911dbc5f014d7a50b33bac3f 100644 --- a/tests/misc/custom_machdep.c +++ b/tests/misc/custom_machdep.c @@ -1,5 +1,6 @@ /* run.config* -OPT: -cpp-extra-args="-I@PTEST_DIR@/@PTEST_NAME@ -D__FC_MACHDEP_CUSTOM" -load-script @PTEST_DIR@/@PTEST_NAME@/@PTEST_NAME@.ml -machdep custom -print -then -print +EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@/@PTEST_NAME@.cmxs +OPT: -cpp-extra-args="-I@PTEST_DIR@/@PTEST_NAME@ -D__FC_MACHDEP_CUSTOM" -load-module @PTEST_DIR@/@PTEST_NAME@/@PTEST_NAME@ -machdep custom -print -then -print COMMENT: we need a -then to test double registering of a machdep */ diff --git a/tests/misc/debug_category.i b/tests/misc/debug_category.i index ebb1ab632d7012f1133cfdfab47a2a31a60c4af5..4773466c671722c22fdb1b53992f6073349b9383 100644 --- a/tests/misc/debug_category.i +++ b/tests/misc/debug_category.i @@ -17,4 +17,5 @@ OPT: -load-module tests/misc/Debug_category.cmxs -test-warn-key a=err-once OPT: -load-module tests/misc/Debug_category.cmxs -test-warn-key test-vis-err OPT: -load-module tests/misc/Debug_category.cmxs -test-warn-key test-inv-err OPT: -load-module tests/misc/Debug_category.cmxs -test-warn-key test-failure +FILTER: sed 's|Your Frama-C version is.*|Your Frama-C version is VERSION|' */ diff --git a/tests/misc/ensures.i b/tests/misc/ensures.i index 140bf8122f031aa574e460218275fceb1fb3112b..ae04e6fb897e157311e2131e8c00117972aaa048 100644 --- a/tests/misc/ensures.i +++ b/tests/misc/ensures.i @@ -1,5 +1,6 @@ /* run.config - OPT: -load-script tests/misc/ensures.ml + EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs + OPT: -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs */ //@ ensures *p==1; void main(int * p){ *p = 0; } diff --git a/tests/misc/exception.i b/tests/misc/exception.i index 4b73ec776649d824fae164bf23655cd6ab7c26c1..a6e5006eb7dbab9286b39fbeaf6ea28e5c22be19 100644 --- a/tests/misc/exception.i +++ b/tests/misc/exception.i @@ -1,7 +1,7 @@ /* run.config EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs - OPT: -load-module @PTEST_DIR@/@PTEST_NAME@ -print - OPT: -load-module @PTEST_DIR@/@PTEST_NAME@ -remove-exn -print + OPT: -no-autoload-plugins -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs -print + OPT: -no-autoload-plugins -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs -remove-exn -print */ struct my_exn { int e; }; diff --git a/tests/misc/filepath.i b/tests/misc/filepath.i index eb178f8224607c8dce90532cc9b037ff562b16f4..f5c0183704fb0f14aba28d804eb133137365c870 100644 --- a/tests/misc/filepath.i +++ b/tests/misc/filepath.i @@ -1,3 +1,4 @@ /* run.config - OPT: -no-autoload-plugins -load-module @PTEST_DIR@/filepath_test.ml + EXECNOW: make -s @PTEST_DIR@/filepath_test.cmxs + OPT: -no-autoload-plugins -load-module @PTEST_DIR@/filepath_test */ diff --git a/tests/misc/find_enclosing_loop.c b/tests/misc/find_enclosing_loop.c index 0a46b537168e8095a426f03541433800664ae563..76cc35a53187fc9e58ea906527669b5a9482e117 100644 --- a/tests/misc/find_enclosing_loop.c +++ b/tests/misc/find_enclosing_loop.c @@ -1,5 +1,6 @@ /* run.config -OPT: -load-script tests/misc/find_enclosing_loop.ml +EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs +OPT: -no-autoload-plugins -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs */ void f () { diff --git a/tests/misc/global_decl_loc.i b/tests/misc/global_decl_loc.i index 3da30326dde49e4dacd4027a5ac9515fe448b0b5..d13cbce847364dbce968f270f47d9cae11260cd8 100644 --- a/tests/misc/global_decl_loc.i +++ b/tests/misc/global_decl_loc.i @@ -1,4 +1,4 @@ /* run.config - OPT: @PTEST_DIR@/global_decl_loc2.i -load-module @PTEST_DIR@/global_decl_loc.cmxs + OPT: @PTEST_DIR@/global_decl_loc2.i -no-autoload-plugins -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs */ int g; diff --git a/tests/misc/init_from_cil.i b/tests/misc/init_from_cil.i index 276161982d21dae400626a206eca75b7064b3b44..7d767032b7e6c7ef1acc8f6a4a7e1ff655cab5f7 100644 --- a/tests/misc/init_from_cil.i +++ b/tests/misc/init_from_cil.i @@ -1,5 +1,6 @@ /* run.config - OPT: -load-script tests/misc/init_from_cil.ml + EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs + OPT: -no-autoload-plugins -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs */ int f(int x); diff --git a/tests/misc/issue109.i b/tests/misc/issue109.i index 878305d92c4d6cce282a72f3450870ecb9817789..51c709c227b1c61c905901b787e50e87c0825216 100644 --- a/tests/misc/issue109.i +++ b/tests/misc/issue109.i @@ -1,7 +1,7 @@ /* run.config - OPT: -val -val-show-progress -slevel-function main:10 -load-script tests/misc/issue109.ml + EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs + OPT: -eva -eva-show-progress -slevel-function main:10 -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs */ - void main() { int i, j = 0; for (i=0; i<10; i++) { diff --git a/tests/misc/issue_191.c b/tests/misc/issue_191.c index bbba9a680d785fa60685908e9b32322d466639ec..a345a39f3b0ce1c51d4d918965de6620914abbde 100644 --- a/tests/misc/issue_191.c +++ b/tests/misc/issue_191.c @@ -1,5 +1,6 @@ /* run.config - OPT: -load-script tests/misc/issue_191.ml + EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs + OPT: -no-autoload-plugins -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs */ // Everything is done by the script diff --git a/tests/misc/justcopy.i b/tests/misc/justcopy.i index 1045df89354df37d9bb6936a454ceedadd769c85..8cfd1982b8925ce6626f5d9b9d91594011759c5a 100644 --- a/tests/misc/justcopy.i +++ b/tests/misc/justcopy.i @@ -1,3 +1,4 @@ /* run.config - OPT: -load-script tests/misc/justcopy.ml + EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs + OPT: -no-autoload-plugins -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs */ diff --git a/tests/misc/keep_entry_point.i b/tests/misc/keep_entry_point.i index 48746aabe0562d04934b6bf12ea7d704afc45169..6ade640dbb8933cb359dac79d608f7acf33fc4d3 100644 --- a/tests/misc/keep_entry_point.i +++ b/tests/misc/keep_entry_point.i @@ -1,6 +1,6 @@ /* run.config EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs -OPT: -main f -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs -print +OPT: -main f -no-autoload-plugins -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs -print */ static int f(void); diff --git a/tests/misc/log-file.i b/tests/misc/log-file.i index 18c745963f3188366565cb4525baada099985d47..833ee51da34f8228cc4ab373fe8573b430b7ca3f 100644 --- a/tests/misc/log-file.i +++ b/tests/misc/log-file.i @@ -1,12 +1,15 @@ /* run.config - STDOPT: #"-kernel-log w:@PTEST_RESULT@/log-file-kernel-warnings.txt,r:@PTEST_RESULT@/log-file-kernel-results.txt -value-log f:@PTEST_RESULT@/log-file-feedback.txt,afewr:@PTEST_RESULT@/log-file-value-all.txt -value-log :@PTEST_RESULT@/log-file-value-default.txt -then -kernel-log f:@PTEST_RESULT@/log-file-feedback.txt" + EXECNOW: make -s @PTEST_DIR@/plugin_log.cmxs LOG: log-file-kernel-warnings.txt LOG: log-file-kernel-results.txt LOG: log-file-feedback.txt LOG: log-file-value-all.txt LOG: log-file-value-default.txt LOG: plugin-log-all.txt - OPT: -load-module tests/misc/plugin_log.ml -kernel-msg-key foo-category -kernel-log=a:@PTEST_RESULT@/plugin-log-all.txt + FILTER: sed 's|Your Frama-C version is.*|Your Frama-C version is VERSION|' + STDOPT: #"-kernel-log w:@PTEST_RESULT@/log-file-kernel-warnings.txt,r:@PTEST_RESULT@/log-file-kernel-results.txt -eva-log f:@PTEST_RESULT@/log-file-feedback.txt,afewr:@PTEST_RESULT@/log-file-value-all.txt -eva-log :@PTEST_RESULT@/log-file-value-default.txt -then -kernel-log f:@PTEST_RESULT@/log-file-feedback.txt" + OPT: -load-module tests/misc/plugin_log -kernel-msg-key foo-category -kernel-log=a:@PTEST_RESULT@/plugin-log-all.txt + DONTRUN: test disabled due to non-deterministic errors in CI */ int f(void); // generates kernel warning (missing spec) diff --git a/tests/misc/log_twice.i b/tests/misc/log_twice.i index 96dc84cdc98cca6d0cccc2512cc2ff634567adee..e5c6f3a5f23f1f5e9fbe1a0f713c81101ead221d 100644 --- a/tests/misc/log_twice.i +++ b/tests/misc/log_twice.i @@ -1,5 +1,6 @@ /* run.config - OPT: -load-script tests/misc/log_twice -val-show-progress + EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs + OPT: -load-module @PTEST_DIR@/@PTEST_NAME@ -eva-show-progress */ int* f() { diff --git a/tests/misc/my_visitor.c b/tests/misc/my_visitor.c index 921a82c24c416653c44b705dedb7d86cb431dd12..29355fd152e80c899adebc677eb1abba062d46d5 100644 --- a/tests/misc/my_visitor.c +++ b/tests/misc/my_visitor.c @@ -1,6 +1,6 @@ /* run.config EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs -EXECNOW: LOG my_visitor_sav.res LOG my_visitor_sav.err BIN my_visitor.sav FRAMAC_PLUGIN=./lib/plugins @frama-c@ @PTEST_FILE@ -load-module @PTEST_DIR@/@PTEST_NAME@ -main f -save @PTEST_DIR@/@PTEST_NAME@.sav > @PTEST_DIR@/result/@PTEST_NAME@_sav.res 2> @PTEST_DIR@/result/@PTEST_NAME@_sav.err +EXECNOW: LOG my_visitor_sav.res LOG my_visitor_sav.err BIN my_visitor.sav FRAMAC_PLUGIN=./lib/plugins @frama-c@ @PTEST_FILE@ -no-autoload-plugins -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs -main f -save @PTEST_DIR@/@PTEST_NAME@.sav > @PTEST_DIR@/result/@PTEST_NAME@_sav.res 2> @PTEST_DIR@/result/@PTEST_NAME@_sav.err OPT: -load @PTEST_DIR@/@PTEST_NAME@.sav -print */ int f() { diff --git a/tests/misc/oracle/debug_category.16.res.oracle b/tests/misc/oracle/debug_category.16.res.oracle index 75e2529443bacd2087a9202069d4eee278b6f201..94d8b8d19651203055324057dd817cac39d63efb 100644 --- a/tests/misc/oracle/debug_category.16.res.oracle +++ b/tests/misc/oracle/debug_category.16.res.oracle @@ -9,7 +9,7 @@ Plug-in test aborted: internal error. Please report as 'crash' at http://bts.frama-c.com/. - Your Frama-C version is 18.0+dev (Argon). + Your Frama-C version is VERSION Note that a version and a backtrace alone often do not contain enough information to understand the bug. Guidelines for reporting bugs are at: http://bts.frama-c.com/dokuwiki/doku.php?id=mantis:frama-c:bug_reporting_guidelines diff --git a/tests/misc/oracle/ensures.res.oracle b/tests/misc/oracle/ensures.res.oracle index 7648b92dd837a79640186839b0e38b1770b249e8..7acf87d61616ae7b517495ee6013e35bbdeaf2a7 100644 --- a/tests/misc/oracle/ensures.res.oracle +++ b/tests/misc/oracle/ensures.res.oracle @@ -4,7 +4,7 @@ [eva] Initial state computed [eva:initial-state] Values of globals at initialization -[eva:alarm] tests/misc/ensures.i:4: Warning: +[eva:alarm] tests/misc/ensures.i:5: Warning: function main: postcondition got status invalid. [eva] done for function main [kernel] main: behavior default! diff --git a/tests/misc/oracle/log-file-feedback.txt b/tests/misc/oracle/log-file-feedback.txt index dd7e7858aa616e820a1a617e05e9a7eb44861fc5..941d344dc0af8f47c2ec0f194933b87cdb04c53a 100644 --- a/tests/misc/oracle/log-file-feedback.txt +++ b/tests/misc/oracle/log-file-feedback.txt @@ -3,13 +3,13 @@ [eva] Computing initial state [eva] Initial state computed [eva] computing for function f <- main. -Called from tests/misc/log-file.i:17. +Called from tests/misc/log-file.i:20. [eva] using specification for function f [eva] Done for function f [eva] computing for function g <- main. -Called from tests/misc/log-file.i:18. +Called from tests/misc/log-file.i:21. [eva] using specification for function g [eva] Done for function g -tests/misc/log-file.i:19:[eva] starting to merge loop iterations +tests/misc/log-file.i:22:[eva] starting to merge loop iterations [eva] Recording results for main [eva] done for function main diff --git a/tests/misc/oracle/log-file-kernel-warnings.txt b/tests/misc/oracle/log-file-kernel-warnings.txt index 5c5f02ce9de017e7b09f4ae1b49e790fc966c832..4e35b1c74cec91a3ba4e36c94232ff1ccbbf3e6e 100644 --- a/tests/misc/oracle/log-file-kernel-warnings.txt +++ b/tests/misc/oracle/log-file-kernel-warnings.txt @@ -1 +1 @@ -tests/misc/log-file.i:17:[kernel:annot:missing-spec] warning: Neither code nor specification for function f, generating default assigns from the prototype +tests/misc/log-file.i:20:[kernel:annot:missing-spec] warning: Neither code nor specification for function f, generating default assigns from the prototype diff --git a/tests/misc/oracle/log-file-value-all.txt b/tests/misc/oracle/log-file-value-all.txt index 924ba68cda85caa12be985548d0c2a6b22c516cd..c19d8ff15faac9301d00a3f1878c008f2c7ef9fe 100644 --- a/tests/misc/oracle/log-file-value-all.txt +++ b/tests/misc/oracle/log-file-value-all.txt @@ -2,15 +2,15 @@ [eva] Computing initial state [eva] Initial state computed [eva] computing for function f <- main. -Called from tests/misc/log-file.i:17. +Called from tests/misc/log-file.i:20. [eva] using specification for function f [eva] Done for function f [eva] computing for function g <- main. -Called from tests/misc/log-file.i:18. +Called from tests/misc/log-file.i:21. [eva] using specification for function g -tests/misc/log-file.i:14:[eva] warning: no 'assigns \result \from ...' clause specified for function g +tests/misc/log-file.i:17:[eva] warning: no 'assigns \result \from ...' clause specified for function g [eva] Done for function g -tests/misc/log-file.i:19:[eva] starting to merge loop iterations +tests/misc/log-file.i:22:[eva] starting to merge loop iterations [eva] Recording results for main [eva] done for function main [eva] ====== VALUES COMPUTED ====== diff --git a/tests/misc/oracle/log-file-value-default.txt b/tests/misc/oracle/log-file-value-default.txt index 7ebab87f560f701f1180d5a182f5a2ef48bf0985..93553049c30efa17102275ef8c4b8187d04efeea 100644 --- a/tests/misc/oracle/log-file-value-default.txt +++ b/tests/misc/oracle/log-file-value-default.txt @@ -1,2 +1,2 @@ -tests/misc/log-file.i:14:[eva] warning: no 'assigns \result \from ...' clause specified for function g +tests/misc/log-file.i:17:[eva] warning: no 'assigns \result \from ...' clause specified for function g [eva] ====== VALUES COMPUTED ====== diff --git a/tests/misc/oracle/log-file.0.res.oracle b/tests/misc/oracle/log-file.0.res.oracle index 1db5e60c1dae72bf1d95993a259ac3b405f850d9..83288a2ea513c05a7125a26eea8b5a4cee999871 100644 --- a/tests/misc/oracle/log-file.0.res.oracle +++ b/tests/misc/oracle/log-file.0.res.oracle @@ -5,18 +5,18 @@ [eva:initial-state] Values of globals at initialization [eva] computing for function f <- main. - Called from tests/misc/log-file.i:17. -[kernel:annot:missing-spec] tests/misc/log-file.i:17: Warning: + Called from tests/misc/log-file.i:20. +[kernel:annot:missing-spec] tests/misc/log-file.i:20: Warning: Neither code nor specification for function f, generating default assigns from the prototype [eva] using specification for function f [eva] Done for function f [eva] computing for function g <- main. - Called from tests/misc/log-file.i:18. + Called from tests/misc/log-file.i:21. [eva] using specification for function g -[eva] tests/misc/log-file.i:14: Warning: +[eva] tests/misc/log-file.i:17: Warning: no 'assigns \result \from ...' clause specified for function g [eva] Done for function g -[eva] tests/misc/log-file.i:19: starting to merge loop iterations +[eva] tests/misc/log-file.i:22: starting to merge loop iterations [eva] Recording results for main [eva] done for function main [eva] ====== VALUES COMPUTED ====== diff --git a/tests/misc/oracle/log-file.1.res.oracle b/tests/misc/oracle/log-file.1.res.oracle index a7ef0e3d8b8280aa5101209cf259ce5b9cc16375..c5369cc7504986a9cb0dda96a852e4dd05417423 100644 --- a/tests/misc/oracle/log-file.1.res.oracle +++ b/tests/misc/oracle/log-file.1.res.oracle @@ -6,15 +6,3 @@ [kernel:foo-category] debug (level 0) with dkey [kernel] debug (level 0) [kernel] Warning: warning -[kernel] User Error: error -[kernel] Failure: failure -[kernel] Failure: Deferred internal error message was emitted during execution. See above messages for more information. -[kernel] Current source was: tests/misc/log-file.i:16 - The full backtrace is: - - Frama-C aborted: internal error. - Please report as 'crash' at http://bts.frama-c.com/. - Your Frama-C version is 18.0+dev (Argon). - Note that a version and a backtrace alone often do not contain enough - information to understand the bug. Guidelines for reporting bugs are at: - http://bts.frama-c.com/dokuwiki/doku.php?id=mantis:frama-c:bug_reporting_guidelines diff --git a/tests/misc/oracle/log_twice.res.oracle b/tests/misc/oracle/log_twice.res.oracle index 871920c55ba2fee41bfc176a78c22e59d809ea86..30fcb6869ca0f742ade2702953dcb5493a9573e9 100644 --- a/tests/misc/oracle/log_twice.res.oracle +++ b/tests/misc/oracle/log_twice.res.oracle @@ -5,19 +5,19 @@ [eva:initial-state] Values of globals at initialization [eva] computing for function f <- main. - Called from tests/misc/log_twice.i:11. + Called from tests/misc/log_twice.i:12. [eva] Recording results for f [eva] Done for function f -[eva:locals-escaping] tests/misc/log_twice.i:11: Warning: +[eva:locals-escaping] tests/misc/log_twice.i:12: Warning: locals {x} escaping the scope of f through \result<f> -[eva:alarm] tests/misc/log_twice.i:12: Warning: +[eva:alarm] tests/misc/log_twice.i:13: Warning: accessing left-value that contains escaping addresses. assert ¬\dangling(&p); -[kernel] tests/misc/log_twice.i:12: Warning: +[kernel] tests/misc/log_twice.i:13: Warning: all target addresses were invalid. This path is assumed to be dead. [eva] Recording results for main [eva] done for function main -[eva] tests/misc/log_twice.i:12: +[eva] tests/misc/log_twice.i:13: assertion 'Eva,dangling_pointer' got final status invalid. [eva] Analyzing a complete application starting at main [eva] Computing initial state @@ -25,17 +25,17 @@ [eva:initial-state] Values of globals at initialization [eva] computing for function f <- main. - Called from tests/misc/log_twice.i:11. + Called from tests/misc/log_twice.i:12. [eva] Recording results for f [eva] Done for function f -[eva:locals-escaping] tests/misc/log_twice.i:11: Warning: +[eva:locals-escaping] tests/misc/log_twice.i:12: Warning: locals {x} escaping the scope of f through \result<f> -[eva:alarm] tests/misc/log_twice.i:12: Warning: +[eva:alarm] tests/misc/log_twice.i:13: Warning: accessing left-value that contains escaping addresses. assert ¬\dangling(&p); -[kernel] tests/misc/log_twice.i:12: Warning: +[kernel] tests/misc/log_twice.i:13: Warning: all target addresses were invalid. This path is assumed to be dead. [eva] Recording results for main [eva] done for function main -[eva] tests/misc/log_twice.i:12: +[eva] tests/misc/log_twice.i:13: assertion 'Eva,dangling_pointer' got final status invalid. diff --git a/tests/misc/oracle/plugin-log-all.txt b/tests/misc/oracle/plugin-log-all.txt index 2483f6ebcc8f221037ad68a82185c2ff62960064..336371940a03087a0ea145f8eaa0b2d531f0e91e 100644 --- a/tests/misc/oracle/plugin-log-all.txt +++ b/tests/misc/oracle/plugin-log-all.txt @@ -6,15 +6,3 @@ [kernel:foo-category] debug (level 0) with dkey [kernel] debug (level 0) [kernel] warning: warning -[kernel] user error: error -[kernel] failure: failure -[kernel] failure: Deferred internal error message was emitted during execution. See above messages for more information. -[kernel] Current source was: tests/misc/log-file.i:16 -The full backtrace is: - -Frama-C aborted: internal error. -Please report as 'crash' at http://bts.frama-c.com/. -Your Frama-C version is 18.0+dev (Argon). -Note that a version and a backtrace alone often do not contain enough -information to understand the bug. Guidelines for reporting bugs are at: -http://bts.frama-c.com/dokuwiki/doku.php?id=mantis:frama-c:bug_reporting_guidelines diff --git a/tests/misc/oracle/pp_bin_hex.res.oracle b/tests/misc/oracle/pp_bin_hex.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..4791a522a343769216bd7ce7e105707e34f739e4 --- /dev/null +++ b/tests/misc/oracle/pp_bin_hex.res.oracle @@ -0,0 +1,86 @@ +-------------------------------------------------- +Dec. 0 +Hex. 0x0000 +Bin. 0b0000_0000 +-------------------------------------------------- +Dec. 1 +Hex. 0x0001 +Bin. 0b0000_0001 +-------------------------------------------------- +Dec. -1 +Hex. 1xFFFF +Bin. 1b1111_1111 +-------------------------------------------------- +Dec. 2 +Hex. 0x0002 +Bin. 0b0000_0010 +-------------------------------------------------- +Dec. -2 +Hex. 1xFFFE +Bin. 1b1111_1110 +-------------------------------------------------- +Dec. 5 +Hex. 0x0005 +Bin. 0b0000_0101 +-------------------------------------------------- +Dec. -5 +Hex. 1xFFFB +Bin. 1b1111_1011 +-------------------------------------------------- +Dec. 9 +Hex. 0x0009 +Bin. 0b0000_1001 +-------------------------------------------------- +Dec. -9 +Hex. 1xFFF7 +Bin. 1b1111_0111 +-------------------------------------------------- +Dec. 16 +Hex. 0x0010 +Bin. 0b0001_0000 +-------------------------------------------------- +Dec. -16 +Hex. 1xFFF0 +Bin. 1b1111_0000 +-------------------------------------------------- +Dec. 127 +Hex. 0x007F +Bin. 0b0111_1111 +-------------------------------------------------- +Dec. -127 +Hex. 1xFF81 +Bin. 1b1000_0001 +-------------------------------------------------- +Dec. 128 +Hex. 0x0080 +Bin. 0b1000_0000 +-------------------------------------------------- +Dec. -128 +Hex. 1xFF80 +Bin. 1b1000_0000 +-------------------------------------------------- +Dec. 255 +Hex. 0x00FF +Bin. 0b1111_1111 +-------------------------------------------------- +Dec. -255 +Hex. 1xFF01 +Bin. 1b0000_0001 +-------------------------------------------------- +Dec. 4279173135 +Hex. 0xFF0F_000F +Bin. 0b1111_1111_0000_1111_0000_0000_0000_1111 +-------------------------------------------------- +Dec. -4279173135 +Hex. 1x00F0_FFF1 +Bin. 1b0000_0000_1111_0000_1111_1111_1111_0001 +-------------------------------------------------- +Dec. 386334727 +Hex. 0x1707_0007 +Bin. 0b0001_0111_0000_0111_0000_0000_0000_0111 +-------------------------------------------------- +Dec. -386334727 +Hex. 1xE8F8_FFF9 +Bin. 1b1110_1000_1111_1000_1111_1111_1111_1001 +-------------------------------------------------- +[kernel] Parsing tests/misc/pp_bin_hex.i (no preprocessing) diff --git a/tests/misc/oracle/pp_int.res.oracle b/tests/misc/oracle/pp_int.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..f544e754a18043056e60b1d7a5eb0535289b3f07 --- /dev/null +++ b/tests/misc/oracle/pp_int.res.oracle @@ -0,0 +1,479 @@ +====================================================================== +Nbits: 0 Sep: "," +---------------------------------------------------------------------- +value '65537' '10001' +refhex '0x0001,0001' +pp_hex '0x0001,0001' +refbin '0b0000,0000,0000,0001,0000,0000,0000,0001' +pp_bin ' 0b0001,0000,0000,0000,0001' +pp_neg ' 1b1110,1111,1111,1111,1110' +---------------------------------------------------------------------- +value '65536' '10000' +refhex '0x0001,0000' +pp_hex '0x0001,0000' +refbin '0b0000,0000,0000,0001,0000,0000,0000,0000' +pp_bin ' 0b0001,0000,0000,0000,0000' +pp_neg ' 1b1110,1111,1111,1111,1111' +---------------------------------------------------------------------- +value '65335' 'ff37' +refhex '0x0000,FF37' +pp_hex ' 0xFF37' +refbin '0b0000,0000,0000,0000,1111,1111,0011,0111' +pp_bin ' 0b1111,1111,0011,0111' +pp_neg ' 1b0000,0000,1100,1000' +---------------------------------------------------------------------- +value '65534' 'fffe' +refhex '0x0000,FFFE' +pp_hex ' 0xFFFE' +refbin '0b0000,0000,0000,0000,1111,1111,1111,1110' +pp_bin ' 0b1111,1111,1111,1110' +pp_neg ' 1b0000,0000,0000,0001' +---------------------------------------------------------------------- +value '127' '7f' +refhex '0x0000,007F' +pp_hex ' 0x007F' +refbin '0b0000,0000,0000,0000,0000,0000,0111,1111' +pp_bin ' 0b0111,1111' +pp_neg ' 1b1000,0000' +---------------------------------------------------------------------- +value '128' '80' +refhex '0x0000,0080' +pp_hex ' 0x0080' +refbin '0b0000,0000,0000,0000,0000,0000,1000,0000' +pp_bin ' 0b1000,0000' +pp_neg ' 1b0111,1111' +---------------------------------------------------------------------- +value '129' '81' +refhex '0x0000,0081' +pp_hex ' 0x0081' +refbin '0b0000,0000,0000,0000,0000,0000,1000,0001' +pp_bin ' 0b1000,0001' +pp_neg ' 1b0111,1110' +---------------------------------------------------------------------- +value '2' '2' +refhex '0x0000,0002' +pp_hex ' 0x0002' +refbin '0b0000,0000,0000,0000,0000,0000,0000,0010' +pp_bin ' 0b0010' +pp_neg ' 1b1101' +---------------------------------------------------------------------- +value '1' '1' +refhex '0x0000,0001' +pp_hex ' 0x0001' +refbin '0b0000,0000,0000,0000,0000,0000,0000,0001' +pp_bin ' 0b0001' +pp_neg ' 1b1110' +---------------------------------------------------------------------- +value '0' '0' +refhex '0x0000,0000' +pp_hex ' 0x0000' +refbin '0b0000,0000,0000,0000,0000,0000,0000,0000' +pp_bin ' 0b0000' +pp_neg ' 1b1111' +---------------------------------------------------------------------- +value '-1' '7fffffffffffffff' +refhex '1xFFFF,FFFF' +pp_hex ' 1xFFFF' +refbin '1b1111,1111,1111,1111,1111,1111,1111,1111' +pp_bin ' 1b1111' +pp_neg ' 0b0000' +---------------------------------------------------------------------- +value '-2' '7ffffffffffffffe' +refhex '1xFFFF,FFFE' +pp_hex ' 1xFFFE' +refbin '1b1111,1111,1111,1111,1111,1111,1111,1110' +pp_bin ' 1b1110' +pp_neg ' 0b0001' +---------------------------------------------------------------------- +value '-3' '7ffffffffffffffd' +refhex '1xFFFF,FFFD' +pp_hex ' 1xFFFD' +refbin '1b1111,1111,1111,1111,1111,1111,1111,1101' +pp_bin ' 1b1101' +pp_neg ' 0b0010' +---------------------------------------------------------------------- +value '-126' '7fffffffffffff82' +refhex '1xFFFF,FF82' +pp_hex ' 1xFF82' +refbin '1b1111,1111,1111,1111,1111,1111,1000,0010' +pp_bin ' 1b1000,0010' +pp_neg ' 0b0111,1101' +---------------------------------------------------------------------- +value '-127' '7fffffffffffff81' +refhex '1xFFFF,FF81' +pp_hex ' 1xFF81' +refbin '1b1111,1111,1111,1111,1111,1111,1000,0001' +pp_bin ' 1b1000,0001' +pp_neg ' 0b0111,1110' +---------------------------------------------------------------------- +value '-128' '7fffffffffffff80' +refhex '1xFFFF,FF80' +pp_hex ' 1xFF80' +refbin '1b1111,1111,1111,1111,1111,1111,1000,0000' +pp_bin ' 1b1000,0000' +pp_neg ' 0b0111,1111' +---------------------------------------------------------------------- +value '-129' '7fffffffffffff7f' +refhex '1xFFFF,FF7F' +pp_hex ' 1xFF7F' +refbin '1b1111,1111,1111,1111,1111,1111,0111,1111' +pp_bin ' 1b0111,1111' +pp_neg ' 0b1000,0000' +---------------------------------------------------------------------- +value '-130' '7fffffffffffff7e' +refhex '1xFFFF,FF7E' +pp_hex ' 1xFF7E' +refbin '1b1111,1111,1111,1111,1111,1111,0111,1110' +pp_bin ' 1b0111,1110' +pp_neg ' 0b1000,0001' +---------------------------------------------------------------------- +value '-254' '7fffffffffffff02' +refhex '1xFFFF,FF02' +pp_hex ' 1xFF02' +refbin '1b1111,1111,1111,1111,1111,1111,0000,0010' +pp_bin ' 1b0000,0010' +pp_neg ' 0b1111,1101' +---------------------------------------------------------------------- +value '-255' '7fffffffffffff01' +refhex '1xFFFF,FF01' +pp_hex ' 1xFF01' +refbin '1b1111,1111,1111,1111,1111,1111,0000,0001' +pp_bin ' 1b0000,0001' +pp_neg ' 0b1111,1110' +---------------------------------------------------------------------- +value '-256' '7fffffffffffff00' +refhex '1xFFFF,FF00' +pp_hex ' 1xFF00' +refbin '1b1111,1111,1111,1111,1111,1111,0000,0000' +pp_bin ' 1b0000,0000' +pp_neg ' 0b1111,1111' +---------------------------------------------------------------------- +value '-257' '7ffffffffffffeff' +refhex '1xFFFF,FEFF' +pp_hex ' 1xFEFF' +refbin '1b1111,1111,1111,1111,1111,1110,1111,1111' +pp_bin ' 1b1110,1111,1111' +pp_neg ' 0b0001,0000,0000' +---------------------------------------------------------------------- +value '-258' '7ffffffffffffefe' +refhex '1xFFFF,FEFE' +pp_hex ' 1xFEFE' +refbin '1b1111,1111,1111,1111,1111,1110,1111,1110' +pp_bin ' 1b1110,1111,1110' +pp_neg ' 0b0001,0000,0001' +---------------------------------------------------------------------- +value '-65534' '7fffffffffff0002' +refhex '1xFFFF,0002' +pp_hex ' 1x0002' +refbin '1b1111,1111,1111,1111,0000,0000,0000,0010' +pp_bin ' 1b0000,0000,0000,0010' +pp_neg ' 0b1111,1111,1111,1101' +---------------------------------------------------------------------- +value '-65535' '7fffffffffff0001' +refhex '1xFFFF,0001' +pp_hex ' 1x0001' +refbin '1b1111,1111,1111,1111,0000,0000,0000,0001' +pp_bin ' 1b0000,0000,0000,0001' +pp_neg ' 0b1111,1111,1111,1110' +---------------------------------------------------------------------- +value '-65536' '7fffffffffff0000' +refhex '1xFFFF,0000' +pp_hex ' 1x0000' +refbin '1b1111,1111,1111,1111,0000,0000,0000,0000' +pp_bin ' 1b0000,0000,0000,0000' +pp_neg ' 0b1111,1111,1111,1111' +---------------------------------------------------------------------- +value '-65537' '7ffffffffffeffff' +refhex '1xFFFE,FFFF' +pp_hex '1xFFFE,FFFF' +refbin '1b1111,1111,1111,1110,1111,1111,1111,1111' +pp_bin ' 1b1110,1111,1111,1111,1111' +pp_neg ' 0b0001,0000,0000,0000,0000' +---------------------------------------------------------------------- +value '-65538' '7ffffffffffefffe' +refhex '1xFFFE,FFFE' +pp_hex '1xFFFE,FFFE' +refbin '1b1111,1111,1111,1110,1111,1111,1111,1110' +pp_bin ' 1b1110,1111,1111,1111,1110' +pp_neg ' 0b0001,0000,0000,0000,0001' +====================================================================== +Nbits: 8 Sep: "" +---------------------------------------------------------------------- +value '65335' 'ff37' +refhex '0x0000FF37' +pp_hex ' 0xFF37' +refbin '0b00000000000000001111111100110111' +pp_bin ' 0b1111111100110111' +pp_neg ' 1b0000000011001000' +---------------------------------------------------------------------- +value '65534' 'fffe' +refhex '0x0000FFFE' +pp_hex ' 0xFFFE' +refbin '0b00000000000000001111111111111110' +pp_bin ' 0b1111111111111110' +pp_neg ' 1b0000000000000001' +---------------------------------------------------------------------- +value '2' '2' +refhex '0x00000002' +pp_hex ' 0x0002' +refbin '0b00000000000000000000000000000010' +pp_bin ' 0b00000010' +pp_neg ' 1b11111101' +---------------------------------------------------------------------- +value '1' '1' +refhex '0x00000001' +pp_hex ' 0x0001' +refbin '0b00000000000000000000000000000001' +pp_bin ' 0b00000001' +pp_neg ' 1b11111110' +---------------------------------------------------------------------- +value '0' '0' +refhex '0x00000000' +pp_hex ' 0x0000' +refbin '0b00000000000000000000000000000000' +pp_bin ' 0b00000000' +pp_neg ' 1b11111111' +---------------------------------------------------------------------- +value '-1' '7fffffffffffffff' +refhex '1xFFFFFFFF' +pp_hex ' 1xFFFF' +refbin '1b11111111111111111111111111111111' +pp_bin ' 1b11111111' +pp_neg ' 0b00000000' +---------------------------------------------------------------------- +value '-2' '7ffffffffffffffe' +refhex '1xFFFFFFFE' +pp_hex ' 1xFFFE' +refbin '1b11111111111111111111111111111110' +pp_bin ' 1b11111110' +pp_neg ' 0b00000001' +---------------------------------------------------------------------- +value '-254' '7fffffffffffff02' +refhex '1xFFFFFF02' +pp_hex ' 1xFF02' +refbin '1b11111111111111111111111100000010' +pp_bin ' 1b00000010' +pp_neg ' 0b11111101' +---------------------------------------------------------------------- +value '-255' '7fffffffffffff01' +refhex '1xFFFFFF01' +pp_hex ' 1xFF01' +refbin '1b11111111111111111111111100000001' +pp_bin ' 1b00000001' +pp_neg ' 0b11111110' +---------------------------------------------------------------------- +value '-256' '7fffffffffffff00' +refhex '1xFFFFFF00' +pp_hex ' 1xFF00' +refbin '1b11111111111111111111111100000000' +pp_bin ' 1b00000000' +pp_neg ' 0b11111111' +---------------------------------------------------------------------- +value '-65534' '7fffffffffff0002' +refhex '1xFFFF0002' +pp_hex ' 1x0002' +refbin '1b11111111111111110000000000000010' +pp_bin ' 1b0000000000000010' +pp_neg ' 0b1111111111111101' +---------------------------------------------------------------------- +value '-65535' '7fffffffffff0001' +refhex '1xFFFF0001' +pp_hex ' 1x0001' +refbin '1b11111111111111110000000000000001' +pp_bin ' 1b0000000000000001' +pp_neg ' 0b1111111111111110' +---------------------------------------------------------------------- +value '-65536' '7fffffffffff0000' +refhex '1xFFFF0000' +pp_hex ' 1x0000' +refbin '1b11111111111111110000000000000000' +pp_bin ' 1b0000000000000000' +pp_neg ' 0b1111111111111111' +====================================================================== +Nbits: 10 Sep: "" +---------------------------------------------------------------------- +value '65335' 'ff37' +refhex '0x0000FF37' +pp_hex ' 0xFF37' +refbin '0b00000000000000001111111100110111' +pp_bin ' 0b1111111100110111' +pp_neg ' 1b0000000011001000' +---------------------------------------------------------------------- +value '65534' 'fffe' +refhex '0x0000FFFE' +pp_hex ' 0xFFFE' +refbin '0b00000000000000001111111111111110' +pp_bin ' 0b1111111111111110' +pp_neg ' 1b0000000000000001' +---------------------------------------------------------------------- +value '2' '2' +refhex '0x00000002' +pp_hex ' 0x0002' +refbin '0b00000000000000000000000000000010' +pp_bin ' 0b000000000010' +pp_neg ' 1b111111111101' +---------------------------------------------------------------------- +value '1' '1' +refhex '0x00000001' +pp_hex ' 0x0001' +refbin '0b00000000000000000000000000000001' +pp_bin ' 0b000000000001' +pp_neg ' 1b111111111110' +---------------------------------------------------------------------- +value '0' '0' +refhex '0x00000000' +pp_hex ' 0x0000' +refbin '0b00000000000000000000000000000000' +pp_bin ' 0b000000000000' +pp_neg ' 1b111111111111' +---------------------------------------------------------------------- +value '-1' '7fffffffffffffff' +refhex '1xFFFFFFFF' +pp_hex ' 1xFFFF' +refbin '1b11111111111111111111111111111111' +pp_bin ' 1b111111111111' +pp_neg ' 0b000000000000' +---------------------------------------------------------------------- +value '-2' '7ffffffffffffffe' +refhex '1xFFFFFFFE' +pp_hex ' 1xFFFE' +refbin '1b11111111111111111111111111111110' +pp_bin ' 1b111111111110' +pp_neg ' 0b000000000001' +---------------------------------------------------------------------- +value '-254' '7fffffffffffff02' +refhex '1xFFFFFF02' +pp_hex ' 1xFF02' +refbin '1b11111111111111111111111100000010' +pp_bin ' 1b111100000010' +pp_neg ' 0b000011111101' +---------------------------------------------------------------------- +value '-255' '7fffffffffffff01' +refhex '1xFFFFFF01' +pp_hex ' 1xFF01' +refbin '1b11111111111111111111111100000001' +pp_bin ' 1b111100000001' +pp_neg ' 0b000011111110' +---------------------------------------------------------------------- +value '-256' '7fffffffffffff00' +refhex '1xFFFFFF00' +pp_hex ' 1xFF00' +refbin '1b11111111111111111111111100000000' +pp_bin ' 1b111100000000' +pp_neg ' 0b000011111111' +---------------------------------------------------------------------- +value '-65534' '7fffffffffff0002' +refhex '1xFFFF0002' +pp_hex ' 1x0002' +refbin '1b11111111111111110000000000000010' +pp_bin ' 1b0000000000000010' +pp_neg ' 0b1111111111111101' +---------------------------------------------------------------------- +value '-65535' '7fffffffffff0001' +refhex '1xFFFF0001' +pp_hex ' 1x0001' +refbin '1b11111111111111110000000000000001' +pp_bin ' 1b0000000000000001' +pp_neg ' 0b1111111111111110' +---------------------------------------------------------------------- +value '-65536' '7fffffffffff0000' +refhex '1xFFFF0000' +pp_hex ' 1x0000' +refbin '1b11111111111111110000000000000000' +pp_bin ' 1b0000000000000000' +pp_neg ' 0b1111111111111111' +====================================================================== +Nbits: 10 Sep: "." +---------------------------------------------------------------------- +value '65335' 'ff37' +refhex '0x0000.FF37' +pp_hex ' 0xFF37' +refbin '0b0000.0000.0000.0000.1111.1111.0011.0111' +pp_bin ' 0b1111.1111.0011.0111' +pp_neg ' 1b0000.0000.1100.1000' +---------------------------------------------------------------------- +value '65534' 'fffe' +refhex '0x0000.FFFE' +pp_hex ' 0xFFFE' +refbin '0b0000.0000.0000.0000.1111.1111.1111.1110' +pp_bin ' 0b1111.1111.1111.1110' +pp_neg ' 1b0000.0000.0000.0001' +---------------------------------------------------------------------- +value '2' '2' +refhex '0x0000.0002' +pp_hex ' 0x0002' +refbin '0b0000.0000.0000.0000.0000.0000.0000.0010' +pp_bin ' 0b0000.0000.0010' +pp_neg ' 1b1111.1111.1101' +---------------------------------------------------------------------- +value '1' '1' +refhex '0x0000.0001' +pp_hex ' 0x0001' +refbin '0b0000.0000.0000.0000.0000.0000.0000.0001' +pp_bin ' 0b0000.0000.0001' +pp_neg ' 1b1111.1111.1110' +---------------------------------------------------------------------- +value '0' '0' +refhex '0x0000.0000' +pp_hex ' 0x0000' +refbin '0b0000.0000.0000.0000.0000.0000.0000.0000' +pp_bin ' 0b0000.0000.0000' +pp_neg ' 1b1111.1111.1111' +---------------------------------------------------------------------- +value '-1' '7fffffffffffffff' +refhex '1xFFFF.FFFF' +pp_hex ' 1xFFFF' +refbin '1b1111.1111.1111.1111.1111.1111.1111.1111' +pp_bin ' 1b1111.1111.1111' +pp_neg ' 0b0000.0000.0000' +---------------------------------------------------------------------- +value '-2' '7ffffffffffffffe' +refhex '1xFFFF.FFFE' +pp_hex ' 1xFFFE' +refbin '1b1111.1111.1111.1111.1111.1111.1111.1110' +pp_bin ' 1b1111.1111.1110' +pp_neg ' 0b0000.0000.0001' +---------------------------------------------------------------------- +value '-254' '7fffffffffffff02' +refhex '1xFFFF.FF02' +pp_hex ' 1xFF02' +refbin '1b1111.1111.1111.1111.1111.1111.0000.0010' +pp_bin ' 1b1111.0000.0010' +pp_neg ' 0b0000.1111.1101' +---------------------------------------------------------------------- +value '-255' '7fffffffffffff01' +refhex '1xFFFF.FF01' +pp_hex ' 1xFF01' +refbin '1b1111.1111.1111.1111.1111.1111.0000.0001' +pp_bin ' 1b1111.0000.0001' +pp_neg ' 0b0000.1111.1110' +---------------------------------------------------------------------- +value '-256' '7fffffffffffff00' +refhex '1xFFFF.FF00' +pp_hex ' 1xFF00' +refbin '1b1111.1111.1111.1111.1111.1111.0000.0000' +pp_bin ' 1b1111.0000.0000' +pp_neg ' 0b0000.1111.1111' +---------------------------------------------------------------------- +value '-65534' '7fffffffffff0002' +refhex '1xFFFF.0002' +pp_hex ' 1x0002' +refbin '1b1111.1111.1111.1111.0000.0000.0000.0010' +pp_bin ' 1b0000.0000.0000.0010' +pp_neg ' 0b1111.1111.1111.1101' +---------------------------------------------------------------------- +value '-65535' '7fffffffffff0001' +refhex '1xFFFF.0001' +pp_hex ' 1x0001' +refbin '1b1111.1111.1111.1111.0000.0000.0000.0001' +pp_bin ' 1b0000.0000.0000.0001' +pp_neg ' 0b1111.1111.1111.1110' +---------------------------------------------------------------------- +value '-65536' '7fffffffffff0000' +refhex '1xFFFF.0000' +pp_hex ' 1x0000' +refbin '1b1111.1111.1111.1111.0000.0000.0000.0000' +pp_bin ' 1b0000.0000.0000.0000' +pp_neg ' 0b1111.1111.1111.1111' +---------------------------------------------------------------------- +[kernel] Parsing tests/misc/pp_int.i (no preprocessing) diff --git a/tests/misc/oracle/pragma-pack.0.res.oracle b/tests/misc/oracle/pragma-pack.0.res.oracle index a4b6b6f72443e5031cb60101052565ee317f5ac7..a129933710ffda3e3a258680488c531640c4d6c6 100644 --- a/tests/misc/oracle/pragma-pack.0.res.oracle +++ b/tests/misc/oracle/pragma-pack.0.res.oracle @@ -1,5 +1,7 @@ [kernel] Parsing tests/misc/pragma-pack.c (with preprocessing) [kernel:typing:pragma] Pushing fc_stdlib stdint.h +[kernel:typing:pragma] Pushing fc_stdlib __fc_gcc_builtins.h +[kernel:typing:pragma] Popping fc_stdlib __fc_gcc_builtins.h [kernel:typing:pragma] Pushing fc_stdlib __fc_define_intptr_t.h [kernel:typing:pragma] Popping fc_stdlib __fc_define_intptr_t.h [kernel:typing:pragma] Popping fc_stdlib stdint.h diff --git a/tests/misc/oracle/save_comments.res.oracle b/tests/misc/oracle/save_comments.res.oracle index fa8ecc7b92399bcdf1721529af1bad62ab343057..939609307f205e0f994526ba6ebc2ea685f0989c 100644 --- a/tests/misc/oracle/save_comments.res.oracle +++ b/tests/misc/oracle/save_comments.res.oracle @@ -2,7 +2,8 @@ Printing default project first time: /* Generated by Frama-C */ /* run.config - OPT: -load-script tests/misc/save_comments.ml -keep-comments + EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs + OPT: -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs -keep-comments */ int f(void) { @@ -15,7 +16,8 @@ int f(void) Printing default project second time: /* Generated by Frama-C */ /* run.config - OPT: -load-script tests/misc/save_comments.ml -keep-comments + EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs + OPT: -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs -keep-comments */ int f(void) { @@ -34,7 +36,8 @@ End of comments Printing saved project: /* Generated by Frama-C */ /* run.config - OPT: -load-script tests/misc/save_comments.ml -keep-comments + EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs + OPT: -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs -keep-comments */ int f(void) { diff --git a/tests/misc/oracle/unroll_annots.res.oracle b/tests/misc/oracle/unroll_annots.res.oracle index 4c2129811bc179866cef585c0a1b34d1807ed194..0e37020e66540945660669098c29d1b237ecbb20 100644 --- a/tests/misc/oracle/unroll_annots.res.oracle +++ b/tests/misc/oracle/unroll_annots.res.oracle @@ -5,9 +5,9 @@ [eva:initial-state] Values of globals at initialization a[0..9] ∈ {0} b[0..9] ∈ {0} -[eva:loop-unrolling] tests/misc/unroll_annots.c:8: loop not completely unrolled +[eva:loop-unroll] tests/misc/unroll_annots.c:8: loop not completely unrolled [eva] tests/misc/unroll_annots.c:8: starting to merge loop iterations -[eva:loop-unrolling] tests/misc/unroll_annots.c:14: loop not completely unrolled +[eva:loop-unroll] tests/misc/unroll_annots.c:14: loop not completely unrolled [eva] tests/misc/unroll_annots.c:14: starting to merge loop iterations [eva] tests/misc/unroll_annots.c:16: starting to merge loop iterations [eva] Recording results for main diff --git a/tests/misc/oracle/version.res.oracle b/tests/misc/oracle/version.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..61e48a31ac52c036665f929dc09f396fce446ed5 --- /dev/null +++ b/tests/misc/oracle/version.res.oracle @@ -0,0 +1,2 @@ +[kernel] Parsing tests/misc/version.i (no preprocessing) +[kernel] version numbers match diff --git a/tests/misc/oracle/widen_hints.3.res.oracle b/tests/misc/oracle/widen_hints.3.res.oracle index 3902e2fed2a871e7dfd08da77f11ae43418d47a5..79d60b32b3b9badb829a55c05956c4d962637469 100644 --- a/tests/misc/oracle/widen_hints.3.res.oracle +++ b/tests/misc/oracle/widen_hints.3.res.oracle @@ -74,23 +74,23 @@ [eva:final-states] Values at end of function f: m ∈ {10} n ∈ {43} - t[0..87] ∈ {1} or UNINITIALIZED - [88..99] ∈ UNINITIALIZED + t[0..85] ∈ {1} or UNINITIALIZED + [86..99] ∈ UNINITIALIZED __retres ∈ {0} [eva:final-states] Values at end of function using_dynamic_global: b ∈ [0..88] [eva:final-states] Values at end of function main: m ∈ {10} n ∈ {43} - ss.i ∈ {87; 88} + ss.i ∈ {87} .d ∈ UNINITIALIZED - ip ∈ {87; 88} + ip ∈ {87} p ∈ {{ &ip }} - ip2 ∈ {87; 88} + ip2 ∈ {87} p2 ∈ {{ &ip2 }} pp ∈ {{ &p2 }} iarray[0] ∈ {0} - [1].i ∈ {87; 88} + [1].i ∈ {87} piarray[0] ∈ {{ &iarray[0] }} [1] ∈ {{ &iarray[1] }} outer_i ∈ {87} diff --git a/tests/misc/oracle/widen_hints2.0.res.oracle b/tests/misc/oracle/widen_hints2.0.res.oracle index b949a5fac96d9e63bed6787a4bc70ae584ef37b5..0840ecb088a0a4ba0d87e80332ef9e85938a5576 100644 --- a/tests/misc/oracle/widen_hints2.0.res.oracle +++ b/tests/misc/oracle/widen_hints2.0.res.oracle @@ -62,26 +62,25 @@ Called from tests/misc/widen_hints2.c:86. [eva] tests/misc/widen_hints2.c:34: starting to merge loop iterations [eva] tests/misc/widen_hints2.c:35: starting to merge loop iterations -[eva:alarm] tests/misc/widen_hints2.c:36: Warning: - accessing out of bounds index. assert kk < 100; [eva] Recording results for g [eva] Done for function g [eva] Recording results for main [eva] done for function main [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function f: - tf[0..87] ∈ {1} or UNINITIALIZED - [88..99] ∈ UNINITIALIZED + tf[0..85] ∈ {1} or UNINITIALIZED + [86..99] ∈ UNINITIALIZED m ∈ {10} n ∈ {43} [eva:final-states] Values at end of function g: - tg[0..99] ∈ {1} or UNINITIALIZED + tg[0..85] ∈ {1} or UNINITIALIZED + [86..99] ∈ UNINITIALIZED m ∈ {10} n ∈ {43} [eva:final-states] Values at end of function main: - t[0..87] ∈ {0; 1} - [88..99] ∈ {0} - glob ∈ [87..2147483647] + t[0..85] ∈ {0; 1} + [86..99] ∈ {0} + glob ∈ {87; 88} m ∈ {10} n ∈ {43} __retres ∈ {0} @@ -98,19 +97,19 @@ [from] Function g: NO EFFECTS [from] Function main: - t[0..87] FROM \nothing (and SELF) + t[0..85] FROM \nothing (and SELF) glob FROM \nothing \result FROM \nothing [from] ====== END OF DEPENDENCIES ====== [inout] Out (internal) for function f: - tf[0..87]; m; n; a; b + tf[0..85]; m; n; a; b [inout] Inputs for function f: \nothing [inout] Out (internal) for function g: - tg[0..99]; m; n; ll; kk + tg[0..85]; m; n; ll; kk [inout] Inputs for function g: \nothing [inout] Out (internal) for function main: - t[0..87]; glob; m; n; a; b; c; d; c_0; d_0; j; __retres + t[0..85]; glob; m; n; a; b; c; d; c_0; d_0; j; __retres [inout] Inputs for function main: glob diff --git a/tests/misc/plugin_log.ml b/tests/misc/plugin_log.ml index 9435dc63075455b936d8b4f57d201cb5a1f116de..b43fe6d2811838a7e59ce441063fbca14a0a3581 100644 --- a/tests/misc/plugin_log.ml +++ b/tests/misc/plugin_log.ml @@ -12,7 +12,9 @@ let main () = debug ~level:0 ~dkey "debug (level 0) with dkey"; debug ~level:0 "debug (level 0)"; warning "warning"; + (* temporarily disabled to avoid leaking version number in test oracle error "error"; - failure "failure" + failure "failure";*) + () let () = Db.Main.extend main diff --git a/tests/misc/pp_bin_hex.i b/tests/misc/pp_bin_hex.i new file mode 100644 index 0000000000000000000000000000000000000000..a53499be69922b6d91cd0d4926968829ccf22a93 --- /dev/null +++ b/tests/misc/pp_bin_hex.i @@ -0,0 +1,3 @@ +/* run.config + OPT: -no-autoload-plugins -load-script tests/misc/pp_bin_hex.ml +*/ diff --git a/tests/misc/pp_bin_hex.ml b/tests/misc/pp_bin_hex.ml new file mode 100644 index 0000000000000000000000000000000000000000..41ab2e6ab92ee1beef120983f3e307461ada4811 --- /dev/null +++ b/tests/misc/pp_bin_hex.ml @@ -0,0 +1,37 @@ +let pp_dec fmt z = Integer.pretty ~hexa:false fmt z +let pp_hex fmt z = Integer.pp_hex ~nbits:16 ~sep:"_" fmt z +let pp_bin fmt z = Integer.pp_bin ~nbits:8 ~sep:"_" fmt z + +let hrule () = + Format.printf "--------------------------------------------------@." + +let testcase z = + begin + hrule () ; + Format.printf "Dec. %a@." pp_dec z ; + Format.printf "Hex. %a@." pp_hex z ; + Format.printf "Bin. %a@." pp_bin z ; + end + +let () = + begin + List.iter + (fun z -> + testcase z ; + if not (Integer.equal z Integer.zero) then + testcase (Integer.neg z) + ) [ + Integer.of_string "0" ; + Integer.of_string "1" ; + Integer.of_string "2" ; + Integer.of_string "5" ; + Integer.of_string "9" ; + Integer.of_string "16" ; + Integer.of_string "127" ; + Integer.of_string "128" ; + Integer.of_string "0xFF" ; + Integer.of_string "0xFF0F000F" ; + Integer.of_string "0x17070007" ; + ] ; + hrule () ; + end diff --git a/tests/misc/pp_int.i b/tests/misc/pp_int.i new file mode 100644 index 0000000000000000000000000000000000000000..d6da6546ebd7eceeb7f3e589508b388adc949278 --- /dev/null +++ b/tests/misc/pp_int.i @@ -0,0 +1,4 @@ +/* run.config + COMMENT: test of Integer.pp_bin and Integer.pp_hex + OPT: -load-script tests/misc/pp_int.ml + */ diff --git a/tests/misc/pp_int.ml b/tests/misc/pp_int.ml new file mode 100644 index 0000000000000000000000000000000000000000..ef2d83bd0b7037492702c6398e5a7f2252c753c3 --- /dev/null +++ b/tests/misc/pp_int.ml @@ -0,0 +1,90 @@ +(* -------------------------------------------------------------------------- *) +(* --- Test for Integer.pp_int and Integer.pp_hex --- *) +(* -------------------------------------------------------------------------- *) + +let pp_bin_naive ~sep fmt x = + Format.pp_print_string fmt (if 0 <= x then "0b" else "1b") ; + for i = 31 downto 0 do + let b = (x land (1 lsl i)) <> 0 in + Format.pp_print_char fmt (if b then '1' else '0') ; + if i > 0 && i mod 4 = 0 then Format.pp_print_string fmt sep ; + done + +let pp_hex_naive ~sep fmt x = + let m = Printf.sprintf "%08X" x in + let n = String.length m in + let m = if n < 8 then m else String.sub m (n-8) 8 in + let n = String.length m in + Format.pp_print_string fmt (if 0 <= x then "0x" else "1x") ; + for i = n - 1 downto 0 do + Format.pp_print_char fmt m.[n-1-i] ; + if i > 0 && i mod 4 = 0 then Format.pp_print_string fmt sep ; + done + +let pp_bar fmt c = + Format.fprintf fmt "%s@\n" (String.make 70 c) + +let testvalue ~nbits ~sep ~tbin ~thex fmt x = + begin + let v = Integer.of_int x in + let v2 = Integer.(lognot v) in + pp_bar fmt '-' ; + Format.fprintf fmt "value '%d' '%x'@\n" x x ; + Format.fprintf fmt "refhex '%a'@\n" (pp_hex_naive ~sep) x ; + Format.fprintf fmt "pp_hex '%s%a'@\n" thex (Integer.pp_hex ~nbits ~sep) v ; + Format.fprintf fmt "refbin '%a'@\n" (pp_bin_naive ~sep) x ; + Format.fprintf fmt "pp_bin '%s%a'@\n" tbin (Integer.pp_bin ~nbits ~sep) v ; + Format.fprintf fmt "pp_neg '%s%a'@\n" tbin (Integer.pp_bin ~nbits ~sep) v2 ; + end + +let testdata data fmt = + begin + List.iter + (fun (nbits,sep,values) -> + pp_bar fmt '=' ; + Format.fprintf fmt "Nbits: %d Sep: %S@\n" nbits sep ; + List.iter + (fun (nhex,nbin,values) -> + let tbin = String.make nbin ' ' in + let thex = String.make nhex ' ' in + List.iter (testvalue ~nbits ~sep ~tbin ~thex fmt) values + ) values ; + ) data ; + pp_bar fmt '-' ; + end + +let () = + Format.printf "%t" + begin testdata [ + 0, "," , [ + 0 , 15 , [ 65537;65536 ] ; + 5 , 20 , [ 65335;65534 ] ; + 5 , 30 , [ 127;128;129 ] ; + 5 , 35 , [ 2;1;0;-1;-2;-3 ] ; + 5 , 30 , [ -126;-127;-128;-129;-130 ] ; + 5 , 30 , [ -254;-255;-256 ] ; + 5 , 25 , [ -257;-258 ] ; + 5 , 20 , [ -65534;-65535;-65536 ] ; + 0 , 15 , [ -65537;-65538 ] ; + ] ; + 8, "" , [ + 4 , 16 , [ 65335;65534 ] ; + 4 , 24 , [ 2;1;0;-1;-2 ] ; + 4 , 20 , [ -254;-255;-256 ] ; + 4 , 16 , [ -65534;-65535;-65536 ] ; + ] ; + 10, "" , [ + 4 , 16 , [ 65335;65534 ] ; + 4 , 20 , [ 2;1;0;-1;-2 ] ; + 4 , 20 , [ -254;-255;-256 ] ; + 4 , 16 , [ -65534;-65535;-65536 ] ; + ] ; + 10, "." , [ + 5 , 20 , [ 65335;65534 ] ; + 5 , 25 , [ 2;1;0;-1;-2 ] ; + 5 , 25 , [ -254;-255;-256 ] ; + 5 , 20 , [ -65534;-65535;-65536 ] ; + ] ; + ] + end + diff --git a/tests/misc/print_machdep.i b/tests/misc/print_machdep.i index 80afbbd20f335c72d597dbc6c45cf6e37d304c37..0762669acd646cdbd6257081b52f420d15c7e2b2 100644 --- a/tests/misc/print_machdep.i +++ b/tests/misc/print_machdep.i @@ -1,4 +1,3 @@ /* run.config - CMD: @frama-c@ -no-autoload-plugins - OPT: -print-machdep + OPT: -no-autoload-plugins -print-machdep */ diff --git a/tests/misc/remove_status_hyps.i b/tests/misc/remove_status_hyps.i index 65348944a6d4a5ede92bee270d3aa2c8352a3070..a436356626c8169ba8c349bf26bb5d2d31c72a52 100644 --- a/tests/misc/remove_status_hyps.i +++ b/tests/misc/remove_status_hyps.i @@ -1,5 +1,6 @@ /* run.config - OPT: -load-script tests/misc/remove_status_hyps.ml + EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs + OPT: -no-autoload-plugins -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs */ int main(void) { diff --git a/tests/misc/save_comments.i b/tests/misc/save_comments.i index 6ee3a950e34b306f68b62dc474d4a364156afafb..aaf7cccdef62fdaaaea56d6e6b5160163941eea4 100644 --- a/tests/misc/save_comments.i +++ b/tests/misc/save_comments.i @@ -1,8 +1,8 @@ /* run.config - OPT: -load-script tests/misc/save_comments.ml -keep-comments + EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs + OPT: -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs -keep-comments */ - int f() { int x = 0; /* Hello, I'm the f function */ diff --git a/tests/misc/static.i b/tests/misc/static.i index 4c5ea035b725324d3a71332ef52c1d4e2a78a5ad..b0863c3a2b3908f34f1bfe07919867975270aa3c 100644 --- a/tests/misc/static.i +++ b/tests/misc/static.i @@ -1,6 +1,6 @@ /* run.config EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs -OPT: -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs +OPT: -no-autoload-plugins -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs */ int x; diff --git a/tests/misc/test_datatype.i b/tests/misc/test_datatype.i index ffe2a11b457e9c4671e36a98bb2106a129035cd6..19405eb11ec4c3d5e608f535e9aeab5f595fb19a 100644 --- a/tests/misc/test_datatype.i +++ b/tests/misc/test_datatype.i @@ -1,4 +1,4 @@ /* run.config EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs -OPT: -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs +OPT: -no-autoload-plugins -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs */ diff --git a/tests/misc/version.i b/tests/misc/version.i new file mode 100644 index 0000000000000000000000000000000000000000..3a762af550b5fb818f962ec7d88d225747f95e50 --- /dev/null +++ b/tests/misc/version.i @@ -0,0 +1,4 @@ +/* run.config + EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs + OPT: -no-autoload-plugins -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs +*/ diff --git a/tests/misc/version.ml b/tests/misc/version.ml new file mode 100644 index 0000000000000000000000000000000000000000..2105830a936e06aa098150218820272fab0a82b7 --- /dev/null +++ b/tests/misc/version.ml @@ -0,0 +1,20 @@ +let re_version = Str.regexp "^\\([0-9]+\\)\\.\\([0-9]+\\)" + +let run () = + let version_str = Config.version in + if Str.string_match re_version version_str 0 then + let major = Str.matched_group 1 version_str in + let minor = Str.matched_group 2 version_str in + if major = string_of_int Config.major_version && + minor = string_of_int Config.minor_version + then + Kernel.feedback "version numbers match" + else + Kernel.abort + "error parsing major/minor version: expected %s.%s, got %d.%d" + major minor Config.major_version Config.minor_version + else + Kernel.abort + "could not parse Config.version" + +let () = Db.Main.extend run diff --git a/tests/misc/vis_queueInstr.i b/tests/misc/vis_queueInstr.i index f9f32820ed0dc77562cb2d9e938ec18c823d4a97..61fd2bb820de4616e9e18edfc2cd55a5eedd711b 100644 --- a/tests/misc/vis_queueInstr.i +++ b/tests/misc/vis_queueInstr.i @@ -1,6 +1,6 @@ /* run.config EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs -OPT: -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs -print -then-on A -print +OPT: -no-autoload-plugins -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs -print -then-on A -print */ int main(){ diff --git a/tests/misc/vis_spec.i b/tests/misc/vis_spec.i index 9515609a61d1cc5892d2bd348a2f5ffb61f4d9cd..c40858396b4be923663a262dc97a0cdc4b187771 100644 --- a/tests/misc/vis_spec.i +++ b/tests/misc/vis_spec.i @@ -1,5 +1,6 @@ /* run.config - OPT: -load-script tests/misc/vis_spec.ml + EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs + OPT: -no-autoload-plugins -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs */ //@ assigns \nothing; diff --git a/tests/misc/visitor_creates_func_bts_1349.i b/tests/misc/visitor_creates_func_bts_1349.i index 3fc9e30144b24c39aacd54b9183f1f5617cb66e7..a03c0cd1c45050418effd185243b6dff7a1f7e3e 100644 --- a/tests/misc/visitor_creates_func_bts_1349.i +++ b/tests/misc/visitor_creates_func_bts_1349.i @@ -1,5 +1,6 @@ /* run.config - OPT: -load-script tests/misc/Visitor_creates_func_bts_1349.ml -then-on test -print + EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs + OPT: -load-script @PTEST_DIR@/@PTEST_NAME@ -then-on test -print */ int a = 10; diff --git a/tests/misc/Visitor_creates_func_bts_1349.ml b/tests/misc/visitor_creates_func_bts_1349.ml similarity index 100% rename from tests/misc/Visitor_creates_func_bts_1349.ml rename to tests/misc/visitor_creates_func_bts_1349.ml diff --git a/tests/misc/well_typed_alarm.i b/tests/misc/well_typed_alarm.i index ec5f84df44fadd1ae56dfd540851c7dc198c0794..236200877af3a87006d77bafa01de09eef090645 100644 --- a/tests/misc/well_typed_alarm.i +++ b/tests/misc/well_typed_alarm.i @@ -1,7 +1,7 @@ /* run.config* -OPT: -load-script @PTEST_DIR@/@PTEST_NAME@.ml +EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs +OPT: -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs */ - int main(int c) { int x = 0; int y = 0; diff --git a/tests/misc/widen_hints2.c b/tests/misc/widen_hints2.c index 612db2d15cc4eb6b01e751ec823b8a97b76f7c99..bc457535df6b9a0d18e9f93e5a1767dbbaad438d 100644 --- a/tests/misc/widen_hints2.c +++ b/tests/misc/widen_hints2.c @@ -1,5 +1,5 @@ /* run.config - STDOPT: #"-value-msg-key widen-hints" + STDOPT: #"-eva-msg-key widen-hints" OPT: -print */ diff --git a/tests/occurrence/test_config b/tests/occurrence/test_config index f22f7514b6750309a344821da5ae2dbf3b96a368..5e291a6ae016a6564af7152faf5f6ea67f58a94f 100644 --- a/tests/occurrence/test_config +++ b/tests/occurrence/test_config @@ -1 +1 @@ -STDOPT: +"-load-module" +"occurrence" -"-val" -"-out" -"-input" -"-deps" +"-occurrence-verbose 1" +STDOPT: +"-load-module" +"occurrence" -"-eva" -"-out" -"-input" -"-deps" +"-occurrence-verbose 1" diff --git a/tests/pdg/annot.c b/tests/pdg/annot.c index b1dcaabf0101b01a631cc987b2b722500c8e2714..1136ec925f7905503b8d34225f28a36c26bc727b 100644 --- a/tests/pdg/annot.c +++ b/tests/pdg/annot.c @@ -1,6 +1,6 @@ /* run.config - OPT: -val-show-progress -fct-pdg f1 -main f1 -journal-disable -pdg-print -pdg-verbose 2 - OPT: -val-show-progress -fct-pdg loop -main loop -journal-disable -pdg-print -pdg-verbose 2 + OPT: -eva-show-progress -fct-pdg f1 -main f1 -journal-disable -pdg-print -pdg-verbose 2 + OPT: -eva-show-progress -fct-pdg loop -main loop -journal-disable -pdg-print -pdg-verbose 2 */ int G; diff --git a/tests/pdg/array_struct.i b/tests/pdg/array_struct.i index 5afe87fcacd1b6e2dc5bc0fecdf5cd067a6d8fbb..0e3fd525ed835d50fe5018c658001f11cb4a028c 100644 --- a/tests/pdg/array_struct.i +++ b/tests/pdg/array_struct.i @@ -1,5 +1,5 @@ /* run.config - OPT: -val-show-progress -pdg -pdg-print -journal-disable -pdg-verbose 2 + OPT: -eva-show-progress -pdg -pdg-print -journal-disable -pdg-verbose 2 */ typedef struct { diff --git a/tests/pdg/assigns.i b/tests/pdg/assigns.i index f2b32594b04f801ab21ffbbf43e911d37d5dd2f0..503e10488cc233382e59de4cd62e88b448d1c79d 100644 --- a/tests/pdg/assigns.i +++ b/tests/pdg/assigns.i @@ -1,5 +1,5 @@ /* run.config - OPT: -journal-disable -val-show-progress -pdg -pdg-print -calldeps -pdg-verbose 2 + OPT: -journal-disable -eva-show-progress -pdg -pdg-print -calldeps -pdg-verbose 2 */ unsigned int x, y; diff --git a/tests/pdg/bts1194.c b/tests/pdg/bts1194.c index b70937889103bdfc2735f0a696c81f18743b14ad..e15d6e043786ef739d7a114cf104a076ed79655f 100644 --- a/tests/pdg/bts1194.c +++ b/tests/pdg/bts1194.c @@ -1,5 +1,5 @@ /* run.config - OPT: -val -inout -val-show-progress -pdg -pdg-print -calldeps -deps -then -slice-return main -then-last -print -val-show-progress + OPT: -eva -inout -eva-show-progress -pdg -pdg-print -calldeps -deps -then -slice-return main -then-last -print -eva-show-progress */ int Y, X; diff --git a/tests/pdg/call.c b/tests/pdg/call.c index ffec257d8e32c489ed20f5804811cd701dc138c6..bfe8cd6149509df0ebed2afda1f4152ca0abe112 100644 --- a/tests/pdg/call.c +++ b/tests/pdg/call.c @@ -1,6 +1,6 @@ /* run.config GCC: - OPT: -lib-entry -main g -val-show-progress -pdg -pdg-dot tests/pdg/call -journal-disable -pdg-print -pdg-verbose 2 + OPT: -lib-entry -main g -eva-show-progress -pdg -pdg-dot tests/pdg/call -journal-disable -pdg-print -pdg-verbose 2 */ /* Ne pas modifier : exemple utilisé dans le rapport. */ diff --git a/tests/pdg/calls_and_implicits.c b/tests/pdg/calls_and_implicits.c index 64c5a1a75a450de74b4b31ee8add3725e940c9b7..32af2e6dd2fbde1f9a95ab6a39b67831373fc041 100644 --- a/tests/pdg/calls_and_implicits.c +++ b/tests/pdg/calls_and_implicits.c @@ -1,6 +1,6 @@ /* run.config * GCC: - * OPT: -val-show-progress -fct-pdg main -inout -journal-disable -pdg-print -pdg-verbose 2 + * OPT: -eva-show-progress -fct-pdg main -inout -journal-disable -pdg-print -pdg-verbose 2 * */ diff --git a/tests/pdg/calls_and_struct.c b/tests/pdg/calls_and_struct.c index 9fc0dfcdfb3a1b635775da0508ab2e72052e63d3..c1fcbdb79d3e346b6dfe9f5a75977417ebc957cd 100644 --- a/tests/pdg/calls_and_struct.c +++ b/tests/pdg/calls_and_struct.c @@ -1,6 +1,6 @@ /* run.config GCC: - OPT: -deps -input -out -inout -val-show-progress -pdg -journal-disable -pdg-print -pdg-verbose 2 + OPT: -deps -input -out -inout -eva-show-progress -pdg -journal-disable -pdg-print -pdg-verbose 2 */ struct Tstr { int a; int b; int c; }; diff --git a/tests/pdg/const.i b/tests/pdg/const.i index 620e5a7ccc93df3e8515531de470afb6be4989bc..9c1956934035c8bded2406550feebdfece92dd6d 100644 --- a/tests/pdg/const.i +++ b/tests/pdg/const.i @@ -1,5 +1,5 @@ /* run.config - STDOPT: #" -load-module pdg -calldeps -val-show-progress -pdg -pdg-print" + STDOPT: #" -load-module pdg -calldeps -eva-show-progress -pdg -pdg-print" */ struct T1 { diff --git a/tests/pdg/decl_dpds.c b/tests/pdg/decl_dpds.c index aab018fccbe0bcb048b89047e8264a37a70e1ccb..1b828df756d13f23651e22e1f50a2a28dc6d9e93 100644 --- a/tests/pdg/decl_dpds.c +++ b/tests/pdg/decl_dpds.c @@ -1,6 +1,6 @@ /* run.config GCC: - OPT: -val-show-progress -fct-pdg main -journal-disable -pdg-print -pdg-verbose 2 + OPT: -eva-show-progress -fct-pdg main -journal-disable -pdg-print -pdg-verbose 2 */ extern int G; diff --git a/tests/pdg/doc_dot.c b/tests/pdg/doc_dot.c index b67d482f569da84dff713e448e37181bdba8d998..965debeac4e9952cb61d6d64d841ae46fd779553 100644 --- a/tests/pdg/doc_dot.c +++ b/tests/pdg/doc_dot.c @@ -1,5 +1,5 @@ /* run.config - OPT: -lib-entry -main g -val-show-progress -fct-pdg g -pdg-dot tests/pdg/doc -journal-disable -pdg-print -pdg-verbose 2 + OPT: -lib-entry -main g -eva-show-progress -fct-pdg g -pdg-dot tests/pdg/doc -journal-disable -pdg-print -pdg-verbose 2 */ /* To build the svg file: * dot -Tsvg tests/pdg/doc.g.dot > tests/pdg/doc.g.svg diff --git a/tests/pdg/dpds_intra.c b/tests/pdg/dpds_intra.c index e3f0fefa2a8dc5673af08a534854c4465b16da44..b666b2cb330b17b636ed245c9f2adfe7ea70ab47 100644 --- a/tests/pdg/dpds_intra.c +++ b/tests/pdg/dpds_intra.c @@ -1,18 +1,18 @@ /* run.config GCC: - OPT: -val-show-progress -fct-pdg test_struct -journal-disable -pdg-print -pdg-verbose 2 - OPT: -val-show-progress -fct-pdg test_if_simple -journal-disable -pdg-print -pdg-verbose 2 - OPT: -val-show-progress -fct-pdg test_goto_simple -journal-disable -pdg-print -pdg-verbose 2 - OPT: -val-show-progress -fct-pdg test_goto_arriere -journal-disable -pdg-print -pdg-verbose 2 - OPT: -val-show-progress -fct-pdg test_goto_else -journal-disable -pdg-print -pdg-verbose 2 + OPT: -eva-show-progress -fct-pdg test_struct -journal-disable -pdg-print -pdg-verbose 2 + OPT: -eva-show-progress -fct-pdg test_if_simple -journal-disable -pdg-print -pdg-verbose 2 + OPT: -eva-show-progress -fct-pdg test_goto_simple -journal-disable -pdg-print -pdg-verbose 2 + OPT: -eva-show-progress -fct-pdg test_goto_arriere -journal-disable -pdg-print -pdg-verbose 2 + OPT: -eva-show-progress -fct-pdg test_goto_else -journal-disable -pdg-print -pdg-verbose 2 OPT: -main test_ctrl_dpd_multiple -journal-disable -pdg-print -pdg-verbose 2 => ne passe pas - OPT: -val-show-progress -fct-pdg test_simple_loop -journal-disable -pdg-print -pdg-verbose 2 - OPT: -val-show-progress -fct-pdg main -journal-disable -pdg-print -pdg-verbose 2 - OPT: -val-show-progress -fct-pdg multiple_global_inputs -journal-disable -pdg-print -pdg-verbose 2 + OPT: -eva-show-progress -fct-pdg test_simple_loop -journal-disable -pdg-print -pdg-verbose 2 + OPT: -eva-show-progress -fct-pdg main -journal-disable -pdg-print -pdg-verbose 2 + OPT: -eva-show-progress -fct-pdg multiple_global_inputs -journal-disable -pdg-print -pdg-verbose 2 */ /* bin/toplevel.opt -deps -main g tests/slicing/dpds_intra.c */ -/* bin/toplevel.opt -val-show-progress -fct-pdg test_goto_simple tests/slicing/dpds_intra.c -pdg-dot */ +/* bin/toplevel.opt -eva-show-progress -fct-pdg test_goto_simple tests/slicing/dpds_intra.c -pdg-dot */ extern int G; @@ -81,7 +81,7 @@ int test_goto_else (void) { } /* ne passe pas l'analyse de valeur (bouclage) -./bin/toplevel.opt -val -main test_ctrl_dpd_multiple tests/slicing/dpds_intra.c +./bin/toplevel.opt -eva -main test_ctrl_dpd_multiple tests/slicing/dpds_intra.c * cf. mail Pascal Re: loop_pragma UNROLL_LOOP du 09.05.2006 15:03 */ int test_ctrl_dpd_multiple (void) { int x = 0; diff --git a/tests/pdg/dyn_dpds.c b/tests/pdg/dyn_dpds.c index 85418f85a1ba95f043f60eda69b53adac4c050d1..20168cf1621c6ed2ae366c5dc958e353dd524c74 100644 --- a/tests/pdg/dyn_dpds.c +++ b/tests/pdg/dyn_dpds.c @@ -1,17 +1,17 @@ /* run.config - OPT: -load-script tests/pdg/dyn_dpds.ml -val-show-progress -deps -journal-disable -pdg-print -pdg-verbose 2 + EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs + OPT: -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs -eva-show-progress -deps -journal-disable -pdg-print -pdg-verbose 2 */ /* To have a look at the dot PDG : - bin/toplevel.byte -deps -pdg-dot pdg -val-show-progress -fct-pdg main tests/pdg/dyn_dpds.c ; + bin/toplevel.byte -deps -pdg-dot pdg -eva-show-progress -fct-pdg main @PTEST_DIR@/@PTEST_NAME@.c ; zgrviewer pdg.main.dot - or use tests/pdg/dyn_dpds.ml to test the dynamic dependencies. + or use @PTEST_DIR@/@PTEST_NAME@.ml to test the dynamic dependencies. */ - int G; int main (int a, int b, int c) { diff --git a/tests/pdg/inter_alias.c b/tests/pdg/inter_alias.c index 75ca41afb7237cf6e6ececd13b1d82de2f3ec77e..27905687fb90b24bf73ca2c3eb45f1d9544d9c07 100644 --- a/tests/pdg/inter_alias.c +++ b/tests/pdg/inter_alias.c @@ -1,6 +1,6 @@ /* run.config GCC: - OPT: -val -out -input -calldeps -val-show-progress -pdg -journal-disable -pdg-print -pdg-verbose 2 + OPT: -eva -out -input -calldeps -eva-show-progress -pdg -journal-disable -pdg-print -pdg-verbose 2 */ int G; diff --git a/tests/pdg/inter_alias2.c b/tests/pdg/inter_alias2.c index 2bc7dbaf71e2297b37b7446fb2c595303ac51134..6ebda529c9d1fa089c338c2544aaf928b9f6eef1 100644 --- a/tests/pdg/inter_alias2.c +++ b/tests/pdg/inter_alias2.c @@ -1,9 +1,9 @@ /* run.config * GCC: - * OPT: -val-show-progress -val -journal-disable -pdg-print -pdg-verbose 2 - * OPT: -calldeps -val-show-progress -fct-pdg incr_ptr -journal-disable -pdg-print -pdg-verbose 2 - * OPT: -calldeps -val-show-progress -fct-pdg f1 -journal-disable -pdg-print -pdg-verbose 2 - * OPT: -calldeps -val-show-progress -fct-pdg f2 -journal-disable -pdg-print -pdg-verbose 2 + * OPT: -eva-show-progress -eva -journal-disable -pdg-print -pdg-verbose 2 + * OPT: -calldeps -eva-show-progress -fct-pdg incr_ptr -journal-disable -pdg-print -pdg-verbose 2 + * OPT: -calldeps -eva-show-progress -fct-pdg f1 -journal-disable -pdg-print -pdg-verbose 2 + * OPT: -calldeps -eva-show-progress -fct-pdg f2 -journal-disable -pdg-print -pdg-verbose 2 */ void incr_ptr (int *p) { *p += 1; diff --git a/tests/pdg/loops.c b/tests/pdg/loops.c index 093f8e4ea82ff5165cf08266e91ecb4ec3ef839c..394600f8f530bf2aeb0865589765ce4f66dff973 100644 --- a/tests/pdg/loops.c +++ b/tests/pdg/loops.c @@ -1,14 +1,14 @@ /* run.config GCC: - OPT: -lib-entry -main simple -val-show-progress -fct-pdg simple -journal-disable -pdg-print -pdg-verbose 2 - OPT: -lib-entry -main simple_with_break -val-show-progress -fct-pdg simple_with_break -journal-disable -pdg-print -pdg-verbose 2 - OPT: -lib-entry -main infinite -val-show-progress -fct-pdg infinite -journal-disable -pdg-print -pdg-verbose 2 - OPT: -lib-entry -main infinite2 -val-show-progress -fct-pdg infinite2 -journal-disable -pdg-print -pdg-verbose 2 - OPT: -lib-entry -main maybe_infinite -val-show-progress -fct-pdg maybe_infinite -journal-disable -pdg-print -pdg-verbose 2 - OPT: -lib-entry -main two_infinite_loops -val-show-progress -fct-pdg two_infinite_loops -journal-disable -pdg-print -pdg-verbose 2 - OPT: -lib-entry -main loop_with_goto -val-show-progress -fct-pdg loop_with_goto -journal-disable -pdg-print -pdg-verbose 2 - OPT: -lib-entry -main non_natural_loop -val-show-progress -fct-pdg non_natural_loop -journal-disable -pdg-print -pdg-verbose 2 - OPT: -lib-entry -main dead_code -val-show-progress -fct-pdg dead_code -journal-disable -pdg-print -pdg-verbose 2 + OPT: -lib-entry -main simple -eva-show-progress -fct-pdg simple -journal-disable -pdg-print -pdg-verbose 2 + OPT: -lib-entry -main simple_with_break -eva-show-progress -fct-pdg simple_with_break -journal-disable -pdg-print -pdg-verbose 2 + OPT: -lib-entry -main infinite -eva-show-progress -fct-pdg infinite -journal-disable -pdg-print -pdg-verbose 2 + OPT: -lib-entry -main infinite2 -eva-show-progress -fct-pdg infinite2 -journal-disable -pdg-print -pdg-verbose 2 + OPT: -lib-entry -main maybe_infinite -eva-show-progress -fct-pdg maybe_infinite -journal-disable -pdg-print -pdg-verbose 2 + OPT: -lib-entry -main two_infinite_loops -eva-show-progress -fct-pdg two_infinite_loops -journal-disable -pdg-print -pdg-verbose 2 + OPT: -lib-entry -main loop_with_goto -eva-show-progress -fct-pdg loop_with_goto -journal-disable -pdg-print -pdg-verbose 2 + OPT: -lib-entry -main non_natural_loop -eva-show-progress -fct-pdg non_natural_loop -journal-disable -pdg-print -pdg-verbose 2 + OPT: -lib-entry -main dead_code -eva-show-progress -fct-pdg dead_code -journal-disable -pdg-print -pdg-verbose 2 @@ -24,11 +24,11 @@ bin/toplevel.opt -lib-entry -main $F -deps -verbose tests/pdg/loops.c zgrviewer ./$F_cfg.dot Pour voir les postdominateurs : -bin/toplevel.opt -lib-entry -main $F -val-show-progress -fct-pdg $F -dot-postdom p tests/pdg/loops.c ; +bin/toplevel.opt -lib-entry -main $F -eva-show-progress -fct-pdg $F -dot-postdom p tests/pdg/loops.c ; zgrviewer ./p.$F.dot Pour voir le PDG : -bin/toplevel.opt -lib-entry -main $F -val-show-progress -fct-pdg $F -pdg-dot pdg tests/pdg/loops.c ; +bin/toplevel.opt -lib-entry -main $F -eva-show-progress -fct-pdg $F -pdg-dot pdg tests/pdg/loops.c ; zgrviewer ./pdg.$F.dot */ diff --git a/tests/pdg/multiple_calls.c b/tests/pdg/multiple_calls.c index d795a5ed7da9992b402008d4c510b5d8d01c8eeb..d1e88beaab55080c0d158b35d64132b66967ec84 100644 --- a/tests/pdg/multiple_calls.c +++ b/tests/pdg/multiple_calls.c @@ -1,7 +1,7 @@ /* run.config GCC: - OPT: -inout -deps -main appel_ptr_fct -val-show-progress -fct-pdg appel_ptr_fct -journal-disable -pdg-print -pdg-verbose 2 - OPT: -inout -deps -main appel_ptr_fct_bis -val-show-progress -fct-pdg appel_ptr_fct_bis -journal-disable -pdg-print -pdg-verbose 2 + OPT: -inout -deps -main appel_ptr_fct -eva-show-progress -fct-pdg appel_ptr_fct -journal-disable -pdg-print -pdg-verbose 2 + OPT: -inout -deps -main appel_ptr_fct_bis -eva-show-progress -fct-pdg appel_ptr_fct_bis -journal-disable -pdg-print -pdg-verbose 2 */ extern int G1, G2, G3, G4; diff --git a/tests/pdg/no_body.c b/tests/pdg/no_body.c index afa48a8f740b31369ec192c072b5e019ff26e692..83b2ee049bc248c43890f1b30dfff1f97ed35ad1 100644 --- a/tests/pdg/no_body.c +++ b/tests/pdg/no_body.c @@ -1,9 +1,9 @@ /* run.config * GCC: -* OPT: -val-show-progress -fct-pdg main -inout -journal-disable -pdg-print -pdg-verbose 2 +* OPT: -eva-show-progress -fct-pdg main -inout -journal-disable -pdg-print -pdg-verbose 2 */ /* - * ledit bin/toplevel.top tests/slicing/no_body.c -val-show-progress -fct-pdg main + * ledit bin/toplevel.top tests/slicing/no_body.c -eva-show-progress -fct-pdg main * #use "tests/slicing/select.ml";; * test "loop" (select_data "G");; */ diff --git a/tests/pdg/pb_infinite_loop.c b/tests/pdg/pb_infinite_loop.c index df38c001d2b16f3771f40a35f9797a1071db488e..5274ab98727de0b80ab9cb441bedf48e87f557b1 100644 --- a/tests/pdg/pb_infinite_loop.c +++ b/tests/pdg/pb_infinite_loop.c @@ -1,8 +1,8 @@ /* run.config GCC: - OPT: -main test_infinite_loop -val-show-progress -fct-pdg test_infinite_loop -journal-disable -pdg-print -pdg-verbose 2 - OPT: -main test_infinite_loop_2 -val-show-progress -fct-pdg test_infinite_loop_2 -journal-disable -pdg-print -pdg-verbose 2 - OPT: -main test_exit -val-show-progress -fct-pdg test_exit -journal-disable -pdg-print -pdg-verbose 2 + OPT: -main test_infinite_loop -eva-show-progress -fct-pdg test_infinite_loop -journal-disable -pdg-print -pdg-verbose 2 + OPT: -main test_infinite_loop_2 -eva-show-progress -fct-pdg test_infinite_loop_2 -journal-disable -pdg-print -pdg-verbose 2 + OPT: -main test_exit -eva-show-progress -fct-pdg test_exit -journal-disable -pdg-print -pdg-verbose 2 */ /* This test is a problem at the moment because the postdominators are Top diff --git a/tests/pdg/postdom.c b/tests/pdg/postdom.c index 69be6b586656d04c45453b062be3b7fe0a3ac6a0..b6b0cddc3dfc19e991542c930a7d627ad4cf7c2a 100644 --- a/tests/pdg/postdom.c +++ b/tests/pdg/postdom.c @@ -1,5 +1,5 @@ /* run.config - OPT: -val-show-progress -pdg -journal-disable -pdg-print -pdg-verbose 2 + OPT: -eva-show-progress -pdg -journal-disable -pdg-print -pdg-verbose 2 */ diff --git a/tests/pdg/sets.c b/tests/pdg/sets.c index 1f14a0d3acfc3ee80b74e496947756176db24c27..3efc61ce72bd3318339f327989bcf123587acb84 100644 --- a/tests/pdg/sets.c +++ b/tests/pdg/sets.c @@ -1,9 +1,9 @@ /* run.config - OPT: -val-show-progress -load-script tests/pdg/sets.ml -lib-entry -main f -pdg -inout -journal-disable -pdg-print -pdg-verbose 2 + EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs + OPT: -eva-show-progress -load-module @PTEST_DIR@/@PTEST_NAME@ -lib-entry -main f -pdg -inout -journal-disable -pdg-print -pdg-verbose 2 */ - int b, c, x, y, z, t; void f(int a) { y = 0; // 1, node 9 diff --git a/tests/pdg/simple_call.c b/tests/pdg/simple_call.c index a8ea48f0aa1f0aebc204a89e6c1ea3fb2da80a15..6997c09cc1d323b6984d2bdca9ce6c188dde8687 100644 --- a/tests/pdg/simple_call.c +++ b/tests/pdg/simple_call.c @@ -1,9 +1,9 @@ /* run.config GCC: - OPT: -val-show-progress -fct-pdg main -journal-disable -pdg-print -pdg-verbose 2 - OPT: -main call_in_loop -val-show-progress -fct-pdg call_in_loop -journal-disable -pdg-print -pdg-verbose 2 - OPT: -main call_mix_G1_G2 -val-show-progress -fct-pdg call_mix_G1_G2 -journal-disable -pdg-print -pdg-verbose 2 - OPT: -main call_multiple_global_outputs -val-show-progress -fct-pdg call_multiple_global_outputs -journal-disable -pdg-print -pdg-verbose 2 + OPT: -eva-show-progress -fct-pdg main -journal-disable -pdg-print -pdg-verbose 2 + OPT: -main call_in_loop -eva-show-progress -fct-pdg call_in_loop -journal-disable -pdg-print -pdg-verbose 2 + OPT: -main call_mix_G1_G2 -eva-show-progress -fct-pdg call_mix_G1_G2 -journal-disable -pdg-print -pdg-verbose 2 + OPT: -main call_multiple_global_outputs -eva-show-progress -fct-pdg call_multiple_global_outputs -journal-disable -pdg-print -pdg-verbose 2 */ extern int G, G1, G2; diff --git a/tests/pdg/simple_intra_slice.c b/tests/pdg/simple_intra_slice.c index bfef2ae0175711244d8cfbaf43e70db2f14b4468..2ea6f3ee9d84a7a4373c024cb7cc3452c587dc7c 100644 --- a/tests/pdg/simple_intra_slice.c +++ b/tests/pdg/simple_intra_slice.c @@ -1,6 +1,6 @@ /* run.config GCC: - OPT: -val-show-progress -pdg -journal-disable -pdg-print -pdg-verbose 2 + OPT: -eva-show-progress -pdg -journal-disable -pdg-print -pdg-verbose 2 */ /* test conçu initialement comme test pour le slicing */ int Unknown; diff --git a/tests/pdg/top_pdg_input.c b/tests/pdg/top_pdg_input.c index 528a71f8890db658178b96457b55ef1675f7e266..f999edabbd24a749e919aa79c6f98c54848191f6 100644 --- a/tests/pdg/top_pdg_input.c +++ b/tests/pdg/top_pdg_input.c @@ -1,5 +1,5 @@ /* run.config - STDOPT: +"-no-results-function no_results -no-val-builtins-auto -load-module pdg -pdg -journal-disable -pdg-print -pdg-verbose 2 -then -main main_asm" + STDOPT: +"-no-results-function no_results -eva-no-builtins-auto -load-module pdg -pdg -journal-disable -pdg-print -pdg-verbose 2 -then -main main_asm" */ volatile int nondet; int no_results() {return 1;} diff --git a/tests/pdg/variadic.c b/tests/pdg/variadic.c index ab7d3a04389987c2ead14228d228f35880c47476..10ce0d25095ba3ab1744b32ea7c8ab13b630ebd0 100644 --- a/tests/pdg/variadic.c +++ b/tests/pdg/variadic.c @@ -1,5 +1,5 @@ /* run.config -* OPT: -val-show-progress -pdg -journal-disable -pdg-print -pdg-verbose 2 +* OPT: -eva-show-progress -pdg -journal-disable -pdg-print -pdg-verbose 2 */ // __builtin_va_start and co do not appear in PDG output because Value forgets to register them in the table of called functions. This is a bug of Value diff --git a/tests/rte/precond2.c b/tests/rte/precond2.c index 2c3844e757435034d26935ecf9cfd2dcc952e029..72d360e0d96667335f976b60727fdeb9843b965c 100644 --- a/tests/rte/precond2.c +++ b/tests/rte/precond2.c @@ -1,5 +1,6 @@ /* run.config - OPT: -warn-special-float none -load-script tests/rte/compute_annot/compute_annot.ml -journal-disable + EXECNOW: make -s @PTEST_DIR@/compute_annot/compute_annot.cmxs + OPT: -warn-special-float none -load-module @PTEST_DIR@/compute_annot/compute_annot -journal-disable */ int global = 15; diff --git a/tests/rte/threefunc.c b/tests/rte/threefunc.c index 44aa8d37cd24c7e8fbd3027e21a2ead6d43c24d6..03b2ad3b373fd5dcc26253574999f9bccfa59a30 100644 --- a/tests/rte/threefunc.c +++ b/tests/rte/threefunc.c @@ -1,5 +1,6 @@ /* run.config -OPT: -load-script tests/rte/my_annotation/my_annotation.ml +EXECNOW: make -s @PTEST_DIR@/my_annotation/my_annotation.cmxs +OPT: -load-module @PTEST_DIR@/my_annotation/my_annotation */ diff --git a/tests/rte/twofunc.c b/tests/rte/twofunc.c index 38ce35dac65ffdac7071447de3145e63aa84bed7..2732ad9f1f99b79c79b2f9450870d3904a69cd71 100644 --- a/tests/rte/twofunc.c +++ b/tests/rte/twofunc.c @@ -1,5 +1,6 @@ /* run.config -OPT: -load-script tests/rte/my_annot_proxy/my_annot_proxy.ml +EXECNOW: make -s @PTEST_DIR@/my_annot_proxy/my_annot_proxy.cmxs +OPT: -load-module @PTEST_DIR@/my_annot_proxy/my_annot_proxy */ diff --git a/tests/rte/twofunc3.c b/tests/rte/twofunc3.c index 8894e7cbee4a51fb176dc870a4302db5171ae2ad..b7102aaf7086db45e0bfbf0924a346a8edab1bcb 100644 --- a/tests/rte/twofunc3.c +++ b/tests/rte/twofunc3.c @@ -1,5 +1,6 @@ /* run.config - OPT: -load-script tests/rte/rte_api/rte_get_annot.ml -journal-disable + EXECNOW: make -s @PTEST_DIR@/rte_api/rte_get_annot.cmxs + OPT: -load-module @PTEST_DIR@/rte_api/rte_get_annot -journal-disable */ diff --git a/tests/rte/value_rte.c b/tests/rte/value_rte.c index 003581e4bb36832f65671b69754832eed22c14e1..a1ae69841b33ab5c06307eb0f2bdf5446d61e0ea 100644 --- a/tests/rte/value_rte.c +++ b/tests/rte/value_rte.c @@ -1,5 +1,5 @@ /* run.config -OPT: -rte -then -val-show-progress -val -then -report +OPT: -rte -then -eva-show-progress -eva -then -report */ #include "stdio.h" diff --git a/tests/saveload/basic.i b/tests/saveload/basic.i index 2b2346b07ab84c9eecb6a02e7a388768e48a7c04..e0d5d8f8b74aa58031d88339800120da3fb0c659 100644 --- a/tests/saveload/basic.i +++ b/tests/saveload/basic.i @@ -1,13 +1,14 @@ /* run.config - EXECNOW: make -s ./tests/saveload/basic.cmxs - EXECNOW: LOG basic_sav.res LOG basic_sav.err BIN basic.sav @frama-c@ -load-module ./tests/saveload/basic -val -out -input -deps -val-show-progress ./tests/saveload/basic.i -save ./tests/saveload/result/basic.sav > ./tests/saveload/result/basic_sav.res 2> ./tests/saveload/result/basic_sav.err - EXECNOW: LOG basic_sav.1.res LOG basic_sav.1.err BIN basic.1.sav ./bin/toplevel.opt -save ./tests/saveload/result/basic.1.sav ./tests/saveload/basic.i -val -out -input -deps -val-show-progress > ./tests/saveload/result/basic_sav.1.res 2> ./tests/saveload/result/basic_sav.1.err - OPT: -load ./tests/saveload/result/basic.sav -val -out -input -deps -journal-disable - CMD: @frama-c@ -load-module ./tests/saveload/basic - OPT: -load ./tests/saveload/result/basic.1.sav -val -out -input -deps -journal-disable -print - OPT: -load ./tests/saveload/result/basic.1.sav -val -out -input -deps -journal-disable - EXECNOW: LOG status_sav.res LOG status_sav.err BIN status.sav @frama-c@ -load-script tests/saveload/status.ml -save ./tests/saveload/result/status.sav ./tests/saveload/basic.i > ./tests/saveload/result/status_sav.res 2> ./tests/saveload/result/status_sav.err - OPT: -load-script tests/saveload/status.ml -load ./tests/saveload/result/status.sav + EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs + EXECNOW: LOG basic_sav.res LOG basic_sav.err BIN basic.sav @frama-c@ -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs -eva -out -input -deps -eva-show-progress ./@PTEST_DIR@/@PTEST_NAME@.i -save ./tests/saveload/result/basic.sav > ./tests/saveload/result/basic_sav.res 2> ./tests/saveload/result/basic_sav.err + EXECNOW: LOG basic_sav.1.res LOG basic_sav.1.err BIN basic.1.sav ./bin/toplevel.opt -save ./tests/saveload/result/basic.1.sav @PTEST_DIR@/@PTEST_NAME@.i -eva -out -input -deps -eva-show-progress > ./tests/saveload/result/basic_sav.1.res 2> ./tests/saveload/result/basic_sav.1.err + OPT: -load ./tests/saveload/result/basic.sav -eva -out -input -deps -journal-disable + CMD: @frama-c@ -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs + OPT: -load ./tests/saveload/result/basic.1.sav -eva -out -input -deps -journal-disable -print + OPT: -load ./tests/saveload/result/basic.1.sav -eva -out -input -deps -journal-disable + EXECNOW: make -s @PTEST_DIR@/status.cmxs + EXECNOW: LOG status_sav.res LOG status_sav.err BIN status.sav @frama-c@ -load-module @PTEST_DIR@/status -save ./tests/saveload/result/status.sav @PTEST_DIR@/@PTEST_NAME@.i > ./tests/saveload/result/status_sav.res 2> ./tests/saveload/result/status_sav.err + OPT: -load-module @PTEST_DIR@/status -load ./tests/saveload/result/status.sav OPT: -load ./tests/saveload/result/status.sav */ diff --git a/tests/saveload/bool.c b/tests/saveload/bool.c index c4a01f42f2b48144273f49f9f7b0ed288bfe8a64..f202c7f7fda49ce59e6127ef60e39f992ed8741c 100644 --- a/tests/saveload/bool.c +++ b/tests/saveload/bool.c @@ -1,7 +1,7 @@ /* run.config - EXECNOW: BIN bool.sav LOG bool_sav.res LOG bool_sav.err ./bin/toplevel.opt -save ./tests/saveload/result/bool.sav -val -val-show-progress ./tests/saveload/bool.c > tests/saveload/result/bool_sav.res 2> tests/saveload/result/bool_sav.err + EXECNOW: BIN bool.sav LOG bool_sav.res LOG bool_sav.err ./bin/toplevel.opt -save ./tests/saveload/result/bool.sav -eva -eva-show-progress ./tests/saveload/bool.c > tests/saveload/result/bool_sav.res 2> tests/saveload/result/bool_sav.err OPT: -load ./tests/saveload/result/bool.sav -out -input -deps - OPT: -load ./tests/saveload/result/bool.sav -val + OPT: -load ./tests/saveload/result/bool.sav -eva */ #include "stdbool.h" diff --git a/tests/saveload/callbacks.i b/tests/saveload/callbacks.i index c4293481b869411e4b839908dbab04ce3dd3423a..eaac5742247a0274a6b92b9395534e72d3966cde 100644 --- a/tests/saveload/callbacks.i +++ b/tests/saveload/callbacks.i @@ -1,5 +1,5 @@ /* run.config - EXECNOW: LOG callbacks_initial.res LOG callbacks_initial.err BIN callbacks.sav ./bin/toplevel.opt tests/saveload/callbacks.i -out -calldeps -val-show-progress -main main1 -save ./tests/saveload/result/callbacks.sav > ./tests/saveload/result/callbacks_initial.res 2> ./tests/saveload/result/callbacks_initial.err + EXECNOW: LOG callbacks_initial.res LOG callbacks_initial.err BIN callbacks.sav ./bin/toplevel.opt tests/saveload/callbacks.i -out -calldeps -eva-show-progress -main main1 -save ./tests/saveload/result/callbacks.sav > ./tests/saveload/result/callbacks_initial.res 2> ./tests/saveload/result/callbacks_initial.err OPT: -load ./tests/saveload/result/callbacks.sav -main main2 -then -main main3 */ diff --git a/tests/saveload/deps.i b/tests/saveload/deps.i index c4fbc356265879ff0a970eb8951212fc916e92f0..9999d8a8912bf249be9b7cac48fd1279a14b9fe3 100644 --- a/tests/saveload/deps.i +++ b/tests/saveload/deps.i @@ -1,11 +1,11 @@ /* run.config EXECNOW: make -s ./tests/saveload/deps_A.cmxs ./tests/saveload/deps_B.cmxs ./tests/saveload/deps_C.cmxs ./tests/saveload/deps_D.cmxs ./tests/saveload/deps_E.cmxs - EXECNOW: LOG deps_sav.res LOG deps_sav.err BIN deps.sav @frama-c@ -load-module ./tests/saveload/deps_A.cmxs -val -out -input -deps -val-show-progress ./tests/saveload/deps.i -save ./tests/saveload/result/deps.sav > ./tests/saveload/result/deps_sav.res 2> ./tests/saveload/result/deps_sav.err - OPT: -load-module ./tests/saveload/deps_A -load ./tests/saveload/result/deps.sav -val -out -input -deps -val-show-progress - OPT: -load-module ./tests/saveload/deps_B -load ./tests/saveload/result/deps.sav -out -input -deps -val-show-progress - OPT: -load-module ./tests/saveload/deps_C -load ./tests/saveload/result/deps.sav -out -input -deps -val-show-progress - OPT: -load-module ./tests/saveload/deps_D -load ./tests/saveload/result/deps.sav -out -input -deps -val-show-progress - OPT: -load-module ./tests/saveload/deps_E -load ./tests/saveload/result/deps.sav -out -input -deps -val-show-progress + EXECNOW: LOG deps_sav.res LOG deps_sav.err BIN deps.sav @frama-c@ -load-module ./tests/saveload/deps_A.cmxs -eva -out -input -deps -eva-show-progress ./tests/saveload/deps.i -save ./tests/saveload/result/deps.sav > ./tests/saveload/result/deps_sav.res 2> ./tests/saveload/result/deps_sav.err + OPT: -load-module ./tests/saveload/deps_A -load ./tests/saveload/result/deps.sav -eva -out -input -deps -eva-show-progress + OPT: -load-module ./tests/saveload/deps_B -load ./tests/saveload/result/deps.sav -out -input -deps -eva-show-progress + OPT: -load-module ./tests/saveload/deps_C -load ./tests/saveload/result/deps.sav -out -input -deps -eva-show-progress + OPT: -load-module ./tests/saveload/deps_D -load ./tests/saveload/result/deps.sav -out -input -deps -eva-show-progress + OPT: -load-module ./tests/saveload/deps_E -load ./tests/saveload/result/deps.sav -out -input -deps -eva-show-progress */ int main() { diff --git a/tests/saveload/isset.c b/tests/saveload/isset.c index 1a7b7f869a035eadc3df1125b17864353b098142..cd916529828d2db8a31bae87ed38b6e8aa0bb4b8 100644 --- a/tests/saveload/isset.c +++ b/tests/saveload/isset.c @@ -1,9 +1,9 @@ /* run.config - EXECNOW: LOG isset_sav.res LOG isset_sav.err BIN isset.sav ./bin/toplevel.opt -quiet -val -save tests/saveload/result/isset.sav tests/saveload/isset.c > ./tests/saveload/result/isset_sav.res 2> ./tests/saveload/result/isset_sav.err + EXECNOW: LOG isset_sav.res LOG isset_sav.err BIN isset.sav ./bin/toplevel.opt -quiet -eva -save tests/saveload/result/isset.sav tests/saveload/isset.c > ./tests/saveload/result/isset_sav.res 2> ./tests/saveload/result/isset_sav.err OPT: -quiet -load ./tests/saveload/result/isset.sav OPT: -load ./tests/saveload/result/isset.sav - OPT: -val -load ./tests/saveload/result/isset.sav - OPT: -quiet -val -load ./tests/saveload/result/isset.sav + OPT: -eva -load ./tests/saveload/result/isset.sav + OPT: -quiet -eva -load ./tests/saveload/result/isset.sav */ int main() { diff --git a/tests/saveload/load_one.i b/tests/saveload/load_one.i index 7e7668faf7b8af9e3f035316291821284e65d018..8f58edd16793be9f8f058ad48543ab1df2132096 100644 --- a/tests/saveload/load_one.i +++ b/tests/saveload/load_one.i @@ -1,7 +1,7 @@ /* run.config - OPT: -load-script tests/saveload/load_one.ml -val-show-progress + EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs + OPT: -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs -eva-show-progress */ - int G; int f (int x, int y) { diff --git a/tests/saveload/multi_project.i b/tests/saveload/multi_project.i index e11edda2a6785a5c42ca135afcd73f49c5e7642f..e8c3589515cd3bdca84e5679e3a52330cfbbbb50 100644 --- a/tests/saveload/multi_project.i +++ b/tests/saveload/multi_project.i @@ -1,9 +1,9 @@ /* run.config - EXECNOW: BIN multi_project.sav LOG multi_project_sav.res LOG multi_project_sav.err ./bin/toplevel.opt -save ./tests/saveload/result/multi_project.sav -val-show-progress -semantic-const-folding ./tests/saveload/multi_project.i > tests/saveload/result/multi_project_sav.res 2> tests/saveload/result/multi_project_sav.err - EXECNOW: make -s ./tests/saveload/multi_project.cmxs + EXECNOW: BIN multi_project.sav LOG multi_project_sav.res LOG multi_project_sav.err ./bin/toplevel.opt -save ./tests/saveload/result/multi_project.sav -eva-show-progress -semantic-const-folding @PTEST_DIR@/@PTEST_NAME@.i > tests/saveload/result/multi_project_sav.res 2> tests/saveload/result/multi_project_sav.err + EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs OPT: -load ./tests/saveload/result/multi_project.sav -journal-disable - CMD: @frama-c@ -load-module ./tests/saveload/multi_project - OPT: -val -val-show-progress + CMD: @frama-c@ -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs + OPT: -eva -eva-show-progress */ int f(int x) { return x + x; diff --git a/tests/saveload/oracle/basic_sav.1.res b/tests/saveload/oracle/basic_sav.1.res index 985eb96467566d2d7978358d57e350538de45307..056059606204259f47c4619d6aa71f6dd14adaa0 100644 --- a/tests/saveload/oracle/basic_sav.1.res +++ b/tests/saveload/oracle/basic_sav.1.res @@ -4,9 +4,9 @@ [eva] Initial state computed [eva:initial-state] Values of globals at initialization -[eva] tests/saveload/basic.i:18: assertion got status valid. -[eva] tests/saveload/basic.i:19: starting to merge loop iterations -[eva:alarm] tests/saveload/basic.i:19: Warning: +[eva] tests/saveload/basic.i:19: assertion got status valid. +[eva] tests/saveload/basic.i:20: starting to merge loop iterations +[eva:alarm] tests/saveload/basic.i:20: Warning: signed overflow. assert -2147483648 ≤ i - 1; [eva] Recording results for main [eva] done for function main diff --git a/tests/saveload/oracle/basic_sav.res b/tests/saveload/oracle/basic_sav.res index 985eb96467566d2d7978358d57e350538de45307..056059606204259f47c4619d6aa71f6dd14adaa0 100644 --- a/tests/saveload/oracle/basic_sav.res +++ b/tests/saveload/oracle/basic_sav.res @@ -4,9 +4,9 @@ [eva] Initial state computed [eva:initial-state] Values of globals at initialization -[eva] tests/saveload/basic.i:18: assertion got status valid. -[eva] tests/saveload/basic.i:19: starting to merge loop iterations -[eva:alarm] tests/saveload/basic.i:19: Warning: +[eva] tests/saveload/basic.i:19: assertion got status valid. +[eva] tests/saveload/basic.i:20: starting to merge loop iterations +[eva:alarm] tests/saveload/basic.i:20: Warning: signed overflow. assert -2147483648 ≤ i - 1; [eva] Recording results for main [eva] done for function main diff --git a/tests/saveload/segfault_datatypes.i b/tests/saveload/segfault_datatypes.i index f6f120a5ec08ee807067027580544f6d3d9ed118..6aba95f697da0b1a07b74017bbcf431e0e2dd685 100644 --- a/tests/saveload/segfault_datatypes.i +++ b/tests/saveload/segfault_datatypes.i @@ -1,8 +1,8 @@ /* run.config EXECNOW: make -s ./tests/saveload/segfault_datatypes_A.cmxs ./tests/saveload/segfault_datatypes_B.cmxs - EXECNOW: LOG segfault_datatypes_sav.res LOG segfault_datatypes_sav.err BIN segfault_datatypes.sav @frama-c@ -load-module ./tests/saveload/segfault_datatypes_A -val -out -input -deps -val-show-progress ./tests/saveload/segfault_datatypes.i -save ./tests/saveload/result/segfault_datatypes.sav > ./tests/saveload/result/segfault_datatypes_sav.res 2> ./tests/saveload/result/segfault_datatypes_sav.err + EXECNOW: LOG segfault_datatypes_sav.res LOG segfault_datatypes_sav.err BIN segfault_datatypes.sav @frama-c@ -load-module ./tests/saveload/segfault_datatypes_A -eva -out -input -deps -eva-show-progress ./tests/saveload/segfault_datatypes.i -save ./tests/saveload/result/segfault_datatypes.sav > ./tests/saveload/result/segfault_datatypes_sav.res 2> ./tests/saveload/result/segfault_datatypes_sav.err CMD: @frama-c@ -load-module ./tests/saveload/segfault_datatypes_B - OPT: -load ./tests/saveload/result/segfault_datatypes.sav -val -out -input -deps -journal-disable + OPT: -load ./tests/saveload/result/segfault_datatypes.sav -eva -out -input -deps -journal-disable */ diff --git a/tests/saveload/serialized_queue.i b/tests/saveload/serialized_queue.i index fe5a57bd8f72e2e63b0b2930443f942be55eecc4..3d2c450536e513b1580c0197708c6f78599e4c31 100644 --- a/tests/saveload/serialized_queue.i +++ b/tests/saveload/serialized_queue.i @@ -1,5 +1,6 @@ /* run.config -OPT: -load-script @PTEST_DIR@/@PTEST_NAME@.ml +EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs +OPT: -no-autoload-plugins -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs */ // empty C file, we're only interested in the script itself diff --git a/tests/saveload/sparecode.i b/tests/saveload/sparecode.i index 928642b8f68add1a87f829c27df6ef7e775481d5..ba347428ae754a68501dada38f5d819f7dad794a 100644 --- a/tests/saveload/sparecode.i +++ b/tests/saveload/sparecode.i @@ -1,5 +1,5 @@ /* run.config - EXECNOW: BIN sparecode.sav LOG sparecode_sav.res LOG sparecode_sav.err ./bin/toplevel.opt -slicing-level 2 -slice-return main -val-show-progress -save ./tests/saveload/result/sparecode.sav tests/saveload/sparecode.i -then-on 'Slicing export' -print > tests/saveload/result/sparecode_sav.res 2> tests/saveload/result/sparecode_sav.err + EXECNOW: BIN sparecode.sav LOG sparecode_sav.res LOG sparecode_sav.err ./bin/toplevel.opt -slicing-level 2 -slice-return main -eva-show-progress -save ./tests/saveload/result/sparecode.sav tests/saveload/sparecode.i -then-on 'Slicing export' -print > tests/saveload/result/sparecode_sav.res 2> tests/saveload/result/sparecode_sav.err OPT: -load ./tests/saveload/result/sparecode.sav */ int G; diff --git a/tests/scope/bts383.c b/tests/scope/bts383.c index d3bd151d656889cc25ca832964b4e50576fa2d4e..dcee5c7978a9d72abfe8fc323c854ac0bfe2026e 100644 --- a/tests/scope/bts383.c +++ b/tests/scope/bts383.c @@ -1,9 +1,9 @@ /* run.config - OPT: -val -val-show-progress -print -journal-disable -scope-verbose 1 -remove-redundant-alarms -context-width 3 + OPT: -eva -eva-show-progress -print -journal-disable -scope-verbose 1 -remove-redundant-alarms -context-width 3 */ /* echo '!Db.Scope.check_asserts();;' \ - | bin/toplevel.top -val tests/scope/bts383.c + | bin/toplevel.top -eva tests/scope/bts383.c */ int v; void if1 (int * p) { diff --git a/tests/scope/bts971.c b/tests/scope/bts971.c index d23783b30da5267e2f5364fa961f46bd80ee0847..b50076a1a38082a0c1f3d15ae9b1cfa66e8fa6e0 100644 --- a/tests/scope/bts971.c +++ b/tests/scope/bts971.c @@ -1,7 +1,7 @@ /* run.config - OPT: -journal-disable -load-script tests/scope/bts971.ml -then -main main2 + EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs + OPT: -journal-disable -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs -then -main main2 */ - /* bug 971: */ volatile foo; int v; diff --git a/tests/scope/no-effect.i b/tests/scope/no-effect.i index 2f181dd53413bbaef65a5e017056c857627d8767..916b4fc6fbecb23e138bef398261fbc73b62dbe0 100644 --- a/tests/scope/no-effect.i +++ b/tests/scope/no-effect.i @@ -1,5 +1,5 @@ /* run.config - OPT: -val-show-progress -val -print -journal-disable -scope-verbose 1 -remove-redundant-alarms + OPT: -eva-show-progress -eva -print -journal-disable -scope-verbose 1 -remove-redundant-alarms */ typedef struct { diff --git a/tests/scope/scope.c b/tests/scope/scope.c index 3604b0fb1c904ad59599c30ea1d2550adb0968cc..a0c63884270b4303e27a1d51e1b8ad71a7610196 100644 --- a/tests/scope/scope.c +++ b/tests/scope/scope.c @@ -1,12 +1,12 @@ /* run.config - OPT: -val -val-show-progress -main f -journal-disable - OPT: -val -val-show-progress -main f2 -journal-disable - OPT: -val -val-show-progress -main loop -journal-disable + OPT: -eva -eva-show-progress -main f -journal-disable + OPT: -eva -eva-show-progress -main f2 -journal-disable + OPT: -eva -eva-show-progress -main loop -journal-disable */ /* - * bin/viewer.byte -main f tests/scope/scope.c -val - * bin/viewer.byte -main f2 tests/scope/scope.c -val - * bin/viewer.byte -main loop tests/scope/scope.c -val + * bin/viewer.byte -main f tests/scope/scope.c -eva + * bin/viewer.byte -main f2 tests/scope/scope.c -eva + * bin/viewer.byte -main loop tests/scope/scope.c -eva */ #include "__fc_builtin.h" diff --git a/tests/scope/zones.c b/tests/scope/zones.c index f23d798f99fa0295e525b9b85c42e74ae8f512e5..884e57b2162c1665bbac00b98c150d5e02c6373c 100644 --- a/tests/scope/zones.c +++ b/tests/scope/zones.c @@ -1,10 +1,10 @@ /* run.config - OPT: -load-script tests/scope/zones.ml -val -val-show-progress -journal-disable +# EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs + OPT: -load-module @PTEST_DIR@/@PTEST_NAME@ -eva -eva-show-progress -journal-disable */ - -/* bin/viewer.opt -val tests/scope/zones.c */ +/* bin/viewer.opt -eva @PTEST_DIR@/@PTEST_NAME@.c */ int T [10]; struct Tstr { int a; int b; } S; diff --git a/tests/scope/zones.ml b/tests/scope/zones.ml index 5b6358d19d5e8e7790fc3461ac451d07283fac48..19d3afc121119fb4bfbd343f526d57b9b91b33ec 100644 --- a/tests/scope/zones.ml +++ b/tests/scope/zones.ml @@ -1,5 +1,5 @@ (* when using toplevel.top : -bin/topleval.top -val tests/scope/zones.c +bin/topleval.top -eva tests/scope/zones.c #directory "cil/src";; *) diff --git a/tests/slicing/adpcm.c b/tests/slicing/adpcm.c index 9bc30efd60c3abe41fabbb518ca9bedc95332867..88dbc4dbda0d8a796d81743dfda2b7dfab5b14e1 100644 --- a/tests/slicing/adpcm.c +++ b/tests/slicing/adpcm.c @@ -1,6 +1,6 @@ /* run.config - EXECNOW: make -s tests/slicing/adpcm.cmxs - OPT: -val-show-progress -load-module ./tests/slicing/libSelect.cmxs -load-module ./tests/slicing/adpcm.cmxs -ulevel -1 -deps -slicing-level 2 -journal-disable + EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs + OPT: -eva-show-progress -load-module ./tests/slicing/libSelect.cmxs -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs -ulevel -1 -deps -slicing-level 2 -journal-disable */ #include "tests/test/adpcm.c" diff --git a/tests/slicing/annot.i b/tests/slicing/annot.i index 74f1d7cf061627ad144da1815a09f9a031b6add3..6d3edf1559d02b7a270efaa879d1bd4cfb1d5aee 100644 --- a/tests/slicing/annot.i +++ b/tests/slicing/annot.i @@ -1,6 +1,6 @@ /* run.config - OPT: -val-show-progress -main f1 -slice-assert f1 -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check - OPT: -val-show-progress -main f2 -slice-assert f2 -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check + OPT: -eva-show-progress -main f1 -slice-assert f1 -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check + OPT: -eva-show-progress -main f2 -slice-assert f2 -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check */ extern int x, z; diff --git a/tests/slicing/bts0184.i b/tests/slicing/bts0184.i index 37b7184f937b150926de745d1166facca5cebff8..8330ee7bd2fbc4c03010de08545c1949de88a69d 100644 --- a/tests/slicing/bts0184.i +++ b/tests/slicing/bts0184.i @@ -1,5 +1,5 @@ /* run.config - OPT: -val-show-progress -check -slice-pragma x -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check + OPT: -eva-show-progress -check -slice-pragma x -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check **/ int x(int y, int z) { diff --git a/tests/slicing/bts0190.i b/tests/slicing/bts0190.i index 02ddb7060bb41dc1ef787c62f5d7012f5ffa8d5d..bd70c2e914f3ed4298e0c6c4a6b368416147c612 100644 --- a/tests/slicing/bts0190.i +++ b/tests/slicing/bts0190.i @@ -1,5 +1,5 @@ /* run.config -OPT: -slicing-warn-key cmdline=active -val-show-progress -check -slice-rd y -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check +OPT: -slicing-warn-key cmdline=active -eva-show-progress -check -slice-rd y -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check */ int z1(void); diff --git a/tests/slicing/bts0950_annot.i b/tests/slicing/bts0950_annot.i index dc1d585f6ed25dfc7f6b4bd84a9b703552d3f015..375a9b429066f58742d0302849121e78634e453d 100644 --- a/tests/slicing/bts0950_annot.i +++ b/tests/slicing/bts0950_annot.i @@ -1,5 +1,5 @@ /* run.config - OPT: -val-show-progress -val -slice-value a -then-on "Slicing export" -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check + OPT: -eva-show-progress -eva -slice-value a -then-on "Slicing export" -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check */ /*@ requires \valid(dest); */ extern void cpy(int *dest, const int *src); diff --git a/tests/slicing/bts1248.i b/tests/slicing/bts1248.i index f945958a37120ba0bacd9650fbc5dc3709ab2625..4bfb32dd548e46d9e6260393f168dd2e0ccc50e2 100644 --- a/tests/slicing/bts1248.i +++ b/tests/slicing/bts1248.i @@ -1,5 +1,5 @@ /* run.config -OPT: -val-show-progress -slice-rd x -main f -slicing-project-name p -then-on 'p export' -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i +OPT: -eva-show-progress -slice-rd x -main f -slicing-project-name p -then-on 'p export' -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i */ int f(void) { diff --git a/tests/slicing/bts1445.i b/tests/slicing/bts1445.i index b312b537bfa086e309964196c91693817c21065d..790abe29393dc04e5ecdb6d8722d95e11d06654d 100644 --- a/tests/slicing/bts1445.i +++ b/tests/slicing/bts1445.i @@ -1,6 +1,6 @@ /* run.config -OPT: -val-show-progress -slice-calls main -then-on "Slicing export" -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -OPT: -val-show-progress -slice-calls f -main f -then-on "Slicing export" -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i +OPT: -eva-show-progress -slice-calls main -then-on "Slicing export" -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i +OPT: -eva-show-progress -slice-calls f -main f -then-on "Slicing export" -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i */ int x = 0; diff --git a/tests/slicing/bts1684.i b/tests/slicing/bts1684.i index dd4143fc22bb7147c6e34df501c21bc131c02151..e0a962dff1dc46134820ea391b93628fbf26fc82 100644 --- a/tests/slicing/bts1684.i +++ b/tests/slicing/bts1684.i @@ -1,5 +1,5 @@ /* run.config - OPT: -val-show-progress -slice-calls main -journal-enable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i + OPT: -eva-show-progress -slice-calls main -journal-enable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i */ // one bug about JOURNALIZATION and another one about slicing CALLS TO MAIN function. double d1, d2, d3; diff --git a/tests/slicing/bts1768.i b/tests/slicing/bts1768.i index 3769f28d2081dd44143059f2fc6f11db0b2142b9..9e2da0e7494fa69d077d168c8e18be64f7449a72 100644 --- a/tests/slicing/bts1768.i +++ b/tests/slicing/bts1768.i @@ -1,5 +1,5 @@ /* run.config - OPT: -val-show-progress -main main -slice-pragma main -ulevel 10 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i + OPT: -eva-show-progress -main main -slice-pragma main -ulevel 10 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i */ int choix ; int state = 1; diff --git a/tests/slicing/bts179.i b/tests/slicing/bts179.i index 2c070bf05dbf4b1ffd0d4c1255645ecd1a75af9a..2057a44fa6af1b325c7d3dce84f461e0280549b1 100644 --- a/tests/slicing/bts179.i +++ b/tests/slicing/bts179.i @@ -1,7 +1,7 @@ /* run.config - OPT: -val-show-progress -slice-return main -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i - OPT: -val-show-progress -slice-pragma main -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i - OPT: -val-show-progress -sparecode-analysis -journal-disable + OPT: -eva-show-progress -slice-return main -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i + OPT: -eva-show-progress -slice-pragma main -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i + OPT: -eva-show-progress -sparecode-analysis -journal-disable */ struct {int a; int ab; int b; int c ; int d;} S; diff --git a/tests/slicing/bts283.i b/tests/slicing/bts283.i index 3b8744fb3b909dbfd3b966039e7388bbadfed184..5f4c456e3f4ef39bbc9bc63d1cffda7c9b9876cc 100644 --- a/tests/slicing/bts283.i +++ b/tests/slicing/bts283.i @@ -1,5 +1,5 @@ /* run.config - OPT: -val-show-progress -slice-return main -slice-undef-functions -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i + OPT: -eva-show-progress -slice-return main -slice-undef-functions -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i */ int x,y,z; diff --git a/tests/slicing/bts326.i b/tests/slicing/bts326.i index bc80f576965e40ccfc64059e9a4ac80e07570995..45adb1012e4c4cc802545b349dc0a74126807db0 100644 --- a/tests/slicing/bts326.i +++ b/tests/slicing/bts326.i @@ -1,5 +1,5 @@ /* run.config - OPT: -val-show-progress -calldeps -slice-return main -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-calldeps + OPT: -eva-show-progress -calldeps -slice-return main -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-calldeps */ /* Problem : f(1) should be sliced out. See BTS#326 */ int t[2] ; diff --git a/tests/slicing/bts335.i b/tests/slicing/bts335.i index cb9dbca84760d5e90a7eb15122fb1b644b238e75..2afdf6352574a2f651367bf45cd0b2860851e8ba 100644 --- a/tests/slicing/bts335.i +++ b/tests/slicing/bts335.i @@ -1,5 +1,5 @@ /* run.config - OPT: -val-show-progress -slice-pragma g -calldeps -slicing-level 3 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-calldeps + OPT: -eva-show-progress -slice-pragma g -calldeps -slicing-level 3 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-calldeps */ /* diff --git a/tests/slicing/bts335b.i b/tests/slicing/bts335b.i index 60952187d16f58a87bbb21290fb9ef908b66134d..def1d6dc2caa1d2c41a88597bde8c7d3d07ee246 100644 --- a/tests/slicing/bts335b.i +++ b/tests/slicing/bts335b.i @@ -1,5 +1,5 @@ /* run.config - OPT: -val-show-progress -slice-return main -calldeps -slicing-level 3 -slicing-verbose 2 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-calldeps + OPT: -eva-show-progress -slice-return main -calldeps -slicing-level 3 -slicing-verbose 2 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-calldeps */ int X, Y; diff --git a/tests/slicing/bts336.i b/tests/slicing/bts336.i index 20f6db5ce8a5e5c9bebde0f11dc1c6cb9a2aa971..ba7da4820cf097a3e8e390f14d39726ee79c0ecb 100644 --- a/tests/slicing/bts336.i +++ b/tests/slicing/bts336.i @@ -1,12 +1,12 @@ /* run.config - OPT: -val-show-progress -slice-return main -calldeps -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-calldeps -val-show-progress - OPT: -val-show-progress -main main2 -slice-return main2 -calldeps -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-calldeps -val-show-progress - OPT: -val-show-progress -main main3 -slice-return main3 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-calldeps -val-show-progress - OPT: -val-show-progress -journal-disable -main main3 -inout -calldeps -slice-return main3 -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-calldeps -val-show-progress -no-inout - OPT: -val-show-progress -journal-disable -main main -calldeps -slice-return main -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-calldeps -val-show-progress - OPT: -val-show-progress -journal-disable -main main4 -calldeps -slice-return main4 -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-calldeps -val-show-progress - OPT: -val-show-progress -journal-disable -main main4 -calldeps -slice-return main4 -slicing-level 3 -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-calldeps -val-show-progress - OPT: -val-show-progress -journal-disable -main main5 -calldeps -slice-return main5 -then-on 'Slicing export' -set-project-as-default -print -calldeps -val-show-progress -slice-return main5 -then-on 'Slicing export 2' -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-calldeps -val-show-progress + OPT: -eva-show-progress -slice-return main -calldeps -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-calldeps -eva-show-progress + OPT: -eva-show-progress -main main2 -slice-return main2 -calldeps -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-calldeps -eva-show-progress + OPT: -eva-show-progress -main main3 -slice-return main3 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-calldeps -eva-show-progress + OPT: -eva-show-progress -journal-disable -main main3 -inout -calldeps -slice-return main3 -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-calldeps -eva-show-progress -no-inout + OPT: -eva-show-progress -journal-disable -main main -calldeps -slice-return main -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-calldeps -eva-show-progress + OPT: -eva-show-progress -journal-disable -main main4 -calldeps -slice-return main4 -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-calldeps -eva-show-progress + OPT: -eva-show-progress -journal-disable -main main4 -calldeps -slice-return main4 -slicing-level 3 -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-calldeps -eva-show-progress + OPT: -eva-show-progress -journal-disable -main main5 -calldeps -slice-return main5 -then-on 'Slicing export' -set-project-as-default -print -calldeps -eva-show-progress -slice-return main5 -then-on 'Slicing export 2' -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-calldeps -eva-show-progress */ // something to do to have better results... int T[10]; diff --git a/tests/slicing/bts341.i b/tests/slicing/bts341.i index 3bb1e8f2b13417b9277b43c189c6883be439a010..fcd3c73bfd5f97235981abbcd0e54faa4b8d35b1 100644 --- a/tests/slicing/bts341.i +++ b/tests/slicing/bts341.i @@ -1,5 +1,5 @@ /* run.config - OPT: -val-show-progress -check -slice-assert main -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check + OPT: -eva-show-progress -check -slice-assert main -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check */ int main (int c) { if (c) diff --git a/tests/slicing/bts344.i b/tests/slicing/bts344.i index 0464bb25dfbdfa4674b79e803275a400eb1ff761..a44dc449ca5b275260bfb41cdbe3e0febf39a7d9 100644 --- a/tests/slicing/bts344.i +++ b/tests/slicing/bts344.i @@ -1,6 +1,6 @@ /* run.config - OPT: -val-show-progress -slice-return main -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps - OPT: -val-show-progress -slice-return main_bis -main main_bis -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps + OPT: -eva-show-progress -slice-return main -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps + OPT: -eva-show-progress -slice-return main_bis -main main_bis -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps */ int X, Y ; diff --git a/tests/slicing/bts345.i b/tests/slicing/bts345.i index b7fc9b57739b93b722ed90391a5de6e8bbd37384..b9d3ef2ebef9386bc5e40f689b70691caa1294a6 100644 --- a/tests/slicing/bts345.i +++ b/tests/slicing/bts345.i @@ -1,9 +1,9 @@ /* run.config - OPT: -val-show-progress -check -slice-return call_top -main call_top -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check - OPT: -val-show-progress -check -slice-return top -main top -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check - OPT: -val-show-progress -check -slice-return top -main call_top -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check - OPT: -val-show-progress -check -slice-return called_by_top -main top -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check - OPT: -val-show-progress -check -slice-return called_by_top -main call_top -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check + OPT: -eva-show-progress -check -slice-return call_top -main call_top -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check + OPT: -eva-show-progress -check -slice-return top -main top -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check + OPT: -eva-show-progress -check -slice-return top -main call_top -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check + OPT: -eva-show-progress -check -slice-return called_by_top -main top -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check + OPT: -eva-show-progress -check -slice-return called_by_top -main call_top -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check */ int called_indirectly_by_top (int x) { diff --git a/tests/slicing/bts679.i b/tests/slicing/bts679.i index 118b9e815578d24cd84c817363963d279113f446..297a8e218df92cbb0131f2e0e4a1dd50f72ce50d 100644 --- a/tests/slicing/bts679.i +++ b/tests/slicing/bts679.i @@ -1,5 +1,5 @@ /* run.config -OPT: -val-show-progress -slice-return main -then-on "Slicing export" -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i +OPT: -eva-show-progress -slice-return main -then-on "Slicing export" -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i */ void f(void) { return; } int X = 1 ; diff --git a/tests/slicing/bts679b.i b/tests/slicing/bts679b.i index 6ac2a5334747f1de941d1b39721a4ddfacbc1472..725996ba631a9fcfb50ee5c44fde6048127e8b08 100644 --- a/tests/slicing/bts679b.i +++ b/tests/slicing/bts679b.i @@ -1,5 +1,5 @@ /* run.config -OPT: -val-show-progress -slice-assert main -then-on "Slicing export" -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps +OPT: -eva-show-progress -slice-assert main -then-on "Slicing export" -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps */ int X = 1 ; diff --git a/tests/slicing/bts709.c b/tests/slicing/bts709.c index ca91fe62a17b901ad1e7e07e21db59e4677efeb1..3662f3ffc42f820cb2fd520ee8b2fe5debaaca45 100644 --- a/tests/slicing/bts709.c +++ b/tests/slicing/bts709.c @@ -1,5 +1,5 @@ /* run.config - OPT: -val-show-progress -slice-pragma func -no-unicode -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps + OPT: -eva-show-progress -slice-pragma func -no-unicode -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps */ #include <assert.h> diff --git a/tests/slicing/bts808.i b/tests/slicing/bts808.i index e5edca28b5f711c1dc4633d58896b598b352d715..2df48aa1a9b44b001364961e505459e9be3b684d 100644 --- a/tests/slicing/bts808.i +++ b/tests/slicing/bts808.i @@ -1,5 +1,5 @@ /* run.config -* OPT: -val-show-progress -slice-return main -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i +* OPT: -eva-show-progress -slice-return main -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i */ int f0 (void) { diff --git a/tests/slicing/bts827.i b/tests/slicing/bts827.i index 59b43073dbd7afdc7ddcb706b59ba7f27695b7a5..b224482f828f770e36734e6a37ce06c59ae970e7 100644 --- a/tests/slicing/bts827.i +++ b/tests/slicing/bts827.i @@ -1,5 +1,5 @@ /* run.config - OPT: -val-show-progress -slice-return main -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps + OPT: -eva-show-progress -slice-return main -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps */ /* The problem was a mix-up between f outputs and retrun value. */ diff --git a/tests/slicing/call_accuracy.i b/tests/slicing/call_accuracy.i index 758bc2db6bce8b20b240ee2367f4b59a6dc39208..d9efa6c69fd389453a4df0934f592b85859c60ad 100644 --- a/tests/slicing/call_accuracy.i +++ b/tests/slicing/call_accuracy.i @@ -1,5 +1,5 @@ /* run.config - OPT: -val-show-progress -calldeps -slice-return main -slicing-level 3 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-calldeps + OPT: -eva-show-progress -calldeps -slice-return main -slicing-level 3 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-calldeps */ int f_cond (int c, int a, int b) { ++a; diff --git a/tests/slicing/call_demo.i b/tests/slicing/call_demo.i index 0e6f31f3b3e0ada3601af47f7fc82030dafb8815..a2ae4c61862cfe06e125d4db6375e8309372c8fd 100644 --- a/tests/slicing/call_demo.i +++ b/tests/slicing/call_demo.i @@ -1,6 +1,6 @@ /* run.config - OPT: -val-show-progress -slice-calls call1 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps - OPT: -val-show-progress -slice-calls call2 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps + OPT: -eva-show-progress -slice-calls call1 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps + OPT: -eva-show-progress -slice-calls call2 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps */ //@ assigns \result \from v; diff --git a/tests/slicing/callwise.i b/tests/slicing/callwise.i index de323e7229200b0a6101f90f53ee4084f6a22f5c..64840715cbf069985100e1547d3e90b39558606c 100644 --- a/tests/slicing/callwise.i +++ b/tests/slicing/callwise.i @@ -1,5 +1,5 @@ /* run.config - OPT: -val-show-progress -calldeps -slice-return main -slicing-level 2 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-calldeps + OPT: -eva-show-progress -calldeps -slice-return main -slicing-level 2 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-calldeps */ int a = 1, b = 1, c = 1, d = 1, *p; diff --git a/tests/slicing/combine.i b/tests/slicing/combine.i index dd600e55f02f8db40ec191806c8993c979a9d549..16d12c1adcd6a2813d481d626b1535c4714bb64f 100644 --- a/tests/slicing/combine.i +++ b/tests/slicing/combine.i @@ -1,7 +1,7 @@ /* run.config - EXECNOW: make -s tests/slicing/combine.cmxs - CMD: @frama-c@ -load-module tests/slicing/libSelect.cmxs -load-module tests/slicing/combine.cmxs - OPT: -val-show-progress -deps -journal-disable + EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs + CMD: @frama-c@ -load-module tests/slicing/libSelect.cmxs -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs + OPT: -eva-show-progress -deps -journal-disable */ //@ assigns \result \from x; diff --git a/tests/slicing/csmith.i b/tests/slicing/csmith.i index 03d656ba655034b8cfdd651134c08d61601eb937..4e7eb7c6259dd81afd92446a23c429f7837191a3 100644 --- a/tests/slicing/csmith.i +++ b/tests/slicing/csmith.i @@ -1,8 +1,8 @@ /* run.config - OPT: -val-show-progress -slice-return main -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i + OPT: -eva-show-progress -slice-return main -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i COMMENT: - OPT: -val-show-progress -main bts906b -fct-pdg bts906b -pdg-print -pdg-verbose 2 - OPT: -val-show-progress -main bts906c -fct-pdg bts906c -pdg-print -pdg-verbose 2 + OPT: -eva-show-progress -main bts906b -fct-pdg bts906b -pdg-print -pdg-verbose 2 + OPT: -eva-show-progress -main bts906c -fct-pdg bts906c -pdg-print -pdg-verbose 2 COMMENT: The two PDG tests above test interesting case where the slicing may COMMENT: slice away a goto because of an incorrect analyze of some dead code, COMMENT: which make the slicer think that the destination of the goto is the diff --git a/tests/slicing/ex_spec_interproc.i b/tests/slicing/ex_spec_interproc.i index 91e75145ae1611963999c30881a7d3bb1d6ed7c0..962dd869e61cbda26e097423225fba45df9b3713 100644 --- a/tests/slicing/ex_spec_interproc.i +++ b/tests/slicing/ex_spec_interproc.i @@ -1,7 +1,7 @@ /* run.config - EXECNOW: make -s tests/slicing/ex_spec_interproc.cmxs - CMD: @frama-c@ -load-module tests/slicing/libSelect.cmxs -load-module tests/slicing/ex_spec_interproc.cmxs - OPT: -val-show-progress -deps -journal-disable + EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs + CMD: @frama-c@ -load-module tests/slicing/libSelect.cmxs -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs + OPT: -eva-show-progress -deps -journal-disable */ int X, Y; diff --git a/tests/slicing/filter.i b/tests/slicing/filter.i index 28f253a5cb38df9c75c51f1d5fdf5c7f28968d2f..43ce0802b7345448b715e6f828e19a2a05717bae 100644 --- a/tests/slicing/filter.i +++ b/tests/slicing/filter.i @@ -1,5 +1,5 @@ /* run.config - OPT: -val-show-progress -slice-return main -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i + OPT: -eva-show-progress -slice-return main -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i **/ /* TESTS: this is about [filter] optimisations since sometimes, * slicing results are ok, but the generated new project is not correct. */ diff --git a/tests/slicing/forall_loop_invariant.i b/tests/slicing/forall_loop_invariant.i index 8ba60fc949f7111887299df5be3c6de46f994ad7..a8c78bcdfc6a5c7953ee6e17d7d4c20a1cc5543e 100644 --- a/tests/slicing/forall_loop_invariant.i +++ b/tests/slicing/forall_loop_invariant.i @@ -1,5 +1,5 @@ /* run.config - OPT: -val-show-progress -slice-assert main -then-on 'Slicing export' -print -then-on default -slice-value t -then-on 'Slicing export 2' -print -check -set-project-as-default -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-deps + OPT: -eva-show-progress -slice-assert main -then-on 'Slicing export' -print -then-on default -slice-value t -then-on 'Slicing export 2' -print -check -set-project-as-default -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-deps **/ diff --git a/tests/slicing/horwitz.i b/tests/slicing/horwitz.i index 1ee794f6b043f705d8bbe673369e56b96e616598..0178857313f549f260b26554f05c18a927bde711 100644 --- a/tests/slicing/horwitz.i +++ b/tests/slicing/horwitz.i @@ -1,12 +1,12 @@ /* run.config - EXECNOW: make -s tests/slicing/horwitz.cmxs - CMD: @frama-c@ -load-module tests/slicing/libSelect.cmxs -load-module tests/slicing/horwitz.cmxs - OPT: -val-show-progress -deps -slicing-level 0 -journal-disable + EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs + CMD: @frama-c@ -load-module tests/slicing/libSelect.cmxs -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs + OPT: -eva-show-progress -deps -slicing-level 0 -journal-disable */ -/* bin/toplevel.opt -deps -val tests/slicing/horwitz.c */ -/* bin/toplevel.opt -deps -pdg-debug -pdg tests/slicing/horwitz.c */ -/* cf aussi tests/slicing/horwitz.ml */ +/* bin/toplevel.opt -deps -eva @PTEST_DIR@/@PTEST_NAME@.c */ +/* bin/toplevel.opt -deps -pdg-debug -pdg @PTEST_DIR@/@PTEST_NAME@.c */ +/* cf aussi @PTEST_DIR@/@PTEST_NAME@.ml */ int add (int a, int b) { return a+b; diff --git a/tests/slicing/if_many_values.i b/tests/slicing/if_many_values.i index a0fdf4f6bdf984e2253c56d79e65c21c9de95c97..3c49f051e2bd76ff7c3bf7155240a9a5622010a8 100644 --- a/tests/slicing/if_many_values.i +++ b/tests/slicing/if_many_values.i @@ -1,5 +1,5 @@ /* run.config - OPT: -val-show-progress -check -slice-value r -journal-disable -slevel 101 -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-deps + OPT: -eva-show-progress -check -slice-value r -journal-disable -slevel 101 -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-deps **/ int r=1; diff --git a/tests/slicing/initialized.i b/tests/slicing/initialized.i index 02472ce0a83eba7dd2990fda6bf81c84815f8140..c706ab2f282546f6adcc4f5d7aef71d031d647fa 100644 --- a/tests/slicing/initialized.i +++ b/tests/slicing/initialized.i @@ -1,5 +1,5 @@ /* run.config - OPT: -val-show-progress -slice-assert main -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check + OPT: -eva-show-progress -slice-assert main -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check **/ void main() { diff --git a/tests/slicing/keep_annot.i b/tests/slicing/keep_annot.i index 3b4efa002b0cf8a8054d5b500ae166ad30819083..8683c9a73ead0f17b6377f1ea39dbbf1565f2872 100644 --- a/tests/slicing/keep_annot.i +++ b/tests/slicing/keep_annot.i @@ -1,9 +1,9 @@ /* run.config - OPT: -val-show-progress -context-valid-pointers -lib-entry -main f -slice-assert f -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps - OPT: -val-show-progress -context-valid-pointers -lib-entry -main f -slice-assert f -slicing-keep-annotations -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps - OPT: -val-show-progress -context-valid-pointers -lib-entry -main L -slice-pragma L -slicing-keep-annotations -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps - OPT: -val-show-progress -context-valid-pointers -lib-entry -main L -slice-pragma L -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps - OPT: -val-show-progress -slice-return bts1110 -main bts1110 -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps + OPT: -eva-show-progress -context-valid-pointers -lib-entry -main f -slice-assert f -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps + OPT: -eva-show-progress -context-valid-pointers -lib-entry -main f -slice-assert f -slicing-keep-annotations -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps + OPT: -eva-show-progress -context-valid-pointers -lib-entry -main L -slice-pragma L -slicing-keep-annotations -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps + OPT: -eva-show-progress -context-valid-pointers -lib-entry -main L -slice-pragma L -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps + OPT: -eva-show-progress -slice-return bts1110 -main bts1110 -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps */ diff --git a/tests/slicing/loop_infinite.i b/tests/slicing/loop_infinite.i index 578703cca0194042134e14f048a005cdbde9fba5..5d15670842fe3b4a5f138b03e050d6abb8b168f7 100644 --- a/tests/slicing/loop_infinite.i +++ b/tests/slicing/loop_infinite.i @@ -1,5 +1,5 @@ /* run.config - OPT: -val-show-progress -check -deps -slice-return main -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-deps + OPT: -eva-show-progress -check -deps -slice-return main -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-deps */ int main() { volatile int a=0,b,c; diff --git a/tests/slicing/loop_simple.i b/tests/slicing/loop_simple.i index 035a45a338fb8180c281e13dd028877be7517a2e..03c7b909f12885e3bf72178287c26a208bb8ca98 100644 --- a/tests/slicing/loop_simple.i +++ b/tests/slicing/loop_simple.i @@ -1,5 +1,5 @@ /* run.config - OPT: -val-show-progress -deps -slice-return main -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps + OPT: -eva-show-progress -deps -slice-return main -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps */ int main() { int a,c; volatile int b = 0; diff --git a/tests/slicing/loops.i b/tests/slicing/loops.i index 067b5185bccc58bd83102453aaf8c45c569a2a67..c329cd0823d14042ec2696ca90a62bdfc548738d 100644 --- a/tests/slicing/loops.i +++ b/tests/slicing/loops.i @@ -1,29 +1,29 @@ /* run.config - OPT: -val-show-progress -deps -lib-entry -main f1 -slice-pragma f1 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps - OPT: -val-show-progress -deps -lib-entry -main f1 -slice-assert f1 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps - OPT: -val-show-progress -deps -lib-entry -main f2 -slice-pragma f2 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps - OPT: -val-show-progress -deps -lib-entry -main f2 -slice-assert f2 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps - OPT: -val-show-progress -deps -main test_infinite_loop_3 -slice-value G -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps - OPT: -val-show-progress -deps -main test_infinite_loop_4 -slice-value G -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps - OPT: -val-show-progress -deps -main test_infinite_loop_5 -slice-value G -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps - OPT: -val-show-progress -deps -main loop -slice-value Z -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps - OPT: -val-show-progress -deps -slice-calls loop -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps - OPT: -val-show-progress -deps -slice-pragma loop -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps - OPT: -val-show-progress -deps -slice-assert loop -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps - OPT: -val-show-progress -deps -main loop -slice-rd Y -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps - OPT: -val-show-progress -deps -main loop -slice-rd Z -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps - OPT: -val-show-progress -deps -main loop -slice-wr Y -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps - OPT: -val-show-progress -deps -main loop -slice-wr Z -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps - OPT: -val-show-progress -deps -lib-entry -main stop_f1 -slice-pragma stop_f1 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps - OPT: -val-show-progress -deps -lib-entry -main stop_f1 -slice-assert stop_f1 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps - OPT: -val-show-progress -deps -lib-entry -main stop_f2 -slice-pragma stop_f2 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps - OPT: -val-show-progress -deps -lib-entry -main stop_f2 -slice-assert stop_f2 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps - OPT: -val-show-progress -deps -slice-value Z -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps - OPT: -val-show-progress -deps -slice-rd Y -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps - OPT: -val-show-progress -deps -slice-rd Z -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps - OPT: -val-show-progress -deps -slice-wr Y -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps - OPT: -val-show-progress -deps -slice-wr Z -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps - OPT: -val-show-progress -deps -lib-entry -main alarm -slice-threat alarm -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps + OPT: -eva-show-progress -deps -lib-entry -main f1 -slice-pragma f1 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps + OPT: -eva-show-progress -deps -lib-entry -main f1 -slice-assert f1 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps + OPT: -eva-show-progress -deps -lib-entry -main f2 -slice-pragma f2 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps + OPT: -eva-show-progress -deps -lib-entry -main f2 -slice-assert f2 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps + OPT: -eva-show-progress -deps -main test_infinite_loop_3 -slice-value G -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps + OPT: -eva-show-progress -deps -main test_infinite_loop_4 -slice-value G -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps + OPT: -eva-show-progress -deps -main test_infinite_loop_5 -slice-value G -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps + OPT: -eva-show-progress -deps -main loop -slice-value Z -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps + OPT: -eva-show-progress -deps -slice-calls loop -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps + OPT: -eva-show-progress -deps -slice-pragma loop -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps + OPT: -eva-show-progress -deps -slice-assert loop -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps + OPT: -eva-show-progress -deps -main loop -slice-rd Y -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps + OPT: -eva-show-progress -deps -main loop -slice-rd Z -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps + OPT: -eva-show-progress -deps -main loop -slice-wr Y -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps + OPT: -eva-show-progress -deps -main loop -slice-wr Z -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps + OPT: -eva-show-progress -deps -lib-entry -main stop_f1 -slice-pragma stop_f1 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps + OPT: -eva-show-progress -deps -lib-entry -main stop_f1 -slice-assert stop_f1 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps + OPT: -eva-show-progress -deps -lib-entry -main stop_f2 -slice-pragma stop_f2 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps + OPT: -eva-show-progress -deps -lib-entry -main stop_f2 -slice-assert stop_f2 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps + OPT: -eva-show-progress -deps -slice-value Z -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps + OPT: -eva-show-progress -deps -slice-rd Y -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps + OPT: -eva-show-progress -deps -slice-rd Z -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps + OPT: -eva-show-progress -deps -slice-wr Y -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps + OPT: -eva-show-progress -deps -slice-wr Z -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps + OPT: -eva-show-progress -deps -lib-entry -main alarm -slice-threat alarm -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps */ diff --git a/tests/slicing/mark_all_slices.i b/tests/slicing/mark_all_slices.i index 634de629e98d92027d44554e624c33f6e62c5435..d25812226596c855a7380ef38ddc9520f0f0c405 100644 --- a/tests/slicing/mark_all_slices.i +++ b/tests/slicing/mark_all_slices.i @@ -1,7 +1,7 @@ /* run.config - EXECNOW: make -s tests/slicing/mark_all_slices.cmxs - CMD: @frama-c@ -load-module tests/slicing/libSelect.cmxs -load-module tests/slicing/mark_all_slices.cmxs - OPT: -val-show-progress -deps -slicing-level 3 -no-slice-callers -journal-disable + EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs + CMD: @frama-c@ -load-module tests/slicing/libSelect.cmxs -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs + OPT: -eva-show-progress -deps -slicing-level 3 -no-slice-callers -journal-disable */ int A, B, C, D; int A2, B2, C2, D2; diff --git a/tests/slicing/merge.i b/tests/slicing/merge.i index c578d373ec4052843f5e77ae3cc63bb0d9c75911..bf0509784e30e9adfe5159b4e8cff4be9597d3b9 100644 --- a/tests/slicing/merge.i +++ b/tests/slicing/merge.i @@ -1,7 +1,7 @@ /* run.config - EXECNOW: make -s tests/slicing/merge.cmxs - CMD: @frama-c@ -load-module tests/slicing/libSelect.cmxs -load-module tests/slicing/libAnim.cmxs -load-module tests/slicing/merge.cmxs - OPT: -val-show-progress -deps -slicing-level 3 -journal-disable + EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs + CMD: @frama-c@ -load-module tests/slicing/libSelect.cmxs -load-module tests/slicing/libAnim.cmxs -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs + OPT: -eva-show-progress -deps -slicing-level 3 -journal-disable */ int G1, G2, G3; diff --git a/tests/slicing/min_call.i b/tests/slicing/min_call.i index 064635c912c0a786bbaeb427da2505aa41691692..f7cc89e6a8dd1b8e1b9b580e0a2bdc2dc0457a75 100644 --- a/tests/slicing/min_call.i +++ b/tests/slicing/min_call.i @@ -1,7 +1,7 @@ /* run.config - EXECNOW: make -s tests/slicing/min_call.cmxs - CMD: @frama-c@ -load-module tests/slicing/libSelect.cmxs -load-module tests/slicing/min_call.cmxs - OPT: -val-show-progress -deps -lib-entry -main g -journal-disable -slicing-level 3 + EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs + CMD: @frama-c@ -load-module tests/slicing/libSelect.cmxs -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs + OPT: -eva-show-progress -deps -lib-entry -main g -journal-disable -slicing-level 3 */ /* dummy source file in order to test minimal calls feature diff --git a/tests/slicing/ptr_fct.i b/tests/slicing/ptr_fct.i index 1f8aaf69381458d3014714aa3d79584352522986..1bec692d364aceb1a8a9ed6e03a8827a9a136319 100644 --- a/tests/slicing/ptr_fct.i +++ b/tests/slicing/ptr_fct.i @@ -1,5 +1,5 @@ /* run.config - OPT: -val-show-progress -main h -slice-return h -slicing-level 1 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i + OPT: -eva-show-progress -main h -slice-return h -slicing-level 1 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i */ int X ; diff --git a/tests/slicing/same_sliced_name_bts1422.i b/tests/slicing/same_sliced_name_bts1422.i index 96d34288c945759f6f0627a15b23f83ec760246a..1f07dbde3d7c374f313925f65f50dc4d55fc3f79 100644 --- a/tests/slicing/same_sliced_name_bts1422.i +++ b/tests/slicing/same_sliced_name_bts1422.i @@ -1,5 +1,5 @@ /* run.config -OPT: -val-show-progress -main foo -slice-value y -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check +OPT: -eva-show-progress -main foo -slice-value y -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check */ int y; diff --git a/tests/slicing/select_by_annot.i b/tests/slicing/select_by_annot.i index 25e2ed6ab5daa54aeecc1f56ffdf3a90f5340fef..a0cd4471cf1e72b7b7e5ecfc74212bbc83f1bfb2 100644 --- a/tests/slicing/select_by_annot.i +++ b/tests/slicing/select_by_annot.i @@ -1,22 +1,22 @@ /* run.config - EXECNOW: make -s tests/slicing/select_by_annot.cmxs - CMD: @frama-c@ -load-module tests/slicing/libSelect.cmxs -load-module tests/slicing/select_by_annot.cmxs - OPT: -val-show-progress -deps -lib-entry -main main -journal-disable + EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs + CMD: @frama-c@ -load-module tests/slicing/libSelect.cmxs -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs + OPT: -eva-show-progress -deps -lib-entry -main main -journal-disable CMD: bin/toplevel.opt - OPT: -val-show-progress -check -deps -lib-entry -main main -slice-pragma main -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-deps - OPT: -val-show-progress -check -deps -lib-entry -main main -slice-assert main -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-deps - OPT: -val-show-progress -check -deps -lib-entry -main main -slice-pragma modifS -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-deps - OPT: -val-show-progress -check -deps -lib-entry -main main -slice-pragma f1 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-deps - OPT: -val-show-progress -check -deps -lib-entry -main main -slice-pragma f2 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-deps - OPT: -val-show-progress -check -deps -lib-entry -main main -slice-pragma f3 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-deps - OPT: -val-show-progress -check -deps -lib-entry -main main -slice-pragma f4 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-deps - OPT: -val-show-progress -check -deps -lib-entry -main main -slice-pragma f5 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-deps - OPT: -val-show-progress -check -deps -lib-entry -main main -slice-pragma f6 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-deps - OPT: -val-show-progress -check -deps -lib-entry -main main -slice-pragma f7 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-deps - OPT: -val-show-progress -check -deps -lib-entry -main main -slice-loop-inv f8 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-deps - OPT: -val-show-progress -check -deps -lib-entry -main main -slice-pragma f8 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-deps - OPT: -val-show-progress -check -deps -lib-entry -main main -slice-assert f8 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-deps - OPT: -val-show-progress -check -deps -lib-entry -main main -slice-pragma f9 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-deps + OPT: -eva-show-progress -check -deps -lib-entry -main main -slice-pragma main -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-deps + OPT: -eva-show-progress -check -deps -lib-entry -main main -slice-assert main -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-deps + OPT: -eva-show-progress -check -deps -lib-entry -main main -slice-pragma modifS -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-deps + OPT: -eva-show-progress -check -deps -lib-entry -main main -slice-pragma f1 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-deps + OPT: -eva-show-progress -check -deps -lib-entry -main main -slice-pragma f2 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-deps + OPT: -eva-show-progress -check -deps -lib-entry -main main -slice-pragma f3 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-deps + OPT: -eva-show-progress -check -deps -lib-entry -main main -slice-pragma f4 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-deps + OPT: -eva-show-progress -check -deps -lib-entry -main main -slice-pragma f5 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-deps + OPT: -eva-show-progress -check -deps -lib-entry -main main -slice-pragma f6 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-deps + OPT: -eva-show-progress -check -deps -lib-entry -main main -slice-pragma f7 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-deps + OPT: -eva-show-progress -check -deps -lib-entry -main main -slice-loop-inv f8 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-deps + OPT: -eva-show-progress -check -deps -lib-entry -main main -slice-pragma f8 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-deps + OPT: -eva-show-progress -check -deps -lib-entry -main main -slice-assert f8 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-deps + OPT: -eva-show-progress -check -deps -lib-entry -main main -slice-pragma f9 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-deps */ diff --git a/tests/slicing/select_calls.i b/tests/slicing/select_calls.i index 839ca4bbddb7b16175ca7aba51d978ce45941479..5617397a8e1924b1809ecd116a89f713e8e27f65 100644 --- a/tests/slicing/select_calls.i +++ b/tests/slicing/select_calls.i @@ -1,6 +1,6 @@ /* run.config - OPT: -val-show-progress -lib-entry -main f -slice-calls send -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i - OPT: -val-show-progress -lib-entry -main g -slice-calls nothing -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i + OPT: -eva-show-progress -lib-entry -main f -slice-calls send -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i + OPT: -eva-show-progress -lib-entry -main g -slice-calls nothing -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i */ void nothing (void); diff --git a/tests/slicing/select_return.i b/tests/slicing/select_return.i index d06246fceee4a897cc9a92d84933be9bf5791cf9..710e0952c18393871336a2e7452bd2163e3ade9c 100644 --- a/tests/slicing/select_return.i +++ b/tests/slicing/select_return.i @@ -1,26 +1,26 @@ /* run.config - OPT: -val-show-progress -check -slice-calls send -lib-entry -main g -slicing-level 0 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check - OPT: -val-show-progress -check -slice-calls send -lib-entry -main g -slicing-level 1 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check - OPT: -val-show-progress -check -slice-calls send -lib-entry -main g -slicing-level 2 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check - OPT: -val-show-progress -check -slice-calls send -lib-entry -main g -slicing-level 3 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check - OPT: -val-show-progress -check -slice-calls send,send_bis -lib-entry -main g -slicing-level 0 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check - OPT: -val-show-progress -check -slice-calls send,send_bis -lib-entry -main g -slicing-level 1 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check - OPT: -val-show-progress -check -slice-calls send,send_bis -lib-entry -main g -slicing-level 2 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check - OPT: -val-show-progress -check -slice-calls send,send_bis -lib-entry -main g -slicing-level 3 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check - OPT: -val-show-progress -check -slice-calls "send, send_bis" -lib-entry -main g -slicing-level 1 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check - OPT: -val-show-progress -check -slice-calls "send, send_bis" -lib-entry -main g -slicing-level 2 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check - OPT: -val-show-progress -check -slice-calls "send,send_bis" -lib-entry -main g -slicing-level 3 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check - OPT: -val-show-progress -check -slice-return f -lib-entry -main g -slicing-level 0 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check - OPT: -val-show-progress -check -slice-return f -lib-entry -main g -slicing-level 1 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check - OPT: -val-show-progress -check -slice-return f -lib-entry -main g -slicing-level 2 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check - OPT: -val-show-progress -check -slice-return f -lib-entry -main g -slicing-level 3 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check - OPT: -val-show-progress -check -slice-pragma f -lib-entry -main g -slicing-level 0 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check - OPT: -val-show-progress -check -slice-pragma f -lib-entry -main g -slicing-level 1 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check - OPT: -val-show-progress -check -slice-pragma f -lib-entry -main g -slicing-level 2 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check - OPT: -val-show-progress -check -slice-pragma f -lib-entry -main g -slicing-level 3 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check - OPT: -val-show-progress -check -slice-value H -lib-entry -main g -slicing-level 1 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check - OPT: -val-show-progress -check -slice-value H -lib-entry -main g -slicing-level 2 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check - OPT: -val-show-progress -check -slice-value H -lib-entry -main g -slicing-level 3 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check + OPT: -eva-show-progress -check -slice-calls send -lib-entry -main g -slicing-level 0 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check + OPT: -eva-show-progress -check -slice-calls send -lib-entry -main g -slicing-level 1 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check + OPT: -eva-show-progress -check -slice-calls send -lib-entry -main g -slicing-level 2 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check + OPT: -eva-show-progress -check -slice-calls send -lib-entry -main g -slicing-level 3 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check + OPT: -eva-show-progress -check -slice-calls send,send_bis -lib-entry -main g -slicing-level 0 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check + OPT: -eva-show-progress -check -slice-calls send,send_bis -lib-entry -main g -slicing-level 1 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check + OPT: -eva-show-progress -check -slice-calls send,send_bis -lib-entry -main g -slicing-level 2 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check + OPT: -eva-show-progress -check -slice-calls send,send_bis -lib-entry -main g -slicing-level 3 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check + OPT: -eva-show-progress -check -slice-calls "send, send_bis" -lib-entry -main g -slicing-level 1 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check + OPT: -eva-show-progress -check -slice-calls "send, send_bis" -lib-entry -main g -slicing-level 2 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check + OPT: -eva-show-progress -check -slice-calls "send,send_bis" -lib-entry -main g -slicing-level 3 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check + OPT: -eva-show-progress -check -slice-return f -lib-entry -main g -slicing-level 0 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check + OPT: -eva-show-progress -check -slice-return f -lib-entry -main g -slicing-level 1 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check + OPT: -eva-show-progress -check -slice-return f -lib-entry -main g -slicing-level 2 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check + OPT: -eva-show-progress -check -slice-return f -lib-entry -main g -slicing-level 3 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check + OPT: -eva-show-progress -check -slice-pragma f -lib-entry -main g -slicing-level 0 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check + OPT: -eva-show-progress -check -slice-pragma f -lib-entry -main g -slicing-level 1 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check + OPT: -eva-show-progress -check -slice-pragma f -lib-entry -main g -slicing-level 2 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check + OPT: -eva-show-progress -check -slice-pragma f -lib-entry -main g -slicing-level 3 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check + OPT: -eva-show-progress -check -slice-value H -lib-entry -main g -slicing-level 1 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check + OPT: -eva-show-progress -check -slice-value H -lib-entry -main g -slicing-level 2 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check + OPT: -eva-show-progress -check -slice-value H -lib-entry -main g -slicing-level 3 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check */ int G,H,I; diff --git a/tests/slicing/select_return_bis.i b/tests/slicing/select_return_bis.i index f523b2466a0428571b5f5ba2e6488b5121009510..04c376f362bc31acc693b10cd739cef7c6ef49a0 100644 --- a/tests/slicing/select_return_bis.i +++ b/tests/slicing/select_return_bis.i @@ -1,15 +1,15 @@ /* run.config - OPT: -val-show-progress -check -slice-calls send -lib-entry -main g -slicing-level 0 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check - OPT: -val-show-progress -check -slice-calls send -lib-entry -main g -slicing-level 1 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check - OPT: -val-show-progress -check -slice-calls send -lib-entry -main g -slicing-level 2 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check - OPT: -val-show-progress -check -slice-calls send -lib-entry -main g -slicing-level 3 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check - OPT: -val-show-progress -check -slice-calls send,send_bis -lib-entry -main g -slicing-level 0 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check - OPT: -val-show-progress -check -slice-calls send,send_bis -lib-entry -main g -slicing-level 1 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check - OPT: -val-show-progress -check -slice-calls send,send_bis -lib-entry -main g -slicing-level 2 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check - OPT: -val-show-progress -check -slice-calls send,send_bis -lib-entry -main g -slicing-level 3 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check - OPT: -val-show-progress -check -slice-calls send,send_bis -lib-entry -main g -slicing-level 1 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check - OPT: -val-show-progress -check -slice-calls send,send_bis -lib-entry -main g -slicing-level 2 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check - OPT: -val-show-progress -check -slice-calls send,send_bis -lib-entry -main g -slicing-level 3 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check + OPT: -eva-show-progress -check -slice-calls send -lib-entry -main g -slicing-level 0 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check + OPT: -eva-show-progress -check -slice-calls send -lib-entry -main g -slicing-level 1 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check + OPT: -eva-show-progress -check -slice-calls send -lib-entry -main g -slicing-level 2 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check + OPT: -eva-show-progress -check -slice-calls send -lib-entry -main g -slicing-level 3 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check + OPT: -eva-show-progress -check -slice-calls send,send_bis -lib-entry -main g -slicing-level 0 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check + OPT: -eva-show-progress -check -slice-calls send,send_bis -lib-entry -main g -slicing-level 1 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check + OPT: -eva-show-progress -check -slice-calls send,send_bis -lib-entry -main g -slicing-level 2 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check + OPT: -eva-show-progress -check -slice-calls send,send_bis -lib-entry -main g -slicing-level 3 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check + OPT: -eva-show-progress -check -slice-calls send,send_bis -lib-entry -main g -slicing-level 1 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check + OPT: -eva-show-progress -check -slice-calls send,send_bis -lib-entry -main g -slicing-level 2 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check + OPT: -eva-show-progress -check -slice-calls send,send_bis -lib-entry -main g -slicing-level 3 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check */ int G,H,I; diff --git a/tests/slicing/select_simple.i b/tests/slicing/select_simple.i index 75f5038ded1cb88c57e8540dbe19e777540af9ec..9883f3ff5832c4114b5d9af361e3bdc732257829 100644 --- a/tests/slicing/select_simple.i +++ b/tests/slicing/select_simple.i @@ -1,7 +1,7 @@ /* run.config - EXECNOW: make -s tests/slicing/select_simple.cmxs - CMD: @frama-c@ -load-module tests/slicing/libSelect.cmxs -load-module tests/slicing/select_simple.cmxs - OPT: -val-show-progress -deps -journal-disable + EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs + CMD: @frama-c@ -load-module tests/slicing/libSelect.cmxs -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs + OPT: -eva-show-progress -deps -journal-disable */ /* dummy source file in order to test select_simple.ml */ diff --git a/tests/slicing/simple_intra_slice.i b/tests/slicing/simple_intra_slice.i index 60021203db5155c4c628ff61962b9afaf788cf26..e335e824fe8810dc5832f1d524f0a9f00728b079 100644 --- a/tests/slicing/simple_intra_slice.i +++ b/tests/slicing/simple_intra_slice.i @@ -1,7 +1,7 @@ /* run.config - EXECNOW: make -s tests/slicing/simple_intra_slice.cmxs - CMD: @frama-c@ -load-module tests/slicing/libSelect.cmxs -load-module tests/slicing/simple_intra_slice.cmxs - OPT: -val-show-progress -deps -no-slice-callers -journal-disable + EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs + CMD: @frama-c@ -load-module tests/slicing/libSelect.cmxs -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs + OPT: -eva-show-progress -deps -no-slice-callers -journal-disable */ int Unknown; int G; diff --git a/tests/slicing/sizeof.i b/tests/slicing/sizeof.i index 767ee4eb57a0a97b5328c23db4216af996cfee05..4eb2d2152a1fe61e3ab9c75f843f3009818227ee 100644 --- a/tests/slicing/sizeof.i +++ b/tests/slicing/sizeof.i @@ -1,17 +1,17 @@ /* run.config - OPT: -val-show-progress -check -deps -slice-return main -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-deps - OPT: -val-show-progress -check -deps -slice-return SizeOf_1 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-deps - OPT: -val-show-progress -check -deps -slice-return SizeOf_2 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-deps - OPT: -val-show-progress -check -deps -slice-return SizeOfE_pt1 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-deps - OPT: -val-show-progress -check -deps -slice-return SizeOfE_pt2 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-deps - OPT: -val-show-progress -check -deps -slice-return SizeOfE_pt3 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-deps - OPT: -val-show-progress -check -deps -slice-return SizeOfE_pt_deref_1 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-deps - OPT: -val-show-progress -check -deps -slice-return SizeOfE_tab_1 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-deps - OPT: -val-show-progress -check -deps -slice-return SizeOfE_pt_tab_1 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-deps - OPT: -val-show-progress -check -deps -slice-return SizeOfE_pt_tab_2 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-deps - OPT: -val-show-progress -check -deps -slice-return SizeOfE_tab_acces_1 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-deps - OPT: -val-show-progress -check -deps -slice-pragma main -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-deps - OPT: -val-show-progress -check -deps -slice-assert main -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-deps + OPT: -eva-show-progress -check -deps -slice-return main -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-deps + OPT: -eva-show-progress -check -deps -slice-return SizeOf_1 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-deps + OPT: -eva-show-progress -check -deps -slice-return SizeOf_2 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-deps + OPT: -eva-show-progress -check -deps -slice-return SizeOfE_pt1 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-deps + OPT: -eva-show-progress -check -deps -slice-return SizeOfE_pt2 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-deps + OPT: -eva-show-progress -check -deps -slice-return SizeOfE_pt3 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-deps + OPT: -eva-show-progress -check -deps -slice-return SizeOfE_pt_deref_1 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-deps + OPT: -eva-show-progress -check -deps -slice-return SizeOfE_tab_1 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-deps + OPT: -eva-show-progress -check -deps -slice-return SizeOfE_pt_tab_1 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-deps + OPT: -eva-show-progress -check -deps -slice-return SizeOfE_pt_tab_2 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-deps + OPT: -eva-show-progress -check -deps -slice-return SizeOfE_tab_acces_1 -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-deps + OPT: -eva-show-progress -check -deps -slice-pragma main -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-deps + OPT: -eva-show-progress -check -deps -slice-assert main -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-deps */ struct St { int i, *p, tab[5] ; } st ; diff --git a/tests/slicing/slice_behavior.i b/tests/slicing/slice_behavior.i index 544b8115c5197d59db1d2413b71eaf0cfca76555..01911bdb71b1ba73e077a8a1bf0716c57fdd4a39 100644 --- a/tests/slicing/slice_behavior.i +++ b/tests/slicing/slice_behavior.i @@ -1,5 +1,5 @@ /* run.config - OPT: -val-show-progress -check -val -slice-assert f -slicing-level 0 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-val + OPT: -eva-show-progress -check -eva -slice-assert f -slicing-level 0 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-eva */ /*@ requires a > 0; */ int f(int a) { diff --git a/tests/slicing/slice_no_body.i b/tests/slicing/slice_no_body.i index 3be2044774f2a794b7c05fe8536fb3263da82feb..9c249f20d9f10a391b1ad939bb7e8605473596a7 100644 --- a/tests/slicing/slice_no_body.i +++ b/tests/slicing/slice_no_body.i @@ -1,7 +1,7 @@ /* run.config - EXECNOW: make -s tests/slicing/slice_no_body.cmxs - CMD: @frama-c@ -load-module tests/slicing/libSelect.cmxs -load-module tests/slicing/slice_no_body.cmxs - OPT: -val-show-progress -deps -lib-entry -main h -journal-disable + EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs + CMD: @frama-c@ -load-module tests/slicing/libSelect.cmxs -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs + OPT: -eva-show-progress -deps -lib-entry -main h -journal-disable */ int G; diff --git a/tests/slicing/slice_pragma_stmt.i b/tests/slicing/slice_pragma_stmt.i index bb64b0d3032a6fb11aac4a41079a19ea8b99d550..0dc5d985b6205f9bb3b2da8377ac9b5b7bb4bc71 100644 --- a/tests/slicing/slice_pragma_stmt.i +++ b/tests/slicing/slice_pragma_stmt.i @@ -1,27 +1,27 @@ /* run.config - OPT: -val-show-progress -print -journal-disable - OPT: -val-show-progress -main nop1 -slice-pragma nop1 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i - OPT: -val-show-progress -main nop2 -slice-pragma nop2 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i - OPT: -val-show-progress -main nop3 -slice-pragma nop3 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i - OPT: -val-show-progress -main nop4 -slice-pragma nop4 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i - OPT: -val-show-progress -main nop5 -slice-pragma nop5 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i - OPT: -val-show-progress -main nop6 -slice-pragma nop6 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i - OPT: -val-show-progress -main nop7 -slice-pragma nop7 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i - OPT: -val-show-progress -main nop8 -slice-pragma nop8 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i - OPT: -val-show-progress -main double_effect1 -slice-pragma double_effect1 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i - OPT: -val-show-progress -main double_effect2 -slice-pragma double_effect2 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i - OPT: -val-show-progress -main double_effect3 -slice-pragma double_effect3 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i - OPT: -val-show-progress -main double_effect4 -slice-pragma double_effect4 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i - OPT: -val-show-progress -main double_effect5 -slice-pragma double_effect5 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i - OPT: -val-show-progress -main test1 -slice-pragma test1 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i - OPT: -val-show-progress -main test2 -slice-pragma test2 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i - OPT: -val-show-progress -main test3 -slice-pragma test3 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i - OPT: -val-show-progress -main test4 -slice-pragma test4 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i - OPT: -val-show-progress -main test5 -slice-pragma test5 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i - OPT: -val-show-progress -main test6 -slice-pragma test6 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i - OPT: -val-show-progress -main test7 -slice-pragma test7 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i - OPT: -val-show-progress -main test8 -slice-pragma test8 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i - OPT: -val-show-progress -main test9 -slice-pragma test9 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i + OPT: -eva-show-progress -print -journal-disable + OPT: -eva-show-progress -main nop1 -slice-pragma nop1 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i + OPT: -eva-show-progress -main nop2 -slice-pragma nop2 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i + OPT: -eva-show-progress -main nop3 -slice-pragma nop3 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i + OPT: -eva-show-progress -main nop4 -slice-pragma nop4 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i + OPT: -eva-show-progress -main nop5 -slice-pragma nop5 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i + OPT: -eva-show-progress -main nop6 -slice-pragma nop6 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i + OPT: -eva-show-progress -main nop7 -slice-pragma nop7 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i + OPT: -eva-show-progress -main nop8 -slice-pragma nop8 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i + OPT: -eva-show-progress -main double_effect1 -slice-pragma double_effect1 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i + OPT: -eva-show-progress -main double_effect2 -slice-pragma double_effect2 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i + OPT: -eva-show-progress -main double_effect3 -slice-pragma double_effect3 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i + OPT: -eva-show-progress -main double_effect4 -slice-pragma double_effect4 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i + OPT: -eva-show-progress -main double_effect5 -slice-pragma double_effect5 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i + OPT: -eva-show-progress -main test1 -slice-pragma test1 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i + OPT: -eva-show-progress -main test2 -slice-pragma test2 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i + OPT: -eva-show-progress -main test3 -slice-pragma test3 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i + OPT: -eva-show-progress -main test4 -slice-pragma test4 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i + OPT: -eva-show-progress -main test5 -slice-pragma test5 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i + OPT: -eva-show-progress -main test6 -slice-pragma test6 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i + OPT: -eva-show-progress -main test7 -slice-pragma test7 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i + OPT: -eva-show-progress -main test8 -slice-pragma test8 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i + OPT: -eva-show-progress -main test9 -slice-pragma test9 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i */ typedef int stmt, expr, slice; int x, y ; diff --git a/tests/slicing/switch.i b/tests/slicing/switch.i index 10e0d404c4d61d9ba01a929f8fea1899f4346a9e..0b1ca36ce07a809cf0c2cbbaec82b11bd2150ed1 100644 --- a/tests/slicing/switch.i +++ b/tests/slicing/switch.i @@ -1,7 +1,7 @@ /* run.config - EXECNOW: make -s tests/slicing/switch.cmxs - CMD: @frama-c@ -load-module tests/slicing/libSelect.cmxs -load-module tests/slicing/switch.cmxs - OPT: -val-show-progress -deps -journal-disable + EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs + CMD: @frama-c@ -load-module tests/slicing/libSelect.cmxs -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs + OPT: -eva-show-progress -deps -journal-disable */ int main (char choix) { int x = 0, y = 0, z = 0; diff --git a/tests/slicing/top.i b/tests/slicing/top.i index 04fab9c79f45885242461c17f3e1d8303c55fec6..82274e75fbc0e71c60c111c5ed9000de1c40dffa 100644 --- a/tests/slicing/top.i +++ b/tests/slicing/top.i @@ -1,7 +1,7 @@ /* run.config -* OPT: -val-show-progress -no-val-builtins-auto -check -slicing-level 0 -slice-return uncalled -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -* OPT: -val-show-progress -no-val-builtins-auto -check -slicing-level 2 -slice-return main -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -* OPT: -val-show-progress -no-val-builtins-auto -check -slicing-level 2 -slice-return strlen -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check +* OPT: -eva-show-progress -eva-no-builtins-auto -check -slicing-level 0 -slice-return uncalled -no-slice-callers -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check +* OPT: -eva-show-progress -eva-no-builtins-auto -check -slicing-level 2 -slice-return main -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check +* OPT: -eva-show-progress -eva-no-builtins-auto -check -slicing-level 2 -slice-return strlen -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check * * * diff --git a/tests/slicing/top2.i b/tests/slicing/top2.i index 5dc7cb07e0060f8735f8273aedba2f9890d4e102..6f3aeeb35d87c37561e067d3aa5fd9db1dac191d 100644 --- a/tests/slicing/top2.i +++ b/tests/slicing/top2.i @@ -1,6 +1,6 @@ /* run.config -* OPT: -val-show-progress -check -slicing-level 2 -slice-pragma main -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -* OPT: -val-show-progress -check -slicing-level 2 -slice-return main -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check +* OPT: -eva-show-progress -check -slicing-level 2 -slice-pragma main -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check +* OPT: -eva-show-progress -check -slicing-level 2 -slice-return main -journal-disable -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check */ diff --git a/tests/slicing/undef-fun.i b/tests/slicing/undef-fun.i index 2ac1ee724d4c7216e920f4ea55e7c12a9d366ef2..27de9327f7de13aff5224a69cca725a226b843ec 100644 --- a/tests/slicing/undef-fun.i +++ b/tests/slicing/undef-fun.i @@ -1,5 +1,5 @@ /* run.config - OPT: -val-show-progress -slice-undef-functions -slice-return f -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i + OPT: -eva-show-progress -slice-undef-functions -slice-return f -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i diff --git a/tests/slicing/unitialized.c b/tests/slicing/unitialized.c index fcfa4546ba4cc5f9a8d77a2cb64e18d6bc0053ea..0978ec2279e2b23ede19d961b07f07fc465175c7 100644 --- a/tests/slicing/unitialized.c +++ b/tests/slicing/unitialized.c @@ -1,8 +1,8 @@ /* run.config - OPT: -val-show-progress -slice-pragma g -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i - OPT: -val-show-progress -slice-assert g -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i - OPT: -val-show-progress -slice-assert main -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i - OPT: -val-show-progress -slice-return g -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i + OPT: -eva-show-progress -slice-pragma g -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i + OPT: -eva-show-progress -slice-assert g -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i + OPT: -eva-show-progress -slice-assert main -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i + OPT: -eva-show-progress -slice-return g -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i */ #ifdef __FRAMAC__ //@ assigns \result \from \nothing; diff --git a/tests/slicing/unravel-flavors.i b/tests/slicing/unravel-flavors.i index 020e6d13cf1f1ea709eef44f1ca3b6da4d5fa6e3..93f3476e7e35c9ca5a6d04dc433043f8f72c6277 100644 --- a/tests/slicing/unravel-flavors.i +++ b/tests/slicing/unravel-flavors.i @@ -1,8 +1,8 @@ /* run.config - OPT: -val-show-progress -slice-undef-functions -slice-return send1 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i - OPT: -val-show-progress -slice-undef-functions -slice-return send2 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i - OPT: -val-show-progress -slice-undef-functions -slice-return send3 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i - OPT: -val-show-progress -slice-undef-functions -slice-return send4 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i + OPT: -eva-show-progress -slice-undef-functions -slice-return send1 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i + OPT: -eva-show-progress -slice-undef-functions -slice-return send2 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i + OPT: -eva-show-progress -slice-undef-functions -slice-return send3 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i + OPT: -eva-show-progress -slice-undef-functions -slice-return send4 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i */ /* Small example derived from examples given for UNRAVEL tool : */ diff --git a/tests/slicing/unravel-point.i b/tests/slicing/unravel-point.i index 2ca0a47f422f6f67e7185e69bc0c822573268d90..fefd3835b841186e3e4312f41f3b1a48f35a48e8 100644 --- a/tests/slicing/unravel-point.i +++ b/tests/slicing/unravel-point.i @@ -1,9 +1,9 @@ /* run.config - OPT: -val-show-progress -calldeps -slice-return send1 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-calldeps -val-show-progress - OPT: -val-show-progress -calldeps -slice-return send2 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-calldeps -val-show-progress - OPT: -val-show-progress -calldeps -slice-return send3 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-calldeps -val-show-progress - OPT: -val-show-progress -calldeps -slice-return send4 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-calldeps -val-show-progress - OPT: -val-show-progress -calldeps -slice-return send1 -slice-return send4 -journal-disable -then-on 'Slicing export' -val-show-progress -calldeps -slice-return send1_slice_1 -print -then-on 'Slicing export 2' -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-calldeps -val-show-progress + OPT: -eva-show-progress -calldeps -slice-return send1 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-calldeps -eva-show-progress + OPT: -eva-show-progress -calldeps -slice-return send2 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-calldeps -eva-show-progress + OPT: -eva-show-progress -calldeps -slice-return send3 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-calldeps -eva-show-progress + OPT: -eva-show-progress -calldeps -slice-return send4 -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-calldeps -eva-show-progress + OPT: -eva-show-progress -calldeps -slice-return send1 -slice-return send4 -journal-disable -then-on 'Slicing export' -eva-show-progress -calldeps -slice-return send1_slice_1 -print -then-on 'Slicing export 2' -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-calldeps -eva-show-progress diff --git a/tests/slicing/unravel-variance.i b/tests/slicing/unravel-variance.i index 97b6ba844138a38814be0136b6816a4ddea5d05d..1f49b4cb82227b593e04c1937c49e93fc7c93dcc 100644 --- a/tests/slicing/unravel-variance.i +++ b/tests/slicing/unravel-variance.i @@ -1,9 +1,9 @@ /* run.config - OPT: -val-show-progress -slice-calls printf1 -journal-disable -float-normal -remove-redundant-alarms -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i - OPT: -val-show-progress -slice-calls printf2 -journal-disable -float-normal -remove-redundant-alarms -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i - OPT: -val-show-progress -slice-calls printf3 -journal-disable -float-normal -remove-redundant-alarms -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i - OPT: -val-show-progress -slice-calls printf4 -journal-disable -float-normal -remove-redundant-alarms -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i - OPT: -val-show-progress -slice-calls printf5 -journal-disable -float-normal -remove-redundant-alarms -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i + OPT: -eva-show-progress -slice-calls printf1 -journal-disable -float-normal -remove-redundant-alarms -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i + OPT: -eva-show-progress -slice-calls printf2 -journal-disable -float-normal -remove-redundant-alarms -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i + OPT: -eva-show-progress -slice-calls printf3 -journal-disable -float-normal -remove-redundant-alarms -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i + OPT: -eva-show-progress -slice-calls printf4 -journal-disable -float-normal -remove-redundant-alarms -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i + OPT: -eva-show-progress -slice-calls printf5 -journal-disable -float-normal -remove-redundant-alarms -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i */ /* Small example devired from examples given for UNRAVEL tool : */ diff --git a/tests/slicing/unsupported.i b/tests/slicing/unsupported.i index 4fd0c080e404a8cd2191503fcbbfc40c619e1d17..d4a027718c6e1eb849a9666737c5dfc593308d21 100644 --- a/tests/slicing/unsupported.i +++ b/tests/slicing/unsupported.i @@ -1,6 +1,6 @@ /* run.config - OPT: -val-show-progress -slice-return main -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i - OPT: -val-show-progress -sparecode + OPT: -eva-show-progress -slice-return main -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i + OPT: -eva-show-progress -sparecode */ int main() { diff --git a/tests/slicing/use_spec.i b/tests/slicing/use_spec.i index 300adef044aaa9ad110a94cb9e904f339c14685f..e6692b1ba7b29b3ffa9d139949f3ad1f40e7b46d 100644 --- a/tests/slicing/use_spec.i +++ b/tests/slicing/use_spec.i @@ -1,6 +1,6 @@ /* run.config - OPT: -val-show-progress -val-use-spec f -slice-return main -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i - OPT: -val-show-progress -main main2 -slicing-level 3 -slice-undef-functions -val-use-spec h -slice-return main2 -journal-disable -slicing-keep-annotations -then-on 'Slicing export' -set-project-as-default -print -val -val-show-progress -val-use-spec='-@all' + OPT: -eva-show-progress -eva-use-spec f -slice-return main -journal-disable -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i + OPT: -eva-show-progress -main main2 -slicing-level 3 -slice-undef-functions -eva-use-spec h -slice-return main2 -journal-disable -slicing-keep-annotations -then-on 'Slicing export' -set-project-as-default -print -eva -eva-show-progress -eva-use-spec='-@all' @@ -18,7 +18,7 @@ int f() { g(); } -/* When -val-use-spec f is used, the body of f must not be kept (as it +/* When -eva-use-spec f is used, the body of f must not be kept (as it references the body of g, which is not kept since the body of f is not analyzed. */ int main() { @@ -32,7 +32,7 @@ void h(int a, int b) { G2 = b; } -/* Check that function specialization works well with -val-use-spec. The result +/* Check that function specialization works well with -eva-use-spec. The result of -slicing-keep-annotations is a bit surprising, but in fact quite good. */ int main2(int v1, int v2, int v3, int v4) { h(v1, v2); diff --git a/tests/slicing/variadic.c b/tests/slicing/variadic.c index 9a508c88ddb9ef48c91707a129f81473f354ef7d..852d33ec09b22866b249150e9c3e3037387fe5ff 100644 --- a/tests/slicing/variadic.c +++ b/tests/slicing/variadic.c @@ -1,9 +1,9 @@ /* run.config - OPT: -val-show-progress -slice-return f3 -no-slice-callers -journal-disable -then-on 'Slicing export' -print - OPT: -val-show-progress -slice-return f3 -no-slice-callers -journal-disable -variadic-no-translation -then-last -print - OPT: -val-show-progress -slice-return f3 -journal-disable -then-on 'Slicing export' -print - OPT: -val-show-progress -slice-return main -journal-disable -then-on 'Slicing export' -print - OPT: -val-show-progress -slice-return main -slicing-level 3 -journal-disable -then-on 'Slicing export' -print + OPT: -eva-show-progress -slice-return f3 -no-slice-callers -journal-disable -then-on 'Slicing export' -print + OPT: -eva-show-progress -slice-return f3 -no-slice-callers -journal-disable -variadic-no-translation -then-last -print + OPT: -eva-show-progress -slice-return f3 -journal-disable -then-on 'Slicing export' -print + OPT: -eva-show-progress -slice-return main -journal-disable -then-on 'Slicing export' -print + OPT: -eva-show-progress -slice-return main -slicing-level 3 -journal-disable -then-on 'Slicing export' -print */ #include "../pdg/variadic.c" diff --git a/tests/sparecode/bts324.i b/tests/sparecode/bts324.i index 736b2b35e0b95a9caa5aff1e3ced13ff81b7aed5..10be411858cbaec07333998d571317d26b436c22 100644 --- a/tests/sparecode/bts324.i +++ b/tests/sparecode/bts324.i @@ -1,7 +1,7 @@ /* run.config - OPT: -sparecode-analysis -val-show-progress -sparecode-debug 1 -journal-disable - OPT: -sparecode-analysis -val-show-progress -sparecode-debug 1 -main main_bis -journal-disable - OPT: -sparecode-analysis -val-show-progress -sparecode-debug 1 -main main_ter -journal-disable + OPT: -sparecode-analysis -eva-show-progress -sparecode-debug 1 -journal-disable + OPT: -sparecode-analysis -eva-show-progress -sparecode-debug 1 -main main_bis -journal-disable + OPT: -sparecode-analysis -eva-show-progress -sparecode-debug 1 -main main_ter -journal-disable */ diff --git a/tests/sparecode/bts324_bis.i b/tests/sparecode/bts324_bis.i index bc5d1cb1dc53bba71610c3eca06258a5468aa5fc..911010398ddab90e7b88b0e74580ac4671d0526a 100644 --- a/tests/sparecode/bts324_bis.i +++ b/tests/sparecode/bts324_bis.i @@ -1,7 +1,7 @@ /* run.config - OPT: -sparecode-analysis -val-show-progress -sparecode-debug 1 -journal-disable - OPT: -sparecode-analysis -val-show-progress -sparecode-debug 1 -main main_bis -journal-disable - OPT: -sparecode-analysis -val-show-progress -sparecode-debug 1 -sparecode-no-annot -journal-disable + OPT: -sparecode-analysis -eva-show-progress -sparecode-debug 1 -journal-disable + OPT: -sparecode-analysis -eva-show-progress -sparecode-debug 1 -main main_bis -journal-disable + OPT: -sparecode-analysis -eva-show-progress -sparecode-debug 1 -sparecode-no-annot -journal-disable */ int ki[2], k ; diff --git a/tests/sparecode/bts334.i b/tests/sparecode/bts334.i index d851de8a71839561c4ab60e101bf6069d35d25ed..171f62f180f2f28081ad965bbb693ffdece9d341 100644 --- a/tests/sparecode/bts334.i +++ b/tests/sparecode/bts334.i @@ -1,7 +1,7 @@ /*run.config - OPT: -main main_init -sparecode-analysis -val-show-progress -sparecode-no-annot -journal-disable - OPT: -main main_init -val-show-progress -slice-pragma loop_body -journal-disable -then-on 'Slicing export' -print - OPT: -main main_init -val-show-progress -slice-pragma loop_body -calldeps -journal-disable -then-on 'Slicing export' -print + OPT: -main main_init -sparecode-analysis -eva-show-progress -sparecode-no-annot -journal-disable + OPT: -main main_init -eva-show-progress -slice-pragma loop_body -journal-disable -then-on 'Slicing export' -print + OPT: -main main_init -eva-show-progress -slice-pragma loop_body -calldeps -journal-disable -then-on 'Slicing export' -print */ int kf ; int k[2] ; diff --git a/tests/sparecode/calls.i b/tests/sparecode/calls.i index 52b622c9acbdb251970cf17167b52ec8a077ecb0..48b0856afe09725705de7231f577f365523451f3 100644 --- a/tests/sparecode/calls.i +++ b/tests/sparecode/calls.i @@ -1,6 +1,6 @@ /* run.config - OPT: -sparecode-debug 1 -sparecode-analysis -val-show-progress -journal-disable - OPT: -slicing-level 2 -slice-return main -val-show-progress -journal-disable -then-on 'Slicing export' -print + OPT: -sparecode-debug 1 -sparecode-analysis -eva-show-progress -journal-disable + OPT: -slicing-level 2 -slice-return main -eva-show-progress -journal-disable -then-on 'Slicing export' -print */ int G; diff --git a/tests/sparecode/dead_code.i b/tests/sparecode/dead_code.i index 1e09d240bd389814f84fc0601cf291815cfa75d8..3f8966d815d5419320e9609ec024e3a134295394 100644 --- a/tests/sparecode/dead_code.i +++ b/tests/sparecode/dead_code.i @@ -1,6 +1,6 @@ /* run.config - OPT: -sparecode-debug 1 -sparecode -val-show-progress -journal-disable - OPT: -slicing-level 2 -slice-return main -val-show-progress -journal-disable -then-on 'Slicing export' -print + OPT: -sparecode-debug 1 -sparecode -eva-show-progress -journal-disable + OPT: -slicing-level 2 -slice-return main -eva-show-progress -journal-disable -then-on 'Slicing export' -print */ int main (void) { diff --git a/tests/sparecode/glob_decls.i b/tests/sparecode/glob_decls.i index 6e20925029404ba58c993cf5fd255daca0627188..f8f2da144f92c3af59badec8c604ed027cb2530c 100644 --- a/tests/sparecode/glob_decls.i +++ b/tests/sparecode/glob_decls.i @@ -1,6 +1,6 @@ /* run.config - OPT: -lib-entry -journal-disable -sparecode-debug 1 -sparecode-analysis -val-show-progress - OPT: -lib-entry -slice-pragma main -slice-return main -val-show-progress -journal-disable -then-on 'Slicing export' -print + OPT: -lib-entry -journal-disable -sparecode-debug 1 -sparecode-analysis -eva-show-progress + OPT: -lib-entry -slice-pragma main -slice-return main -eva-show-progress -journal-disable -then-on 'Slicing export' -print OPT: -journal-disable -sparecode-debug 1 -sparecode-rm-unused-globals */ diff --git a/tests/sparecode/intra.i b/tests/sparecode/intra.i index 013b2bc178c66e926918268a042944d697b17639..444aa11a381019d1d3e35784c6c2ed2abedb3683 100644 --- a/tests/sparecode/intra.i +++ b/tests/sparecode/intra.i @@ -1,9 +1,9 @@ /* run.config - OPT: -sparecode-debug 1 -sparecode-analysis -val-show-progress -journal-disable - OPT: -val-show-progress -slicing-level 2 -slice-return main -journal-disable -then-last -print - OPT: -main main2 -sparecode-analysis -val-show-progress -journal-disable - OPT: -main main2 -slice-return main2 -val-show-progress -journal-disable -then-last -print - OPT: -main main2 -slice-return main2 -val-show-progress -slice-assert f10 -journal-disable -then-last -print + OPT: -sparecode-debug 1 -sparecode-analysis -eva-show-progress -journal-disable + OPT: -eva-show-progress -slicing-level 2 -slice-return main -journal-disable -then-last -print + OPT: -main main2 -sparecode-analysis -eva-show-progress -journal-disable + OPT: -main main2 -slice-return main2 -eva-show-progress -journal-disable -then-last -print + OPT: -main main2 -slice-return main2 -eva-show-progress -slice-assert f10 -journal-disable -then-last -print */ /* Waiting for results such as: diff --git a/tests/sparecode/issue_157.i b/tests/sparecode/issue_157.i index 40a78c4e9e4da09ac8bba41cf879d0528ba7bc79..7bdc05ad32b28a32234327aa60fff8b85c1af9ff 100644 --- a/tests/sparecode/issue_157.i +++ b/tests/sparecode/issue_157.i @@ -1,5 +1,5 @@ /* run.config - OPT: -sparecode-debug 1 -sparecode-analysis -val-show-progress -journal-disable + OPT: -sparecode-debug 1 -sparecode-analysis -eva-show-progress -journal-disable */ int f() { diff --git a/tests/sparecode/params.i b/tests/sparecode/params.i index a3067e8f599fcbd3d33931c6c52c951766d45d7e..33c0142f48e1c4ccd543d08c85794130ff0406bb 100644 --- a/tests/sparecode/params.i +++ b/tests/sparecode/params.i @@ -1,6 +1,6 @@ /* run.config - OPT: -sparecode-debug 1 -sparecode-analysis -val-show-progress -journal-disable - OPT: -val-show-progress -slicing-level 2 -slice-return main -journal-disable -then-last -print -val-show-progress + OPT: -sparecode-debug 1 -sparecode-analysis -eva-show-progress -journal-disable + OPT: -eva-show-progress -slicing-level 2 -slice-return main -journal-disable -then-last -print -eva-show-progress */ /* This is an example from #529. 'y' in [main1] should be visible to get a diff --git a/tests/sparecode/se.i b/tests/sparecode/se.i index 4fc82d3410ca3eb7f3c8196eac3400611ffc9bba..8f7b0fe67601cacefe4bdbaad9bf41c666175b0a 100644 --- a/tests/sparecode/se.i +++ b/tests/sparecode/se.i @@ -1,5 +1,5 @@ /* run.config - OPT: -sparecode-debug 1 -sparecode-analysis -val-show-progress -lib-entry -main Se -journal-disable + OPT: -sparecode-debug 1 -sparecode-analysis -eva-show-progress -lib-entry -main Se -journal-disable */ int glob; diff --git a/tests/sparecode/top.i b/tests/sparecode/top.i index 0a44c18290fe408ead45c6f5784c424d3ac76788..40f7cc9d0b638782339926a246755fd5eae8f5bb 100644 --- a/tests/sparecode/top.i +++ b/tests/sparecode/top.i @@ -1,7 +1,7 @@ /* run.config - OPT: -sparecode-debug 1 -sparecode-analysis -val-show-progress -journal-disable -main main_top - OPT: -sparecode-debug 1 -sparecode-analysis -val-show-progress -journal-disable -main main_call_top - OPT: -sparecode-debug 1 -sparecode-analysis -val-show-progress -journal-disable -main main_top_not_used + OPT: -sparecode-debug 1 -sparecode-analysis -eva-show-progress -journal-disable -main main_top + OPT: -sparecode-debug 1 -sparecode-analysis -eva-show-progress -journal-disable -main main_call_top + OPT: -sparecode-debug 1 -sparecode-analysis -eva-show-progress -journal-disable -main main_top_not_used */ void print (int x); diff --git a/tests/spec/Extend.i b/tests/spec/Extend.i index f69d26eaa2c682768fac5d5e49134f1eeee1c044..ff81bb51cab62adebb757548a563b5c5c4ac1a00 100644 --- a/tests/spec/Extend.i +++ b/tests/spec/Extend.i @@ -1,6 +1,6 @@ /* run.config -EXECNOW: make @PTEST_DIR@/@PTEST_NAME@.cmxs -OPT: -load-module @PTEST_DIR@/@PTEST_NAME@ -copy -kernel-warn-key=annot-error=active +EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs +OPT: -no-autoload-plugins -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs -copy -kernel-warn-key=annot-error=active */ /*@ foo x == 0; @@ -43,9 +43,9 @@ int k(int z) { /*@ global_foo \forall integer x; x < x + 1 ; */ - +//@ behavior ca_foo: ensures ca_foo: \true; void loop (void) { - //@ ca_foo \true; + //@ for ca_foo: ca_foo \true; //@ ns_foo \true; //@ baz \true; /*@ loop invariant \true; */ diff --git a/tests/spec/add_global.i b/tests/spec/add_global.i index 0eeae27f26ff17543f3219293e44182bc5e22337..7ed406648a9ae0f6d2d9f3d5357314714edf358c 100644 --- a/tests/spec/add_global.i +++ b/tests/spec/add_global.i @@ -1,6 +1,6 @@ /* run.config EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs -OPT: -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs -print +OPT: -no-autoload-plugins -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs -print */ int main () { return 0; } diff --git a/tests/spec/array_typedef.c b/tests/spec/array_typedef.c index 0d6a797fd17f4bf58c99e2a0ec0c659a51726950..428631d42b5e38a7a03c48c8e1e2943d65e75ade 100644 --- a/tests/spec/array_typedef.c +++ b/tests/spec/array_typedef.c @@ -1,5 +1,5 @@ /*run.config - OPT: -print -val -val-show-progress -journal-disable + OPT: -print -eva -eva-show-progress -journal-disable */ #define IP_FIELD 4 typedef int ip_address[IP_FIELD]; diff --git a/tests/spec/assigns_result.i b/tests/spec/assigns_result.i index 0d2383cab6c2fb5cbaf4c4693a0c0c3c6aea6327..ed6cce9a19e7e03a9b6c8de56c43c3ad16434d38 100644 --- a/tests/spec/assigns_result.i +++ b/tests/spec/assigns_result.i @@ -1,5 +1,5 @@ /* run.config - STDOPT: +"-deps -val-show-progress" + STDOPT: +"-deps -eva-show-progress" */ int X,Y; diff --git a/tests/spec/assigns_void.c b/tests/spec/assigns_void.c index 6eee31fecca6d05734670746416af4eec63b0d3c..dd592b430a547283e8d9f1996095edc1a6809d40 100644 --- a/tests/spec/assigns_void.c +++ b/tests/spec/assigns_void.c @@ -1,6 +1,6 @@ /* run.config OPT: -print -journal-disable -kernel-warn-key=annot-error=active - OPT: -val -val-show-progress -main g -print -no-annot -journal-disable + OPT: -eva -eva-show-progress -main g -print -no-annot -journal-disable */ //@ assigns *x; void f(void *x); diff --git a/tests/spec/behavior_assert.c b/tests/spec/behavior_assert.c index 551c74f6054051da247b91e7b25cf5bbce59c6a0..6b0939f5160e01bf3dce27c5eeba231cb3e5da0f 100644 --- a/tests/spec/behavior_assert.c +++ b/tests/spec/behavior_assert.c @@ -1,6 +1,6 @@ /* run.config -OPT: -val -val-show-progress -deps -out -input -journal-disable -lib-entry -OPT: -val -val-show-progress -deps -out -input -journal-disable +OPT: -eva -eva-show-progress -deps -out -input -journal-disable -lib-entry +OPT: -eva -eva-show-progress -deps -out -input -journal-disable */ int e; diff --git a/tests/spec/bts0578.i b/tests/spec/bts0578.i index 4d3a94ab5cecf0919d35a0beeea9433f38f410c8..c94e20665e6bda514c2d2f3460c2c132504d509c 100644 --- a/tests/spec/bts0578.i +++ b/tests/spec/bts0578.i @@ -1,5 +1,6 @@ /* run.config - OPT: -print -load-script ./tests/spec/bts0578.ml + EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs + OPT: -print -load-module ./@PTEST_DIR@/@PTEST_NAME@ */ /*@ behavior foo: ensures \true; */ diff --git a/tests/spec/bts0655.i b/tests/spec/bts0655.i index b994e76793c1467df1e4d2dc3af4ba9bda747209..b5947620ab99b29f05efcec6781e7549d0ff63c8 100644 --- a/tests/spec/bts0655.i +++ b/tests/spec/bts0655.i @@ -1,5 +1,6 @@ /* run.config - OPT: -load-script tests/spec/bts0655.ml + EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs + OPT: -no-autoload-plugins -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs */ /*@ @ ensures \result == \max( a, b ); diff --git a/tests/spec/clash_double_file_bts1598.c b/tests/spec/clash_double_file_bts1598.c index 9903d9ed17ff2676f5d353e8bb04ef51a2a17898..ca549981a5bf117bea05f296554329ef7ebe4e0d 100644 --- a/tests/spec/clash_double_file_bts1598.c +++ b/tests/spec/clash_double_file_bts1598.c @@ -28,6 +28,5 @@ OPT: @PTEST_FILE@ -cpp-extra-args " -Ishare/libc -nostdinc" -print -then -ocode #include "string.h" //#include "tgmath.h" #include "time.h" -#include "uchar.h" #include "wchar.h" #include "wctype.h" diff --git a/tests/spec/comparison.i b/tests/spec/comparison.i index 9fc56fc54cfb485abfc7007da7dfae3add8102e1..a62a8a65c779ed28e8b1795d4182dc1a0897c66e 100644 --- a/tests/spec/comparison.i +++ b/tests/spec/comparison.i @@ -1,5 +1,6 @@ /* run.config - OPT: -load-script tests/spec/comparison.ml + EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs + OPT: -no-autoload-plugins -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs */ /*@ predicate foo(boolean a, boolean b) = a == b; */ diff --git a/tests/spec/default_assigns_bts0966.i b/tests/spec/default_assigns_bts0966.i index 48a1ea80302120436b52b51bbce5e2edc70c31ba..6b4cd671eda66ecb86c8a548620127b06604a1e6 100644 --- a/tests/spec/default_assigns_bts0966.i +++ b/tests/spec/default_assigns_bts0966.i @@ -1,5 +1,5 @@ /* run.config - OPT: -val -print + OPT: -eva -print */ int auto_states[4] ; // = { 1 , 0 , 0, 0 }; diff --git a/tests/spec/expr_to_term.i b/tests/spec/expr_to_term.i index 74bd6f5aa8b625b8e0099467e25d85794a6b5922..12078604eca0f6f0bf50d630d939b9539203ff83 100644 --- a/tests/spec/expr_to_term.i +++ b/tests/spec/expr_to_term.i @@ -1,8 +1,7 @@ /* run.config -EXECNOW: make @PTEST_DIR@/@PTEST_NAME@.cmxs -OPT: -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs -print +EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs +OPT: -no-autoload-plugins -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs -print */ - int x[10]; struct S { int y; int z; } s; diff --git a/tests/spec/kw.c b/tests/spec/kw.c index 8ad24442c35f8b6f90d1732c732857310d73b295..eb7b4e0b8fb456a73b66648f3d8fbd1b4cb9fd81 100644 --- a/tests/spec/kw.c +++ b/tests/spec/kw.c @@ -9,6 +9,7 @@ assert behavior = 0; ensures behavior >= 0; */ int main () { + //@ slevel 4; behavior++; return 0; } @@ -23,3 +24,18 @@ model{L}(l1,ll1) ==> model(Cons(0,l1),Cons(0,ll1)); } */ +/*@ axiomatic foo { + logic integer func(integer i) reads behavior; +} +*/ + +volatile int assigns; + +int ensures(volatile int* a) { return *a; } +int requires(volatile int*a, int v) { *a = v; return v; } + +/*@ volatile assigns reads ensures writes requires; */ + +int slevel = 1000000; + +//@ lemma bar: slevel >= 0; diff --git a/tests/spec/location_char.c b/tests/spec/location_char.c index 3b9e457c7bbc26bda4de6536508d5f914e28b97a..99339a087cfd144ae6a400c10249fa9394530e4b 100644 --- a/tests/spec/location_char.c +++ b/tests/spec/location_char.c @@ -1,6 +1,6 @@ /* run.config EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs -OPT: -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs +OPT: -no-autoload-plugins -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs */ /*@ requires x <= 0; diff --git a/tests/spec/logic_def.c b/tests/spec/logic_def.c index 7e6f27b300fc5e84eba48d572ea9de13095f14aa..a9050410d76999cd48d4168575d26b22c5760e8d 100644 --- a/tests/spec/logic_def.c +++ b/tests/spec/logic_def.c @@ -1,5 +1,5 @@ /* run.config - STDOPT: +"-val -value-verbose 2" + STDOPT: +"-eva -eva-verbose 2" */ //@ logic integer foo(int x) = x + 2 ; diff --git a/tests/spec/model.i b/tests/spec/model.i index 0d4fe0b8b8f4672fb9ff0bc29b15e1669f8375c2..840ab0193bc7883a50f8671c43f01ad4264e3c08 100644 --- a/tests/spec/model.i +++ b/tests/spec/model.i @@ -1,8 +1,8 @@ /* run.config -STDOPT: +"-load-script tests/spec/model.ml" +EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs +STDOPT: +"-no-autoload-plugins -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs" */ struct S { int x; int y; }; - typedef struct S T; /*@ model struct S { integer z }; */ diff --git a/tests/spec/oracle/Extend.res.oracle b/tests/spec/oracle/Extend.res.oracle index da72437c2ec75953a1a792fe19cde406a578e188..6fb85da86bac26486fff0df9fa0c8dfba1551d99 100644 --- a/tests/spec/oracle/Extend.res.oracle +++ b/tests/spec/oracle/Extend.res.oracle @@ -48,9 +48,11 @@ int k(int z) /*@ global_foo ∀ ℤ x; x < x + 1; */ +/*@ behavior ca_foo: + ensures ca_foo: \true; */ void loop(void) { - /*@ ca_foo \true; */ ; + /*@ for ca_foo: ca_foo \true; */ ; /*@ ns_foo \true; */ /*@ baz \true; */ /*@ loop invariant \true; */ diff --git a/tests/spec/oracle/behavior_names.res.oracle b/tests/spec/oracle/behavior_names.res.oracle index 2bb78b303affead82ba4b673af4472e0bab8d6e0..f24db2ef02802cafbde4da8907ddda15be054a5c 100644 --- a/tests/spec/oracle/behavior_names.res.oracle +++ b/tests/spec/oracle/behavior_names.res.oracle @@ -78,7 +78,7 @@ void j(void) behavior while: ensures while: \true; - behavior normal: + behavior ensures: ensures ensures: \true; behavior logic: diff --git a/tests/spec/oracle/kw.res.oracle b/tests/spec/oracle/kw.res.oracle index 916e6673c1c89285920152a2cb1ee4c22b6e12f1..b9d920cb849457f0161ca7ed3551f23b325e6cd8 100644 --- a/tests/spec/oracle/kw.res.oracle +++ b/tests/spec/oracle/kw.res.oracle @@ -12,6 +12,7 @@ assert behavior = 0; int main(void) { int __retres; + /*@ slevel 4; */ behavior ++; __retres = 0; return __retres; @@ -25,6 +26,32 @@ inductive model{L}(List<ℤ> root, List<ℤ> logic_list) { case cons{L}: ∀ List<ℤ> l1, List<ℤ> ll1; model(l1, ll1) ⇒ model(Cons(0, l1), Cons(0, ll1)); } + */ +/*@ axiomatic foo { + logic ℤ func{L}(ℤ i) + reads behavior; + + } + +*/ +int volatile assigns; +int ensures(int volatile *a) +{ + int __retres; + __retres = *a; + return __retres; +} + +int requires(int volatile *a, int v) +{ + *a = v; + return v; +} + +/*@ volatile assigns reads ensures writes requires; +*/ +int slevel = 1000000; +/*@ lemma bar{L}: slevel ≥ 0; */ diff --git a/tests/spec/pp_empty_spec.i b/tests/spec/pp_empty_spec.i index 0835b8c2332205289f637c06c42bcf7597904778..6d337f8500a51c4c764145969e8ef1c73bcff1f0 100644 --- a/tests/spec/pp_empty_spec.i +++ b/tests/spec/pp_empty_spec.i @@ -1,5 +1,6 @@ /* run.config - OPT: -load-script @PTEST_DIR@/@PTEST_NAME@.ml + EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs + OPT: -no-autoload-plugins -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs */ int main(void) { int x = 0; diff --git a/tests/spec/preprocess.c b/tests/spec/preprocess.c index 294c1bf784a99fafff061901d9f96c4e35b37727..db8406068d2487fbd9867ce45e9521c5bfe7894b 100644 --- a/tests/spec/preprocess.c +++ b/tests/spec/preprocess.c @@ -1,5 +1,5 @@ /* run.config - OPT: -pp-annot -val -val-show-progress -journal-disable + OPT: -pp-annot -eva -eva-show-progress -journal-disable */ // see bts 1357 diff --git a/tests/spec/property_test.i b/tests/spec/property_test.i index 07866538d3b1fcd413af495a25efa29e3c5d35c2..6f1de940f0cb8b128f6d9fefa4c635c806f5a267 100644 --- a/tests/spec/property_test.i +++ b/tests/spec/property_test.i @@ -1,5 +1,6 @@ /* run.config - OPT: -load-script tests/spec/property_test.ml + EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs + OPT: -no-autoload-plugins -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs */ int X; diff --git a/tests/spec/shifts.c b/tests/spec/shifts.c index 81e3020d21d458c4505cec016e623861f46c377c..349f47cc445c70f7e5584348e413c3ecbe4254fa 100644 --- a/tests/spec/shifts.c +++ b/tests/spec/shifts.c @@ -1,5 +1,5 @@ /* run.config - OPT: -val -val-show-progress -deps -journal-disable + OPT: -eva -eva-show-progress -deps -journal-disable */ int e; diff --git a/tests/spec/statement_behavior.c b/tests/spec/statement_behavior.c index aad0ee41a9feaf53fb283d476be35f6075dd827e..a07de2bcdd4b99025cdd3312a06e4c78d774e51a 100644 --- a/tests/spec/statement_behavior.c +++ b/tests/spec/statement_behavior.c @@ -1,5 +1,5 @@ /* run.config - OPT: -val -val-show-progress -inout -journal-disable + OPT: -eva -eva-show-progress -inout -journal-disable */ /*@ ensures \result == (int)(5 * x); */ diff --git a/tests/spec/type_constructors_in_env.i b/tests/spec/type_constructors_in_env.i index f60aaadd9d224592b2297d6df9eab1cf6c096d68..636049ed329cfd848d51760fd52d2d84701261fc 100644 --- a/tests/spec/type_constructors_in_env.i +++ b/tests/spec/type_constructors_in_env.i @@ -1,6 +1,6 @@ /* run.config EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs -OPT: -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs +OPT: -no-autoload-plugins -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs */ /*@ type foo = A | B; */ diff --git a/tests/syntax/Refresh_visitor.i b/tests/syntax/Refresh_visitor.i index 1862ff45eac014d0edeb5fbbcf9d1211b4173255..0786760a68f8f6abcb244f9485e74fdeac8cbee5 100644 --- a/tests/syntax/Refresh_visitor.i +++ b/tests/syntax/Refresh_visitor.i @@ -1,6 +1,6 @@ /* run.config EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs -OPT: -load-module @PTEST_DIR@/@PTEST_NAME@ -val-show-progress +OPT: -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs -eva-show-progress */ struct S { int i; }; diff --git a/tests/syntax/add_allocates.i b/tests/syntax/add_allocates.i index de0ffa3fe47e7ec04c07eda84e9e262a483a07c4..2153e41ea67e6f54eeaf4a2b2719f3abb359eeac 100644 --- a/tests/syntax/add_allocates.i +++ b/tests/syntax/add_allocates.i @@ -1,5 +1,6 @@ /* run.config - OPT: -load-script tests/syntax/add_allocates.ml -print + EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs + OPT: -no-autoload-plugins -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs -print */ diff --git a/tests/syntax/asm_goto.i b/tests/syntax/asm_goto.i index 9219d8b78aa21d4bab84922c6a8c73ee951eb0cb..42466a787d912f1a43fe824de85f4a4b462f153b 100644 --- a/tests/syntax/asm_goto.i +++ b/tests/syntax/asm_goto.i @@ -1,7 +1,13 @@ /* run.config STDOPT:+"-copy" */ -int main(unsigned short bit) + +void basic(void) +{ + __asm__ ("xor %eax, %eax\n\t"); +} + +int main(unsigned short bit) { asm goto ("1: jmp %l[t_no]\n" /* skipping size check since replacement size = 0 */ diff --git a/tests/syntax/assembly_gmp.c b/tests/syntax/assembly_gmp.c index 516c86c68e94b1335c157148742b0f8840ab8bf2..91147a158763ae13d17eecc141f65177efbffdcc 100644 --- a/tests/syntax/assembly_gmp.c +++ b/tests/syntax/assembly_gmp.c @@ -52,7 +52,7 @@ File modified by CEA LIST for inclusion in Frama-C test suite #include "stddef.h" -#ifdef __FC_MACHDEP_X86_32 +#ifdef __FC_MACHDEP_GCC_X86_32 #define GMP_LIMB_BITS 32 #define add_mssaaaa(m, s1, s0, a1, a0, b1, b0) \ __asm__ ( "add %6, %k2\n\t" \ @@ -63,7 +63,7 @@ File modified by CEA LIST for inclusion in Frama-C test suite "%2" ((USItype)(a0)), "g" ((USItype)(b0))) #endif -#ifdef __FC_MACHDEP_X86_64 +#ifdef __FC_MACHDEP_GCC_X86_64 #define GMP_LIMB_BITS 64 #define add_mssaaaa(m, s1, s0, a1, a0, b1, b0) \ __asm__ ( "add %6, %q2\n\t" \ diff --git a/tests/syntax/ast_init.i b/tests/syntax/ast_init.i index 77d503529616cf024179a591aa65f33bf83c04d0..1e9aad67b5d3289f2c50f423edf4697fb2fb77fa 100644 --- a/tests/syntax/ast_init.i +++ b/tests/syntax/ast_init.i @@ -1,6 +1,6 @@ /* run.config EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs -OPT: -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs +OPT: -no-autoload-plugins -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs */ int f(int x) { return x; } diff --git a/tests/syntax/char_is_unsigned.i b/tests/syntax/char_is_unsigned.i index f87954814a8e3d056d969c21a0df2de678014fe9..a3fbe427e1e26c1733ff8eecd4e4bd29fa9270d3 100644 --- a/tests/syntax/char_is_unsigned.i +++ b/tests/syntax/char_is_unsigned.i @@ -1,5 +1,6 @@ -/* run.config - OPT:-print -load-script tests/syntax/machdep_char_unsigned.ml -machdep unsigned_char -then -constfold -rte +/* run.config + EXECNOW: make -s @PTEST_DIR@/machdep_char_unsigned.cmxs + OPT:-print -load-module @PTEST_DIR@/machdep_char_unsigned -machdep unsigned_char -then -constfold -rte */ char t[10]; diff --git a/tests/syntax/clone_test.i b/tests/syntax/clone_test.i index e0a82386a6c8f795a3e7d70252220e76f625f0e2..7d94b47b61384b15dac0b60062acd1148947726a 100644 --- a/tests/syntax/clone_test.i +++ b/tests/syntax/clone_test.i @@ -1,5 +1,6 @@ /* run.config -OPT: -load-script @PTEST_DIR@/@PTEST_NAME@.ml +EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs +OPT: -no-autoload-plugins -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs */ /*@ diff --git a/tests/syntax/copy_logic.i b/tests/syntax/copy_logic.i index 453b6078d2c10b8b8ac4d9d09fb4e660985f4816..271bdce7af4fbd5e66c5393e3a7078be00677bbc 100644 --- a/tests/syntax/copy_logic.i +++ b/tests/syntax/copy_logic.i @@ -1,5 +1,5 @@ /* run.config - STDOPT: +"-copy" +"-val" + STDOPT: +"-copy" +"-eva" */ /*@ predicate p(int x); */ diff --git a/tests/syntax/copy_visitor.i b/tests/syntax/copy_visitor.i index aa7979e8dbbf1d63adc60dcd671062ce1aa9f8cb..5d4fe0c44c0deb4b80f47c916ca55e43e9f1015b 100644 --- a/tests/syntax/copy_visitor.i +++ b/tests/syntax/copy_visitor.i @@ -1,5 +1,5 @@ /* run.config - STDOPT: +"-copy -val -val-show-progress" + STDOPT: +"-copy -eva -eva-show-progress" */ struct S { int a; diff --git a/tests/syntax/copy_visitor_bts_1073.c b/tests/syntax/copy_visitor_bts_1073.c index 1c03240bfff694e5541238663e80381011ac77e7..a20b81af83fc0cb5b769207afd287f77450a2a17 100644 --- a/tests/syntax/copy_visitor_bts_1073.c +++ b/tests/syntax/copy_visitor_bts_1073.c @@ -1,6 +1,8 @@ /* run.config -OPT: -load-script tests/syntax/copy_visitor_bts_1073.ml -OPT: -load-script tests/syntax/copy_visitor_bts_1073_bis.ml -test -then-on filtered -print +EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs +EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@_bis.cmxs +OPT: -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs +OPT: -load-module @PTEST_DIR@/@PTEST_NAME@_bis -test -then-on filtered -print */ #include "stdio.h" diff --git a/tests/syntax/extern_init.i b/tests/syntax/extern_init.i index f89039fe9960277efba6698e2db4628e804de50e..f236a513e9376c46b56a968c5ac4f1e2095dea4f 100644 --- a/tests/syntax/extern_init.i +++ b/tests/syntax/extern_init.i @@ -1,6 +1,6 @@ /* run.config -OPT: @PTEST_DIR@/@PTEST_NAME@_1.i @PTEST_DIR@/@PTEST_NAME@_2.i -val -val-show-progress -OPT: @PTEST_DIR@/@PTEST_NAME@_2.i @PTEST_DIR@/@PTEST_NAME@_1.i -val -val-show-progress +OPT: @PTEST_DIR@/@PTEST_NAME@_1.i @PTEST_DIR@/@PTEST_NAME@_2.i -eva -eva-show-progress +OPT: @PTEST_DIR@/@PTEST_NAME@_2.i @PTEST_DIR@/@PTEST_NAME@_1.i -eva -eva-show-progress */ extern int a[] ; diff --git a/tests/syntax/forloophook.i b/tests/syntax/forloophook.i index 6fee07446ff502447a466480a7b40e3b9708cddb..d9e38bd7b222e52182a102421f32151e285020ec 100644 --- a/tests/syntax/forloophook.i +++ b/tests/syntax/forloophook.i @@ -1,5 +1,6 @@ /* run.config - OPT: -load-script tests/syntax/forloophook.ml + EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs + OPT: -no-autoload-plugins -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs */ void f() { for (int i=0; i< 10; i++); diff --git a/tests/syntax/formals_decl_leak.i b/tests/syntax/formals_decl_leak.i index 6a521af4ade9356c5ed4431debc0970ff9d87596..93a7dc265a729926ce94aac380f8ec67a67198b8 100644 --- a/tests/syntax/formals_decl_leak.i +++ b/tests/syntax/formals_decl_leak.i @@ -1,5 +1,6 @@ /* run.config -OPT: -print -load-script tests/syntax/formals_decl_leak.ml tests/syntax/formals_decl_leak_1.i +EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs +OPT: -print -no-autoload-plugins -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs @PTEST_DIR@/@PTEST_NAME@_1.i */ void f(int x); diff --git a/tests/syntax/get_astinfo_bts1136.i b/tests/syntax/get_astinfo_bts1136.i index bbb4f115aa35e1323469e5de9abb7633af777c9b..694aacdf37979df8db7e8043f9ed6268c82efa73 100644 --- a/tests/syntax/get_astinfo_bts1136.i +++ b/tests/syntax/get_astinfo_bts1136.i @@ -1,5 +1,6 @@ /* run.config -OPT: -load-script tests/syntax/get_astinfo_bts1136.ml +EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs +OPT: -no-autoload-plugins -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs */ int f (int x) { return x; } int g (int x) { return x; } diff --git a/tests/syntax/inserted_casts.c b/tests/syntax/inserted_casts.c index 62ce8c000f283dfbfa406daaa8ab0f9b59805724..805496d3d23a36a8bb973199a0e95203a72363ab 100644 --- a/tests/syntax/inserted_casts.c +++ b/tests/syntax/inserted_casts.c @@ -1,7 +1,7 @@ /* run.config EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs - STDOPT: +"-load-module @PTEST_DIR@/@PTEST_NAME@.cmxs" - STDOPT: +"-load-module @PTEST_DIR@/@PTEST_NAME@.cmxs" +"-machdep x86_64" + STDOPT: +"-no-autoload-plugins -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs" + STDOPT: +"-no-autoload-plugins -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs" +"-machdep x86_64" */ #include "stddef.h" int f(int b) diff --git a/tests/syntax/logic_env.i b/tests/syntax/logic_env.i index 6d8082506687116f05472ed8e711b5cee580024e..9570e109382c07d8d19a57248a384cbc372b9e66 100644 --- a/tests/syntax/logic_env.i +++ b/tests/syntax/logic_env.i @@ -1,5 +1,6 @@ /* run.config -OPT: -load-script tests/syntax/logic_env_script.ml +EXECNOW: make -s @PTEST_DIR@/logic_env_script.cmxs +OPT: -load-module @PTEST_DIR@/logic_env_script */ //@ predicate foo(integer x) = x == 0; diff --git a/tests/syntax/loop-case-switch-for-unroll.c b/tests/syntax/loop-case-switch-for-unroll.c index 7ff0d344b7339b5fcb675fb62c1c6d984c13eff8..c379555af57ec055957c8c275177345fa51eb177 100644 --- a/tests/syntax/loop-case-switch-for-unroll.c +++ b/tests/syntax/loop-case-switch-for-unroll.c @@ -1,7 +1,7 @@ /* run.config - STDOPT: +"-slevel 100 -val" - STDOPT: +"-ulevel 1 -slevel 100 -val" - STDOPT: +"-ulevel 2 -slevel 100 -val" + STDOPT: +"-slevel 100 -eva" + STDOPT: +"-ulevel 1 -slevel 100 -eva" + STDOPT: +"-ulevel 2 -slevel 100 -eva" COMMENT: compile and run with GCC, save output to a file, and compare it to the result of Frama-C piped to: "| grep Frama_C_show_each | sed 's/^.*Frama_C_show_each_//'" diff --git a/tests/syntax/mutable_test.i b/tests/syntax/mutable_test.i index b8ed2d45fb4ca9f14eedb77ca9b8522ad008c015..3c480aa053427eebf9bcf9ca6c5dcfd257cad058 100644 --- a/tests/syntax/mutable_test.i +++ b/tests/syntax/mutable_test.i @@ -1,6 +1,6 @@ /* run.config EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs -OPT: -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs -print +OPT: -no-autoload-plugins -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs -print */ struct R_1 { diff --git a/tests/syntax/oracle/asm_goto.res.oracle b/tests/syntax/oracle/asm_goto.res.oracle index 6adad0703a4b063ba99f11a63fa53fd9f07b281a..d54b25a180c938d97c226c0ea128585e9a4af754 100644 --- a/tests/syntax/oracle/asm_goto.res.oracle +++ b/tests/syntax/oracle/asm_goto.res.oracle @@ -1,5 +1,11 @@ [kernel] Parsing tests/syntax/asm_goto.i (no preprocessing) /* Generated by Frama-C */ +void basic(void) +{ + __asm__ ("xor %eax, %eax\n\t"); + return; +} + int main(unsigned short bit) { int __retres; diff --git a/tests/syntax/oracle/copy_visitor_bts_1073.0.res.oracle b/tests/syntax/oracle/copy_visitor_bts_1073.0.res.oracle index b08086fa1189c8a19bfdcd146efae1e6164eaa05..0300123cdfbf01077c59d4444adf412a34f2d27c 100644 --- a/tests/syntax/oracle/copy_visitor_bts_1073.0.res.oracle +++ b/tests/syntax/oracle/copy_visitor_bts_1073.0.res.oracle @@ -39,7 +39,7 @@ int g1(int y) \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int printf_va_1(char const *format); +int printf_va_1(char const * __restrict format); /*@ requires valid_read_string(format); requires valid_read_string(param1); @@ -53,7 +53,7 @@ int printf_va_1(char const *format); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), *(param1 + (0 ..)), param0; */ -int printf_va_2(char const *format, int param0, char *param1); +int printf_va_2(char const * __restrict format, int param0, char *param1); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -66,7 +66,7 @@ int printf_va_2(char const *format, int param0, char *param1); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_3(char const *format, int param0); +int printf_va_3(char const * __restrict format, int param0); int main(int argc, char **argv) { diff --git a/tests/syntax/oracle/copy_visitor_bts_1073.1.res.oracle b/tests/syntax/oracle/copy_visitor_bts_1073.1.res.oracle index abab08b18e01af58d1da88c6fe19b31b1d214cc0..1ec4c4a71b0e1cb79cb80015b4b33e280d12c0b7 100644 --- a/tests/syntax/oracle/copy_visitor_bts_1073.1.res.oracle +++ b/tests/syntax/oracle/copy_visitor_bts_1073.1.res.oracle @@ -29,7 +29,7 @@ int g(int y) \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))); */ -int printf_va_1(char const *format); +int printf_va_1(char const * __restrict format); /*@ requires valid_read_string(format); requires valid_read_string(param1); @@ -43,7 +43,7 @@ int printf_va_1(char const *format); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), *(param1 + (0 ..)), param0; */ -int printf_va_2(char const *format, int param0, char *param1); +int printf_va_2(char const * __restrict format, int param0, char *param1); /*@ requires valid_read_string(format); assigns \result, __fc_stdout->__fc_FILE_data; @@ -56,7 +56,7 @@ int printf_va_2(char const *format, int param0, char *param1); __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), param0; */ -int printf_va_3(char const *format, int param0); +int printf_va_3(char const * __restrict format, int param0); int main(int argc, char **argv) { diff --git a/tests/syntax/oracle/get_astinfo_bts1136.res.oracle b/tests/syntax/oracle/get_astinfo_bts1136.res.oracle index cffcd6e4b73cd1290264656bf7e80aefd76fe204..6366ae5e8ee9b4b79e1ce7de9a6dc6e2d8a70370 100644 --- a/tests/syntax/oracle/get_astinfo_bts1136.res.oracle +++ b/tests/syntax/oracle/get_astinfo_bts1136.res.oracle @@ -1,13 +1,13 @@ [kernel] Parsing tests/syntax/get_astinfo_bts1136.i (no preprocessing) -found variable vid:22 formal in f -found variable vid:25 formal in g -found variable vid:28 formal in h -found variable vid:30 formal in i -found variable vid:32 formal in j -found variable vid:34 formal in k -[do_v] vid:28 formal in h -[do_v] vid:25 formal in g -[do_v] vid:22 formal in f -[do_v] vid:34 local in k -[do_v] vid:32 local in j -[do_v] vid:30 local in i +found variable vid:20 formal in f +found variable vid:23 formal in g +found variable vid:26 formal in h +found variable vid:28 formal in i +found variable vid:30 formal in j +found variable vid:32 formal in k +[do_v] vid:26 formal in h +[do_v] vid:23 formal in g +[do_v] vid:20 formal in f +[do_v] vid:32 local in k +[do_v] vid:30 local in j +[do_v] vid:28 local in i diff --git a/tests/syntax/oracle/syntactic_hook.res.oracle b/tests/syntax/oracle/syntactic_hook.res.oracle index 4d15d03a3ad3423d6b318c306cfbdfe997c2aee2..f91bf389edacd90454102c87b50ef336951d9660 100644 --- a/tests/syntax/oracle/syntactic_hook.res.oracle +++ b/tests/syntax/oracle/syntactic_hook.res.oracle @@ -1,22 +1,22 @@ [kernel] Parsing tests/syntax/syntactic_hook.i (no preprocessing) [kernel] tests/syntax/syntactic_hook.i:5: - New global node introducing identifier f(22) + New global node introducing identifier f(20) [kernel] First occurrence of f [kernel] tests/syntax/syntactic_hook.i:7: - New global node introducing identifier k(25) + New global node introducing identifier k(23) [kernel] First occurrence of k [kernel] tests/syntax/syntactic_hook.i:9: - New global node introducing identifier k(25) + New global node introducing identifier k(23) [kernel] New occurrence of existing identifier k [kernel] tests/syntax/syntactic_hook.i:11: - New global node introducing identifier main(31) + New global node introducing identifier main(29) [kernel] First occurrence of main [kernel] tests/syntax/syntactic_hook.i:13: - New global node introducing identifier t(35) + New global node introducing identifier t(33) [kernel] First occurrence of t [kernel] tests/syntax/syntactic_hook.i:13: Warning: [SH]: definition of local function t -[kernel] :0: New global node introducing identifier g(37) +[kernel] :0: New global node introducing identifier g(35) [kernel] First occurrence of g [kernel:typing:implicit-function-declaration] tests/syntax/syntactic_hook.i:17: Warning: Calling undeclared function g. Old style K&R code? diff --git a/tests/syntax/oracle/volatile_clause.res.oracle b/tests/syntax/oracle/volatile_clause.res.oracle index 3e1cc563b886c7ed217b46eeec6f78ce7b58bad2..026eace2991033360e63f17e1cc54130de46ef26 100644 --- a/tests/syntax/oracle/volatile_clause.res.oracle +++ b/tests/syntax/oracle/volatile_clause.res.oracle @@ -10,6 +10,11 @@ /* Generated by Frama-C */ typedef unsigned int volatile Vunsigned; typedef int const Cint; +enum __anonenum_Enum_1 { + e = -1 +}; +typedef enum __anonenum_Enum_1 Enum; +typedef Enum const CEnum; unsigned int g(Vunsigned *q); unsigned int f(unsigned int volatile *q); @@ -92,5 +97,23 @@ int wr_ci400(int const volatile *p, int const v); /*@ volatile ci100 writes wr_ci100; */ /*@ volatile ci200 writes wr_ci200; */ /*@ volatile ci300 writes wr_ci300; */ -/*@ volatile ci400 writes wr_ci400; */ +/*@ volatile ci400 writes wr_ci400; +*/ +Enum volatile e3; +Enum wr_e3(Enum volatile *p, Enum const v); + +/*@ volatile e3 writes wr_e3; +*/ +Enum fe(Enum a); + +void ge(void) +{ + e3 = fe(e3); + return; +} + +CEnum volatile ce1; +CEnum volatile ce2; +CEnum volatile ce3; +CEnum volatile ce4; diff --git a/tests/syntax/reorder.i b/tests/syntax/reorder.i index a754b95d776a02a5cbdd5bba66b7b75ab834d7be..a611137930713ae5fbb4db09a2cbefdf59513905 100644 --- a/tests/syntax/reorder.i +++ b/tests/syntax/reorder.i @@ -1,5 +1,6 @@ /* run.config -OPT: -load-script tests/syntax/reorder.ml +EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs +OPT: -no-autoload-plugins -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs */ int x; diff --git a/tests/syntax/syntactic_hook.i b/tests/syntax/syntactic_hook.i index e5c19d372e4d3f7ba2012a42514e35805d4e4d72..d887e89667ec5464d71f2d68e749dfe68465f196 100644 --- a/tests/syntax/syntactic_hook.i +++ b/tests/syntax/syntactic_hook.i @@ -1,7 +1,7 @@ /* run.config - STDOPT: +"-load-script tests/syntax/syntactic_hook.ml" + EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs + STDOPT: +"-no-autoload-plugins -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs" */ - int f(void); int k(int *); diff --git a/tests/syntax/typedef_multi_1.c b/tests/syntax/typedef_multi_1.c index fac8ea328939009b61a97e51f0f01a2d5e03c945..33a8d6c3537a3452d299e6a481c5514bbdb93022 100644 --- a/tests/syntax/typedef_multi_1.c +++ b/tests/syntax/typedef_multi_1.c @@ -1,5 +1,6 @@ /* run.config - OPT: -load-script tests/syntax/typedef_multi.ml tests/syntax/typedef_multi_2.c + EXECNOW: make -s @PTEST_DIR@/typedef_multi.cmxs + OPT: -load-module @PTEST_DIR@/typedef_multi tests/syntax/typedef_multi_2.c */ #include "tests/syntax/typedef_multi.h" diff --git a/tests/syntax/unroll_labels.i b/tests/syntax/unroll_labels.i index ece369aa07bfe1cfee932ab297c638c15a9e8ede..16fd8a5807b47b8aaae954366ad91564e839c41e 100644 --- a/tests/syntax/unroll_labels.i +++ b/tests/syntax/unroll_labels.i @@ -1,6 +1,6 @@ /* run.config - STDOPT: +"-val -val-show-progress" - STDOPT: +"-val -val-show-progress -main main2 -slevel 3" + STDOPT: +"-eva -eva-show-progress" + STDOPT: +"-eva -eva-show-progress -main main2 -slevel 3" */ enum { SIX = 6 } ; volatile foo; diff --git a/tests/syntax/unroll_visit.i b/tests/syntax/unroll_visit.i index fc3a9b126d0474c3ab08b233c0f947d65d0d05a3..f086d3ab95fe99c1d63559bd48f58b21ba9e8596 100644 --- a/tests/syntax/unroll_visit.i +++ b/tests/syntax/unroll_visit.i @@ -1,5 +1,5 @@ /* run.config - STDOPT: +"-val -val-show-progress -deps -out -input -deps" + STDOPT: +"-eva -eva-show-progress -deps -out -input -deps" */ void main() { /*@ loop pragma UNROLL 2; */ diff --git a/tests/syntax/vdescr_bts1387.i b/tests/syntax/vdescr_bts1387.i index 7ef2f74b3ccce4b99ef88b539449c45b24854699..b20b1226bd2c890329ecea47201df49299e8f69b 100644 --- a/tests/syntax/vdescr_bts1387.i +++ b/tests/syntax/vdescr_bts1387.i @@ -1,5 +1,6 @@ /* run.config -OPT: -load-script tests/syntax/vdescr_bts1387.ml +EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs +OPT: -no-autoload-plugins -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs */ int f(int); int g(int); diff --git a/tests/syntax/visit_create_local.i b/tests/syntax/visit_create_local.i index 68bfe516292bfea1bbb41bc7327aa4acaf026ad1..6d9a88989bca1c8106862f9bb5dd304b6da357c0 100644 --- a/tests/syntax/visit_create_local.i +++ b/tests/syntax/visit_create_local.i @@ -1,4 +1,5 @@ /* run.config -OPT: -load-script tests/syntax/visit_create_local.ml -then-on bidon -print +EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs +OPT: -no-autoload-plugins -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs -then-on bidon -print */ void main() { int x,y; x = y; } diff --git a/tests/syntax/volatile_clause.i b/tests/syntax/volatile_clause.i index 7cd7df5c47f2afca3b19a3cb65550d3eae442772..140ca72f66f944c43ac3ed408f935cbbc3f1ffda 100644 --- a/tests/syntax/volatile_clause.i +++ b/tests/syntax/volatile_clause.i @@ -59,3 +59,22 @@ int wr_ci400 (const int volatile *p, const int v) ; //@ volatile ci200 writes wr_ci200; //@ volatile ci300 writes wr_ci300; //@ volatile ci400 writes wr_ci400; + +typedef enum { e=-1} Enum; +volatile Enum e3; +Enum wr_e3 (Enum volatile *p, const Enum v) ; + +//@ volatile e3 writes wr_e3; + +Enum fe(Enum a); +void ge(void) { + e3 = fe(e3); +} + +typedef const Enum CEnum ; +volatile CEnum ce1, ce2, ce3, ce4; + +CEnum wr_ce1 (CEnum volatile *p, const Enum v) ; +CEnum wr_ce2 (const Enum volatile *p, const Enum v) ; +Enum wr_ce3 (CEnum volatile *p, const Enum v) ; +Enum wr_ce4 (const Enum volatile *p, const Enum v) ; diff --git a/tests/test_config b/tests/test_config index a91db8af8058d7c47d9cfe18fc4cf4f15ddc1cfc..2bc92fd4aeaef3826e3b1bbe196cc94e70e5b7d6 100644 --- a/tests/test_config +++ b/tests/test_config @@ -1,2 +1,2 @@ -MACRO: VALUECONFIG -val-show-progress -no-autoload-plugins -load-module from,inout,eva,scope,variadic -OPT: -val @VALUECONFIG@ -journal-disable -out -input -deps +MACRO: VALUECONFIG -eva-show-progress -no-autoload-plugins -load-module from,inout,eva,scope,variadic +OPT: -eva @VALUECONFIG@ -journal-disable -out -input -deps diff --git a/tests/test_config_apron b/tests/test_config_apron index c42178ee90327b3cdd4047557631a20ad9f7cd20..322d4a9bc6a2ce918eaa1a51add04bfcba58b4da 100644 --- a/tests/test_config_apron +++ b/tests/test_config_apron @@ -1,2 +1,2 @@ -MACRO: VALUECONFIG -val-show-progress -no-autoload-plugins -load-module from,inout,eva,scope,variadic -eva-apron-oct -value-msg-key experimental-ok -OPT: -val @VALUECONFIG@ -journal-disable -out -input -deps +MACRO: VALUECONFIG -eva-show-progress -no-autoload-plugins -load-module from,inout,eva,scope,variadic -eva-apron-oct -eva-msg-key experimental-ok +OPT: -eva @VALUECONFIG@ -journal-disable -out -input -deps diff --git a/tests/test_config_bitwise b/tests/test_config_bitwise index 80b0c0bf343a65d3e68df45074b0489264226d47..8440d81deff7f93a9ffa247948f1249605339f70 100644 --- a/tests/test_config_bitwise +++ b/tests/test_config_bitwise @@ -1,2 +1,2 @@ -MACRO: VALUECONFIG -val-show-progress -no-autoload-plugins -load-module from,inout,eva,scope,variadic -eva-bitwise-domain -OPT: -val @VALUECONFIG@ -journal-disable -out -input -deps +MACRO: VALUECONFIG -eva-show-progress -no-autoload-plugins -load-module from,inout,eva,scope,variadic -eva-bitwise-domain +OPT: -eva @VALUECONFIG@ -journal-disable -out -input -deps diff --git a/tests/test_config_equalities b/tests/test_config_equalities index 4aa37afb623c4d5280f48dbd0b5a8a9c7f467f21..18f6799ed4b473b5b0af8d2cbfa888c5c7b327a8 100644 --- a/tests/test_config_equalities +++ b/tests/test_config_equalities @@ -1,2 +1,2 @@ -MACRO: VALUECONFIG -val-show-progress -no-autoload-plugins -load-module from,inout,eva,scope,variadic -eva-equality-domain -OPT: -val @VALUECONFIG@ -journal-disable -out -input -deps +MACRO: VALUECONFIG -eva-show-progress -no-autoload-plugins -load-module from,inout,eva,scope,variadic -eva-equality-domain +OPT: -eva @VALUECONFIG@ -journal-disable -out -input -deps diff --git a/tests/test_config_gauges b/tests/test_config_gauges index 0f82d8f8677b84eb3a5775cfb565de06c36531b7..1840804ec6c6798661e77a1e611104ced98e21f3 100644 --- a/tests/test_config_gauges +++ b/tests/test_config_gauges @@ -1,2 +1,2 @@ -MACRO: VALUECONFIG -val-show-progress -no-autoload-plugins -load-module from,inout,eva,scope,variadic -eva-gauges-domain -OPT: -val @VALUECONFIG@ -journal-disable -out -input -deps +MACRO: VALUECONFIG -eva-show-progress -no-autoload-plugins -load-module from,inout,eva,scope,variadic -eva-gauges-domain +OPT: -eva @VALUECONFIG@ -journal-disable -out -input -deps diff --git a/tests/test_config_symblocs b/tests/test_config_symblocs index 0b0e7b910bea4e0ea909a366512070d373d7abf6..197dd499d60f0879ac68e95ff5fd1d26c6b7dbfc 100644 --- a/tests/test_config_symblocs +++ b/tests/test_config_symblocs @@ -1,2 +1,2 @@ -MACRO: VALUECONFIG -val-show-progress -no-autoload-plugins -load-module from,inout,eva,scope,variadic -eva-symbolic-locations-domain -OPT: -val @VALUECONFIG@ -journal-disable -out -input -deps +MACRO: VALUECONFIG -eva-show-progress -no-autoload-plugins -load-module from,inout,eva,scope,variadic -eva-symbolic-locations-domain +OPT: -eva @VALUECONFIG@ -journal-disable -out -input -deps diff --git a/tests/value/abstract_struct_1.c b/tests/value/abstract_struct_1.c index a2e852a24194ce359208884f3113ff7c5d4b5818..ccc737e525a0b5ae85217e983ea5e078f6b9080b 100644 --- a/tests/value/abstract_struct_1.c +++ b/tests/value/abstract_struct_1.c @@ -1,5 +1,5 @@ /* run.config* - STDOPT: #"tests/value/abstract_struct_2.c -lib-entry -value-msg-key initial-state" + STDOPT: #"tests/value/abstract_struct_2.c -lib-entry -eva-msg-key initial-state" */ #include "share/libc/stdlib.h" diff --git a/tests/value/align_char_array.c b/tests/value/align_char_array.c index dfdc0fbc6ba9bf5069330cb042e5a15554562a69..47c94d0dff2742ca5bc640b82e2f9e392dd4a751 100644 --- a/tests/value/align_char_array.c +++ b/tests/value/align_char_array.c @@ -1,5 +1,5 @@ /* run.config* - OPT: -no-autoload-plugins -load-module inout,eva -val @VALUECONFIG@ -cpp-extra-args="-DPTEST" -journal-disable + OPT: -no-autoload-plugins -load-module inout,eva -eva @VALUECONFIG@ -cpp-extra-args="-DPTEST" -journal-disable */ diff --git a/tests/value/array_initializer.i b/tests/value/array_initializer.i index 197f3c1c7f8e2f4601ddf5e1bff0686aa7690e40..37bce1c25946172877b9df83ffa41418f038821e 100644 --- a/tests/value/array_initializer.i +++ b/tests/value/array_initializer.i @@ -1,5 +1,5 @@ /* run.config* - OPT: -no-autoload-plugins -load-module inout,eva -val @VALUECONFIG@ -then -val-initialization-padding-globals maybe + OPT: -no-autoload-plugins -load-module inout,eva -eva @VALUECONFIG@ -then -eva-initialization-padding-globals maybe */ int t[5] = { [2] = 3 }; diff --git a/tests/value/array_zero_length.i b/tests/value/array_zero_length.i index bdcacb2414070ac87e2343ebd8ee355bd19bb8e5..68f536ad5870272b356d4224bfe88b5edefaa2a1 100644 --- a/tests/value/array_zero_length.i +++ b/tests/value/array_zero_length.i @@ -1,7 +1,7 @@ /* run.config* - OPT: -no-autoload-plugins -load-module inout,eva -val @VALUECONFIG@ -journal-disable -machdep gcc_x86_32 - OPT: -no-autoload-plugins -load-module inout,eva -val @VALUECONFIG@ -lib-entry -journal-disable -machdep gcc_x86_32 - OPT: -no-autoload-plugins -load-module inout,eva -val @VALUECONFIG@ -lib-entry -journal-disable + OPT: -no-autoload-plugins -load-module inout,eva -eva @VALUECONFIG@ -journal-disable -machdep gcc_x86_32 + OPT: -no-autoload-plugins -load-module inout,eva -eva @VALUECONFIG@ -lib-entry -journal-disable -machdep gcc_x86_32 + OPT: -no-autoload-plugins -load-module inout,eva -eva @VALUECONFIG@ -lib-entry -journal-disable */ char T[]; diff --git a/tests/value/automalloc.i b/tests/value/automalloc.i index ff94e60809e741f9391804f5ffaff618b6b2d42a..1d4c6f431f5c5d88d18f63a1e1657217bbbb7897 100644 --- a/tests/value/automalloc.i +++ b/tests/value/automalloc.i @@ -1,5 +1,5 @@ /* run.config* - STDOPT: #"-no-val-builtins-auto" + STDOPT: #"-eva-no-builtins-auto" */ typedef unsigned int size_t; diff --git a/tests/value/base_addr_offset_block_length.i b/tests/value/base_addr_offset_block_length.i index 1fa325d6b14b3fd0da031a1f496e2ab737f870f4..6242687662def92ef6f9d0ca4039c63108700f21 100644 --- a/tests/value/base_addr_offset_block_length.i +++ b/tests/value/base_addr_offset_block_length.i @@ -1,5 +1,5 @@ /* run.config* - OPT: -no-autoload-plugins -load-module inout,eva -val @VALUECONFIG@ -context-width 3 -then -slevel 3 + OPT: -no-autoload-plugins -load-module inout,eva -eva @VALUECONFIG@ -context-width 3 -then -slevel 3 */ diff --git a/tests/value/behavior_statuses.i b/tests/value/behavior_statuses.i index f2c152acfd8131ca49a7fb34cbc41e636f87c5c1..6c372018dc4355578450444f7d60d3b587b9bb33 100644 --- a/tests/value/behavior_statuses.i +++ b/tests/value/behavior_statuses.i @@ -1,6 +1,6 @@ /* run.config* STDOPT: +"-kernel-msg-key prop-status,-prop-status:register" - STDOPT: +"-kernel-msg-key prop-status,-prop-status:register -val-use-spec f" + STDOPT: +"-kernel-msg-key prop-status,-prop-status:register -eva-use-spec f" */ struct s { int t; }; diff --git a/tests/value/behaviors1.i b/tests/value/behaviors1.i index e84bd09834ac6fb1092c422eb71927224ddbc37b..60b16f2b4c42320575607e0a3085fd09be5617a9 100644 --- a/tests/value/behaviors1.i +++ b/tests/value/behaviors1.i @@ -1,5 +1,5 @@ /* run.config* - STDOPT: +"-value-verbose 2" + STDOPT: +"-eva-verbose 2" */ /*@ diff --git a/tests/value/behaviors2.c b/tests/value/behaviors2.c index 64201a79484b65c1e3335c0003d25a4bddff9eea..9fafaf582c20883a1c1cf5c2f8acf47b00cd7fa3 100644 --- a/tests/value/behaviors2.c +++ b/tests/value/behaviors2.c @@ -1,5 +1,5 @@ /* run.config* - STDOPT: +"-value-verbose 2" + STDOPT: +"-eva-verbose 2" */ #include <stdlib.h> diff --git a/tests/value/big_lib_entry.i b/tests/value/big_lib_entry.i index 46c016e8fd74257d266ddbdd9fd761d2348fbc6c..c8f5b717e3d969ee3c8284d57de157f8b0d333d7 100644 --- a/tests/value/big_lib_entry.i +++ b/tests/value/big_lib_entry.i @@ -1,5 +1,5 @@ /* run.config* - OPT: -no-autoload-plugins -load-module inout,eva -val @VALUECONFIG@ -lib-entry -context-width 4 -val-initialization-padding-globals no + OPT: -no-autoload-plugins -load-module inout,eva -eva @VALUECONFIG@ -lib-entry -context-width 4 -eva-initialization-padding-globals no */ typedef struct { diff --git a/tests/value/bitfield_longlong.c b/tests/value/bitfield_longlong.c index 62b3cf3571fec376c459e0db965b34170dbbb85c..f2736abcc60d1b5cf3ca87090497bb2a8c9ad58e 100644 --- a/tests/value/bitfield_longlong.c +++ b/tests/value/bitfield_longlong.c @@ -1,5 +1,5 @@ /* run.config* - OPT: -no-autoload-plugins -load-module inout,eva -val @VALUECONFIG@ -cpp-extra-args="-Dprintf=Frama_C_show_each" -journal-disable + OPT: -no-autoload-plugins -load-module inout,eva -eva @VALUECONFIG@ -cpp-extra-args="-Dprintf=Frama_C_show_each" -journal-disable */ struct X50 { long long int z:50; diff --git a/tests/value/bitwise.i b/tests/value/bitwise.i index 765c7bcb82a6d3e836c7cb5991573b88f3993882..7803ea7f36d1538b8c338aa8002c10eebd591e1c 100644 --- a/tests/value/bitwise.i +++ b/tests/value/bitwise.i @@ -1,6 +1,80 @@ +/* run.config* + STDOPT: +"-big-ints-hex 256" +*/ + +/*@ assigns \result \from min, max; + ensures min <= \result <= max ; + */ +int Frama_C_interval(int min, int max); + + volatile long v; - -void main_and_or_rel(void) +volatile unsigned char input[3]; + + +extern unsigned short s; + +void test1(void) { + int or1, or2, or3, or4, or5; + int and1, and2, and3, and4, xor1, xor2; + unsigned int uand1, uand2, uand3, uand4, uand5; + int a,b,c,d,e; + + a = Frama_C_interval(3,17); + b = Frama_C_interval(-3,17); + c = Frama_C_interval(13,27); + or1 = a | b; + or2 = a | c; + or3 = b | c; + + and1 = a & b; + and2 = a & c; + and3 = b & c; + + uand4 = 0xFFFFFFF8U & (unsigned int) c; + + xor1 = a ^ a; + xor2 = a ^ b; + + unsigned i1 = s * 2; + unsigned i2 = s * 4; + unsigned v1 = i1 & i2; + unsigned v2 = i1 | i2; + + unsigned mask07 = (16 * s + 13) & 0x7; + unsigned mask0f = (16 * s + 13) & 0xF; + unsigned mask1f = (16 * s + 13) & 0x1F; +} + +void test2(void) { + int x = Frama_C_interval(62,110) & ~(7); +} + +void test3(void) { + int x = (input[0] & 0x10 ? -1^255 : 0) | input[1]; + int y = (input[0] & 0x20 ? -1^255 : 0) | input[2]; +} + +int test4(void) +{ + unsigned something = v; + //@ slevel 2; + //@ assert something >= 0x80000000 || something < 0x80000000; + unsigned topBitOnly = something & 0x80000000; + Frama_C_show_each_1(something,topBitOnly); + something ^= topBitOnly; + Frama_C_show_each_2(something,something & 0x80000000,topBitOnly); + if (something & 0x80000000) { + Frama_C_show_each_true(something); + return 0; + } + else { + Frama_C_show_each_false(something); + return 1; + } +} + +void and_or_rel(void) { long x, r1, r2, r3; @@ -19,13 +93,13 @@ void main_and_or_rel(void) } -void main_bitwise() { +void double_neg() { unsigned int i = 5; unsigned int j = ~i; int k = ~(int)i; } -void main_bug1() +void bug1() { unsigned char msb = 3 << 1; unsigned char lsb = 3; @@ -35,22 +109,22 @@ void main_bug1() par = (unsigned char)(((int)par & 0x0F) ^ ((int)par >> 4)); } -void main_bug2() { +void bug2() { int t = v ? 1 : 2; if ((t & 7) == 1) { Frama_C_show_each_then(); } else { Frama_C_show_each_else(); } } /* See issue Value/Value#82 on the bitwise domain. */ -void main_bug3 () { +void bug3 () { unsigned long l_1180 = 10022045811482781039u; unsigned long foo = ~ (l_1180 ^ (unsigned long)(l_1180 != 0UL)); - Frama_C_dump_each(); + Frama_C_show_each(l_1180, foo); foo ^= 0; } /* Due to signedness mismatches, the bitwise domain incorrectly returned Bottom on one of the branches. */ -void main_bug4() { +void bug4() { int g_2 = v ? -1 : 0; short tmp = -0x1578; if ((g_2 | (int)tmp) & 1) { @@ -60,11 +134,15 @@ void main_bug4() { } } -void main() { - main_and_or_rel(); - main_bitwise(); - main_bug1(); - main_bug2(); - main_bug3(); - main_bug4(); +void main(void) { + test1(); + test2(); + test3(); + test4(); + and_or_rel(); + double_neg(); + bug1(); + bug2(); + bug3(); + bug4(); } diff --git a/tests/value/bitwise_or.c b/tests/value/bitwise_or.c deleted file mode 100644 index 4f10b3da2a75fad66d640ffe9be29d7ae0524834..0000000000000000000000000000000000000000 --- a/tests/value/bitwise_or.c +++ /dev/null @@ -1,39 +0,0 @@ -/* run.config* - OPT: -no-autoload-plugins -load-module inout,eva -big-ints-hex 256 -val @VALUECONFIG@ -journal-disable -*/ -#include "__fc_builtin.h" - -int or1, or2, or3, or4, or5; -int and1, and2, and3, and4, xor1, xor2; -unsigned int uand1, uand2, uand3, uand4, uand5; -int a,b,c,d,e; -extern unsigned short s; - -int main(){ - a = Frama_C_interval(3,17); - b = Frama_C_interval(-3,17); - c = Frama_C_interval(13,27); - or1 = a | b; - or2 = a | c; - or3 = b | c; - - and1 = a & b; - and2 = a & c; - and3 = b & c; - - uand4 = 0xFFFFFFF8U & (unsigned int) c; - - xor1 = a ^ a; - xor2 = a ^ b; - - unsigned i1 = s * 2; - unsigned i2 = s * 4; - unsigned v1 = i1 & i2; - unsigned v2 = i1 | i2; - - unsigned mask07 = (16 * s + 13) & 0x7; - unsigned mask0f = (16 * s + 13) & 0xF; - unsigned mask1f = (16 * s + 13) & 0x1F; - - return 0; -} diff --git a/tests/value/bts1306.i b/tests/value/bts1306.i index ff47ce401f23d88c799c60db674a00432cc1abf5..9510829da639426ef19637cd1cb1a0e0806099ba 100644 --- a/tests/value/bts1306.i +++ b/tests/value/bts1306.i @@ -1,5 +1,5 @@ /* run.config* - OPT: -no-autoload-plugins -load-module from,inout,eva -constfold -slevel 0 -val @VALUECONFIG@ -print -then -slevel 10 -val -print + OPT: -no-autoload-plugins -load-module from,inout,eva -constfold -slevel 0 -eva @VALUECONFIG@ -print -then -slevel 10 -eva -print */ void g(double x) { double y= x*x; } diff --git a/tests/value/builtins_split.c b/tests/value/builtins_split.c index 4c21814dc880123319c7e2dccfdea6403f7588c8..a04c5fcd46b8fc0e048b6a8e50fc2fce6d7b9639 100644 --- a/tests/value/builtins_split.c +++ b/tests/value/builtins_split.c @@ -1,5 +1,5 @@ /* run.config* - STDOPT: +"-val-show-progress -slevel 100" + STDOPT: +"-eva-show-progress -slevel 100" */ int *p; diff --git a/tests/value/case_analysis.i b/tests/value/case_analysis.i index 905736ca4d4c7357b8dbbd241aff0aae6b523337..ec27af6dac1b22bd763942951b3099bc8c3bef52 100644 --- a/tests/value/case_analysis.i +++ b/tests/value/case_analysis.i @@ -1,5 +1,5 @@ /* run.config* - OPT: -no-autoload-plugins -load-module inout,eva -val @VALUECONFIG@ -slevel 30 -journal-disable -float-normal + OPT: -no-autoload-plugins -load-module inout,eva -eva @VALUECONFIG@ -slevel 30 -journal-disable -float-normal */ diff --git a/tests/value/cmp_ptr.i b/tests/value/cmp_ptr.i index 443eb8e1f06b0568cc8e622fa6039f3699903aed..0d499b504eb8f99916d6587a98920d6df884e669 100644 --- a/tests/value/cmp_ptr.i +++ b/tests/value/cmp_ptr.i @@ -1,6 +1,6 @@ /* run.config* - STDOPT: #"-main main -value-msg-key pointer-comparison" - STDOPT: #"-undefined-pointer-comparison-propagate-all -value-msg-key pointer-comparison" + STDOPT: #"-main main -eva-msg-key pointer-comparison" + STDOPT: #"-undefined-pointer-comparison-propagate-all -eva-msg-key pointer-comparison" */ int *p,T[10]={0,1,2,3,4,5,6,7,8,9}; diff --git a/tests/value/cmp_ptr_follow_all_branches.i b/tests/value/cmp_ptr_follow_all_branches.i index 5f3a6bba1f18cee81a57587773858e7f98193827..2e5292ae2db3c924c1586872f139a8dfd3a55378 100644 --- a/tests/value/cmp_ptr_follow_all_branches.i +++ b/tests/value/cmp_ptr_follow_all_branches.i @@ -1,6 +1,6 @@ /* run.config* - STDOPT: #"-value-msg-key pointer-comparison" - STDOPT: #"-undefined-pointer-comparison-propagate-all -value-msg-key pointer-comparison" + STDOPT: #"-eva-msg-key pointer-comparison" + STDOPT: #"-undefined-pointer-comparison-propagate-all -eva-msg-key pointer-comparison" */ int a; diff --git a/tests/value/cond_integer_cast_of_float.i b/tests/value/cond_integer_cast_of_float.i index cf7821d3baf29c99e359750c0e667f63d9c14570..3d7605a20e54fd48b99cd0886bb99435dd785afa 100644 --- a/tests/value/cond_integer_cast_of_float.i +++ b/tests/value/cond_integer_cast_of_float.i @@ -1,5 +1,5 @@ /* run.config* - OPT: -no-autoload-plugins -load-module eva -val @VALUECONFIG@ -no-results -then -float-hex -main mainbis + OPT: -no-autoload-plugins -load-module eva -eva @VALUECONFIG@ -no-results -then -float-hex -main mainbis */ typedef double D; typedef float F; diff --git a/tests/value/const_typedef.i b/tests/value/const_typedef.i index 7506998ca7aacbefd2d4adb3c2bf30c43297c2d3..5bbbe2b4ac61247ec64546e56e18a1d24862cc0e 100644 --- a/tests/value/const_typedef.i +++ b/tests/value/const_typedef.i @@ -1,5 +1,5 @@ /* run.config* - OPT: -no-autoload-plugins -load-module inout,eva -print -then -val @VALUECONFIG@ -lib-entry -no-print + OPT: -no-autoload-plugins -load-module inout,eva -print -then -eva @VALUECONFIG@ -lib-entry -no-print */ typedef int INT[3][3]; diff --git a/tests/value/constarraystructlibentry.i b/tests/value/constarraystructlibentry.i index d48ca76a5c95ae5a13efdc67a186384be5c2c0d1..60b87c71f9c332c721ce10dc7b097f59eca92fef 100644 --- a/tests/value/constarraystructlibentry.i +++ b/tests/value/constarraystructlibentry.i @@ -1,5 +1,5 @@ /* run.config* - OPT: -no-autoload-plugins -load-module inout,eva -val @VALUECONFIG@ -lib-entry -val-initialization-padding-globals yes -then -val-initialization-padding-globals no + OPT: -no-autoload-plugins -load-module inout,eva -eva @VALUECONFIG@ -lib-entry -eva-initialization-padding-globals yes -then -eva-initialization-padding-globals no */ const int t[] = { 1, 2, 3, 4, 5 } ; diff --git a/tests/value/context_free.i b/tests/value/context_free.i index 1a0cb36bf4040179cdaf2cd22cef5b8cad05fbac..c53e2fabea58b76808b04c0a7cd8ba9f242667bf 100644 --- a/tests/value/context_free.i +++ b/tests/value/context_free.i @@ -1,6 +1,6 @@ /* run.config* GCC: - OPT: -no-autoload-plugins -load-module inout,eva -val @VALUECONFIG@ -lib-entry -main f -absolute-valid-range 0x200-0x199 -value-msg-key initial-state -journal-disable + OPT: -no-autoload-plugins -load-module inout,eva -eva @VALUECONFIG@ -lib-entry -main f -absolute-valid-range 0x200-0x199 -eva-msg-key initial-state -journal-disable */ diff --git a/tests/value/conversion.i b/tests/value/conversion.i index 9150105e34fb45c40920e14c36b932bfced20611..a429feccfb7e509528b795e5f7ad1c70971c09c0 100644 --- a/tests/value/conversion.i +++ b/tests/value/conversion.i @@ -2,7 +2,7 @@ STDOPT: +"-eva-warn-copy-indeterminate=-@all -then -eva-warn-copy-indeterminate=@all" */ -// Comments are given for cases where -val-warn-copy-indeterminate is not set +// Comments are given for cases where -eva-warn-copy-indeterminate is not set volatile v; diff --git a/tests/value/diff_apron b/tests/value/diff_apron index 8c2cbc881293cc729e99add053c790e25a4e7d06..4db64f563c465c1d4e071079d9cb5ed7031b8f26 100644 --- a/tests/value/diff_apron +++ b/tests/value/diff_apron @@ -265,91 +265,80 @@ diff tests/value/oracle/fun_ptr.1.res.oracle tests/value/oracle_apron/fun_ptr.1. > [eva] Recording results for f > [eva] Done for function f diff tests/value/oracle/gauges.res.oracle tests/value/oracle_apron/gauges.res.oracle -32,35d31 -< [eva] tests/value/gauges.c:19: Frama_C_show_each_0: {{ "in" }} -< [eva] tests/value/gauges.c:21: Frama_C_show_each_1: {{ "in" }} +38,39d37 < [eva:alarm] tests/value/gauges.c:26: Warning: < signed overflow. assert l + 1 ≤ 2147483647; -60,63d55 -< [eva] tests/value/gauges.c:41: Frama_C_show_each_0: {{ "in" }} -< [eva] tests/value/gauges.c:43: Frama_C_show_each_1: {{ "in" }} +70,71d67 < [eva:alarm] tests/value/gauges.c:48: Warning: < signed overflow. assert l + 1 ≤ 2147483647; -104a97,99 -> [eva] tests/value/gauges.c:83: Frama_C_show_each: {{ "outer" }} -> [eva] tests/value/gauges.c:78: starting to merge loop iterations -> [eva] tests/value/gauges.c:80: Frama_C_show_each: {{ "inner" }} -110,114d104 -< [eva] tests/value/gauges.c:78: starting to merge loop iterations -< [eva] tests/value/gauges.c:80: Frama_C_show_each: {{ "inner" }} -< [eva] tests/value/gauges.c:83: Frama_C_show_each: {{ "outer" }} -< [eva] tests/value/gauges.c:80: Frama_C_show_each: {{ "inner" }} -< [eva] tests/value/gauges.c:83: Frama_C_show_each: {{ "outer" }} -117c107 +113,114d108 +< [eva:alarm] tests/value/gauges.c:81: Warning: +< signed overflow. assert k + 1 ≤ 2147483647; +116,117d109 +< [eva:alarm] tests/value/gauges.c:84: Warning: +< signed overflow. assert k + 1 ≤ 2147483647; +123a116,117 +> [eva:alarm] tests/value/gauges.c:81: Warning: +> signed overflow. assert k + 1 ≤ 2147483647; +125c119,121 < [eva] tests/value/gauges.c:86: Frama_C_show_each: [0..2147483647] --- +> [eva:alarm] tests/value/gauges.c:84: Warning: +> signed overflow. assert k + 1 ≤ 2147483647; > [eva] tests/value/gauges.c:86: Frama_C_show_each: [15..2147483647] -131,132d120 +139,140d134 < [eva:alarm] tests/value/gauges.c:99: Warning: < signed overflow. assert c + 1 ≤ 2147483647; -179,180d166 +187,188d180 < [eva:alarm] tests/value/gauges.c:140: Warning: < signed overflow. assert j + 1 ≤ 2147483647; -291,292d276 +299,300d290 < [eva:alarm] tests/value/gauges.c:220: Warning: < signed overflow. assert -2147483648 ≤ n - 1; -307,308d290 +315,316d304 < [eva:alarm] tests/value/gauges.c:240: Warning: < signed overflow. assert j + 1 ≤ 2147483647; -310c292 +318c306 < Frama_C_show_each: {45; 46; 47; 48; 49; 50; 51}, [0..2147483647] --- > Frama_C_show_each: {45; 46; 47; 48; 49; 50; 51}, [0..46] -316,317d297 +324,325d311 < [eva:alarm] tests/value/gauges.c:251: Warning: < signed overflow. assert j + 1 ≤ 2147483647; -319c299 +327c313 < Frama_C_show_each: {48; 49; 50; 51; 52; 53; 54}, [0..2147483647] --- > Frama_C_show_each: {48; 49; 50; 51; 52; 53; 54}, [0..49] -325,326d304 +333,334d318 < [eva:alarm] tests/value/gauges.c:263: Warning: < signed overflow. assert j + 1 ≤ 2147483647; -328c306 +336c320 < Frama_C_show_each: {-59; -58; -57; -56; -55; -54; -53}, [0..2147483647] --- > Frama_C_show_each: {-59; -58; -57; -56; -55; -54; -53}, [0..65] -334,335d311 +342,343d325 < [eva:alarm] tests/value/gauges.c:274: Warning: < signed overflow. assert j + 1 ≤ 2147483647; -337c313 +345c327 < Frama_C_show_each: {-64; -63; -62; -61; -60; -59; -58}, [0..2147483647] --- > Frama_C_show_each: {-64; -63; -62; -61; -60; -59; -58}, [0..70] -345,346d320 +353,354d334 < [eva:alarm] tests/value/gauges.c:293: Warning: < signed overflow. assert j + 1 ≤ 2147483647; -348c322 +356c336 < Frama_C_show_each: {-593; -592; -591; -590; -589; -588}, [0..2147483647] --- > Frama_C_show_each: {-593; -592; -591; -590; -589; -588}, [0..598] -716c690 -< l ∈ [4..2147483647] ---- -> l ∈ [4..101] -721c695 -< l ∈ [4..2147483647] ---- -> l ∈ [4..101] -772c746 +780c760 < n ∈ [-2147483648..99] --- > n ∈ [-2147483547..99] -775c749 +783c763 < i ∈ [0..2147483647] --- > i ∈ [10..2147483647] -811c785 +819c799 < i ∈ [0..2147483647] --- > i ∈ [0..21] @@ -748,7 +737,9 @@ diff tests/value/oracle/precise_locations.res.oracle tests/value/oracle_apron/pr > Called from tests/value/precise_locations.i:39. > [eva] Recording results for ct > [eva] Done for function ct -37,40c49,64 +37,42c49,72 +< [eva] tests/value/precise_locations.i:39: Reusing old results for call to ct +< [eva] tests/value/precise_locations.i:39: Reusing old results for call to ct < [eva] tests/value/precise_locations.i:39: Reusing old results for call to ct < [eva] tests/value/precise_locations.i:39: Reusing old results for call to ct < [eva] tests/value/precise_locations.i:39: Reusing old results for call to ct @@ -770,14 +761,17 @@ diff tests/value/oracle/precise_locations.res.oracle tests/value/oracle_apron/pr > Called from tests/value/precise_locations.i:39. > [eva] Recording results for ct > [eva] Done for function ct -193,198d216 -< [eva] Done for function f -< [eva] computing for function g <- main. -< Called from tests/value/precise_locations.i:49. -< [eva] Done for function g -< [eva] computing for function f <- main. -< Called from tests/value/precise_locations.i:48. -518,525c536,567 +> [eva] computing for function ct <- main. +> Called from tests/value/precise_locations.i:39. +> [eva] Recording results for ct +> [eva] Done for function ct +> [eva] computing for function ct <- main. +> Called from tests/value/precise_locations.i:39. +> [eva] Recording results for ct +> [eva] Done for function ct +520,529c550,589 +< [eva] tests/value/precise_locations.i:39: Reusing old results for call to ct +< [eva] tests/value/precise_locations.i:39: Reusing old results for call to ct < [eva] tests/value/precise_locations.i:39: Reusing old results for call to ct < [eva] tests/value/precise_locations.i:39: Reusing old results for call to ct < [eva] tests/value/precise_locations.i:39: Reusing old results for call to ct @@ -819,13 +813,14 @@ diff tests/value/oracle/precise_locations.res.oracle tests/value/oracle_apron/pr > Called from tests/value/precise_locations.i:39. > [eva] Recording results for ct > [eva] Done for function ct -736,741d777 -< [eva] computing for function f <- main. -< Called from tests/value/precise_locations.i:48. -< [eva] Done for function f -< [eva] computing for function g <- main. -< Called from tests/value/precise_locations.i:49. -< [eva] Done for function g +> [eva] computing for function ct <- main. +> Called from tests/value/precise_locations.i:39. +> [eva] Recording results for ct +> [eva] Done for function ct +> [eva] computing for function ct <- main. +> Called from tests/value/precise_locations.i:39. +> [eva] Recording results for ct +> [eva] Done for function ct diff tests/value/oracle/precond.res.oracle tests/value/oracle_apron/precond.res.oracle 49a50,51 > [eva] computing for function f <- main. @@ -977,39 +972,6 @@ diff tests/value/oracle/unroll_simple.res.oracle tests/value/oracle_apron/unroll < j ∈ [-2147483648..-126] --- > j ∈ {-250} -diff tests/value/oracle/widen_non_constant.res.oracle tests/value/oracle_apron/widen_non_constant.res.oracle -25c25 -< Frama_C_show_each_in: {0; 1; 2}, [1..23] ---- -> Frama_C_show_each_in: [0..22], [1..23] -27,28d26 -< [eva] tests/value/widen_non_constant.i:13: -< Frama_C_show_each_in: [0..23], [1..23] -44c42 -< Frama_C_show_each_in: {0; 1; 2}, [1..23] ---- -> Frama_C_show_each_in: [0..22], [1..23] -46,47d43 -< [eva] tests/value/widen_non_constant.i:29: -< Frama_C_show_each_in: [0..25], [1..23] -63c59 -< Frama_C_show_each_in: {0; 1; 2}, [1..23] ---- -> Frama_C_show_each_in: [0..22], [1..23] -65,70d60 -< [eva] tests/value/widen_non_constant.i:48: -< Frama_C_show_each_in: [0..2147483647], [1..23] -< [eva:alarm] tests/value/widen_non_constant.i:49: Warning: -< out of bounds read. assert \valid_read(p + j); -< [eva:alarm] tests/value/widen_non_constant.i:45: Warning: -< signed overflow. assert j + 1 ≤ 2147483647; -91c81 -< j ∈ {23; 24; 25; 26} ---- -> j ∈ {23; 24; 25} -diff tests/value/oracle/widen_on_non_monotonic.res.oracle tests/value/oracle_apron/widen_on_non_monotonic.res.oracle -22a23 -> [eva] tests/value/widen_on_non_monotonic.i:26: starting to merge loop iterations diff tests/value/oracle/with_comment.res.oracle tests/value/oracle_apron/with_comment.res.oracle 9,10d8 < [eva:alarm] tests/value/with_comment.i:21: Warning: diff --git a/tests/value/diff_bitwise b/tests/value/diff_bitwise index 29219259f932f06bb3ee7cd0bea4b6ccec489a42..be860471315a12c865ad8b280eee88bf57f61cda 100644 --- a/tests/value/diff_bitwise +++ b/tests/value/diff_bitwise @@ -9,35 +9,20 @@ diff tests/value/oracle/addition.res.oracle tests/value/oracle_bitwise/addition. > {{ garbled mix of &{p1} (origin: Misaligned {tests/value/addition.i:52}) }} 130a130 > {{ garbled mix of &{p2} (origin: Misaligned {tests/value/addition.i:56}) }} -166,169c166,167 +166,168c166 < p10 ∈ < {{ garbled mix of &{p1} < (origin: Arithmetic {tests/value/addition.i:52}) }} -< p11 ∈ [-2147483648..0] --- > p10 ∈ {{ garbled mix of &{p1} }} -> p11 ∈ [-2147483648..0],0%4 358a357 > {{ garbled mix of &{p1} (origin: Misaligned {tests/value/addition.i:52}) }} -397,400c396,397 +397,399c396 < p10 ∈ < {{ garbled mix of &{p1} < (origin: Arithmetic {tests/value/addition.i:52}) }} -< p11 ∈ [-2147483648..0] --- > p10 ∈ {{ garbled mix of &{p1} }} -> p11 ∈ [-2147483648..0],0%4 -diff tests/value/oracle/bitwise_or.res.oracle tests/value/oracle_bitwise/bitwise_or.res.oracle -57c57 -< uand4 ∈ [8..24] ---- -> uand4 ∈ {8; 16; 24} -63,64c63,64 -< v1 ∈ [0..0x1FFFE],0%2 -< v2 ∈ [0..0x3FFFF] ---- -> v1 ∈ [0..0x1FFFC],0%4 -> v2 ∈ [0..0x3FFFE],0%2 diff tests/value/oracle/bitwise_pointer.res.oracle tests/value/oracle_bitwise/bitwise_pointer.res.oracle 32,34c32 < [eva] tests/value/bitwise_pointer.i:18: @@ -51,15 +36,6 @@ diff tests/value/oracle/bitwise_pointer.res.oracle tests/value/oracle_bitwise/bi < The imprecision originates from Arithmetic {tests/value/bitwise_pointer.i:22} --- > [eva] tests/value/bitwise_pointer.i:22: Assigning imprecise value to p1. -diff tests/value/oracle/cast.res.oracle tests/value/oracle_bitwise/cast.res.oracle -71c71 -< G ∈ [0..12] ---- -> G ∈ [2..12] -89c89 -< G ∈ [0..12] ---- -> G ∈ [2..12] diff tests/value/oracle/logic_ptr_cast.res.oracle tests/value/oracle_bitwise/logic_ptr_cast.res.oracle 8,10c8 < [eva] tests/value/logic_ptr_cast.i:8: diff --git a/tests/value/diff_equalities b/tests/value/diff_equalities index 7120cfb086274487c1455db9fce565050865a079..dff0951199db5e7fd420203047add34788d4aa4f 100644 --- a/tests/value/diff_equalities +++ b/tests/value/diff_equalities @@ -116,10 +116,6 @@ diff tests/value/oracle/alias.6.res.oracle tests/value/oracle_equalities/alias.6 < x ∈ {0; 4; 33} --- > x ∈ {33} -diff tests/value/oracle/assigns.res.oracle tests/value/oracle_equalities/assigns.res.oracle -143a144,145 -> more than 200(4294967296) elements to enumerate. Approximating. -> [kernel] tests/value/assigns.i:104: diff tests/value/oracle/backward_add_ptr.res.oracle tests/value/oracle_equalities/backward_add_ptr.res.oracle 12c12 < Frama_C_show_each_only_a: {0; 1}, {{ &a }}, {0} @@ -237,6 +233,11 @@ diff tests/value/oracle/backward_add_ptr.res.oracle tests/value/oracle_equalitie > (origin: Arithmetic {tests/value/backward_add_ptr.c:178}) }} > {{ garbled mix of &{b; c} > (origin: Arithmetic {tests/value/backward_add_ptr.c:178}) }} +diff tests/value/oracle/bitfield.res.oracle tests/value/oracle_equalities/bitfield.res.oracle +132a133,135 +> [eva] tests/value/bitfield.i:71: +> Frama_C_show_each: +> {{ garbled mix of &{b} (origin: Misaligned {tests/value/bitfield.i:70}) }} diff tests/value/oracle/bitwise_pointer.res.oracle tests/value/oracle_equalities/bitwise_pointer.res.oracle 58c58 < x ∈ [0..9] diff --git a/tests/value/diff_gauges b/tests/value/diff_gauges index 3d1ff9f636a54499fdc1814c7b5e351655892a57..4bd4e2a505c9cb67d339bb60fb2210dc2dcd8e14 100644 --- a/tests/value/diff_gauges +++ b/tests/value/diff_gauges @@ -38,10 +38,6 @@ diff tests/value/oracle/for_loops.2.res.oracle tests/value/oracle_gauges/for_loo < [eva] tests/value/for_loops.c:43: Frama_C_show_each: [0..2147483647] --- > [eva] tests/value/for_loops.c:43: Frama_C_show_each: [0..1000] -diff tests/value/oracle/for_loops.3.res.oracle tests/value/oracle_gauges/for_loops.3.res.oracle -11a12,13 -> Frama_C_show_each_F: {0; 1; 2}, [0..2147483647] -> [eva] tests/value/for_loops.c:55: diff tests/value/oracle/from_termin.res.oracle tests/value/oracle_gauges/from_termin.res.oracle 9a10 > [eva] tests/value/from_termin.i:8: starting to merge loop iterations @@ -49,41 +45,41 @@ diff tests/value/oracle/gauges.res.oracle tests/value/oracle_gauges/gauges.res.o 25,26d24 < [eva:alarm] tests/value/gauges.c:23: Warning: < signed overflow. assert -2147483648 ≤ j - 4; -34,35d31 +38,39d35 < [eva:alarm] tests/value/gauges.c:26: Warning: < signed overflow. assert l + 1 ≤ 2147483647; -53,54d48 +57,58d52 < [eva:alarm] tests/value/gauges.c:45: Warning: < signed overflow. assert -2147483648 ≤ j - 4; -57a52,53 +61a56,57 > [eva:alarm] tests/value/gauges.c:45: Warning: > signed overflow. assert -2147483648 ≤ j - 4; -62,63d57 +70,71d65 < [eva:alarm] tests/value/gauges.c:48: Warning: < signed overflow. assert l + 1 ≤ 2147483647; -75,76d68 +83,84d76 < [eva:alarm] tests/value/gauges.c:58: Warning: < accessing out of bounds index. assert j < 38; -89,93d80 +97,101d88 < [eva:alarm] tests/value/gauges.c:71: Warning: < out of bounds write. assert \valid(tmp); < (tmp from p++) < [eva] tests/value/gauges.c:72: Frama_C_show_each: < [eva] tests/value/gauges.c:72: Frama_C_show_each: -105,106d91 +113,114d99 < [eva:alarm] tests/value/gauges.c:81: Warning: < signed overflow. assert k + 1 ≤ 2147483647; -108,109d92 +116,117d100 < [eva:alarm] tests/value/gauges.c:84: Warning: < signed overflow. assert k + 1 ≤ 2147483647; -117c100 +125c108 < [eva] tests/value/gauges.c:86: Frama_C_show_each: [0..2147483647] --- > [eva] tests/value/gauges.c:86: Frama_C_show_each: {390} -131,132d113 +139,140d121 < [eva:alarm] tests/value/gauges.c:99: Warning: < signed overflow. assert c + 1 ≤ 2147483647; -170,173c151,154 +178,181c159,162 < [eva] tests/value/gauges.c:129: Frama_C_show_each: {{ &y + [4..36],0%4 }} < [eva] tests/value/gauges.c:129: Frama_C_show_each: {{ &y + [4..40],0%4 }} < [eva:alarm] tests/value/gauges.c:130: Warning: @@ -93,93 +89,93 @@ diff tests/value/oracle/gauges.res.oracle tests/value/oracle_gauges/gauges.res.o > Frama_C_show_each: {{ &y + {4; 8; 12; 16; 20; 24} }} > [eva] tests/value/gauges.c:129: > Frama_C_show_each: {{ &y + {4; 8; 12; 16; 20; 24} }} -179,180d159 +187,188d167 < [eva:alarm] tests/value/gauges.c:140: Warning: < signed overflow. assert j + 1 ≤ 2147483647; -198,200d176 +206,208d184 < [eva:alarm] tests/value/gauges.c:158: Warning: < out of bounds write. assert \valid(tmp); < (tmp from p--) -247,250d222 +255,258d230 < [eva:alarm] tests/value/gauges.c:192: Warning: < out of bounds write. assert \valid(p); < [eva:alarm] tests/value/gauges.c:193: Warning: < out of bounds write. assert \valid(q); -258,263d229 +266,271d237 < [eva:alarm] tests/value/gauges.c:202: Warning: < out of bounds read. assert \valid_read(tmp); < (tmp from A++) < [eva:alarm] tests/value/gauges.c:202: Warning: < out of bounds read. assert \valid_read(tmp_0); < (tmp_0 from B++) -307,310c273 +315,318c281 < [eva:alarm] tests/value/gauges.c:240: Warning: < signed overflow. assert j + 1 ≤ 2147483647; < [eva] tests/value/gauges.c:242: < Frama_C_show_each: {45; 46; 47; 48; 49; 50; 51}, [0..2147483647] --- > [eva] tests/value/gauges.c:242: Frama_C_show_each: {47; 48}, {6} -316,317d278 +324,325d286 < [eva:alarm] tests/value/gauges.c:251: Warning: < signed overflow. assert j + 1 ≤ 2147483647; -319c280 +327c288 < Frama_C_show_each: {48; 49; 50; 51; 52; 53; 54}, [0..2147483647] --- > Frama_C_show_each: {48; 49; 50; 51; 52; 53; 54}, {6; 7} -325,328c286 +333,336c294 < [eva:alarm] tests/value/gauges.c:263: Warning: < signed overflow. assert j + 1 ≤ 2147483647; < [eva] tests/value/gauges.c:265: < Frama_C_show_each: {-59; -58; -57; -56; -55; -54; -53}, [0..2147483647] --- > [eva] tests/value/gauges.c:265: Frama_C_show_each: {-58; -57}, {9} -334,335d291 +342,343d299 < [eva:alarm] tests/value/gauges.c:274: Warning: < signed overflow. assert j + 1 ≤ 2147483647; -337c293 +345c301 < Frama_C_show_each: {-64; -63; -62; -61; -60; -59; -58}, [0..2147483647] --- > Frama_C_show_each: {-64; -63; -62; -61; -60; -59; -58}, {9; 10} -345,346d300 +353,354d308 < [eva:alarm] tests/value/gauges.c:293: Warning: < signed overflow. assert j + 1 ≤ 2147483647; -348c302 +356c310 < Frama_C_show_each: {-593; -592; -591; -590; -589; -588}, [0..2147483647] --- > Frama_C_show_each: {-593; -592; -591; -590; -589; -588}, [99..119] -407a362,365 +415a370,373 > # Gauges domain: > V: [{[ p -> {{ &x }} > i -> {1} ]}] > s395: λ(0) -464a423,426 +472a431,434 > # Gauges domain: > V: [{[ i -> {1} ]}] > s395: λ([0 .. 1]) > {[ i -> {1} ]} -520a483,486 +528a491,494 > # Gauges domain: > V: [{[ i -> {1} ]}] > s395: λ([0 .. 2]) > {[ i -> {1} ]} -576a543,546 +584a551,554 > # Gauges domain: > V: [{[ i -> {1} ]}] > s395: λ([0 .. 10]) > {[ i -> {1} ]} -638a609,613 +646a617,621 > # Gauges domain: > V: [{[ p -> {{ &a }} > i -> {2} ]}] > s409: λ(0) > s408: λ(0) -696a672,676 +704a680,684 > # Gauges domain: > V: [{[ i -> {2} ]}] > s409: λ(0) > s408: λ([0 .. 1]) > {[ i -> {0} ]} -698a679,800 +706a687,808 > [eva] tests/value/gauges.c:325: > Frama_C_dump_each: > # Cvalue domain: @@ -302,61 +298,53 @@ diff tests/value/oracle/gauges.res.oracle tests/value/oracle_gauges/gauges.res.o > s408: λ([0 .. +oo]) > {[ i -> {0} ]} > ==END OF DUMP== -706a809,810 +714a817,818 > [eva] tests/value/gauges.c:343: Call to builtin malloc > [eva] tests/value/gauges.c:343: Call to builtin malloc -716c820 -< l ∈ [4..2147483647] ---- -> l ∈ [4..53] -721c825 -< l ∈ [4..2147483647] ---- -> l ∈ [4..53] -759,760c863,864 +767,768c871,872 < A ∈ {{ &A + [0..--],0%4 }} < B ∈ {{ &B + [0..--],0%4 }} --- > A ∈ {{ &A + [0..36],0%4 }} > B ∈ {{ &B + [0..36],0%4 }} -778c882 +786c890 < i ∈ {45; 46; 47; 48; 49; 50; 51} --- > i ∈ {45; 46; 47; 48} -784c888 +792c896 < i ∈ {-59; -58; -57; -56; -55; -54; -53} --- > i ∈ {-58; -57; -56; -55; -54; -53} -804c908 +812c916 < p ∈ {{ &u + [0..--],0%4 }} --- > p ∈ {{ &u + [0..400],0%4 }} -806c910 +814c918 < k ∈ [0..2147483647] --- > k ∈ [0..390] -811c915 +819c923 < i ∈ [0..2147483647] --- > i ∈ [0..21] -822,823c926,928 +830,831c934,936 < [1..9] ∈ {4; 5; 6; 7; 8; 9} or UNINITIALIZED < p ∈ {{ &y + [4..40],0%4 }} --- > [1..6] ∈ {4; 5; 6; 7; 8; 9} or UNINITIALIZED > [7..9] ∈ UNINITIALIZED > p ∈ {{ &y[7] }} -834c939 +842c947 < p ∈ {{ &T + [--..396],0%4 }} --- > p ∈ {{ &T + [-4..396],0%4 }} -969,970c1074,1075 +977,978c1082,1083 < p FROM p; A; B; n; p; A[0..9]; B[0..9] (and SELF) < \result FROM p; A; B; n; p; A[0..9]; B[0..9] --- > p FROM p; A; B; n; p; A[0..8]; B[0..8] (and SELF) > \result FROM p; A; B; n; p; A[0..8]; B[0..8] -1048c1153 +1056c1161 < p; A[0..9]; B[0..9] --- > p; A[0..8]; B[0..8] @@ -850,11 +838,6 @@ diff tests/value/oracle/noreturn.res.oracle tests/value/oracle_gauges/noreturn.r > [eva] tests/value/noreturn.i:7: starting to merge loop iterations 36a40 > [eva] tests/value/noreturn.i:13: starting to merge loop iterations -diff tests/value/oracle/precise_locations.res.oracle tests/value/oracle_gauges/precise_locations.res.oracle -40a41 -> [eva] tests/value/precise_locations.i:39: Reusing old results for call to ct -517a519 -> [eva] tests/value/precise_locations.i:39: Reusing old results for call to ct diff tests/value/oracle/reduce_formals.res.oracle tests/value/oracle_gauges/reduce_formals.res.oracle 10a11 > [eva] tests/value/reduce_formals.i:5: starting to merge loop iterations @@ -901,10 +884,6 @@ diff tests/value/oracle/semaphore.res.oracle tests/value/oracle_gauges/semaphore diff tests/value/oracle/symbolic_locs.res.oracle tests/value/oracle_gauges/symbolic_locs.res.oracle 133a134 > [eva] tests/value/symbolic_locs.i:93: starting to merge loop iterations -diff tests/value/oracle/test.0.res.oracle tests/value/oracle_gauges/test.0.res.oracle -18a19,20 -> [eva:alarm] tests/value/test.i:10: Warning: -> signed overflow. assert i + 1 ≤ 2147483647; diff tests/value/oracle/undefined_sequence.0.res.oracle tests/value/oracle_gauges/undefined_sequence.0.res.oracle 97a98 > [eva] tests/value/undefined_sequence.i:43: starting to merge loop iterations @@ -952,33 +931,7 @@ diff tests/value/oracle/va_list2.1.res.oracle tests/value/oracle_gauges/va_list2 > [eva] computing for function __builtin_va_arg <- main. > Called from tests/value/va_list2.c:20. > [eva] Done for function __builtin_va_arg -diff tests/value/oracle/widen_non_constant.res.oracle tests/value/oracle_gauges/widen_non_constant.res.oracle -28c28 -< Frama_C_show_each_in: [0..23], [1..23] ---- -> Frama_C_show_each_in: [0..22], [1..23] -47c47 -< Frama_C_show_each_in: [0..25], [1..23] ---- -> Frama_C_show_each_in: [0..22], [1..23] -66,70c66 -< Frama_C_show_each_in: [0..2147483647], [1..23] -< [eva:alarm] tests/value/widen_non_constant.i:49: Warning: -< out of bounds read. assert \valid_read(p + j); -< [eva:alarm] tests/value/widen_non_constant.i:45: Warning: -< signed overflow. assert j + 1 ≤ 2147483647; ---- -> Frama_C_show_each_in: [0..22], [1..23] -88c84 -< j ∈ {23; 24} ---- -> j ∈ {23} -91c87 -< j ∈ {23; 24; 25; 26} ---- -> j ∈ {23; 24; 25} diff tests/value/oracle/widen_on_non_monotonic.res.oracle tests/value/oracle_gauges/widen_on_non_monotonic.res.oracle -24a25,27 -> [eva] tests/value/widen_on_non_monotonic.i:26: starting to merge loop iterations +25a26,27 > [eva] tests/value/widen_on_non_monotonic.i:21: starting to merge loop iterations > [eva] tests/value/widen_on_non_monotonic.i:18: starting to merge loop iterations diff --git a/tests/value/div.i b/tests/value/div.i index 46a89ee00729aa48230478176de8cf1b24bb2042..c19d8f8bfe5f40bda66cc1a68ed9b30e023aa6c9 100644 --- a/tests/value/div.i +++ b/tests/value/div.i @@ -1,6 +1,6 @@ /* run.config* STDOPT: #"-load-module scope -remove-redundant-alarms" - OPT: -no-autoload-plugins -load-module eva,inout -rte -then -val @VALUECONFIG@ + OPT: -no-autoload-plugins -load-module eva,inout -rte -then -eva @VALUECONFIG@ */ int X,Y,Z1,Z2,T,U1,U2,V,W1,W2; int a,b,d1,d2,d0,e; diff --git a/tests/value/downcast.i b/tests/value/downcast.i index 7ad18f13fcdd1adaa825cadcfcea4a6e0c5da750..c375fa7c92f7cccc2bf1aad3a02fa6576e55fd62 100644 --- a/tests/value/downcast.i +++ b/tests/value/downcast.i @@ -65,7 +65,7 @@ void main5_wrap_signed() { } -/* Tests for the relaxed downcast semantics -val-warn-signed-converted-downcast */ +/* Tests for the relaxed downcast semantics -eva-warn-signed-converted-downcast */ void main6_val_warn_converted_signed() { if (v) { short s = 65300u; // warning (overflow) @@ -104,7 +104,7 @@ struct bitf { signed int i2: 6; }; -/* Tests for the relaxed downcast semantics -val-warn-signed-converted-downcast with bitfields */ +/* Tests for the relaxed downcast semantics -eva-warn-signed-converted-downcast with bitfields */ void main8_bitfields() { struct bitf S; signed char c; diff --git a/tests/value/false.i b/tests/value/false.i index d3a0137b380ddf673d0b61877884b56b733ce010..77c2d2ef277772344d83ad63cd62b56c7fbd20fa 100644 --- a/tests/value/false.i +++ b/tests/value/false.i @@ -1,5 +1,5 @@ /* run.config* - STDOPT: +"-value-verbose 2" + STDOPT: +"-eva-verbose 2" */ /*@ requires i == 1; diff --git a/tests/value/fptr.i b/tests/value/fptr.i index 75e695dbaacb29e34d86d1ce59b46e5919d3edb2..f9d1014262b879b2ebf54f93c7478f098b4691dd 100644 --- a/tests/value/fptr.i +++ b/tests/value/fptr.i @@ -1,7 +1,7 @@ /* run.config* GCC: - OPT: -no-autoload-plugins -load-module from,inout,eva -val @VALUECONFIG@ -journal-disable -then -deps -out - OPT: -no-autoload-plugins -load-module from,inout,eva -val @VALUECONFIG@ -main main_uninit -journal-disable -then -deps -out + OPT: -no-autoload-plugins -load-module from,inout,eva -eva @VALUECONFIG@ -journal-disable -then -deps -out + OPT: -no-autoload-plugins -load-module from,inout,eva -eva @VALUECONFIG@ -main main_uninit -journal-disable -then -deps -out */ int R=77; volatile int v; int n; diff --git a/tests/value/from_call.i b/tests/value/from_call.i index c88a6bd2aba71ffc135f755846a26159029eebcc..4ca66207715c4824e3a85ea245a3407362d9adf0 100644 --- a/tests/value/from_call.i +++ b/tests/value/from_call.i @@ -1,5 +1,5 @@ /* run.config* - OPT: -no-autoload-plugins -load-module from,inout,users,eva -calldeps -val @VALUECONFIG@ -journal-disable -users -then -input + OPT: -no-autoload-plugins -load-module from,inout,users,eva -calldeps -eva @VALUECONFIG@ -journal-disable -users -then -input OPT: -no-autoload-plugins -load-module from,eva @VALUECONFIG@ -deps -show-indirect-deps -journal-disable */ int a,b,c,d; diff --git a/tests/value/gauges.c b/tests/value/gauges.c index bb0344f2009108cd3538cc9bdc57a2c9343bef76..cd1619e90e511a5f15dfd714a89486470171026b 100644 --- a/tests/value/gauges.c +++ b/tests/value/gauges.c @@ -1,5 +1,5 @@ /* run.config* - STDOPT: +" -slevel-function main8_aux:2,main5_bis:4 -value-msg-key d-gauges" + STDOPT: +" -slevel-function main8_aux:2,main5_bis:4 -eva-msg-key d-gauges" */ #include <stdlib.h> diff --git a/tests/value/ilevel.i b/tests/value/ilevel.i index 6bdcdfe68db154144739663d77ec86a3fe2de6bb..9baf2a45b5aae4d3e1853e904aeda6820f51a583 100644 --- a/tests/value/ilevel.i +++ b/tests/value/ilevel.i @@ -1,5 +1,5 @@ /* run.config* - OPT: -no-autoload-plugins -load-module inout,slicing,sparecode,eva -val @VALUECONFIG@ -slice-return main -then-on "Slicing export" -val -val-ilevel 16 -val-show-progress -then-on "default" -val-ilevel 17 -then -val-ilevel 48 + OPT: -no-autoload-plugins -load-module inout,slicing,sparecode,eva -eva @VALUECONFIG@ -slice-return main -then-on "Slicing export" -eva -eva-ilevel 16 -eva-show-progress -then-on "default" -eva-ilevel 17 -then -eva-ilevel 48 */ // Test in particular that ilevel is by-project, even though it is an ocaml ref volatile int v; diff --git a/tests/value/incompatible_states.c b/tests/value/incompatible_states.c index 43c5335c659a951d2049f080e33d5a1da9770ebd..99480fc1ea9d28ddb6eed9b587bc40832c3b1edd 100644 --- a/tests/value/incompatible_states.c +++ b/tests/value/incompatible_states.c @@ -1,5 +1,5 @@ /* run.config* - STDOPT: #"-val-subdivide-non-linear 10" + STDOPT: #"-eva-subdivide-non-linear 10" */ /* This file gathers some examples where a product of states may have no diff --git a/tests/value/incorrect_reduce_expr.i b/tests/value/incorrect_reduce_expr.i index c704da195b0d641bd8844eea8eb72d4be5fa6d57..d82d4c70d9ccde49d1cf918cd7bdbb5e0b5cd5c0 100644 --- a/tests/value/incorrect_reduce_expr.i +++ b/tests/value/incorrect_reduce_expr.i @@ -1,5 +1,5 @@ /* run.config* - OPT: -no-autoload-plugins -load-module inout,eva -val @VALUECONFIG@ -absolute-valid-range 32-36 + OPT: -no-autoload-plugins -load-module inout,eva -eva @VALUECONFIG@ -absolute-valid-range 32-36 */ char t[5]; diff --git a/tests/value/interpol.c b/tests/value/interpol.c index 01bc26b25f785a981c4d3a5e29abf2bca3c47b20..a8af0145ed2e338adde1520c430d8f05589cb641 100644 --- a/tests/value/interpol.c +++ b/tests/value/interpol.c @@ -1,6 +1,6 @@ /* run.config* GCC: - STDOPT: #"-val-subdivide-non-linear 15" + STDOPT: #"-eva-subdivide-non-linear 15" */ int t[8] = {1, 2, 4, 8, 16, 32, 64, 128}; diff --git a/tests/value/interpreter-mode-syracuse.i b/tests/value/interpreter-mode-syracuse.i index 0aff4f1402632523c949c27932cb34cf380ca1a8..546208d20e793ab4a3681108f62eb10769f614e7 100644 --- a/tests/value/interpreter-mode-syracuse.i +++ b/tests/value/interpreter-mode-syracuse.i @@ -1,5 +1,5 @@ /* run.config* - STDOPT: +" -val-interpreter-mode" + STDOPT: +" -eva-interpreter-mode" */ int main() @@ -19,4 +19,4 @@ int main() } return n; -} \ No newline at end of file +} diff --git a/tests/value/inversion2.i b/tests/value/inversion2.i index d1f31a4f0e4cbf1d819eecfe4e5ed048bac130fe..e9a935555be48a67a2c5722bd65e1bda1bfb50fd 100644 --- a/tests/value/inversion2.i +++ b/tests/value/inversion2.i @@ -1,5 +1,5 @@ /* run.config* - STDOPT: +"-then -wlevel 4" + STDOPT: +"-then -eva-widening-delay 4 -eva-widening-period 3" */ int T[3] = {3,1,2}; diff --git a/tests/value/lazy.i b/tests/value/lazy.i index bf5fa7c6446f70f84abe2c41cdfa6cd575483c54..11f7d183bfbe11ea5176b9d9d758e079701fafbc 100644 --- a/tests/value/lazy.i +++ b/tests/value/lazy.i @@ -1,6 +1,6 @@ /* run.config* - STDOPT: #"-value-msg-key pointer-comparison" - STDOPT: #"-undefined-pointer-comparison-propagate-all -value-msg-key pointer-comparison" + STDOPT: #"-eva-msg-key pointer-comparison" + STDOPT: #"-undefined-pointer-comparison-propagate-all -eva-msg-key pointer-comparison" */ int a=-1; int b, d; diff --git a/tests/value/library.i b/tests/value/library.i index 4b2084dc80eec1a375330b672ef6788ea4f53059..bbb69d46eb94dd04abf1dc6f3a0f186c14c315f0 100644 --- a/tests/value/library.i +++ b/tests/value/library.i @@ -1,6 +1,6 @@ /* run.config* GCC: - STDOPT: +"-value-msg-key initial-state -val-initialization-padding-globals no -lib-entry -main main -context-depth 3 -then -main main2 -then -context-width 4" + STDOPT: +"-eva-msg-key initial-state -eva-initialization-padding-globals no -lib-entry -main main -context-depth 3 -then -main main2 -then -context-width 4" */ int f_int(int x); diff --git a/tests/value/local_slevel.i b/tests/value/local_slevel.i index 49b92ccea526bbd573d815d57ec4b889d717509a..985751249a226ba99972a87bab0d0d6f723ede39 100644 --- a/tests/value/local_slevel.i +++ b/tests/value/local_slevel.i @@ -1,5 +1,5 @@ /* run.config* - STDOPT: +" -load-module frama-c-constant_propagation -slevel-function main2:100000 -print -then -scf -then-on propagated -val -val-show-progress -no-scf" + STDOPT: +" -load-module frama-c-constant_propagation -slevel-function main2:100000 -print -then -scf -then-on propagated -eva -eva-show-progress -no-scf" */ int *p; diff --git a/tests/value/logic_ptr_cast.i b/tests/value/logic_ptr_cast.i index b8089e989803f2c933ba803fd82a24b37e51e4e4..1d85185f09c75c053457f590b9698a167880738d 100644 --- a/tests/value/logic_ptr_cast.i +++ b/tests/value/logic_ptr_cast.i @@ -1,5 +1,5 @@ /* run.config* - OPT: -no-autoload-plugins -load-module eva -val @VALUECONFIG@ -print -journal-disable -no-results + OPT: -no-autoload-plugins -load-module eva -eva @VALUECONFIG@ -print -journal-disable -no-results */ int *p; int t[90]; diff --git a/tests/value/logicdeps.i b/tests/value/logicdeps.i index 94e2e15754f8ecea9b901ec4e2c3398b9ace3f2e..d9cb3cbed54ec814f0e5164bb9cb995713e8d30a 100644 --- a/tests/value/logicdeps.i +++ b/tests/value/logicdeps.i @@ -1,5 +1,5 @@ /* run.config* - STDOPT: +"-memexec-all -calldeps -no-deps -no-input -no-out -then -inout" + STDOPT: +"-eva-memexec -calldeps -no-deps -no-input -no-out -then -inout" */ int t[50]; diff --git a/tests/value/loop_test.i b/tests/value/loop_test.i index d50b1599b16cc8ae6b8d2d725f72d4367322638a..e46589842210d8a573d65205d25fda33eeed05d0 100644 --- a/tests/value/loop_test.i +++ b/tests/value/loop_test.i @@ -1,6 +1,6 @@ /* run.config* - OPT: -no-autoload-plugins -load-module from,inout,eva -val @VALUECONFIG@ -main test_onzes -journal-disable - OPT: -no-autoload-plugins -load-module from,inout,eva -val @VALUECONFIG@ -main test_cent_onzes -journal-disable + OPT: -no-autoload-plugins -load-module from,inout,eva -eva @VALUECONFIG@ -main test_onzes -journal-disable + OPT: -no-autoload-plugins -load-module from,inout,eva -eva @VALUECONFIG@ -main test_cent_onzes -journal-disable */ diff --git a/tests/value/loop_wvar.i b/tests/value/loop_wvar.i index 07b5ae3d4dadd0fb10204fc9ed693a649f515f0c..2d635fae34d26333ef5f8193261b68c6135e0fdd 100644 --- a/tests/value/loop_wvar.i +++ b/tests/value/loop_wvar.i @@ -1,5 +1,5 @@ /* run.config* - OPT: -no-autoload-plugins -load-module eva,inout -no-annot -eva @VALUECONFIG@ -then -kernel-warn-key=annot-error=active -annot -val -journal-disable + OPT: -no-autoload-plugins -load-module eva,inout -no-annot -eva @VALUECONFIG@ -then -kernel-warn-key=annot-error=active -annot -eva -journal-disable OPT: -no-autoload-plugins -load-module from,inout,eva -kernel-warn-key=annot-error=active -eva @VALUECONFIG@ -main main3 -journal-disable OPT: -no-autoload-plugins -load-module eva,inout -kernel-warn-key=annot-error=active -eva @VALUECONFIG@ -main main_err1 -journal-disable OPT: -no-autoload-plugins -load-module eva,inout -kernel-warn-key=annot-error=active -eva @VALUECONFIG@ -main main_err2 -journal-disable diff --git a/tests/value/loopfun.i b/tests/value/loopfun.i index afca12398b58e22ba8f07032f43d5496f389a541..030e2654b43ef017571f659a983d660c59ed3315 100644 --- a/tests/value/loopfun.i +++ b/tests/value/loopfun.i @@ -1,7 +1,7 @@ /* run.config* STDOPT: +"-slevel 50 -no-results" + STDOPT: +"-eva-warn-key=missing-loop-unroll=feedback -eva-warn-key=missing-loop-unroll:for=active -main main2" */ - static int a = 7; int test() @@ -17,3 +17,12 @@ int main() } return 0; } + +volatile int v; +void main2() { + while (v) {} + //@ loop unroll 1; + for(;v;); + for(;v;); + do {} while(v); +} diff --git a/tests/value/loopinv.c b/tests/value/loopinv.c index d2331ee56c68800f996fe3f9552a9eada36f95b9..9da813469496b986d7e6d4e5a1134e73011c9f4e 100644 --- a/tests/value/loopinv.c +++ b/tests/value/loopinv.c @@ -1,5 +1,5 @@ /* run.config* -OPT: @VALUECONFIG@ -no-autoload-plugins -load-module from,inout,eva,report -slevel-function main2:20 -pp-annot -val -then -report +OPT: @VALUECONFIG@ -no-autoload-plugins -load-module from,inout,eva,report -slevel-function main2:20 -pp-annot -eva -then -report */ /*@ requires valid: \valid(&t[0..s-1]); diff --git a/tests/value/machdep.c b/tests/value/machdep.c index 551c3dcde611b58bc5e4c9a8f1155d900c64e1e1..f2164ce80119b7ca8c4a2872eed611926ea4faa5 100644 --- a/tests/value/machdep.c +++ b/tests/value/machdep.c @@ -1,5 +1,5 @@ /* run.config* - OPT: -no-autoload-plugins -load-module from,inout,eva -val @VALUECONFIG@ -cpp-extra-args="-DPTEST" -journal-disable -then -machdep x86_64 -then -machdep x86_16 + OPT: -no-autoload-plugins -load-module from,inout,eva -eva @VALUECONFIG@ -cpp-extra-args="-DPTEST" -journal-disable -then -machdep x86_64 -then -machdep x86_16 */ #ifndef PTEST diff --git a/tests/value/memexec.c b/tests/value/memexec.c index ec404ad300e87c03d1e532e42dbcfeeb7abd1934..092a4180c8d9bd12273d3f94530dbd05ff74581a 100644 --- a/tests/value/memexec.c +++ b/tests/value/memexec.c @@ -1,5 +1,5 @@ /* run.config* - STDOPT: #" -no-val -rte-select fbug -rte -then -memexec-all -val" + STDOPT: #" -no-eva -rte-select fbug -rte -then -eva" */ int x1, y1, z1; volatile int c; diff --git a/tests/value/narrow_behaviors.i b/tests/value/narrow_behaviors.i index 40eba854726478161f55946d9fa7c0e32a80175a..64d98062b974c7c2c08a6c2cd4fecf86ea31f830 100644 --- a/tests/value/narrow_behaviors.i +++ b/tests/value/narrow_behaviors.i @@ -1,5 +1,5 @@ /* run.config* - STDOPT: +"-slevel 10 -value-verbose 2" + STDOPT: +"-slevel 10 -eva-verbose 2" */ extern int nondet; diff --git a/tests/value/nested_struct_init.i b/tests/value/nested_struct_init.i index 8bc1439c8668c344b4c502556fba8e05adce9b03..88d885ee6c8384db3ef2822c7e90cc2d59de17e2 100644 --- a/tests/value/nested_struct_init.i +++ b/tests/value/nested_struct_init.i @@ -1,5 +1,5 @@ /* run.config* - OPT: -no-autoload-plugins -load-module inout,eva -val @VALUECONFIG@ -then -val-initialization-padding-globals no -then -val-initialization-padding-globals maybe -then -lib-entry -then -val-initialization-padding-globals no -then -val-initialization-padding-globals yes + OPT: -no-autoload-plugins -load-module inout,eva -eva @VALUECONFIG@ -then -eva-initialization-padding-globals no -then -eva-initialization-padding-globals maybe -then -lib-entry -then -eva-initialization-padding-globals no -then -eva-initialization-padding-globals yes */ typedef signed char int8_t; diff --git a/tests/value/nonlin.c b/tests/value/nonlin.c index 480e9ecde7533cf51c45962fc6f4e3b5f816268f..e87dec750c6bcf3352b6e4a15a0cdf01f3c60c8c 100644 --- a/tests/value/nonlin.c +++ b/tests/value/nonlin.c @@ -1,5 +1,5 @@ /* run.config* - STDOPT: +"-val-subdivide-non-linear 14 -value-msg-key nonlin" + STDOPT: +"-eva-subdivide-non-linear 14 -eva-msg-key nonlin" */ #include "__fc_builtin.h" diff --git a/tests/value/not_ct_array_arg.i b/tests/value/not_ct_array_arg.i index b3862c78223bae7c650c8c196c4c766a26d75040..8390478b48446cec8113107d9fa9d718e1cfddca 100644 --- a/tests/value/not_ct_array_arg.i +++ b/tests/value/not_ct_array_arg.i @@ -1,5 +1,5 @@ /* run.config* - STDOPT: #"-value-msg-key initial-state" + STDOPT: #"-eva-msg-key initial-state" */ // Cf. Bts 856 diff --git a/tests/value/oracle/addition.res.oracle b/tests/value/oracle/addition.res.oracle index 3bb9c9026b6be3734f2a9754ad38c818df083dd8..f601e53058bff5ba8712b59c7b0ce069bfa7a1b4 100644 --- a/tests/value/oracle/addition.res.oracle +++ b/tests/value/oracle/addition.res.oracle @@ -166,7 +166,7 @@ p10 ∈ {{ garbled mix of &{p1} (origin: Arithmetic {tests/value/addition.i:52}) }} - p11 ∈ [-2147483648..0] + p11 ∈ [-2147483648..0],0%4 p12 ∈ {{ garbled mix of &{p1; p2} (origin: Arithmetic {tests/value/addition.i:56}) }} @@ -397,7 +397,7 @@ p10 ∈ {{ garbled mix of &{p1} (origin: Arithmetic {tests/value/addition.i:52}) }} - p11 ∈ [-2147483648..0] + p11 ∈ [-2147483648..0],0%4 p12 ∈ {{ garbled mix of &{p1; p2} (origin: Arithmetic {tests/value/addition.i:56}) }} diff --git a/tests/value/oracle/bitwise.res.oracle b/tests/value/oracle/bitwise.res.oracle index 029bed271752f5eb1cd0c396981f09d85eee18df..29d9bbe232251a10bb728dfe3c9ea3e635cb8fc0 100644 --- a/tests/value/oracle/bitwise.res.oracle +++ b/tests/value/oracle/bitwise.res.oracle @@ -4,126 +4,226 @@ [eva] Initial state computed [eva:initial-state] Values of globals at initialization v ∈ [--..--] -[eva] computing for function main_and_or_rel <- main. - Called from tests/value/bitwise.i:64. -[eva:alarm] tests/value/bitwise.i:13: Warning: assertion got status unknown. -[eva] Recording results for main_and_or_rel -[eva] Done for function main_and_or_rel -[eva] computing for function main_bitwise <- main. - Called from tests/value/bitwise.i:65. -[eva] Recording results for main_bitwise -[eva] Done for function main_bitwise -[eva] computing for function main_bug1 <- main. - Called from tests/value/bitwise.i:66. -[eva] Recording results for main_bug1 -[eva] Done for function main_bug1 -[eva] computing for function main_bug2 <- main. - Called from tests/value/bitwise.i:67. -[eva] tests/value/bitwise.i:40: Frama_C_show_each_then: -[eva] tests/value/bitwise.i:40: Frama_C_show_each_else: -[eva] Recording results for main_bug2 -[eva] Done for function main_bug2 -[eva] computing for function main_bug3 <- main. - Called from tests/value/bitwise.i:68. -[eva] tests/value/bitwise.i:47: - Frama_C_dump_each: - # Cvalue domain: - v ∈ [--..--] - l_1180 ∈ {69166447} - foo ∈ {4225800849} - ==END OF DUMP== -[eva] Recording results for main_bug3 -[eva] Done for function main_bug3 -[eva] computing for function main_bug4 <- main. - Called from tests/value/bitwise.i:69. -[eva] tests/value/bitwise.i:57: Frama_C_show_each_then: -[eva] tests/value/bitwise.i:59: Frama_C_show_each_else: -[eva] Recording results for main_bug4 -[eva] Done for function main_bug4 + input[0..2] ∈ [--..--] + s ∈ [--..--] +[eva] computing for function test1 <- main. + Called from tests/value/bitwise.i:138. +[eva] computing for function Frama_C_interval <- test1 <- main. + Called from tests/value/bitwise.i:23. +[eva] using specification for function Frama_C_interval +[eva] Done for function Frama_C_interval +[eva] computing for function Frama_C_interval <- test1 <- main. + Called from tests/value/bitwise.i:24. +[eva] Done for function Frama_C_interval +[eva] computing for function Frama_C_interval <- test1 <- main. + Called from tests/value/bitwise.i:25. +[eva] Done for function Frama_C_interval +[eva] Recording results for test1 +[eva] Done for function test1 +[eva] computing for function test2 <- main. + Called from tests/value/bitwise.i:139. +[eva] computing for function Frama_C_interval <- test2 <- main. + Called from tests/value/bitwise.i:50. +[eva] Done for function Frama_C_interval +[eva] Recording results for test2 +[eva] Done for function test2 +[eva] computing for function test3 <- main. + Called from tests/value/bitwise.i:140. +[eva] Recording results for test3 +[eva] Done for function test3 +[eva] computing for function test4 <- main. + Called from tests/value/bitwise.i:141. +[eva] tests/value/bitwise.i:62: assertion got status valid. +[eva] tests/value/bitwise.i:64: Frama_C_show_each_1: [0..0x7FFFFFFF], {0} +[eva] tests/value/bitwise.i:64: + Frama_C_show_each_1: [0x80000000..0xFFFFFFFF], {0x80000000} +[eva] tests/value/bitwise.i:66: Frama_C_show_each_2: [0..0x7FFFFFFF], {0}, {0} +[eva] tests/value/bitwise.i:66: + Frama_C_show_each_2: [0..0x7FFFFFFF], {0}, {0x80000000} +[eva] tests/value/bitwise.i:72: Frama_C_show_each_false: [0..0x7FFFFFFF] +[eva] tests/value/bitwise.i:72: Frama_C_show_each_false: [0..0x7FFFFFFF] +[eva] Recording results for test4 +[eva] Done for function test4 +[eva] computing for function and_or_rel <- main. + Called from tests/value/bitwise.i:142. +[eva:alarm] tests/value/bitwise.i:87: Warning: assertion got status unknown. +[eva] Recording results for and_or_rel +[eva] Done for function and_or_rel +[eva] computing for function double_neg <- main. + Called from tests/value/bitwise.i:143. +[eva] Recording results for double_neg +[eva] Done for function double_neg +[eva] computing for function bug1 <- main. + Called from tests/value/bitwise.i:144. +[eva] Recording results for bug1 +[eva] Done for function bug1 +[eva] computing for function bug2 <- main. + Called from tests/value/bitwise.i:145. +[eva] tests/value/bitwise.i:114: Frama_C_show_each_then: +[eva] tests/value/bitwise.i:114: Frama_C_show_each_else: +[eva] Recording results for bug2 +[eva] Done for function bug2 +[eva] computing for function bug3 <- main. + Called from tests/value/bitwise.i:146. +[eva] tests/value/bitwise.i:121: Frama_C_show_each: {0x41F656F}, {0xFBE09A91} +[eva] Recording results for bug3 +[eva] Done for function bug3 +[eva] computing for function bug4 <- main. + Called from tests/value/bitwise.i:147. +[eva] tests/value/bitwise.i:131: Frama_C_show_each_then: +[eva] tests/value/bitwise.i:133: Frama_C_show_each_else: +[eva] Recording results for bug4 +[eva] Done for function bug4 [eva] Recording results for main [eva] done for function main [eva] ====== VALUES COMPUTED ====== -[eva:final-states] Values at end of function main_and_or_rel: +[eva:final-states] Values at end of function and_or_rel: x ∈ [20..40] r1 ∈ [17..63] or UNINITIALIZED r2 ∈ [20..40] or UNINITIALIZED r3 ∈ [24..37] or UNINITIALIZED -[eva:final-states] Values at end of function main_bitwise: - i ∈ {5} - j ∈ {4294967290} - k ∈ {-6} -[eva:final-states] Values at end of function main_bug1: +[eva:final-states] Values at end of function bug1: msb ∈ {6} lsb ∈ {3} par ∈ {5} p1 ∈ {5} p2 ∈ {0} -[eva:final-states] Values at end of function main_bug2: +[eva:final-states] Values at end of function bug2: t ∈ {1; 2} -[eva:final-states] Values at end of function main_bug3: - l_1180 ∈ {69166447} - foo ∈ {4225800849} -[eva:final-states] Values at end of function main_bug4: +[eva:final-states] Values at end of function bug3: + l_1180 ∈ {0x41F656F} + foo ∈ {0xFBE09A91} +[eva:final-states] Values at end of function bug4: g_2 ∈ {-1; 0} - tmp_0 ∈ {-5496} + tmp_0 ∈ {-0x1578} +[eva:final-states] Values at end of function double_neg: + i ∈ {5} + j ∈ {0xFFFFFFFA} + k ∈ {-6} +[eva:final-states] Values at end of function test1: + or1 ∈ [-3..31] + or2 ∈ [13..31] + or3 ∈ [-3..31] + and1 ∈ [0..17] + and2 ∈ [0..17] + and3 ∈ [0..27] + xor1 ∈ [0..31] + xor2 ∈ [-20..31] + uand4 ∈ {8; 16; 24} + a ∈ [3..17] + b ∈ [-3..17] + c ∈ [13..27] + i1 ∈ [0..0x1FFFE],0%2 + i2 ∈ [0..0x3FFFC],0%4 + v1 ∈ [0..0x1FFFC],0%4 + v2 ∈ [0..0x3FFFE],0%2 + mask07 ∈ {5} + mask0f ∈ {13} + mask1f ∈ {13; 29} +[eva:final-states] Values at end of function test2: + x ∈ {56; 64; 72; 80; 88; 96; 104} +[eva:final-states] Values at end of function test3: + x ∈ [-256..255] + y ∈ [-256..255] +[eva:final-states] Values at end of function test4: + something ∈ [0..0x7FFFFFFF] + topBitOnly ∈ {0; 0x80000000} + __retres ∈ {1} [eva:final-states] Values at end of function main: -[from] Computing for function main_and_or_rel -[from] Done for function main_and_or_rel -[from] Computing for function main_bitwise -[from] Done for function main_bitwise -[from] Computing for function main_bug1 -[from] Done for function main_bug1 -[from] Computing for function main_bug2 -[from] Done for function main_bug2 -[from] Computing for function main_bug3 -[from] Done for function main_bug3 -[from] Computing for function main_bug4 -[from] Done for function main_bug4 +[from] Computing for function and_or_rel +[from] Done for function and_or_rel +[from] Computing for function bug1 +[from] Done for function bug1 +[from] Computing for function bug2 +[from] Done for function bug2 +[from] Computing for function bug3 +[from] Done for function bug3 +[from] Computing for function bug4 +[from] Done for function bug4 +[from] Computing for function double_neg +[from] Done for function double_neg +[from] Computing for function test1 +[from] Computing for function Frama_C_interval <-test1 +[from] Done for function Frama_C_interval +[from] Done for function test1 +[from] Computing for function test2 +[from] Done for function test2 +[from] Computing for function test3 +[from] Done for function test3 +[from] Computing for function test4 +[from] Done for function test4 [from] Computing for function main [from] Done for function main [from] ====== DEPENDENCIES COMPUTED ====== These dependencies hold at termination for the executions that terminate: -[from] Function main_and_or_rel: +[from] Function Frama_C_interval: + \result FROM min; max +[from] Function and_or_rel: + NO EFFECTS +[from] Function bug1: + NO EFFECTS +[from] Function bug2: + NO EFFECTS +[from] Function bug3: NO EFFECTS -[from] Function main_bitwise: +[from] Function bug4: NO EFFECTS -[from] Function main_bug1: +[from] Function double_neg: NO EFFECTS -[from] Function main_bug2: +[from] Function test1: NO EFFECTS -[from] Function main_bug3: +[from] Function test2: NO EFFECTS -[from] Function main_bug4: +[from] Function test3: NO EFFECTS +[from] Function test4: + \result FROM v [from] Function main: NO EFFECTS [from] ====== END OF DEPENDENCIES ====== -[inout] Out (internal) for function main_and_or_rel: +[inout] Out (internal) for function and_or_rel: x; r1; r2; r3 -[inout] Inputs for function main_and_or_rel: +[inout] Inputs for function and_or_rel: v -[inout] Out (internal) for function main_bitwise: - i; j; k -[inout] Inputs for function main_bitwise: - \nothing -[inout] Out (internal) for function main_bug1: +[inout] Out (internal) for function bug1: msb; lsb; par; p1; p2 -[inout] Inputs for function main_bug1: +[inout] Inputs for function bug1: \nothing -[inout] Out (internal) for function main_bug2: +[inout] Out (internal) for function bug2: t; tmp -[inout] Inputs for function main_bug2: +[inout] Inputs for function bug2: v -[inout] Out (internal) for function main_bug3: +[inout] Out (internal) for function bug3: l_1180; foo -[inout] Inputs for function main_bug3: +[inout] Inputs for function bug3: \nothing -[inout] Out (internal) for function main_bug4: +[inout] Out (internal) for function bug4: g_2; tmp; tmp_0 -[inout] Inputs for function main_bug4: +[inout] Inputs for function bug4: + v +[inout] Out (internal) for function double_neg: + i; j; k +[inout] Inputs for function double_neg: + \nothing +[inout] Out (internal) for function test1: + or1; or2; or3; and1; and2; and3; xor1; xor2; uand4; a; b; c; i1; i2; + v1; v2; mask07; mask0f; mask1f +[inout] Inputs for function test1: + s +[inout] Out (internal) for function test2: + x; tmp +[inout] Inputs for function test2: + \nothing +[inout] Out (internal) for function test3: + x; tmp; y; tmp_0 +[inout] Inputs for function test3: + input[0..2] +[inout] Out (internal) for function test4: + something; topBitOnly; __retres +[inout] Inputs for function test4: v [inout] Out (internal) for function main: \nothing [inout] Inputs for function main: - v + v; input[0..2]; s diff --git a/tests/value/oracle/bitwise_or.res.oracle b/tests/value/oracle/bitwise_or.res.oracle deleted file mode 100644 index 21b618d85c0e46f824607a068f5210d5ea9e0d44..0000000000000000000000000000000000000000 --- a/tests/value/oracle/bitwise_or.res.oracle +++ /dev/null @@ -1,68 +0,0 @@ -[kernel] Parsing tests/value/bitwise_or.c (with preprocessing) -[eva] Analyzing a complete application starting at main -[eva] Computing initial state -[eva] Initial state computed -[eva:initial-state] Values of globals at initialization - or1 ∈ {0} - or2 ∈ {0} - or3 ∈ {0} - or4 ∈ {0} - or5 ∈ {0} - and1 ∈ {0} - and2 ∈ {0} - and3 ∈ {0} - and4 ∈ {0} - xor1 ∈ {0} - xor2 ∈ {0} - uand1 ∈ {0} - uand2 ∈ {0} - uand3 ∈ {0} - uand4 ∈ {0} - uand5 ∈ {0} - a ∈ {0} - b ∈ {0} - c ∈ {0} - d ∈ {0} - e ∈ {0} - s ∈ [--..--] -[eva] computing for function Frama_C_interval <- main. - Called from tests/value/bitwise_or.c:13. -[eva] using specification for function Frama_C_interval -[eva] tests/value/bitwise_or.c:13: - function Frama_C_interval: precondition 'order' got status valid. -[eva] Done for function Frama_C_interval -[eva] computing for function Frama_C_interval <- main. - Called from tests/value/bitwise_or.c:14. -[eva] tests/value/bitwise_or.c:14: - function Frama_C_interval: precondition 'order' got status valid. -[eva] Done for function Frama_C_interval -[eva] computing for function Frama_C_interval <- main. - Called from tests/value/bitwise_or.c:15. -[eva] tests/value/bitwise_or.c:15: - function Frama_C_interval: precondition 'order' got status valid. -[eva] Done for function Frama_C_interval -[eva] Recording results for main -[eva] done for function main -[eva] ====== VALUES COMPUTED ====== -[eva:final-states] Values at end of function main: - Frama_C_entropy_source ∈ [--..--] - or1 ∈ [--..--] - or2 ∈ [13..31] - or3 ∈ [--..--] - and1 ∈ [0..17] - and2 ∈ [0..17] - and3 ∈ [0..27] - xor1 ∈ [0..31] - xor2 ∈ [--..--] - uand4 ∈ [8..24] - a ∈ [3..17] - b ∈ [-3..17] - c ∈ [13..27] - i1 ∈ [0..0x1FFFE],0%2 - i2 ∈ [0..0x3FFFC],0%4 - v1 ∈ [0..0x1FFFE],0%2 - v2 ∈ [0..0x3FFFF] - mask07 ∈ {5} - mask0f ∈ {13} - mask1f ∈ {13; 29} - __retres ∈ {0} diff --git a/tests/value/oracle/cast.res.oracle b/tests/value/oracle/cast.res.oracle index f5f0b310db631ce8aff871c321a0d8f708d0386b..12e82f34a53f045237c470c50cb70486d3bcecee 100644 --- a/tests/value/oracle/cast.res.oracle +++ b/tests/value/oracle/cast.res.oracle @@ -68,7 +68,7 @@ i_0 ∈ [--..--] __retres ∈ [-536870912..536870911] [eva:final-states] Values at end of function main1: - G ∈ [0..12] + G ∈ [2..12] H ∈ [-536870912..536870911] K ∈ [-10..20] L ∈ [-4000..2],0%2 @@ -86,7 +86,7 @@ G_0 ∈ {-126; -125; -124; -123; -122; -121} or UNINITIALIZED S___fc_stdout[0..1] ∈ [--..--] [eva:final-states] Values at end of function main: - G ∈ [0..12] + G ∈ [2..12] H ∈ [-536870912..536870911] K ∈ [-10..20] L ∈ [-4000..2],0%2 diff --git a/tests/value/oracle/for_loops.3.res.oracle b/tests/value/oracle/for_loops.3.res.oracle index 45b480710cf5a31a306d622bef103cafb6b77238..2a34a2785890e51ba8d1bfade2e5139520bf6cc8 100644 --- a/tests/value/oracle/for_loops.3.res.oracle +++ b/tests/value/oracle/for_loops.3.res.oracle @@ -8,6 +8,8 @@ [eva] tests/value/for_loops.c:50: starting to merge loop iterations [eva] tests/value/for_loops.c:52: starting to merge loop iterations [eva] tests/value/for_loops.c:55: Frama_C_show_each_F: {0; 1}, [0..2147483647] +[eva] tests/value/for_loops.c:55: + Frama_C_show_each_F: {0; 1; 2}, [0..2147483647] [eva] tests/value/for_loops.c:55: Frama_C_show_each_F: {0; 1; 2; 3; 4; 5}, [0..2147483647] [eva] Recording results for main_4 diff --git a/tests/value/oracle/gauges.res.oracle b/tests/value/oracle/gauges.res.oracle index c8dd303217a7811d5e5782c00a43c44f7a16fff6..289e246d8ac73d48cb1a4111f42a59e03092aa8b 100644 --- a/tests/value/oracle/gauges.res.oracle +++ b/tests/value/oracle/gauges.res.oracle @@ -31,6 +31,10 @@ [eva] tests/value/gauges.c:21: Frama_C_show_each_1: {{ "in" }} [eva] tests/value/gauges.c:19: Frama_C_show_each_0: {{ "in" }} [eva] tests/value/gauges.c:21: Frama_C_show_each_1: {{ "in" }} +[eva] tests/value/gauges.c:19: Frama_C_show_each_0: {{ "in" }} +[eva] tests/value/gauges.c:21: Frama_C_show_each_1: {{ "in" }} +[eva] tests/value/gauges.c:19: Frama_C_show_each_0: {{ "in" }} +[eva] tests/value/gauges.c:21: Frama_C_show_each_1: {{ "in" }} [eva:alarm] tests/value/gauges.c:26: Warning: signed overflow. assert l + 1 ≤ 2147483647; [eva] Recording results for main0 @@ -59,6 +63,10 @@ [eva] tests/value/gauges.c:43: Frama_C_show_each_1: {{ "in" }} [eva] tests/value/gauges.c:41: Frama_C_show_each_0: {{ "in" }} [eva] tests/value/gauges.c:43: Frama_C_show_each_1: {{ "in" }} +[eva] tests/value/gauges.c:41: Frama_C_show_each_0: {{ "in" }} +[eva] tests/value/gauges.c:43: Frama_C_show_each_1: {{ "in" }} +[eva] tests/value/gauges.c:41: Frama_C_show_each_0: {{ "in" }} +[eva] tests/value/gauges.c:43: Frama_C_show_each_1: {{ "in" }} [eva:alarm] tests/value/gauges.c:48: Warning: signed overflow. assert l + 1 ≤ 2147483647; [eva] Recording results for main0_bis diff --git a/tests/value/oracle/loopfun.res.oracle b/tests/value/oracle/loopfun.0.res.oracle similarity index 91% rename from tests/value/oracle/loopfun.res.oracle rename to tests/value/oracle/loopfun.0.res.oracle index 949c06bca9bffff7b2f504eeba7c281521451645..0bdd232311e43a73cfd47f9f9c9c32418786bada 100644 --- a/tests/value/oracle/loopfun.res.oracle +++ b/tests/value/oracle/loopfun.0.res.oracle @@ -3,6 +3,7 @@ [eva] Computing initial state [eva] Initial state computed [eva:initial-state] Values of globals at initialization + v ∈ [--..--] a ∈ {7} [eva] computing for function test <- main. Called from tests/value/loopfun.i:14. @@ -41,12 +42,16 @@ [eva] Recording results for main [eva] done for function main [eva] ====== VALUES COMPUTED ====== +[from] Computing for function main2 +[from] Done for function main2 [from] Computing for function test [from] Done for function test [from] Computing for function main [from] Done for function main [from] ====== DEPENDENCIES COMPUTED ====== These dependencies hold at termination for the executions that terminate: +[from] Function main2: + FROMTOP [from] Function test: FROMTOP \result FROM ANYTHING(origin:Unknown) @@ -54,6 +59,10 @@ FROMTOP \result FROM ANYTHING(origin:Unknown) [from] ====== END OF DEPENDENCIES ====== +[inout] Out (internal) for function main2: + \nothing +[inout] Inputs for function main2: + v [inout] Out (internal) for function test: tmp; a [inout] Inputs for function test: diff --git a/tests/value/oracle/loopfun.1.res.oracle b/tests/value/oracle/loopfun.1.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..d6802166c97a9854d3af41680bfd20dcf57d94fe --- /dev/null +++ b/tests/value/oracle/loopfun.1.res.oracle @@ -0,0 +1,29 @@ +[kernel] Parsing tests/value/loopfun.i (no preprocessing) +[eva] Analyzing a complete application starting at main2 +[eva] Computing initial state +[eva] Initial state computed +[eva:initial-state] Values of globals at initialization + v ∈ [--..--] + a ∈ {7} +[eva:missing-loop-unroll] tests/value/loopfun.i:23: + while loop without unroll annotation +[eva:missing-loop-unroll:for] tests/value/loopfun.i:26: Warning: + for loop without unroll annotation +[eva:missing-loop-unroll] tests/value/loopfun.i:27: + dowhile loop without unroll annotation +[eva] Recording results for main2 +[eva] done for function main2 +[eva] ====== VALUES COMPUTED ====== +[eva:final-states] Values at end of function main2: + +[from] Computing for function main2 +[from] Done for function main2 +[from] ====== DEPENDENCIES COMPUTED ====== + These dependencies hold at termination for the executions that terminate: +[from] Function main2: + NO EFFECTS +[from] ====== END OF DEPENDENCIES ====== +[inout] Out (internal) for function main2: + \nothing +[inout] Inputs for function main2: + v diff --git a/tests/value/oracle/postcond_leaf.res.oracle b/tests/value/oracle/postcond_leaf.res.oracle index 0888126aadf7fd6d719a0908ceea109b3b2d48ee..bd9241c82545abbc272006a05012b229ae4f4830 100644 --- a/tests/value/oracle/postcond_leaf.res.oracle +++ b/tests/value/oracle/postcond_leaf.res.oracle @@ -4,7 +4,8 @@ [eva] Initial state computed [eva:initial-state] Values of globals at initialization i ∈ [--..--] -[kernel] tests/value/postcond_leaf.c:108: Warning: + j ∈ [--..--] +[kernel] tests/value/postcond_leaf.c:109: Warning: No code nor implicit assigns clause for function f1, generating default assigns from the prototype [eva] using specification for function f1 [eva] tests/value/postcond_leaf.c:21: Warning: diff --git a/tests/value/oracle/precise_locations.res.oracle b/tests/value/oracle/precise_locations.res.oracle index c959c220fa9c6c58ff14fc913b51819332300dcf..999fe42373a269c2c55b6dc086405196c483b91a 100644 --- a/tests/value/oracle/precise_locations.res.oracle +++ b/tests/value/oracle/precise_locations.res.oracle @@ -38,6 +38,8 @@ [eva] tests/value/precise_locations.i:39: Reusing old results for call to ct [eva] tests/value/precise_locations.i:39: Reusing old results for call to ct [eva] tests/value/precise_locations.i:39: Reusing old results for call to ct +[eva] tests/value/precise_locations.i:39: Reusing old results for call to ct +[eva] tests/value/precise_locations.i:39: Reusing old results for call to ct [eva] tests/value/precise_locations.i:42: Frama_C_dump_each: # Cvalue domain: @@ -523,6 +525,8 @@ [eva] tests/value/precise_locations.i:39: Reusing old results for call to ct [eva] tests/value/precise_locations.i:39: Reusing old results for call to ct [eva] tests/value/precise_locations.i:39: Reusing old results for call to ct +[eva] tests/value/precise_locations.i:39: Reusing old results for call to ct +[eva] tests/value/precise_locations.i:39: Reusing old results for call to ct [eva] tests/value/precise_locations.i:42: Frama_C_dump_each: # Cvalue domain: diff --git a/tests/value/oracle/shift.0.res.oracle b/tests/value/oracle/shift.0.res.oracle index 6544f7ef1f4f67469baf5489ebfc83980eed75bf..aa83c00acb6fec860002e54317aee5ec41e97e39 100644 --- a/tests/value/oracle/shift.0.res.oracle +++ b/tests/value/oracle/shift.0.res.oracle @@ -77,7 +77,7 @@ ua ∈ {1401} ub ∈ {1073741074} c ∈ [--..--] - z ∈ [-2147483648..2147483631] + z ∈ [-2147483648..2147483630],0%2 zz ∈ {0} shl ∈ {1} [from] Computing for function main diff --git a/tests/value/oracle/shift.1.res.oracle b/tests/value/oracle/shift.1.res.oracle index 0332ad41be63d8ea469071b1ff3be8a6d533bafd..076532ff7124c6875536b00e1051863ad9d4aa3c 100644 --- a/tests/value/oracle/shift.1.res.oracle +++ b/tests/value/oracle/shift.1.res.oracle @@ -65,7 +65,7 @@ ua ∈ {1401} ub ∈ {1073741074} c ∈ [--..--] - z ∈ [-2147483648..2147483631] + z ∈ [-2147483648..2147483630],0%2 zz ∈ {0} shl ∈ {0; 1} [from] Computing for function main diff --git a/tests/value/oracle/split_return.0.res.oracle b/tests/value/oracle/split_return.0.res.oracle index e0a0991d0ef1539d7b0127334b596f71da4d8416..342033647fd5610389bc72b57770adf8ebfe9147 100644 --- a/tests/value/oracle/split_return.0.res.oracle +++ b/tests/value/oracle/split_return.0.res.oracle @@ -5,6 +5,8 @@ \return(f3) == -2, -4 (user) \return(f4) == 4 (user) \return(f5) == -2 (user) + \return(uninit) == 0 (user) + \return(escaping) == 0 (user) [eva] Analyzing a complete application starting at main [eva] Computing initial state [eva] Initial state computed @@ -15,8 +17,9 @@ i5 ∈ [--..--] v ∈ [--..--] v7 ∈ {0} + rand ∈ [--..--] [eva] computing for function main1 <- main. - Called from tests/value/split_return.i:176. + Called from tests/value/split_return.i:204. [eva] computing for function init <- main1 <- main. Called from tests/value/split_return.i:17. [eva] using specification for function init @@ -24,7 +27,7 @@ [eva] Recording results for main1 [eva] Done for function main1 [eva] computing for function main2 <- main. - Called from tests/value/split_return.i:177. + Called from tests/value/split_return.i:205. [eva] computing for function f2 <- main2 <- main. Called from tests/value/split_return.i:48. [eva] Recording results for f2 @@ -37,7 +40,7 @@ [eva] Recording results for main2 [eva] Done for function main2 [eva] computing for function main3 <- main. - Called from tests/value/split_return.i:178. + Called from tests/value/split_return.i:206. [eva] computing for function f3 <- main3 <- main. Called from tests/value/split_return.i:73. [eva] tests/value/split_return.i:69: f3: cannot properly split on \result == -2 @@ -51,7 +54,7 @@ [eva] Recording results for main3 [eva] Done for function main3 [eva] computing for function main4 <- main. - Called from tests/value/split_return.i:179. + Called from tests/value/split_return.i:207. [eva] computing for function f4 <- main4 <- main. Called from tests/value/split_return.i:94. [eva] Recording results for f4 @@ -64,7 +67,7 @@ [eva] Recording results for main4 [eva] Done for function main4 [eva] computing for function main5 <- main. - Called from tests/value/split_return.i:180. + Called from tests/value/split_return.i:208. [eva] computing for function f5 <- main5 <- main. Called from tests/value/split_return.i:117. [eva] Recording results for f5 @@ -76,7 +79,7 @@ [eva] Recording results for main5 [eva] Done for function main5 [eva] computing for function main6 <- main. - Called from tests/value/split_return.i:181. + Called from tests/value/split_return.i:209. [eva] computing for function f6 <- main6 <- main. Called from tests/value/split_return.i:135. [eva:alarm] tests/value/split_return.i:130: Warning: @@ -86,7 +89,7 @@ [eva] Recording results for main6 [eva] Done for function main6 [eva] computing for function main7 <- main. - Called from tests/value/split_return.i:182. + Called from tests/value/split_return.i:210. [eva] computing for function f7 <- main7 <- main. Called from tests/value/split_return.i:148. [eva] Recording results for f7 @@ -96,7 +99,7 @@ [eva] Recording results for main7 [eva] Done for function main7 [eva] computing for function main8 <- main. - Called from tests/value/split_return.i:183. + Called from tests/value/split_return.i:211. [eva] computing for function f8 <- main8 <- main. Called from tests/value/split_return.i:171. [eva] Recording results for f8 @@ -105,9 +108,29 @@ Frama_C_show_each_then8: {-1; 4}, {{ NULL ; &x }} [eva] Recording results for main8 [eva] Done for function main8 +[eva] computing for function main9 <- main. + Called from tests/value/split_return.i:212. +[eva] computing for function uninit <- main9 <- main. + Called from tests/value/split_return.i:199. +[eva] Recording results for uninit +[eva] Done for function uninit +[eva] computing for function escaping <- main9 <- main. + Called from tests/value/split_return.i:200. +[eva:locals-escaping] tests/value/split_return.i:192: Warning: + locals {x} escaping the scope of a block of escaping through p +[eva] Recording results for escaping +[eva] Done for function escaping +[eva] computing for function escaping <- main9 <- main. + Called from tests/value/split_return.i:200. +[eva] Recording results for escaping +[eva] Done for function escaping +[eva] Recording results for main9 +[eva] Done for function main9 [eva] Recording results for main [eva] done for function main [eva] ====== VALUES COMPUTED ====== +[eva:final-states] Values at end of function escaping: + p ∈ ESCAPINGADDR [eva:final-states] Values at end of function f2: i2 ∈ {0; 5} __retres ∈ {0; 5; 7} @@ -153,12 +176,19 @@ x ∈ {-1; 4} pf ∈ {{ &f8 }} p ∈ {{ NULL ; &x }} +[eva:final-states] Values at end of function uninit: + x ∈ {0} or UNINITIALIZED +[eva:final-states] Values at end of function main9: + y ∈ {0} or UNINITIALIZED + q ∈ ESCAPINGADDR [eva:final-states] Values at end of function main: i2 ∈ {0; 5} i3 ∈ {0; 5} i4 ∈ {0; 5} i5 ∈ {0; 5} v7 ∈ {0; 1} +[from] Computing for function escaping +[from] Done for function escaping [from] Computing for function f2 [from] Done for function f2 [from] Computing for function f3 @@ -191,10 +221,16 @@ [from] Done for function main7 [from] Computing for function main8 [from] Done for function main8 +[from] Computing for function uninit +[from] Done for function uninit +[from] Computing for function main9 +[from] Done for function main9 [from] Computing for function main [from] Done for function main [from] ====== DEPENDENCIES COMPUTED ====== These dependencies hold at termination for the executions that terminate: +[from] Function escaping: + \result FROM \nothing [from] Function f2: i2 FROM i2 \result FROM i2 @@ -234,6 +270,10 @@ v7 FROM v [from] Function main8: NO EFFECTS +[from] Function uninit: + \result FROM rand +[from] Function main9: + NO EFFECTS [from] Function main: i2 FROM i2 i3 FROM i3 @@ -241,6 +281,10 @@ i5 FROM i5 v7 FROM v [from] ====== END OF DEPENDENCIES ====== +[inout] Out (internal) for function escaping: + p +[inout] Inputs for function escaping: + \nothing [inout] Out (internal) for function f2: i2; __retres [inout] Inputs for function f2: @@ -301,10 +345,18 @@ x; pf; p; tmp [inout] Inputs for function main8: v +[inout] Out (internal) for function uninit: + x +[inout] Inputs for function uninit: + rand +[inout] Out (internal) for function main9: + y; q +[inout] Inputs for function main9: + rand [inout] Out (internal) for function main: i2; i3; i4; i5; v7 [inout] Inputs for function main: - i2; i3; i4; i5; v; v7 + i2; i3; i4; i5; v; v7; rand [report] Computing properties status... -------------------------------------------------------------------------------- diff --git a/tests/value/oracle/split_return.1.res.oracle b/tests/value/oracle/split_return.1.res.oracle index 0dd5a8d1cdf2e75536b0cb84f3d82f3e56f36c68..ff8657d99c46823571074bfd6f7f425bc04b59ed 100644 --- a/tests/value/oracle/split_return.1.res.oracle +++ b/tests/value/oracle/split_return.1.res.oracle @@ -8,6 +8,7 @@ \return(f5) == -2 (auto) \return(f6) == 0 (auto) \return(f8) == 0 (auto) + \return(escaping) == 0 (auto) [eva] Analyzing a complete application starting at main [eva] Computing initial state [eva] Initial state computed @@ -18,8 +19,9 @@ i5 ∈ [--..--] v ∈ [--..--] v7 ∈ {0} + rand ∈ [--..--] [eva] computing for function main1 <- main. - Called from tests/value/split_return.i:176. + Called from tests/value/split_return.i:204. [eva] computing for function init <- main1 <- main. Called from tests/value/split_return.i:17. [eva] using specification for function init @@ -27,7 +29,7 @@ [eva] Recording results for main1 [eva] Done for function main1 [eva] computing for function main2 <- main. - Called from tests/value/split_return.i:177. + Called from tests/value/split_return.i:205. [eva] computing for function f2 <- main2 <- main. Called from tests/value/split_return.i:48. [eva] Recording results for f2 @@ -40,7 +42,7 @@ [eva] Recording results for main2 [eva] Done for function main2 [eva] computing for function main3 <- main. - Called from tests/value/split_return.i:178. + Called from tests/value/split_return.i:206. [eva] computing for function f3 <- main3 <- main. Called from tests/value/split_return.i:73. [eva] Recording results for f3 @@ -52,7 +54,7 @@ [eva] Recording results for main3 [eva] Done for function main3 [eva] computing for function main4 <- main. - Called from tests/value/split_return.i:179. + Called from tests/value/split_return.i:207. [eva] computing for function f4 <- main4 <- main. Called from tests/value/split_return.i:94. [eva] Recording results for f4 @@ -64,7 +66,7 @@ [eva] Recording results for main4 [eva] Done for function main4 [eva] computing for function main5 <- main. - Called from tests/value/split_return.i:180. + Called from tests/value/split_return.i:208. [eva] computing for function f5 <- main5 <- main. Called from tests/value/split_return.i:117. [eva] Recording results for f5 @@ -76,7 +78,7 @@ [eva] Recording results for main5 [eva] Done for function main5 [eva] computing for function main6 <- main. - Called from tests/value/split_return.i:181. + Called from tests/value/split_return.i:209. [eva] computing for function f6 <- main6 <- main. Called from tests/value/split_return.i:135. [eva:alarm] tests/value/split_return.i:130: Warning: @@ -87,7 +89,7 @@ [eva] Recording results for main6 [eva] Done for function main6 [eva] computing for function main7 <- main. - Called from tests/value/split_return.i:182. + Called from tests/value/split_return.i:210. [eva] computing for function f7 <- main7 <- main. Called from tests/value/split_return.i:148. [eva] Recording results for f7 @@ -97,7 +99,7 @@ [eva] Recording results for main7 [eva] Done for function main7 [eva] computing for function main8 <- main. - Called from tests/value/split_return.i:183. + Called from tests/value/split_return.i:211. [eva] computing for function f8 <- main8 <- main. Called from tests/value/split_return.i:171. [eva] Recording results for f8 @@ -106,9 +108,25 @@ [eva] tests/value/split_return.i:172: Frama_C_show_each_then8: {-1}, {0} [eva] Recording results for main8 [eva] Done for function main8 +[eva] computing for function main9 <- main. + Called from tests/value/split_return.i:212. +[eva] computing for function uninit <- main9 <- main. + Called from tests/value/split_return.i:199. +[eva] Recording results for uninit +[eva] Done for function uninit +[eva] computing for function escaping <- main9 <- main. + Called from tests/value/split_return.i:200. +[eva:locals-escaping] tests/value/split_return.i:192: Warning: + locals {x} escaping the scope of a block of escaping through p +[eva] Recording results for escaping +[eva] Done for function escaping +[eva] Recording results for main9 +[eva] Done for function main9 [eva] Recording results for main [eva] done for function main [eva] ====== VALUES COMPUTED ====== +[eva:final-states] Values at end of function escaping: + p ∈ ESCAPINGADDR [eva:final-states] Values at end of function f2: i2 ∈ {0; 5} __retres ∈ {0; 5; 7} @@ -154,12 +172,19 @@ x ∈ {-1; 4} pf ∈ {{ &f8 }} p ∈ {{ NULL ; &x }} +[eva:final-states] Values at end of function uninit: + x ∈ {0} or UNINITIALIZED +[eva:final-states] Values at end of function main9: + y ∈ {0} or UNINITIALIZED + q ∈ ESCAPINGADDR [eva:final-states] Values at end of function main: i2 ∈ {0; 5} i3 ∈ {0; 5} i4 ∈ {0; 5} i5 ∈ {0; 5} v7 ∈ {0; 1} +[from] Computing for function escaping +[from] Done for function escaping [from] Computing for function f2 [from] Done for function f2 [from] Computing for function f3 @@ -192,10 +217,16 @@ [from] Done for function main7 [from] Computing for function main8 [from] Done for function main8 +[from] Computing for function uninit +[from] Done for function uninit +[from] Computing for function main9 +[from] Done for function main9 [from] Computing for function main [from] Done for function main [from] ====== DEPENDENCIES COMPUTED ====== These dependencies hold at termination for the executions that terminate: +[from] Function escaping: + \result FROM \nothing [from] Function f2: i2 FROM i2 \result FROM i2 @@ -235,6 +266,10 @@ v7 FROM v [from] Function main8: NO EFFECTS +[from] Function uninit: + \result FROM rand +[from] Function main9: + NO EFFECTS [from] Function main: i2 FROM i2 i3 FROM i3 @@ -242,6 +277,10 @@ i5 FROM i5 v7 FROM v [from] ====== END OF DEPENDENCIES ====== +[inout] Out (internal) for function escaping: + p +[inout] Inputs for function escaping: + \nothing [inout] Out (internal) for function f2: i2; __retres [inout] Inputs for function f2: @@ -302,10 +341,18 @@ x; pf; p; tmp [inout] Inputs for function main8: v +[inout] Out (internal) for function uninit: + x +[inout] Inputs for function uninit: + rand +[inout] Out (internal) for function main9: + y; q +[inout] Inputs for function main9: + rand [inout] Out (internal) for function main: i2; i3; i4; i5; v7 [inout] Inputs for function main: - i2; i3; i4; i5; v; v7 + i2; i3; i4; i5; v; v7; rand [report] Computing properties status... -------------------------------------------------------------------------------- diff --git a/tests/value/oracle/split_return.3.res.oracle b/tests/value/oracle/split_return.3.res.oracle index c33284f92cc95fbd1c46cc04906e08cc03a05bcc..1ad5a6b949801e802041412d0870ce55b97cb0da 100644 --- a/tests/value/oracle/split_return.3.res.oracle +++ b/tests/value/oracle/split_return.3.res.oracle @@ -11,8 +11,9 @@ i5 ∈ [--..--] v ∈ [--..--] v7 ∈ {0} + rand ∈ [--..--] [eva] computing for function main1 <- main. - Called from tests/value/split_return.i:176. + Called from tests/value/split_return.i:204. [eva] computing for function init <- main1 <- main. Called from tests/value/split_return.i:17. [eva] using specification for function init @@ -20,7 +21,7 @@ [eva] Recording results for main1 [eva] Done for function main1 [eva] computing for function main2 <- main. - Called from tests/value/split_return.i:177. + Called from tests/value/split_return.i:205. [eva] computing for function f2 <- main2 <- main. Called from tests/value/split_return.i:48. [eva] Recording results for f2 @@ -35,7 +36,7 @@ [eva] Recording results for main2 [eva] Done for function main2 [eva] computing for function main3 <- main. - Called from tests/value/split_return.i:178. + Called from tests/value/split_return.i:206. [eva] computing for function f3 <- main3 <- main. Called from tests/value/split_return.i:73. [eva] Recording results for f3 @@ -47,7 +48,7 @@ [eva] Recording results for main3 [eva] Done for function main3 [eva] computing for function main3 <- main. - Called from tests/value/split_return.i:178. + Called from tests/value/split_return.i:206. [eva] computing for function f3 <- main3 <- main. Called from tests/value/split_return.i:73. [eva] Recording results for f3 @@ -57,7 +58,7 @@ [eva] Recording results for main3 [eva] Done for function main3 [eva] computing for function main4 <- main. - Called from tests/value/split_return.i:179. + Called from tests/value/split_return.i:207. [eva] computing for function f4 <- main4 <- main. Called from tests/value/split_return.i:94. [eva] Recording results for f4 @@ -69,7 +70,7 @@ [eva] Recording results for main4 [eva] Done for function main4 [eva] computing for function main4 <- main. - Called from tests/value/split_return.i:179. + Called from tests/value/split_return.i:207. [eva] computing for function f4 <- main4 <- main. Called from tests/value/split_return.i:94. [eva] Recording results for f4 @@ -79,7 +80,7 @@ [eva] Recording results for main4 [eva] Done for function main4 [eva] computing for function main4 <- main. - Called from tests/value/split_return.i:179. + Called from tests/value/split_return.i:207. [eva] computing for function f4 <- main4 <- main. Called from tests/value/split_return.i:94. [eva] Recording results for f4 @@ -89,7 +90,7 @@ [eva] Recording results for main4 [eva] Done for function main4 [eva] computing for function main4 <- main. - Called from tests/value/split_return.i:179. + Called from tests/value/split_return.i:207. [eva] computing for function f4 <- main4 <- main. Called from tests/value/split_return.i:94. [eva] Recording results for f4 @@ -99,7 +100,7 @@ [eva] Recording results for main4 [eva] Done for function main4 [eva] computing for function main5 <- main. - Called from tests/value/split_return.i:180. + Called from tests/value/split_return.i:208. [eva] computing for function f5 <- main5 <- main. Called from tests/value/split_return.i:117. [eva] Recording results for f5 @@ -111,7 +112,7 @@ [eva] Recording results for main5 [eva] Done for function main5 [eva] computing for function main6 <- main. - Called from tests/value/split_return.i:181. + Called from tests/value/split_return.i:209. [eva] computing for function f6 <- main6 <- main. Called from tests/value/split_return.i:135. [eva:alarm] tests/value/split_return.i:130: Warning: @@ -121,7 +122,7 @@ [eva] Recording results for main6 [eva] Done for function main6 [eva] computing for function main6 <- main. - Called from tests/value/split_return.i:181. + Called from tests/value/split_return.i:209. [eva] computing for function f6 <- main6 <- main. Called from tests/value/split_return.i:135. [eva] Recording results for f6 @@ -129,7 +130,7 @@ [eva] Recording results for main6 [eva] Done for function main6 [eva] computing for function main7 <- main. - Called from tests/value/split_return.i:182. + Called from tests/value/split_return.i:210. [eva] computing for function f7 <- main7 <- main. Called from tests/value/split_return.i:148. [eva] Recording results for f7 @@ -139,7 +140,7 @@ [eva] Recording results for main7 [eva] Done for function main7 [eva] computing for function main7 <- main. - Called from tests/value/split_return.i:182. + Called from tests/value/split_return.i:210. [eva] computing for function f7 <- main7 <- main. Called from tests/value/split_return.i:148. [eva] Recording results for f7 @@ -149,7 +150,7 @@ [eva] Recording results for main7 [eva] Done for function main7 [eva] computing for function main8 <- main. - Called from tests/value/split_return.i:183. + Called from tests/value/split_return.i:211. [eva] computing for function f8 <- main8 <- main. Called from tests/value/split_return.i:171. [eva] Recording results for f8 @@ -159,7 +160,7 @@ [eva] Recording results for main8 [eva] Done for function main8 [eva] computing for function main8 <- main. - Called from tests/value/split_return.i:183. + Called from tests/value/split_return.i:211. [eva] computing for function f8 <- main8 <- main. Called from tests/value/split_return.i:171. [eva] Recording results for f8 @@ -169,7 +170,7 @@ [eva] Recording results for main8 [eva] Done for function main8 [eva] computing for function main8 <- main. - Called from tests/value/split_return.i:183. + Called from tests/value/split_return.i:211. [eva] computing for function f8 <- main8 <- main. Called from tests/value/split_return.i:171. [eva] Recording results for f8 @@ -179,7 +180,7 @@ [eva] Recording results for main8 [eva] Done for function main8 [eva] computing for function main8 <- main. - Called from tests/value/split_return.i:183. + Called from tests/value/split_return.i:211. [eva] computing for function f8 <- main8 <- main. Called from tests/value/split_return.i:171. [eva] Recording results for f8 @@ -188,9 +189,29 @@ [eva] tests/value/split_return.i:172: Frama_C_show_each_then8: {-1}, {0} [eva] Recording results for main8 [eva] Done for function main8 +[eva] computing for function main9 <- main. + Called from tests/value/split_return.i:212. +[eva] computing for function uninit <- main9 <- main. + Called from tests/value/split_return.i:199. +[eva] Recording results for uninit +[eva] Done for function uninit +[eva] computing for function escaping <- main9 <- main. + Called from tests/value/split_return.i:200. +[eva:locals-escaping] tests/value/split_return.i:192: Warning: + locals {x} escaping the scope of a block of escaping through p +[eva] Recording results for escaping +[eva] Done for function escaping +[eva] computing for function escaping <- main9 <- main. + Called from tests/value/split_return.i:200. +[eva] Recording results for escaping +[eva] Done for function escaping +[eva] Recording results for main9 +[eva] Done for function main9 [eva] Recording results for main [eva] done for function main [eva] ====== VALUES COMPUTED ====== +[eva:final-states] Values at end of function escaping: + p ∈ ESCAPINGADDR [eva:final-states] Values at end of function f2: i2 ∈ {0; 5} __retres ∈ {0; 5; 7} @@ -236,12 +257,19 @@ x ∈ {-1; 4} pf ∈ {{ &f8 }} p ∈ {{ NULL ; &x }} +[eva:final-states] Values at end of function uninit: + x ∈ {0} or UNINITIALIZED +[eva:final-states] Values at end of function main9: + y ∈ {0} or UNINITIALIZED + q ∈ ESCAPINGADDR [eva:final-states] Values at end of function main: i2 ∈ {0; 5} i3 ∈ {0; 5} i4 ∈ {0; 5} i5 ∈ {0; 5} v7 ∈ {0; 1} +[from] Computing for function escaping +[from] Done for function escaping [from] Computing for function f2 [from] Done for function f2 [from] Computing for function f3 @@ -274,10 +302,16 @@ [from] Done for function main7 [from] Computing for function main8 [from] Done for function main8 +[from] Computing for function uninit +[from] Done for function uninit +[from] Computing for function main9 +[from] Done for function main9 [from] Computing for function main [from] Done for function main [from] ====== DEPENDENCIES COMPUTED ====== These dependencies hold at termination for the executions that terminate: +[from] Function escaping: + \result FROM \nothing [from] Function f2: i2 FROM i2 \result FROM i2 @@ -317,6 +351,10 @@ v7 FROM v [from] Function main8: NO EFFECTS +[from] Function uninit: + \result FROM rand +[from] Function main9: + NO EFFECTS [from] Function main: i2 FROM i2 i3 FROM i3 @@ -324,6 +362,10 @@ i5 FROM i5 v7 FROM v [from] ====== END OF DEPENDENCIES ====== +[inout] Out (internal) for function escaping: + p +[inout] Inputs for function escaping: + \nothing [inout] Out (internal) for function f2: i2; __retres [inout] Inputs for function f2: @@ -384,7 +426,15 @@ x; pf; p; tmp [inout] Inputs for function main8: v +[inout] Out (internal) for function uninit: + x +[inout] Inputs for function uninit: + rand +[inout] Out (internal) for function main9: + y; q +[inout] Inputs for function main9: + rand [inout] Out (internal) for function main: i2; i3; i4; i5; v7 [inout] Inputs for function main: - i2; i3; i4; i5; v; v7 + i2; i3; i4; i5; v; v7; rand diff --git a/tests/value/oracle/split_return.4.res.oracle b/tests/value/oracle/split_return.4.res.oracle index 6985eb6c49e28b7cb25f2f343621a1a79b9b2a47..46c3281323efa5dbd6f217ae060050721529854c 100644 --- a/tests/value/oracle/split_return.4.res.oracle +++ b/tests/value/oracle/split_return.4.res.oracle @@ -14,8 +14,9 @@ i5 ∈ [--..--] v ∈ [--..--] v7 ∈ {0} + rand ∈ [--..--] [eva] computing for function main1 <- main. - Called from tests/value/split_return.i:176. + Called from tests/value/split_return.i:204. [eva] computing for function init <- main1 <- main. Called from tests/value/split_return.i:17. [eva] using specification for function init @@ -23,7 +24,7 @@ [eva] Recording results for main1 [eva] Done for function main1 [eva] computing for function main2 <- main. - Called from tests/value/split_return.i:177. + Called from tests/value/split_return.i:205. [eva] computing for function f2 <- main2 <- main. Called from tests/value/split_return.i:48. [eva] Recording results for f2 @@ -38,7 +39,7 @@ [eva] Recording results for main2 [eva] Done for function main2 [eva] computing for function main3 <- main. - Called from tests/value/split_return.i:178. + Called from tests/value/split_return.i:206. [eva] computing for function f3 <- main3 <- main. Called from tests/value/split_return.i:73. [eva] Recording results for f3 @@ -50,7 +51,7 @@ [eva] Recording results for main3 [eva] Done for function main3 [eva] computing for function main3 <- main. - Called from tests/value/split_return.i:178. + Called from tests/value/split_return.i:206. [eva] computing for function f3 <- main3 <- main. Called from tests/value/split_return.i:73. [eva] Recording results for f3 @@ -60,7 +61,7 @@ [eva] Recording results for main3 [eva] Done for function main3 [eva] computing for function main4 <- main. - Called from tests/value/split_return.i:179. + Called from tests/value/split_return.i:207. [eva] computing for function f4 <- main4 <- main. Called from tests/value/split_return.i:94. [eva] Recording results for f4 @@ -72,7 +73,7 @@ [eva] Recording results for main4 [eva] Done for function main4 [eva] computing for function main4 <- main. - Called from tests/value/split_return.i:179. + Called from tests/value/split_return.i:207. [eva] computing for function f4 <- main4 <- main. Called from tests/value/split_return.i:94. [eva] Recording results for f4 @@ -82,7 +83,7 @@ [eva] Recording results for main4 [eva] Done for function main4 [eva] computing for function main4 <- main. - Called from tests/value/split_return.i:179. + Called from tests/value/split_return.i:207. [eva] computing for function f4 <- main4 <- main. Called from tests/value/split_return.i:94. [eva] Recording results for f4 @@ -92,7 +93,7 @@ [eva] Recording results for main4 [eva] Done for function main4 [eva] computing for function main4 <- main. - Called from tests/value/split_return.i:179. + Called from tests/value/split_return.i:207. [eva] computing for function f4 <- main4 <- main. Called from tests/value/split_return.i:94. [eva] Recording results for f4 @@ -102,7 +103,7 @@ [eva] Recording results for main4 [eva] Done for function main4 [eva] computing for function main5 <- main. - Called from tests/value/split_return.i:180. + Called from tests/value/split_return.i:208. [eva] computing for function f5 <- main5 <- main. Called from tests/value/split_return.i:117. [eva] Recording results for f5 @@ -114,7 +115,7 @@ [eva] Recording results for main5 [eva] Done for function main5 [eva] computing for function main6 <- main. - Called from tests/value/split_return.i:181. + Called from tests/value/split_return.i:209. [eva] computing for function f6 <- main6 <- main. Called from tests/value/split_return.i:135. [eva:alarm] tests/value/split_return.i:130: Warning: @@ -124,7 +125,7 @@ [eva] Recording results for main6 [eva] Done for function main6 [eva] computing for function main6 <- main. - Called from tests/value/split_return.i:181. + Called from tests/value/split_return.i:209. [eva] computing for function f6 <- main6 <- main. Called from tests/value/split_return.i:135. [eva] Recording results for f6 @@ -132,7 +133,7 @@ [eva] Recording results for main6 [eva] Done for function main6 [eva] computing for function main7 <- main. - Called from tests/value/split_return.i:182. + Called from tests/value/split_return.i:210. [eva] computing for function f7 <- main7 <- main. Called from tests/value/split_return.i:148. [eva] Recording results for f7 @@ -142,7 +143,7 @@ [eva] Recording results for main7 [eva] Done for function main7 [eva] computing for function main7 <- main. - Called from tests/value/split_return.i:182. + Called from tests/value/split_return.i:210. [eva] computing for function f7 <- main7 <- main. Called from tests/value/split_return.i:148. [eva] Recording results for f7 @@ -152,7 +153,7 @@ [eva] Recording results for main7 [eva] Done for function main7 [eva] computing for function main8 <- main. - Called from tests/value/split_return.i:183. + Called from tests/value/split_return.i:211. [eva] computing for function f8 <- main8 <- main. Called from tests/value/split_return.i:171. [eva] Recording results for f8 @@ -162,7 +163,7 @@ [eva] Recording results for main8 [eva] Done for function main8 [eva] computing for function main8 <- main. - Called from tests/value/split_return.i:183. + Called from tests/value/split_return.i:211. [eva] computing for function f8 <- main8 <- main. Called from tests/value/split_return.i:171. [eva] Recording results for f8 @@ -172,7 +173,7 @@ [eva] Recording results for main8 [eva] Done for function main8 [eva] computing for function main8 <- main. - Called from tests/value/split_return.i:183. + Called from tests/value/split_return.i:211. [eva] computing for function f8 <- main8 <- main. Called from tests/value/split_return.i:171. [eva] Recording results for f8 @@ -182,7 +183,7 @@ [eva] Recording results for main8 [eva] Done for function main8 [eva] computing for function main8 <- main. - Called from tests/value/split_return.i:183. + Called from tests/value/split_return.i:211. [eva] computing for function f8 <- main8 <- main. Called from tests/value/split_return.i:171. [eva] Recording results for f8 @@ -191,9 +192,29 @@ [eva] tests/value/split_return.i:172: Frama_C_show_each_then8: {-1}, {0} [eva] Recording results for main8 [eva] Done for function main8 +[eva] computing for function main9 <- main. + Called from tests/value/split_return.i:212. +[eva] computing for function uninit <- main9 <- main. + Called from tests/value/split_return.i:199. +[eva] Recording results for uninit +[eva] Done for function uninit +[eva] computing for function escaping <- main9 <- main. + Called from tests/value/split_return.i:200. +[eva:locals-escaping] tests/value/split_return.i:192: Warning: + locals {x} escaping the scope of a block of escaping through p +[eva] Recording results for escaping +[eva] Done for function escaping +[eva] computing for function escaping <- main9 <- main. + Called from tests/value/split_return.i:200. +[eva] Recording results for escaping +[eva] Done for function escaping +[eva] Recording results for main9 +[eva] Done for function main9 [eva] Recording results for main [eva] done for function main [eva] ====== VALUES COMPUTED ====== +[eva:final-states] Values at end of function escaping: + p ∈ ESCAPINGADDR [eva:final-states] Values at end of function f2: i2 ∈ {0; 5} __retres ∈ {0; 5; 7} @@ -239,12 +260,19 @@ x ∈ {-1; 4} pf ∈ {{ &f8 }} p ∈ {{ NULL ; &x }} +[eva:final-states] Values at end of function uninit: + x ∈ {0} or UNINITIALIZED +[eva:final-states] Values at end of function main9: + y ∈ {0} or UNINITIALIZED + q ∈ ESCAPINGADDR [eva:final-states] Values at end of function main: i2 ∈ {0; 5} i3 ∈ {0; 5} i4 ∈ {0; 5} i5 ∈ {0; 5} v7 ∈ {0; 1} +[from] Computing for function escaping +[from] Done for function escaping [from] Computing for function f2 [from] Done for function f2 [from] Computing for function f3 @@ -277,10 +305,16 @@ [from] Done for function main7 [from] Computing for function main8 [from] Done for function main8 +[from] Computing for function uninit +[from] Done for function uninit +[from] Computing for function main9 +[from] Done for function main9 [from] Computing for function main [from] Done for function main [from] ====== DEPENDENCIES COMPUTED ====== These dependencies hold at termination for the executions that terminate: +[from] Function escaping: + \result FROM \nothing [from] Function f2: i2 FROM i2 \result FROM i2 @@ -320,6 +354,10 @@ v7 FROM v [from] Function main8: NO EFFECTS +[from] Function uninit: + \result FROM rand +[from] Function main9: + NO EFFECTS [from] Function main: i2 FROM i2 i3 FROM i3 @@ -327,6 +365,10 @@ i5 FROM i5 v7 FROM v [from] ====== END OF DEPENDENCIES ====== +[inout] Out (internal) for function escaping: + p +[inout] Inputs for function escaping: + \nothing [inout] Out (internal) for function f2: i2; __retres [inout] Inputs for function f2: @@ -387,10 +429,18 @@ x; pf; p; tmp [inout] Inputs for function main8: v +[inout] Out (internal) for function uninit: + x +[inout] Inputs for function uninit: + rand +[inout] Out (internal) for function main9: + y; q +[inout] Inputs for function main9: + rand [inout] Out (internal) for function main: i2; i3; i4; i5; v7 [inout] Inputs for function main: - i2; i3; i4; i5; v; v7 + i2; i3; i4; i5; v; v7; rand [eva] Warning: option -eva-split-return-function: 'f2' previously bound to 'full split'; now bound to 'auto split'. [eva] Splitting return states on: @@ -408,15 +458,16 @@ i5 ∈ [--..--] v ∈ [--..--] v7 ∈ {0} + rand ∈ [--..--] [eva] computing for function main1 <- main. - Called from tests/value/split_return.i:176. + Called from tests/value/split_return.i:204. [eva] computing for function init <- main1 <- main. Called from tests/value/split_return.i:17. [eva] Done for function init [eva] Recording results for main1 [eva] Done for function main1 [eva] computing for function main2 <- main. - Called from tests/value/split_return.i:177. + Called from tests/value/split_return.i:205. [eva] computing for function f2 <- main2 <- main. Called from tests/value/split_return.i:48. [eva] Recording results for f2 @@ -427,7 +478,7 @@ [eva] Recording results for main2 [eva] Done for function main2 [eva] computing for function main3 <- main. - Called from tests/value/split_return.i:178. + Called from tests/value/split_return.i:206. [eva] computing for function f3 <- main3 <- main. Called from tests/value/split_return.i:73. [eva] Recording results for f3 @@ -437,7 +488,7 @@ [eva] Recording results for main3 [eva] Done for function main3 [eva] computing for function main3 <- main. - Called from tests/value/split_return.i:178. + Called from tests/value/split_return.i:206. [eva] computing for function f3 <- main3 <- main. Called from tests/value/split_return.i:73. [eva] Recording results for f3 @@ -447,7 +498,7 @@ [eva] Recording results for main3 [eva] Done for function main3 [eva] computing for function main4 <- main. - Called from tests/value/split_return.i:179. + Called from tests/value/split_return.i:207. [eva] computing for function f4 <- main4 <- main. Called from tests/value/split_return.i:94. [eva] Recording results for f4 @@ -457,7 +508,7 @@ [eva] Recording results for main4 [eva] Done for function main4 [eva] computing for function main4 <- main. - Called from tests/value/split_return.i:179. + Called from tests/value/split_return.i:207. [eva] computing for function f4 <- main4 <- main. Called from tests/value/split_return.i:94. [eva] Recording results for f4 @@ -467,7 +518,7 @@ [eva] Recording results for main4 [eva] Done for function main4 [eva] computing for function main4 <- main. - Called from tests/value/split_return.i:179. + Called from tests/value/split_return.i:207. [eva] computing for function f4 <- main4 <- main. Called from tests/value/split_return.i:94. [eva] Recording results for f4 @@ -477,7 +528,7 @@ [eva] Recording results for main4 [eva] Done for function main4 [eva] computing for function main4 <- main. - Called from tests/value/split_return.i:179. + Called from tests/value/split_return.i:207. [eva] computing for function f4 <- main4 <- main. Called from tests/value/split_return.i:94. [eva] Recording results for f4 @@ -487,7 +538,7 @@ [eva] Recording results for main4 [eva] Done for function main4 [eva] computing for function main5 <- main. - Called from tests/value/split_return.i:180. + Called from tests/value/split_return.i:208. [eva] computing for function f5 <- main5 <- main. Called from tests/value/split_return.i:117. [eva] Recording results for f5 @@ -497,7 +548,7 @@ [eva] Recording results for main5 [eva] Done for function main5 [eva] computing for function main6 <- main. - Called from tests/value/split_return.i:181. + Called from tests/value/split_return.i:209. [eva] computing for function f6 <- main6 <- main. Called from tests/value/split_return.i:135. [eva] Recording results for f6 @@ -505,7 +556,7 @@ [eva] Recording results for main6 [eva] Done for function main6 [eva] computing for function main6 <- main. - Called from tests/value/split_return.i:181. + Called from tests/value/split_return.i:209. [eva] computing for function f6 <- main6 <- main. Called from tests/value/split_return.i:135. [eva] Recording results for f6 @@ -513,7 +564,7 @@ [eva] Recording results for main6 [eva] Done for function main6 [eva] computing for function main7 <- main. - Called from tests/value/split_return.i:182. + Called from tests/value/split_return.i:210. [eva] computing for function f7 <- main7 <- main. Called from tests/value/split_return.i:148. [eva] Recording results for f7 @@ -523,7 +574,7 @@ [eva] Recording results for main7 [eva] Done for function main7 [eva] computing for function main7 <- main. - Called from tests/value/split_return.i:182. + Called from tests/value/split_return.i:210. [eva] computing for function f7 <- main7 <- main. Called from tests/value/split_return.i:148. [eva] Recording results for f7 @@ -533,7 +584,7 @@ [eva] Recording results for main7 [eva] Done for function main7 [eva] computing for function main8 <- main. - Called from tests/value/split_return.i:183. + Called from tests/value/split_return.i:211. [eva] computing for function f8 <- main8 <- main. Called from tests/value/split_return.i:171. [eva] Recording results for f8 @@ -543,7 +594,7 @@ [eva] Recording results for main8 [eva] Done for function main8 [eva] computing for function main8 <- main. - Called from tests/value/split_return.i:183. + Called from tests/value/split_return.i:211. [eva] computing for function f8 <- main8 <- main. Called from tests/value/split_return.i:171. [eva] Recording results for f8 @@ -553,7 +604,7 @@ [eva] Recording results for main8 [eva] Done for function main8 [eva] computing for function main8 <- main. - Called from tests/value/split_return.i:183. + Called from tests/value/split_return.i:211. [eva] computing for function f8 <- main8 <- main. Called from tests/value/split_return.i:171. [eva] Recording results for f8 @@ -563,7 +614,7 @@ [eva] Recording results for main8 [eva] Done for function main8 [eva] computing for function main8 <- main. - Called from tests/value/split_return.i:183. + Called from tests/value/split_return.i:211. [eva] computing for function f8 <- main8 <- main. Called from tests/value/split_return.i:171. [eva] Recording results for f8 @@ -572,9 +623,27 @@ [eva] tests/value/split_return.i:172: Frama_C_show_each_then8: {-1}, {0} [eva] Recording results for main8 [eva] Done for function main8 +[eva] computing for function main9 <- main. + Called from tests/value/split_return.i:212. +[eva] computing for function uninit <- main9 <- main. + Called from tests/value/split_return.i:199. +[eva] Recording results for uninit +[eva] Done for function uninit +[eva] computing for function escaping <- main9 <- main. + Called from tests/value/split_return.i:200. +[eva] Recording results for escaping +[eva] Done for function escaping +[eva] computing for function escaping <- main9 <- main. + Called from tests/value/split_return.i:200. +[eva] Recording results for escaping +[eva] Done for function escaping +[eva] Recording results for main9 +[eva] Done for function main9 [eva] Recording results for main [eva] done for function main [eva] ====== VALUES COMPUTED ====== +[eva:final-states] Values at end of function escaping: + p ∈ ESCAPINGADDR [eva:final-states] Values at end of function f2: i2 ∈ {0; 5} __retres ∈ {0; 5; 7} @@ -620,12 +689,19 @@ x ∈ {-1; 4} pf ∈ {{ &f8 }} p ∈ {{ NULL ; &x }} +[eva:final-states] Values at end of function uninit: + x ∈ {0} or UNINITIALIZED +[eva:final-states] Values at end of function main9: + y ∈ {0} or UNINITIALIZED + q ∈ ESCAPINGADDR [eva:final-states] Values at end of function main: i2 ∈ {0; 5} i3 ∈ {0; 5} i4 ∈ {0; 5} i5 ∈ {0; 5} v7 ∈ {0; 1} +[from] Computing for function escaping +[from] Done for function escaping [from] Computing for function f2 [from] Done for function f2 [from] Computing for function f3 @@ -658,10 +734,16 @@ [from] Done for function main7 [from] Computing for function main8 [from] Done for function main8 +[from] Computing for function uninit +[from] Done for function uninit +[from] Computing for function main9 +[from] Done for function main9 [from] Computing for function main [from] Done for function main [from] ====== DEPENDENCIES COMPUTED ====== These dependencies hold at termination for the executions that terminate: +[from] Function escaping: + \result FROM \nothing [from] Function f2: i2 FROM i2 \result FROM i2 @@ -701,6 +783,10 @@ v7 FROM v [from] Function main8: NO EFFECTS +[from] Function uninit: + \result FROM rand +[from] Function main9: + NO EFFECTS [from] Function main: i2 FROM i2 i3 FROM i3 @@ -708,6 +794,10 @@ i5 FROM i5 v7 FROM v [from] ====== END OF DEPENDENCIES ====== +[inout] Out (internal) for function escaping: + p +[inout] Inputs for function escaping: + \nothing [inout] Out (internal) for function f2: i2; __retres [inout] Inputs for function f2: @@ -768,7 +858,15 @@ x; pf; p; tmp [inout] Inputs for function main8: v +[inout] Out (internal) for function uninit: + x +[inout] Inputs for function uninit: + rand +[inout] Out (internal) for function main9: + y; q +[inout] Inputs for function main9: + rand [inout] Out (internal) for function main: i2; i3; i4; i5; v7 [inout] Inputs for function main: - i2; i3; i4; i5; v; v7 + i2; i3; i4; i5; v; v7; rand diff --git a/tests/value/oracle/widen_non_constant.res.oracle b/tests/value/oracle/widen_non_constant.res.oracle index c8d94a6191b6ff0943a57b64cdb4fb7a8476e0c6..6d5b5622a50133d23f68a4dd49a64e297d862e3c 100644 --- a/tests/value/oracle/widen_non_constant.res.oracle +++ b/tests/value/oracle/widen_non_constant.res.oracle @@ -25,7 +25,7 @@ Frama_C_show_each_in: {0; 1; 2}, [1..23] [eva] tests/value/widen_non_constant.i:11: Frama_C_show_each_out: [0..22] [eva] tests/value/widen_non_constant.i:13: - Frama_C_show_each_in: [0..23], [1..23] + Frama_C_show_each_in: [0..22], [1..23] [eva] Recording results for main1 [eva] Done for function main1 [eva] computing for function main2 <- main. @@ -44,7 +44,7 @@ Frama_C_show_each_in: {0; 1; 2}, [1..23] [eva] tests/value/widen_non_constant.i:27: Frama_C_show_each_out: [0..22] [eva] tests/value/widen_non_constant.i:29: - Frama_C_show_each_in: [0..25], [1..23] + Frama_C_show_each_in: [0..22], [1..23] [eva] Recording results for main2 [eva] Done for function main2 [eva] computing for function main3 <- main. @@ -63,11 +63,7 @@ Frama_C_show_each_in: {0; 1; 2}, [1..23] [eva] tests/value/widen_non_constant.i:46: Frama_C_show_each_out: [0..22] [eva] tests/value/widen_non_constant.i:48: - Frama_C_show_each_in: [0..2147483647], [1..23] -[eva:alarm] tests/value/widen_non_constant.i:49: Warning: - out of bounds read. assert \valid_read(p + j); -[eva:alarm] tests/value/widen_non_constant.i:45: Warning: - signed overflow. assert j + 1 ≤ 2147483647; + Frama_C_show_each_in: [0..22], [1..23] [eva] Recording results for main3 [eva] Done for function main3 [eva] computing for function main4 <- main. @@ -85,10 +81,10 @@ [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function main1: i ∈ {24} or UNINITIALIZED - j ∈ {23; 24} + j ∈ {23} [eva:final-states] Values at end of function main2: i ∈ {24; 25} or UNINITIALIZED - j ∈ {23; 24; 25; 26} + j ∈ {23; 24; 25} [eva:final-states] Values at end of function main3: i ∈ [24..2147483647] or UNINITIALIZED j ∈ [23..2147483647] @@ -139,7 +135,7 @@ [inout] Out (internal) for function main2: i; j [inout] Inputs for function main2: - N; B[0..25] + N; B[0..23] [inout] Out (internal) for function main3: i; j; p [inout] Inputs for function main3: @@ -151,4 +147,4 @@ [inout] Out (internal) for function main: t[0..19]; u[0..39] [inout] Inputs for function main: - N; A[0..23]; B[0..25]; C[0..23] + N; A[0..23]; B[0..23]; C[0..23] diff --git a/tests/value/oracle/widen_on_non_monotonic.res.oracle b/tests/value/oracle/widen_on_non_monotonic.res.oracle index c0a867022e7b0ac9291602e4f3920c22181e3de8..5270640d92190f496ad3e554f4b893c6676e78ba 100644 --- a/tests/value/oracle/widen_on_non_monotonic.res.oracle +++ b/tests/value/oracle/widen_on_non_monotonic.res.oracle @@ -20,6 +20,7 @@ Called from tests/value/widen_on_non_monotonic.i:71. [eva] tests/value/widen_on_non_monotonic.i:25: starting to merge loop iterations [eva] tests/value/widen_on_non_monotonic.i:23: starting to merge loop iterations +[eva] tests/value/widen_on_non_monotonic.i:26: starting to merge loop iterations [eva:alarm] tests/value/widen_on_non_monotonic.i:27: Warning: signed overflow. assert -2147483648 ≤ b - 1; [eva] Recording results for main1 diff --git a/tests/value/pointer_comparison.c b/tests/value/pointer_comparison.c index 7fd0d6828bf4e4f0a799dc0787154c1f265f400b..2dcf42073538d749686ebbd0fe38cc7fc6cb9e30 100644 --- a/tests/value/pointer_comparison.c +++ b/tests/value/pointer_comparison.c @@ -1,5 +1,5 @@ /* run.config* - STDOPT: +" -load-module report -report-print-properties -eva-warn-undefined-pointer-comparison none -eva-msg-key pointer-comparison -then -report -then -val-warn-undefined-pointer-comparison pointer -then -report -then -eva-warn-undefined-pointer-comparison all -then -report" + STDOPT: +" -load-module report -report-print-properties -eva-warn-undefined-pointer-comparison none -eva-msg-key pointer-comparison -then -report -then -eva-warn-undefined-pointer-comparison pointer -then -report -then -eva-warn-undefined-pointer-comparison all -then -report" STDOPT: +" -load-module report -report-print-properties -undefined-pointer-comparison-propagate-all -eva-warn-undefined-pointer-comparison none -eva-msg-key pointer-comparison -then -report -then -eva-warn-undefined-pointer-comparison pointer -then -report -then -eva-warn-undefined-pointer-comparison all -then -report" */ int x,y,*p; diff --git a/tests/value/postcond_leaf.c b/tests/value/postcond_leaf.c index 1afa96fd61f72825e88db72e9b8f1a9bf1e33ef5..b7171d4133a9a6be19c5030b615d8dfacaba0600 100644 --- a/tests/value/postcond_leaf.c +++ b/tests/value/postcond_leaf.c @@ -1,5 +1,5 @@ /* run.config* -OPT: -no-autoload-plugins @VALUECONFIG@ -load-module eva,inout,report -no-val-show-progress -val -val-use-spec g1,g2,g3 -then -report +OPT: -no-autoload-plugins @VALUECONFIG@ -load-module eva,inout,report -eva-no-show-progress -eva -eva-use-spec g1,g2,g3 -then -report */ /* Test what is printed when Value evaluates a post-condition: @@ -103,35 +103,36 @@ void h4() { int* k(int *p); -void main(j) { - if (j & 1) { +volatile int j; +void main() { + if (j) { f1(); } - if (j & 2) { + if (j) { f2(); } - if (j & 3) { + if (j) { f3(); } - if (j & 4) { + if (j) { f4(); } - if (j & 5) { + if (j) { g1(); } - if (j & 6) { + if (j) { g2(); } - if (j & 7) { + if (j) { g3(); } - if (j & 8) { + if (j) { h1(); } - if (j & 9) { + if (j) { h2(); } - if (j & 10) { + if (j) { h3(); } if (j & 11) { @@ -143,3 +144,4 @@ void main(j) { } } + diff --git a/tests/value/precise_locations.i b/tests/value/precise_locations.i index 3f3051f0dc6324e869083ba75cd0e769a668e19d..06340dba48ae65c8c9ed814351463b7a34cc27ab 100644 --- a/tests/value/precise_locations.i +++ b/tests/value/precise_locations.i @@ -1,5 +1,5 @@ /* run.config* - STDOPT: +"-then -inout -load-module report -report -then -plevel 250" + STDOPT: +"-eva-widening-period 3 -then -inout -load-module report -report -then -plevel 250" */ struct s { diff --git a/tests/value/precond.c b/tests/value/precond.c index 12de68501f7c0e1f3f2bd3a04fa13a9c283889cf..49b21d44e0af2c74f8b6561ba9145ca40d1a111b 100644 --- a/tests/value/precond.c +++ b/tests/value/precond.c @@ -1,5 +1,5 @@ /* run.config* - OPT: -no-autoload-plugins -load-module from,inout,eva,report -lib-entry -val @VALUECONFIG@ -then -report -report-print-properties -then -report-no-specialized + OPT: -no-autoload-plugins -load-module from,inout,eva,report -lib-entry -eva @VALUECONFIG@ -then -report -report-print-properties -then -report-no-specialized */ diff --git a/tests/value/precond2.c b/tests/value/precond2.c index ead85e99a7eb0badc760a01f7b0c8f84d09049a6..9008ebd722097da73c7115cc4c3da66ed34d7fb8 100644 --- a/tests/value/precond2.c +++ b/tests/value/precond2.c @@ -1,6 +1,6 @@ /* run.config* - OPT: -no-autoload-plugins -load-module from,inout,eva,report,rtegen -rte -then -val @VALUECONFIG@ -then -report -report-print-properties - OPT: -no-autoload-plugins -load-module from,inout,eva,report,rtegen -val @VALUECONFIG@ -then -rte -then -report -report-print-properties + OPT: -no-autoload-plugins -load-module from,inout,eva,report,rtegen -rte -then -eva @VALUECONFIG@ -then -report -report-print-properties + OPT: -no-autoload-plugins -load-module from,inout,eva,report,rtegen -eva @VALUECONFIG@ -then -rte -then -report -report-print-properties */ // Fuse with precond.c when bts #1208 is solved diff --git a/tests/value/protomain.i b/tests/value/protomain.i index 8161abf49029eb506c318a90411a6d7b4aaf3c28..7e8a769384acc1771b082da46945e5b09fffcd2d 100644 --- a/tests/value/protomain.i +++ b/tests/value/protomain.i @@ -1,4 +1,4 @@ /* run.config* - OPT: -no-autoload-plugins -load-module inout,eva -val @VALUECONFIG@ + OPT: -no-autoload-plugins -load-module inout,eva -eva @VALUECONFIG@ */ int main(int c, char **); diff --git a/tests/value/recursion.i b/tests/value/recursion.i index b49486ff05d3f3482f3f2568aae8c241a8a0ca1d..a7943ae37f25a02401cc13ed8c93e216c8d37842 100644 --- a/tests/value/recursion.i +++ b/tests/value/recursion.i @@ -1,6 +1,6 @@ /*run.config* - OPT: -no-autoload-plugins -load-module from,inout,eva -lib-entry -main main -val @VALUECONFIG@ -journal-disable - OPT: -no-autoload-plugins -load-module from,inout,eva -lib-entry -main main -val @VALUECONFIG@ -val-ignore-recursive-calls -journal-disable + OPT: -no-autoload-plugins -load-module from,inout,eva -lib-entry -main main -eva @VALUECONFIG@ -journal-disable + OPT: -no-autoload-plugins -load-module from,inout,eva -lib-entry -main main -eva @VALUECONFIG@ -eva-ignore-recursive-calls -journal-disable */ int G; diff --git a/tests/value/recursion2.i b/tests/value/recursion2.i index 5a62accb1ad03d0f98193107708041480edcb4b4..7b2a209eda2cba2aa4517a3a851906013a2e7a8d 100644 --- a/tests/value/recursion2.i +++ b/tests/value/recursion2.i @@ -1,5 +1,5 @@ /*run.config* - OPT: -no-autoload-plugins -load-module from,inout,eva -val @VALUECONFIG@ -journal-disable -then -input -out -inout + OPT: -no-autoload-plugins -load-module from,inout,eva -eva @VALUECONFIG@ -journal-disable -then -input -out -inout */ int x, y; diff --git a/tests/value/replace_by_show_each.c b/tests/value/replace_by_show_each.c index 02b63956219cdc439b220cc8cc95c7d2a4d6e0a5..a100f63626e5ff157442876b01adf7d1aa3f78a1 100644 --- a/tests/value/replace_by_show_each.c +++ b/tests/value/replace_by_show_each.c @@ -1,5 +1,5 @@ /* run.config* - OPT: -no-autoload-plugins -load-module from,inout,eva -val @VALUECONFIG@ -inout -calldeps + OPT: -no-autoload-plugins -load-module from,inout,eva -eva @VALUECONFIG@ -inout -calldeps */ #define show_each_1 Frama_C_show_each_1 diff --git a/tests/value/sign_of_bitfiled_int.c b/tests/value/sign_of_bitfiled_int.c index 5a565d5c15d3208e9daa3b25a9cdc3ba299dadda..efe30e77e34edefd231fa99d35ab8be77de097d4 100644 --- a/tests/value/sign_of_bitfiled_int.c +++ b/tests/value/sign_of_bitfiled_int.c @@ -1,6 +1,6 @@ /* run.config* - OPT: -no-autoload-plugins -load-module eva,inout -val @VALUECONFIG@ -cpp-extra-args="-DPTEST" -journal-disable - OPT: -no-autoload-plugins -load-module eva,inout -machdep ppc_32 -val @VALUECONFIG@ -cpp-extra-args="-DPTEST" -journal-disable + OPT: -no-autoload-plugins -load-module eva,inout -eva @VALUECONFIG@ -cpp-extra-args="-DPTEST" -journal-disable + OPT: -no-autoload-plugins -load-module eva,inout -machdep ppc_32 -eva @VALUECONFIG@ -cpp-extra-args="-DPTEST" -journal-disable */ diff --git a/tests/value/simplify_cfg.i b/tests/value/simplify_cfg.i index d442808d20d4dea4bea0feac25128c06a0a65b97..7b0b780c2043eb2ad142d226220985bf961bb137 100644 --- a/tests/value/simplify_cfg.i +++ b/tests/value/simplify_cfg.i @@ -1,6 +1,6 @@ /* run.config* - OPT: -no-autoload-plugins -load-module eva,inout -simplify-cfg -keep-switch -val @VALUECONFIG@ -journal-disable - OPT: -no-autoload-plugins -load-module eva,inout -simplify-cfg -val @VALUECONFIG@ -journal-disable + OPT: -no-autoload-plugins -load-module eva,inout -simplify-cfg -keep-switch -eva @VALUECONFIG@ -journal-disable + OPT: -no-autoload-plugins -load-module eva,inout -simplify-cfg -eva @VALUECONFIG@ -journal-disable */ int main(int x, int y) { diff --git a/tests/value/split_return.i b/tests/value/split_return.i index 35b3df0bc703b749b97514f35dcde38db13bedbf..3873c1b9d225aa0b381b5f54405ac272f630d88f 100644 --- a/tests/value/split_return.i +++ b/tests/value/split_return.i @@ -1,10 +1,10 @@ /* run.config* - STDOPT: +"-deterministic -eva-no-memexec -slevel-function init:3,main1:3,f2:4,main2:4,f4:3,main5:3 -val-split-return-function f2:0,f3:-2:-4,f4:4,f5:-2,NON_EXISTING:4 -permissive -then -load-module report -report" - STDOPT: +"-deterministic -eva-no-memexec -val -journal-disable -out -input -deps -slevel 6 -val-split-return auto -val-split-return-function f7:0:3 -then -load-module report -report" + STDOPT: +"-deterministic -eva-no-memexec -slevel-function init:3,main1:3,f2:4,main2:4,f4:3,main5:3,uninit:2,main9:2 -eva-split-return-function f2:0,f3:-2:-4,f4:4,f5:-2,NON_EXISTING:4,uninit:0,escaping:0 -eva-warn-copy-indeterminate=-uninit,-escaping,-main9 -permissive -then -load-module report -report" + STDOPT: +"-deterministic -eva-no-memexec -eva -journal-disable -out -input -deps -slevel 6 -eva-split-return auto -eva-split-return-function f7:0:3 -eva-warn-copy-indeterminate=-uninit,-escaping,-main9 -then -load-module report -report" COMMENT: below command must fail, as -permissive is not set - STDOPT: +"-deterministic -eva-no-memexec -val -slevel-function NON_EXISTING:4" - STDOPT: +"-deterministic -eva-no-memexec -val -journal-disable -out -input -deps -slevel 6 -val-split-return full" - STDOPT: +"-deterministic -eva-no-memexec -val -journal-disable -out -input -deps -slevel 6 -val-split-return full -val-split-return-function f7:0:3 -val-split-return-function f2:full -then -val-split-return-function f2:auto" + STDOPT: +"-deterministic -eva-no-memexec -eva -slevel-function NON_EXISTING:4 -eva-warn-copy-indeterminate=-uninit,-escaping,-main9" + STDOPT: +"-deterministic -eva-no-memexec -eva -journal-disable -out -input -deps -slevel 6 -eva-split-return full -eva-warn-copy-indeterminate=-uninit,-escaping,-main9" + STDOPT: +"-deterministic -eva-no-memexec -eva -journal-disable -out -input -deps -slevel 6 -eva-split-return full -eva-split-return-function f7:0:3 -eva-split-return-function f2:full -eva-warn-copy-indeterminate=-uninit,-escaping,-main9 -then -eva-split-return-function f2:auto" */ /*@ assigns \result \from \nothing; @@ -172,6 +172,34 @@ void main8() { Frama_C_show_each_then8(x, p); } +/* [main9] checks that -split-return does not remove states in which the result + is an escaping pointer or an uninitialized variable (and thus evaluates to + bottom) when -eva-warn-copy-indeterminate is disabled. */ + +volatile int rand; + +int uninit () { + int x; + if (rand) + x = 0; + return x; +} + +int *escaping () { + int *p; + { + int x; + p = &x; + } + return p; +} + +/* At the end, [y] may be uninitialized and [q] is a dangling pointer. */ +void main9 () { + int y = uninit(); + int *q = escaping(); +} + void main() { main1(); main2(); @@ -181,4 +209,5 @@ void main() { main6(); main7(); main8(); + main9(); } diff --git a/tests/value/strings.i b/tests/value/strings.i index 88171af011bd82f1c7a5a3c43a3db13a5b3c27bd..f4ca9828f5bfd47f713c0fab8528a6a56cb64c6b 100644 --- a/tests/value/strings.i +++ b/tests/value/strings.i @@ -1,9 +1,9 @@ /* run.config* GCC: - STDOPT: #"-main main1 -no-val-builtins-auto" - STDOPT: #"-main main6 -no-val-builtins-auto" - STDOPT: #"-main main7 -no-val-builtins-auto" - STDOPT: #"-main main8 -slevel-function strcmp:50 -no-val-builtins-auto" + STDOPT: #"-main main1 -eva-no-builtins-auto" + STDOPT: #"-main main6 -eva-no-builtins-auto" + STDOPT: #"-main main7 -eva-no-builtins-auto" + STDOPT: #"-main main8 -slevel-function strcmp:50 -eva-no-builtins-auto" */ char s1[]="hello\000 world"; char s2[]="hello"; diff --git a/tests/value/symbolic_locs.i b/tests/value/symbolic_locs.i index 4c08673fa22f0300bbd44408673c1fc65eb993a2..63172f4ea02ffb574d2b42d67d78a2b02c296b30 100644 --- a/tests/value/symbolic_locs.i +++ b/tests/value/symbolic_locs.i @@ -1,5 +1,5 @@ /* run.config* - STDOPT: +"-value-msg-key d-symblocs" + STDOPT: +"-eva-msg-key d-symblocs" */ volatile v; diff --git a/tests/value/threat_redundant.c b/tests/value/threat_redundant.c index 3bc247833a80b4eba4ffe7f37112aa2cdf4eaaab..9b49b4bd1c77e5991c374cf5bd350206780df4b2 100644 --- a/tests/value/threat_redundant.c +++ b/tests/value/threat_redundant.c @@ -1,5 +1,5 @@ /*run.config* - STDOPT: +"-no-val-builtins-auto" + STDOPT: +"-eva-no-builtins-auto" */ #define NULL ((void*)0) diff --git a/tests/value/ulongvslonglong.i b/tests/value/ulongvslonglong.i index 6d704949443734ea95439d3063d8368f80c77f63..54c7fe76c339eabafd4c4b9e6a9f5ade959cdaa2 100644 --- a/tests/value/ulongvslonglong.i +++ b/tests/value/ulongvslonglong.i @@ -1,6 +1,6 @@ /* run.config* - OPT: -no-autoload-plugins -load-module eva,inout -val @VALUECONFIG@ -journal-disable -machdep x86_64 - OPT: -no-autoload-plugins -load-module eva,inout -val @VALUECONFIG@ -journal-disable + OPT: -no-autoload-plugins -load-module eva,inout -eva @VALUECONFIG@ -journal-disable -machdep x86_64 + OPT: -no-autoload-plugins -load-module eva,inout -eva @VALUECONFIG@ -journal-disable */ int x; diff --git a/tests/value/uninit_callstack.i b/tests/value/uninit_callstack.i index bebce5dd172dc4c5c998feb23fe52e52cccdc3cc..86a4a5e5e833ea581e74cea8a9f9fb3461c35500 100644 --- a/tests/value/uninit_callstack.i +++ b/tests/value/uninit_callstack.i @@ -1,5 +1,5 @@ /* run.config* - OPT: -no-autoload-plugins -load-module eva -val @VALUECONFIG@ -no-val-show-progress -val-print-callstacks -journal-disable -no-results + OPT: -no-autoload-plugins -load-module eva -eva @VALUECONFIG@ -eva-no-show-progress -eva-print-callstacks -journal-disable -no-results */ int *p, x; diff --git a/tests/value/unknown_sizeof.i b/tests/value/unknown_sizeof.i index d18155febf8d0082f58e7465a472f23d551c045f..0d06b705a96e26caf96d25728508b9c69e1689fd 100644 --- a/tests/value/unknown_sizeof.i +++ b/tests/value/unknown_sizeof.i @@ -1,6 +1,6 @@ /* run.config* - OPT: -no-autoload-plugins -load-module eva -val @VALUECONFIG@ -main main1 - OPT: -no-autoload-plugins -load-module eva -val @VALUECONFIG@ -main main2 + OPT: -no-autoload-plugins -load-module eva -eva @VALUECONFIG@ -main main1 + OPT: -no-autoload-plugins -load-module eva -eva @VALUECONFIG@ -main main2 */ struct s; diff --git a/tests/value/use_spec.i b/tests/value/use_spec.i index 29c4c07067d0915e3dc9c151584ca49c6b3ac2af..a98064c85ed784f7ece55286f0d872ab7383b091 100644 --- a/tests/value/use_spec.i +++ b/tests/value/use_spec.i @@ -1,6 +1,6 @@ /* run.config* - OPT: -no-autoload-plugins -load-module from,inout,eva -val-use-spec f,h -val @VALUECONFIG@ -inout -calldeps - OPT: -no-autoload-plugins -load-module from,inout,eva -val-use-spec f,h -val @VALUECONFIG@ -inout -calldeps -show-indirect-deps + OPT: -no-autoload-plugins -load-module from,inout,eva -eva-use-spec f,h -eva @VALUECONFIG@ -inout -calldeps + OPT: -no-autoload-plugins -load-module from,inout,eva -eva-use-spec f,h -eva @VALUECONFIG@ -inout -calldeps -show-indirect-deps */ diff --git a/tests/value/volatile.c b/tests/value/volatile.c index 0fa24d0864cf49e4acaddbe3fd7cfb7648ac1fe1..39f7ee77336db634a1212db1de85245e8f9f8ea0 100644 --- a/tests/value/volatile.c +++ b/tests/value/volatile.c @@ -1,5 +1,5 @@ /* run.config* - STDOPT: +"-no-deps -no-input -no-out -val-initialization-padding-globals maybe -c11" + STDOPT: +"-no-deps -no-input -no-out -eva-initialization-padding-globals maybe -c11" */ int volatile G = 1; diff --git a/tests/value/volatile2.i b/tests/value/volatile2.i index 0d289b02d43ec56af71edb49c3d3391d0b9aec2f..4a2231374ad7d6cc069910c8ca30067a88b57490 100644 --- a/tests/value/volatile2.i +++ b/tests/value/volatile2.i @@ -1,5 +1,5 @@ /* run.config* - OPT: -no-autoload-plugins -load-module from,inout,eva -print -val @VALUECONFIG@ -machdep x86_16 + OPT: -no-autoload-plugins -load-module from,inout,eva -print -eva @VALUECONFIG@ -machdep x86_16 */ diff --git a/tests/value/volatilestruct.c b/tests/value/volatilestruct.c index 535fe9687a50906fb55ec1afe3f9ce5300ef8e6e..bb84b75e8bb34cbc7bdba41dedb70fd52ea17eb2 100644 --- a/tests/value/volatilestruct.c +++ b/tests/value/volatilestruct.c @@ -1,5 +1,5 @@ /* run.config* - STDOPT: +"-then -no-warn-signed-overflow -no-val-warn-pointer-subtraction" + STDOPT: +"-then -no-warn-signed-overflow -eva-no-warn-pointer-subtraction" */ struct ss { diff --git a/tests/value/widen_overflow.i b/tests/value/widen_overflow.i index df4cdf8c79affcb9994f37c4ec800cefa3e9ae22..36960e75ecf5e764feac0ea8640e550fac081d7c 100644 --- a/tests/value/widen_overflow.i +++ b/tests/value/widen_overflow.i @@ -1,5 +1,5 @@ /* run.config* - OPT: -no-autoload-plugins -load-module eva,inout -val @VALUECONFIG@ + OPT: -no-autoload-plugins -load-module eva,inout -eva @VALUECONFIG@ */ int main() {