diff --git a/.Makefile.lint b/.Makefile.lint index 4d510d832410a3d5695edb1aa766807b28ecd71a..ba3d6165fcea41dd2aac3e8913ca5d297c6064de 100644 --- a/.Makefile.lint +++ b/.Makefile.lint @@ -146,8 +146,6 @@ ML_LINT_KO+=src/libraries/utils/wto.mli ML_LINT_KO+=src/plugins/aorai/Aorai.mli ML_LINT_KO+=src/plugins/aorai/aorai_dataflow.ml ML_LINT_KO+=src/plugins/aorai/aorai_dataflow.mli -ML_LINT_KO+=src/plugins/aorai/aorai_option.ml -ML_LINT_KO+=src/plugins/aorai/aorai_register.ml ML_LINT_KO+=src/plugins/aorai/data_for_aorai.ml ML_LINT_KO+=src/plugins/aorai/data_for_aorai.mli ML_LINT_KO+=src/plugins/aorai/logic_simplification.ml diff --git a/.gitignore b/.gitignore index 509b46e7ac947299b35a7ef11dcaf12597820e1d..10c4807deeb0bc0087cd866d3525ea972e641256 100644 --- a/.gitignore +++ b/.gitignore @@ -118,6 +118,11 @@ autom4te.cache /doc/code/qed /doc/code/wp +/doc/developer/tutorial/viewcfg/src/META.frama-c-viewcfg +/doc/developer/tutorial/viewcfg/src/Makefile +/doc/developer/tutorial/viewcfg/src/gui/ +/doc/developer/tutorial/viewcfg/src/top/ + /doc/doxygen /doc/pdg/call-f.eps diff --git a/Changelog b/Changelog index 4fed392166bf0e922c5967f62462581351c67bf6..36f7a3004d5d9b1389b2a89e8550828f8c79ebe2 100644 --- a/Changelog +++ b/Changelog @@ -17,6 +17,10 @@ Open Source Release <next-release> ################################## +- Aorai [2021-02-09] New option for tracking last N states of the + automaton. Easier analysis of instrumented code with Eva +o! Kernel [2021-02-08] Avoid triggering warning 16 (unerasable optional + argument). Implies changing some labeled functions' signatures. o! Kernel [2021-01-15] Make cfields list optional. None means undefined, empty struct allowed only in specific machdeps. removed cdefined field diff --git a/Makefile b/Makefile index 0f4ac62279f4715a7f850cb5d9d89fd0c3de60d9..7bd0b4b674794a0b4f736712e03390161ec0fe25 100644 --- a/Makefile +++ b/Makefile @@ -2,7 +2,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # @@ -268,6 +268,7 @@ DISTRIB_FILES:=\ share/analysis-scripts/function_finder.py \ share/analysis-scripts/git_utils.py \ share/analysis-scripts/list_files.py \ + share/analysis-scripts/list_functions.ml \ share/analysis-scripts/make_template.py \ share/analysis-scripts/make_wrapper.py \ share/analysis-scripts/normalize_jcdb.py \ @@ -525,8 +526,8 @@ KERNEL_CMO=\ src/kernel_services/ast_printing/cil_descriptive_printer.cmo \ src/kernel_services/parsetree/cabs.cmo \ src/kernel_services/parsetree/cabshelper.cmo \ - src/kernel_services/ast_printing/logic_print.cmo \ src/kernel_services/ast_queries/logic_utils.cmo \ + src/kernel_services/ast_printing/logic_print.cmo \ src/kernel_internals/parsing/logic_parser.cmo \ src/kernel_internals/parsing/logic_lexer.cmo \ src/kernel_services/ast_queries/logic_typing.cmo \ @@ -784,12 +785,11 @@ PLUGIN_DIR:=src/plugins/callgraph PLUGIN_CMO:= options journalize subgraph cg services uses register ifeq ($(HAS_DGRAPH),yes) PLUGIN_GUI_CMO:=cg_viewer -PLUGIN_DISTRIB_EXTERNAL:=cg_viewer.yes.ml PLUGIN_GENERATED:=$(PLUGIN_DIR)/cg_viewer.ml else PLUGIN_GUI_CMO:= -PLUGIN_DISTRIB_EXTERNAL:=cg_viewer.ml endif +PLUGIN_DISTRIB_EXTERNAL:=cg_viewer.yes.ml PLUGIN_CMI:= callgraph_api PLUGIN_INTERNAL_TEST:=yes PLUGIN_TESTS_DIRS:=callgraph @@ -839,7 +839,7 @@ endif # General rules for ordering files within PLUGIN_CMO: # - try to keep the legacy Value before Eva PLUGIN_CMO:= partitioning/split_strategy domains/domain_mode value_parameters \ - utils/value_perf utils/eva_annotations \ + utils/eva_audit utils/value_perf utils/eva_annotations \ utils/value_util utils/red_statuses \ utils/mark_noresults \ utils/widen_hints_ext utils/widen \ @@ -1633,10 +1633,10 @@ dots: $(ALL_CMO) $(QUIET_MAKE) doc/call_graph.ps # pandoc is required to regenerate the manpage -man/frama-c.1: man/frama-c.1.header man/frama-c.1.md +man/frama-c.1: man/frama-c.1.md Makefile $(PRINT) 'generating $@' $(RM) $@ - pandoc -s -t man -H $^ | tail -n +5 > man/frama-c.1 + pandoc -s -t man $< > $@ $(CHMOD_RO) $@ # Checking consistency with the current implementation @@ -1934,6 +1934,7 @@ install:: install-lib-$(OCAMLBEST) share/analysis-scripts/function_finder.py \ share/analysis-scripts/git_utils.py \ share/analysis-scripts/list_files.py \ + share/analysis-scripts/list_functions.ml \ share/analysis-scripts/make_template.py \ share/analysis-scripts/make_wrapper.py \ share/analysis-scripts/normalize_jcdb.py \ diff --git a/Makefile.generating b/Makefile.generating index 256316a60ebf16ac0ff22ab2aed6ca96fc187d74..b98dc5e96ebec884e0559f3d21522b5b5d53c8f9 100644 --- a/Makefile.generating +++ b/Makefile.generating @@ -2,7 +2,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/bin/frama-c b/bin/frama-c index 4591141e0851d21cfedc2a9447aa023e84106a3d..67b40aeeebfbe9df99f64f6fdcc3fbd8a6fe236f 100755 --- a/bin/frama-c +++ b/bin/frama-c @@ -3,7 +3,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/bin/frama-c-config b/bin/frama-c-config index fb19e40f4764c2c8ab2c86b474a9e0b72396f38c..179b9c6cb87f201866bb9722c6a40c01e2724316 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-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/bin/frama-c-gui b/bin/frama-c-gui index 340da619cf3dfb431c19ffcd66e0103707533222..7f457cdf63b479e9280f97d84c5127b9835ce7d2 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-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/bin/frama-c-gui.byte b/bin/frama-c-gui.byte index 4dbe8b681ef5486e8e32b0dc45338108c1502ed9..c2374aaadc380b5e2e2e3f8a510bac4c5fa5a62b 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-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/bin/frama-c-script b/bin/frama-c-script index 8ff07f4647a65df4d4b3da0193357f9bdc06a09c..7b63bf7f45943db74600e03b628486f8fdaa8918 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-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # @@ -44,6 +44,11 @@ usage() { echo " Also lists files defining a 'main' function" echo " (heuristics-based; neither correct nor complete)." echo "" + echo " - list-functions [files] [Frama-C options]" + echo " Parses all sources in [files] and lists all function" + echo " definitions, with source location and number of statements." + echo " Accepts Frama-C options (e.g. -cpp-extra-args for parsing)." + echo "" echo " - flamegraph flamegraph.txt [dir]" echo " Generates flamegraph.svg and flamegraph.html in dir" echo " [default: FRAMAC_SESSION]." @@ -191,6 +196,13 @@ case "$command" in shift; ${FRAMAC_SHARE}/analysis-scripts/list_files.py "$@"; ;; + "list-functions") + shift; + # to avoid a slow startup, we only load plugins which perform syntactic + # transformations. This may trigger annotation errors due to missing + # plugins, so we disable those + ${DIR}/frama-c "$@" -no-autoload-plugins -load-module variadic,instantiate,${FRAMAC_SHARE}/analysis-scripts/list_functions.ml -kernel-warn-key annot-error=inactive -kernel-verbose 0; + ;; "find-fun") shift; ${FRAMAC_SHARE}/analysis-scripts/find_fun.py "$@"; diff --git a/bin/frama-c.byte b/bin/frama-c.byte index 8004185ca62ed792989f635fdf286a0a9c6ae08e..320daa529c9cae0fb84ae46aa0be1164bdaec0a6 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-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/bin/frama-c.debug b/bin/frama-c.debug index 2e110a0af4c4b7271aedf426e33d55f6bbc1652e..d4313e989710e836b18e601f82d0e5abc7de773f 100755 --- a/bin/frama-c.debug +++ b/bin/frama-c.debug @@ -3,7 +3,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/bin/frama-c.top b/bin/frama-c.top index 1d719ec35a7b05423461dfae042c75e0d5eb948a..912999576bee661c248f4601e5494ed03f37da77 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-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/bin/local_export.sh b/bin/local_export.sh index f15839acbf891566508f3e0b7d6293909901e931..af1d44a02aba1c2b046f211d2b24ca21bf942555 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-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/bin/migration_scripts/aluminium2silicon.sh b/bin/migration_scripts/aluminium2silicon.sh index 6f82d630bbdcaf067d1c664271088efbc531f16f..a6b1cf3c2e529e25df1fe7071caecfd449cf4471 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-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/bin/migration_scripts/boron2carbon.sh b/bin/migration_scripts/boron2carbon.sh index cdbfcb12a4a2c239c81c97b421e842faf337869a..b2326e3208ebec81e83f6dd6c5e73c032eb507be 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-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/bin/migration_scripts/calcium2scandium.sh b/bin/migration_scripts/calcium2scandium.sh index f1c05c3634d837f37b8267efd9e9df07a08c3d8f..57aab1950a17d59523751c66fcd663ab7b84ab72 100755 --- a/bin/migration_scripts/calcium2scandium.sh +++ b/bin/migration_scripts/calcium2scandium.sh @@ -3,7 +3,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/bin/migration_scripts/carbon2nitrogen.sh b/bin/migration_scripts/carbon2nitrogen.sh index 582abb9e9a66756032a1a2b363021587cf296c9f..6a51e495c0f2dbc6fe7c783385d6655a1cc68e03 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-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/bin/migration_scripts/chlorine2argon.sh b/bin/migration_scripts/chlorine2argon.sh index d692a9a6aa7997790be84e32935a576d17c49e83..248bb8d00db85834c53b72e6fcc48a68b2eba93c 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-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/bin/migration_scripts/fluorine2neon.sh b/bin/migration_scripts/fluorine2neon.sh index af36c89cccb3a463c978cdfee6957033d22f38f2..bbc63755461fc033deed80db23bb1c2bc356f630 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-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/bin/migration_scripts/lithium2beryllium.sh b/bin/migration_scripts/lithium2beryllium.sh index d7f6112c9ffeae6bc139abce62186e01bcd77a7b..5cbc18ed1887628a1a3d5d548a474dcdceffb855 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-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/bin/migration_scripts/magnesium2aluminium.sh b/bin/migration_scripts/magnesium2aluminium.sh index 0ab552b03788571cc59dfcbc098ccb32628b2331..e115813143d2eccd7c14a65cd941c6357b6ae303 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-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/bin/migration_scripts/neon2sodium.sh b/bin/migration_scripts/neon2sodium.sh index 56dc8480ea389af9228a7058b38383809bb8a677..4104e5a243249f439c1bfa51a207682352332ed4 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-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/bin/migration_scripts/nitrogen2oxygen.sh b/bin/migration_scripts/nitrogen2oxygen.sh index dd78f56b415e7eb0f02190a11adc0ac017e5ed89..ec6c6a10f5e0f482940408df66445f60661787d6 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-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/bin/migration_scripts/oxygen2fluorine.sh b/bin/migration_scripts/oxygen2fluorine.sh index 276cb79ea499dad158ade3219636d11421cfc068..ed9006f6705d608361954fc68036105fe70b4421 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-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/bin/migration_scripts/phosphorus2sulfur.sh b/bin/migration_scripts/phosphorus2sulfur.sh index a0686e06e192a3494b73a7443f3b45766e5e412c..8161719d13c2a857c9a0171e033ed80beafe5cb3 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-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/bin/migration_scripts/potassium2calcium.sh b/bin/migration_scripts/potassium2calcium.sh index 4dca5da59ed014c51c466fbb70dff438da976f79..a1c4e97f1496b8609b97b6aa7cb07ca999d28a6b 100755 --- a/bin/migration_scripts/potassium2calcium.sh +++ b/bin/migration_scripts/potassium2calcium.sh @@ -3,7 +3,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/bin/migration_scripts/silicon2phosphorus.sh b/bin/migration_scripts/silicon2phosphorus.sh index d30271db891d02ed4610fe83d71ae92a3442a44e..b258851c9d1e028b031af678dccd9bc3c206e515 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-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/bin/migration_scripts/sodium2magnesium.sh b/bin/migration_scripts/sodium2magnesium.sh index 51923b5b68ca5ba8773916cd10e0d1cea1943c5e..5389a11af45df8712ad83f01b5e3b0963b640721 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-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/bin/migration_scripts/sulfur2chlorine.sh b/bin/migration_scripts/sulfur2chlorine.sh index 5f1b519671f6e4b2b44edd64014960fd9256a48e..1e74de307cf011b5611943d6c3b9c89d6d7514ff 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-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/bin/migration_scripts/titanium2vanadium.sh b/bin/migration_scripts/titanium2vanadium.sh index 1a6483bd3df8e0baad95ad670e172adc0b27dc6e..7c1b304029c0cd6c2c7dea0ef5dd0839405707c4 100755 --- a/bin/migration_scripts/titanium2vanadium.sh +++ b/bin/migration_scripts/titanium2vanadium.sh @@ -3,7 +3,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/config.h.in b/config.h.in index 73665676f86fe0110fc5cb25369a8f6e820916a8..058412293e3a100ffdb35c80d1b309153288cdb2 100644 --- a/config.h.in +++ b/config.h.in @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/configure.in b/configure.in index f9f8298220518fdc3d6a6d4f9a55660801fc27db..e7c2cf5fd757a47a22a5ee5514e41e9738f21db2 100644 --- a/configure.in +++ b/configure.in @@ -2,7 +2,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # INRIA (Institut National de Recherche en Informatique et en # @@ -766,7 +766,7 @@ plugin_use_external(gui,dot) check_plugin(impact,src/plugins/impact,[support for impact plugin],yes) plugin_use(impact,gui) -plugin_use(impact,slicing) +plugin_require(impact,slicing) plugin_require(impact,pdg) plugin_require(impact,eva) plugin_require(impact,inout) @@ -832,6 +832,7 @@ plugin_require(slicing,from_analysis) plugin_require(slicing,pdg) plugin_require(slicing,eva) plugin_require(slicing,callgraph) +plugin_require(slicing,sparecode) plugin_use(slicing,gui) # spare code @@ -841,6 +842,7 @@ check_plugin(sparecode,src/plugins/sparecode, [support for sparecode plugin],yes) plugin_require(sparecode,pdg) plugin_require(sparecode,eva) +plugin_require(sparecode,users) # users ####### @@ -856,7 +858,8 @@ check_plugin(eva,src/plugins/value, [support for value analysis],yes) plugin_use(eva,gui) plugin_use(eva,scope) -plugin_use(eva,callgraph) +plugin_require(eva,callgraph) +plugin_require(eva,server) #################### # External plugins # diff --git a/doc/Makefile b/doc/Makefile index 027093e6b70d04f5820ad3ebcd6e57dc75c6f8d9..ff99da489809409151c320d4978e733ca5f5ddd4 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -2,7 +2,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/doc/aorai/main.tex b/doc/aorai/main.tex index dd5b5a23d78f059b1482471f9d6ea2cb1a2614ac..de6c643df76816d339a4fc43a7967a0fd4151261 100644 --- a/doc/aorai/main.tex +++ b/doc/aorai/main.tex @@ -60,11 +60,11 @@ keywordstyle=\bfseries, \aorai is a Frama-C plugin that provides a method to automatically annotate a C program according to an automaton $F$ such that, if the annotations are verified, we ensure that the program respects $F$. A classical method to -validate annotations then is to use the Jessie plugin and +validate annotations then is to use the WP plugin and the Why tool or the WP plugin. This document requires basic knowledge about -the Frama-C platform itself (See \url{http://frama-c.com} for more information), +the Frama-C platform itself (See \url{https://frama-c.com} for more information), in particular the notions of {\it plug-ins} and {\it project}. \vspace*{20pt} @@ -79,7 +79,7 @@ in particular the notions of {\it plug-ins} and {\it project}. \end{itemize} \vspace*{20pt} -\noindent \textbf{Official web site:} +\noindent \textbf{Official web site for the original version:} \begin{center} \url{http://amazones.gforge.inria.fr/aorai/index.html} @@ -140,7 +140,7 @@ This document is divided into four parts: \item The second part defines the three \aorai input languages with which it is possible to describe a given property. \item The third part explains how to prove a program annotated with \aorai -using the Jessie plug-in. +using the WP plug-in. \item Finally, the last part details \aorai 's underlying theory, and its internal architecture in order to help people who would like to contribute to the plug-in itself. @@ -152,7 +152,7 @@ the plug-in itself. \chapter{Quick overview} In this chapter we will see how to use Frama-C and the couple -Jessie-\aorai to prove that a C program has the same behavior than +WP-\aorai to prove that a C program has the same behavior than an automaton. \section{First use} @@ -163,9 +163,9 @@ an automaton. which will be described in the second part. In fact, we consider that we have already written the file which describes the automaton. - Jessie's verification\footnote{For more information about Jessie + WP verification\footnote{For more information about WP and code verification,please refer to - \url{http://frama-c.com/jessie.html}} can only be done on C + \url{http://frama-c.com/wp.html}} can only be done on C code augmented with ACSL annotations. Thus, \aorai creates a new C file where the automaton is encoded into ACSL annotations. Section~\ref{generated_annotated_file} will give more @@ -179,37 +179,33 @@ an automaton. \end{itemize} With two files (automaton's description and C file), we can create an -annotated file in order to process the validation with the Jessie plug-in. This +annotated file. This is done by the following command: -\begin{lstlisting}[language=sh] -$ frama-c example.c -aorai-automata example.ya +\begin{lstlisting} +$ frama-c example.c -aorai-automata example.ya \ + -then-last -ocode example_annot.c -print \end{lstlisting} %$ -This generates a new C file \texttt{example\_annot.c}\footnote{Or \texttt{example\_annot0.c} if \texttt{example\_annot.c} already exists}. +This generates a new C file \texttt{example\_annot.c}. In order to decide if the original program is correct with respect to the automaton, it is sufficient to establish that the generated C code and its associated ACSL annotations are valid. For instance, the following command -uses the Jessie plug-in to generate proof obligations and launches \texttt{gwhy} -\begin{lstlisting}[language=sh] -$ frama-c example_annot.c -jessie -\end{lstlisting} %$ - -Of course, any option of Jessie itself can be used. For instance, one can use -the Why3 interface instead of \texttt{gwhy}, and select a different algorithm -for the generation of proof obligations: +uses the WP plugin over the generated file: \begin{lstlisting}[language=sh] -$ frama-c example_annot.c -jessie \ - -jessie-why-opt="-fast-wp" -jessie-atp why3ide +$ frama-c example_annot.c -wp -wp-rte \end{lstlisting} %$ -Finally, since Frama-C Nitrogen, it is possible to instruct Frama-C to do a +Of course, any option of WP itself can be used, notably \texttt{-wp-rte} to +check for the absence of runtime error. +Finally, it is possible to instruct Frama-C to do a sequence of analyses over various projects, {\it via} the \texttt{-then-on} -option. Thus, we do not need to use an intermediate file and to run Frama-C -twice. Instead, we just instruct jessie to operate on the \texttt{aorai} +options and \texttt{-then-last} options. +Thus, we do not need to use an intermediate file and to run Frama-C +twice. Instead, we just instruct WP to operate on the \texttt{aorai} project that contains the code annotated by \aorai: -\begin{lstlisting}[language=sh] +\begin{lstlisting} $ frama-c example.c -aorai-automata example.ya \ - -then-on aorai -jessie -jessie-atp why3ide + -then-last -wp -wp-rte \end{lstlisting} %$ \subsection{Automata and verification} @@ -269,7 +265,7 @@ of states authorized just before (resp. after) the call. \aorai generates a new C program, including the automaton axiomatization, some coherence invariants, and annotations on operations, such that if this annotated program can be validated with -the Jessie plugin, then we ensure that it respects the given +the WP plugin, then we ensure that it respects the given properties. Sometimes, the automaton has not enough information to check the @@ -294,10 +290,7 @@ information about that, please read section \ref{collaboration}. \item[-aorai-dot] generates a dot file of the automata. Dot is a graph format used by the GraphViz tools\footnote{\url{http://www.graphviz.org}}. - \item[-aorai-output-c-file <f>] outputs the annotated code in file - \texttt{<f>} (default is to suffix the name of the first input file - with \texttt{\_annot}, and a numerical suffix if that name is already - taken). + \end{itemize} Finally, here is a concrete example of a common call: @@ -697,21 +690,19 @@ figure~\ref{LTL_first_use} % =========================================================================== % =========================================================================== \chapter{Advanced Features} -\section{Generated Annotated File} +\section{Generated Annotated Program} \label{generated_annotated_file} -The default configuration is to generate a new C file -(whose name is derived from first input file or can be set by the user; see -section~\ref{sec:help-command} for more information). The generated file is +The instrumented program is the original program (with its annotations\footnote{ ACSL language for - annotation is described at \url{http://frama-c.com/acsl.html}}) + annotation is described at \url{https://github.com/acsl-language/acsl}}) completed with the following: \begin{itemize} \item Some auxiliary C declarations representing the automaton itself and information needed to decide if a given transition should be taken or not; \item If the automaton has been marked as \texttt{deterministic}, a set of lemmas state that it is indeed the case; -\item For each original C function, two functions are given with their +\item For each original C function, two functions are defined with their specification. They take care of updating the automaton's state when entering and exiting the function respectively; \item Each original C function gets additional ACSL behaviors, expressing how @@ -872,6 +863,17 @@ or other auxiliary variables that must be updated, other \lstinline|ensures| clauses define their new value according to the transition that is activated. +It is also possible to only activate the generation of the body of the +transition functions, without their specification (e.g. to analyze the +instrumented code with the Eva plug-in, which does not need the contracts and +loop invariants). This is done through option +\lstinline|-aorai-no-generate-annotations|. In that case, it might be the case +that the automaton end up in a rejecting state (for a deterministic automaton) +or without any active state (for a non-deterministic automaton). Option +\lstinline|-aorai-smoke-tests| can thus be used to generate assertions at +the end of all update functions, stating that the automaton is still in an +appropriate state. + \subsection{Functions behaviors} Each function \texttt{f} defined in the original C code gets its specification @@ -1006,18 +1008,29 @@ int main(int c) { \label{FigGeneratedLoopInvariants} \end{figure} -\section{Interaction with Annotated Files} +\section{Analyzing Annotated Files with Eva or WP} \label{collaboration} Once the annotated file has been generated, it remains to verify that all the annotations hold. This section describes briefly how this can be done and some common issues that may arise during verification. -\aorai tries to generate ACSL annotations that stay in the fragment -supported by Value Analysis, so that this plug-in might be used over the -generated code, but there is no guarantee that it will be able to establish -the validity of all annotations. - -Another possibility is to use deductive verification plug-ins WP or Jessie. +In addition to annotations, \aorai generates an implementation for the transition +functions, so that it is possible to use the Eva plug-in of Frama-C on the +instrumented code. However, there's no guarantee that Eva will be able to +perform an analysis that stays precise enough to verify that the automaton +always ends in an accepting state. Aoraï will set up automatically a certain number +of parameters in Eva to help make the analysis more precise, but, +in the case of deterministic automata it is also possible +to use option \texttt{-aorai-instrumentation-history n} to have the instrumentation +retain the \texttt{n} previous states of the automaton (in addition to the +current state), that will be used for splitting Eva's abstract states. Furthermore, +each time Eva encounters a call to the +built-in function \texttt{Frama\_C\_show\_aorai\_state}, it will display the current +state (together with the previous ones up to \texttt{-aorai\-instrumentation-history}). +If the function is called with some arguments, their abstract value will also be +displayed. + +Another possibility is to use the deductive verification plug-in WP. Note however that the generated annotations are not guaranteed to be complete, {\it i.e.} to it might be necessary to add further annotations in order to discharge all proof obligations. In particular, in presence of loops, \aorai @@ -1029,12 +1042,6 @@ invariants of figure~\ref{FigGeneratedLoopInvariants} that gets decremented at each step, while \lstinline|aorai_counter| gets incremented), but such a relation is well beyond the scope of \aorai itself. -Finally, as a special warning, Jessie does not use the fact that globals are -initialized to 0 when entering the \lstinline|main| function of a program -(which is in fact treated like any other function). This fact must thus be -sometimes added to the \lstinline|requires| of the function, especially for -auxiliary variables. - % ======================================================================== % ======================================================================== % ======================================================================== @@ -1239,6 +1246,13 @@ The plug-in is composed of three parts: \section{Recent updates} \subsection{Frama-C+dev} \begin{itemize} +\item Documentation for options \texttt{-aorai-no-generate-annotations} +and \texttt{-aorai-smoke-tests} +\item Documentation for option \texttt{-aorai-instrumentation-history} +and built-in \texttt{Frama\_C\_show\_aorai\_state} +\item Aoraï does not generate a C file by default anymore, relying on +kernel options \texttt{-print} and \texttt{-ocode} for that, like all +plug-ins. Remove corresponding ad'hoc options. \item update syntax for YA sequence to avoid ambiguities with \texttt{+} and \texttt{*} repetition operators \end{itemize} diff --git a/doc/code/docgen.ml b/doc/code/docgen.ml index 6b2ea3937c04698721a6a37d962e93716763a8ba..3e91c13dd95bf668309def5d3034537f42d4e0f2 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 e05c67872b8dc568afb74144464a400d8dc23720..015f039f82cd1f9e079a0d850196930d3facb4b7 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-2020 # +#* Copyright (C) 2007-2021 # #* CEA (Commissariat à l'énergie atomique et aux énergies # #* alternatives) # #* # diff --git a/doc/code/intro_occurrence.txt b/doc/code/intro_occurrence.txt index 7fe94150ecce28804b27765e050fc6a55a167cf7..cd731bb7ad24d3427385d9e87e4594da76b94ad2 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-2020 # +#* Copyright (C) 2007-2021 # #* CEA (Commissariat à l'énergie atomique et aux énergies # #* alternatives) # #* # diff --git a/doc/code/intro_pdg.txt b/doc/code/intro_pdg.txt index 18e834e068b65c467ca633f03665ac8fabe955da..0f8f3c18bfdeb57dfa6f43b7af763523d0cef34e 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-2020 # +#* Copyright (C) 2007-2021 # #* CEA (Commissariat à l'énergie atomique et aux énergies # #* alternatives) # #* # diff --git a/doc/code/intro_plugin.txt b/doc/code/intro_plugin.txt index 488596f69662db06f1ffff64689942038346d6f0..882db0cbd9304c81d465d9afe6411b1a9eaa9eab 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-2020 # +#* Copyright (C) 2007-2021 # #* 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 2c5e5d03de0cafcd034152fd9411018f345bb4b0..4f9120aa73f7664131c5a5c94a896ab99497aeb7 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-2020 # +#* Copyright (C) 2007-2021 # #* 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 6f9ec31a5d4daab3ac2685fcec3197e4f6feb519..97fe7b570b438ac09902fac38c3bf6538a47ef0a 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-2020 # +#* Copyright (C) 2007-2021 # #* CEA (Commissariat à l'énergie atomique et aux énergies # #* alternatives) # #* # diff --git a/doc/code/intro_scope.txt b/doc/code/intro_scope.txt index 2e04e6bdd87f3f33f5756b2004bbd7aace22f3f0..f8b96076a5b9b7619cc53d9363023626db7f2977 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-2020 # +#* Copyright (C) 2007-2021 # #* CEA (Commissariat à l'énergie atomique et aux énergies # #* alternatives) # #* # diff --git a/doc/code/intro_slicing.txt b/doc/code/intro_slicing.txt index c5c535c2e7fa7f7c405060afb0a4ab5f29a98d96..c2597efdb06cf7b35d8a04e6f2593352de6de562 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-2020 # +#* Copyright (C) 2007-2021 # #* CEA (Commissariat à l'énergie atomique et aux énergies # #* alternatives) # #* # diff --git a/doc/code/intro_sparecode.txt b/doc/code/intro_sparecode.txt index 739ff894924f4ec28783437cf2c920d735d30e3f..0885e997ca55758c74f820b37dab513729e25f7b 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-2020 # +#* Copyright (C) 2007-2021 # #* CEA (Commissariat à l'énergie atomique et aux énergies # #* alternatives) # #* # diff --git a/doc/code/style.css b/doc/code/style.css index ad650ef54ef6ce3eb1506bb411d42ec244436726..62cb2215871627302667c981018d1ea2134136f3 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/doc/code/toc_head.htm b/doc/code/toc_head.htm index e5a21cd3dce8ee0b42977a19d2f50f45adfad620..5d759327e8614b6aea65378dc893a492baf4adf6 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-2020 --> +<!-- Copyright (C) 2007-2021 --> <!-- CEA (Commissariat à l'énergie atomique et aux énergies --> <!-- alternatives) --> <!-- --> diff --git a/doc/code/toc_tail.htm b/doc/code/toc_tail.htm index 5deac195ef9f43900403d625c8aaa7b4d8caf106..4576a325f5eeceee33159ee6bd8eae6ebb4fcc13 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-2020 --> +<!-- Copyright (C) 2007-2021 --> <!-- CEA (Commissariat à l'énergie atomique et aux énergies --> <!-- alternatives) --> <!-- --> diff --git a/doc/userman/userman.bib b/doc/userman/userman.bib index 2c1e9cc7f4f628618a850338cda4a1f7d2aec884..5f1f3daa186874645e4d746fd06235c4c6781484 100644 --- a/doc/userman/userman.bib +++ b/doc/userman/userman.bib @@ -105,9 +105,7 @@ note={Extended version of \cite{sefm12}}, } @manual{eacsl, - title = {Frama-C's E-ACSL Plug-in}, - author = {Julien Signoles}, - year = {2015}, - month = feb, - note = {\url{http://frama-c.com/eacsl.html}}, + title = {Frama-C's E-ACSL Plug-in}, + author = {Julien Signoles and Basile Desloges and Kostyantyn Vorobyov}, + note = {\url{https://frama-c.com/fc-plugins/e-acsl.html}}, } diff --git a/doc/value/main.tex b/doc/value/main.tex index a1e9c8363d968adcd504324032e94b471bb1bc52..dac4374ae5f2379dcc3cc12637a44b3d7b220cbd 100644 --- a/doc/value/main.tex +++ b/doc/value/main.tex @@ -2033,6 +2033,50 @@ by the Report plugin. The summary display can be disabled by using option \lstinline|-eva-msg-key=-summary|. +\subsection{Audit messages ({\em experimental})} + +Using options \lstinline|-audit-prepare| and \lstinline|-audit-check|, the +user can produce and check some information relevant for auditing purposes. + +\lstinline|-audit-prepare <file>| outputs the following information: + +\begin{itemize} +\item the list of all source files used during parsing: not only those + given in the command line, but also those in \lstinline|#include| + directives, recursively. This usually includes Frama-C's standard library. + For each file, its MD5 checksum is also printed; +\item the list of {\em enabled} and {\em disabled} warning categories, + for the kernel as well as for \Eva{}. Warning categories are considered + disabled when set to one of the following actions: {\em inactive}, + {\em feedback}, and {\em feedback-once}. All other actions are considered + as enabled; +\item the list of Eva's {\em correctness parameters}, along with their values + at the moment when Eva is run. +\end{itemize} + +The information is written to \lstinline|<file>|, in JSON format, unless it +is the special value \lstinline|-| (given as \lstinline|-audit-prepare=-|), +in which case the information is printed to the standard output in text format. + +The complementary option \lstinline|-audit-check file| takes a JSON file +produced by \lstinline|-audit-prepare| and checks if all checksums, warning +category statuses and correctness parameters match. Any discrepancies are +reported and result in an error by default. + +The main intent of these options is to help users perform audit-related +tasks concerning an analysis performed with Eva. It also helps fine-tuning +analyses without affecting its correctness; for instance, since it omits +information related to parameters which do not affect correctness, the user +is free to adjust them to improve the speed and precision of the analysis. + +Note that these options are still in experimental stage, and should not be +blindly relied upon for strict auditing purposes. For instance, they do +not record information related to syntactic transformations performed by +plugins such as \textsf{Variadic}, which can have an indirect impact on +its correctness. + +Please contact the Frama-C development team if you intend to use these +options in a production setting. \section{About these alarms the user is supposed to check\ldots} diff --git a/headers/check-headers.sh b/headers/check-headers.sh index 7371d40cbf04720faf58822654e25ddc6ca3cff6..f0c9427e6dcce31416174880e5d5204ec87c2237 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-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/headers/close-source/ACSL_EL b/headers/close-source/ACSL_EL index 1b3fc5f2e92043bf31730bda7c1823a50e1426fd..e216489705b42091c9b0b5241769444e5e00a27e 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-2020 +Copyright (C) 2009-2021 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 0697a17833e269e55e6cf250c964f5fbb2348ffe..48f6e27d846529755242e00ed7e53593c4c762bb 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-2020 +Copyright (C) 2007-2021 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 8152373f479eaead530a4c22bfecf5b246093527..5bce9faa9b92eb4de6299b34de0048933b6d4d0b 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-2020 +Copyright (C) 2007-2021 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 70f42f896ed236a5d495fee539590a25c46f8eb8..ef45e8ab1762255a3a662f393837cb3a5c263081 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-2020 +Copyright (C) 2007-2021 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 bf247f1b11ae17afa6d4bac0d6400e200e714c8e..02ef46f3046dfeba147f393ef127167e819c4283 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-2020 +Copyright (C) 2007-2021 CEA (Commissariat à l'énergie atomique et aux énergies alternatives) diff --git a/headers/close-source/CEA_PROPRIETARY b/headers/close-source/CEA_PROPRIETARY index bf247f1b11ae17afa6d4bac0d6400e200e714c8e..02ef46f3046dfeba147f393ef127167e819c4283 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-2020 +Copyright (C) 2007-2021 CEA (Commissariat à l'énergie atomique et aux énergies alternatives) diff --git a/headers/close-source/CEA_WP b/headers/close-source/CEA_WP index 37804da03914f3c4f81237e81b4676275aa80476..d44424694f0c8cf43361c4aa2a4e11772cde5987 100644 --- a/headers/close-source/CEA_WP +++ b/headers/close-source/CEA_WP @@ -1,7 +1,7 @@ This file is part of WP plug-in of Frama-C. -Copyright (C) 2007-2020 +Copyright (C) 2007-2021 CEA (Commissariat a l'energie atomique et aux energies alternatives) diff --git a/headers/headache.sh b/headers/headache.sh index c01ed4d139ccfa588424350361bc9ede64e2d8dd..3fcd9d379284b28d25ead338977f19f6d80cff6b 100755 --- a/headers/headache.sh +++ b/headers/headache.sh @@ -3,7 +3,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/headers/headache_config.txt b/headers/headache_config.txt index 969d2cf13811e6a07cc2f3079c95c78d3e711606..f27199a3b4efe01db469fd655fe80f3fdff2ed00 100644 --- a/headers/headache_config.txt +++ b/headers/headache_config.txt @@ -136,6 +136,13 @@ ############## | ".*\.el" -> frame open: ";" line: ";" close:";" +########## +# Python # +########## + +| ".*\.py" -> frame open: "#" line: "#" close:"#" +| ".*\.py" -> skip multiline_match: "#!.*" multiline_match: "#-\*-.*" + ############## # Misc files # ############## diff --git a/headers/header_spec.txt b/headers/header_spec.txt index 0fd0efdddd6bf3c39b989725d6d069d831dde2ce..d1e4b57004ff92cc5829c0968b7b6eeb2f95d182 100644 --- a/headers/header_spec.txt +++ b/headers/header_spec.txt @@ -106,34 +106,35 @@ licenses/CDDL-1.0: .ignore licenses/LGPLv2: .ignore licenses/LGPLv2.1: .ignore licenses/Q_MODIFIED_LICENSE: .ignore -man/frama-c.1: CEA_LGPL +man/frama-c.1: .ignore opam/opam: .ignore ptests/.gitignore: .ignore ptests/.merlin: .ignore ptests/ptests.ml: CEA_LGPL share/_frama-c: CEA_LGPL share/analysis-scripts/analysis.mk: CEA_LGPL -share/analysis-scripts/benchmark_database.py: .ignore +share/analysis-scripts/benchmark_database.py: CEA_LGPL share/analysis-scripts/clone.sh: .ignore share/analysis-scripts/creduce.sh: CEA_LGPL share/analysis-scripts/epilogue.mk: CEA_LGPL share/analysis-scripts/fc_stubs.c: .ignore -share/analysis-scripts/frama_c_results.py: .ignore +share/analysis-scripts/frama_c_results.py: CEA_LGPL share/analysis-scripts/cmd-dep.sh: .ignore share/analysis-scripts/concat-csv.sh: .ignore -share/analysis-scripts/find_fun.py: .ignore +share/analysis-scripts/find_fun.py: CEA_LGPL share/analysis-scripts/flamegraph.pl: CDDL share/analysis-scripts/function_finder.py: .ignore -share/analysis-scripts/git_utils.py: .ignore -share/analysis-scripts/list_files.py: .ignore -share/analysis-scripts/make_template.py: .ignore -share/analysis-scripts/make_wrapper.py: .ignore -share/analysis-scripts/normalize_jcdb.py: .ignore +share/analysis-scripts/git_utils.py: CEA_LGPL +share/analysis-scripts/list_files.py: CEA_LGPL +share/analysis-scripts/list_functions.ml: CEA_LGPL +share/analysis-scripts/make_template.py: CEA_LGPL +share/analysis-scripts/make_wrapper.py: CEA_LGPL +share/analysis-scripts/normalize_jcdb.py: CEA_LGPL share/analysis-scripts/parse-coverage.sh: .ignore share/analysis-scripts/prologue.mk: CEA_LGPL share/analysis-scripts/README.md: .ignore -share/analysis-scripts/results_display.py: .ignore -share/analysis-scripts/summary.py: .ignore +share/analysis-scripts/results_display.py: CEA_LGPL +share/analysis-scripts/summary.py: CEA_LGPL share/analysis-scripts/template.mk: .ignore share/compliance/c11_functions.json: .ignore share/compliance/c11_headers.json: .ignore @@ -717,6 +718,9 @@ src/plugins/aorai/VERSIONS.txt: .ignore src/plugins/aorai/YA.README: .ignore src/plugins/aorai/aorai_dataflow.ml: AORAI_LGPL src/plugins/aorai/aorai_dataflow.mli: AORAI_LGPL +src/plugins/aorai/aorai_eva_analysis.disabled.ml: AORAI_LGPL +src/plugins/aorai/aorai_eva_analysis.enabled.ml: AORAI_LGPL +src/plugins/aorai/aorai_eva_analysis.mli: AORAI_LGPL src/plugins/aorai/aorai_graph.ml: AORAI_LGPL src/plugins/aorai/aorai_graph.mli: AORAI_LGPL src/plugins/aorai/aorai_metavariables.ml: AORAI_LGPL @@ -1382,6 +1386,8 @@ src/plugins/value/utils/library_functions.mli: CEA_LGPL_OR_PROPRIETARY src/plugins/value/utils/mark_noresults.ml: CEA_LGPL_OR_PROPRIETARY src/plugins/value/utils/eva_annotations.ml: CEA_LGPL_OR_PROPRIETARY src/plugins/value/utils/eva_annotations.mli: CEA_LGPL_OR_PROPRIETARY +src/plugins/value/utils/eva_audit.ml: CEA_LGPL_OR_PROPRIETARY +src/plugins/value/utils/eva_audit.mli: CEA_LGPL_OR_PROPRIETARY src/plugins/value/utils/structure.ml: CEA_LGPL_OR_PROPRIETARY src/plugins/value/utils/structure.mli: CEA_LGPL_OR_PROPRIETARY src/plugins/value/utils/unit_tests.ml: CEA_LGPL_OR_PROPRIETARY diff --git a/headers/open-source/ACSL_EL b/headers/open-source/ACSL_EL index 1b3fc5f2e92043bf31730bda7c1823a50e1426fd..e216489705b42091c9b0b5241769444e5e00a27e 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-2020 +Copyright (C) 2009-2021 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 0697a17833e269e55e6cf250c964f5fbb2348ffe..48f6e27d846529755242e00ed7e53593c4c762bb 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-2020 +Copyright (C) 2007-2021 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 8152373f479eaead530a4c22bfecf5b246093527..5bce9faa9b92eb4de6299b34de0048933b6d4d0b 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-2020 +Copyright (C) 2007-2021 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 70f42f896ed236a5d495fee539590a25c46f8eb8..ef45e8ab1762255a3a662f393837cb3a5c263081 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-2020 +Copyright (C) 2007-2021 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 70f42f896ed236a5d495fee539590a25c46f8eb8..ef45e8ab1762255a3a662f393837cb3a5c263081 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-2020 +Copyright (C) 2007-2021 CEA (Commissariat à l'énergie atomique et aux énergies alternatives) diff --git a/headers/open-source/CEA_PROPRIETARY b/headers/open-source/CEA_PROPRIETARY index bf247f1b11ae17afa6d4bac0d6400e200e714c8e..02ef46f3046dfeba147f393ef127167e819c4283 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-2020 +Copyright (C) 2007-2021 CEA (Commissariat à l'énergie atomique et aux énergies alternatives) diff --git a/headers/open-source/CEA_WP b/headers/open-source/CEA_WP index e122d92105be51bf0e50956f94f83c96b390ef0f..fddf373e15a5aaa752741aee85dab06a969fd267 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-2020 +Copyright (C) 2007-2021 CEA (Commissariat a l'energie atomique et aux energies alternatives) diff --git a/headers/updates-headers.sh b/headers/updates-headers.sh index 9c3786aef0e5a2b8bc203b6f9999133d23341e46..c34f4775cf20811522453b7cae066325d6ca00e1 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-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/man/frama-c.1 b/man/frama-c.1 index b2b5cfc68717f3ed2add02df1f35cd3e7e529c7c..a0173eeecbf1c2ad09aa1805593b0d524aeb8571 100644 --- a/man/frama-c.1 +++ b/man/frama-c.1 @@ -1,31 +1,22 @@ +.\" Automatically generated by Pandoc 2.11.3 +.\" +.TH "FRAMA-C" "1" "" "2021-02-16" "" +.hy .\"------------------------------------------------------------------------ .\" -.\" This file is part of Frama-C. +.\" This file is part of Frama-C documentation .\" -.\" Copyright (C) 2007-2020 +.\" Copyright (C) 2007-2021 .\" 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). -.\" -.\"------------------------------------------------------------------------ +.\" you can redistribute it and/or modify it under the terms of the +.\" CC-BY-SA 4.0 license .\" DO NOT EDIT THIS FILE! .\" This man file has been generated from a Markdown file (frama-c.1.md) .\" using pandoc 2.0 or newer. To modify this file, edit the Markdown file .\" and run `make man/frama-c.1`. - -.TH FRAMA-C 1 2021-01-07 .SH NAME .PP frama-c[.byte] - a static analyzer for C programs @@ -85,16 +76,16 @@ Most options that take no parameter have a corresponding option which has the opposite effect. .SS Help options .TP -.B -help +-help gives a short usage notice. .TP -.B -kernel-help +-kernel-help prints the list of options recognized by Frama-C\[cq]s kernel .TP -.B -explain +-explain prints a help message for each other option given on the command line .TP -.B -verbose \f[I]n\f[R] +-verbose \f[I]n\f[R] sets verbosity level. Defaults to 1. Setting it to 0 will output less progress messages. @@ -103,37 +94,35 @@ This level can also be set on a per-\f[I]plugin\f[R] basis, with option Verbosity level of the kernel can be controlled with option \f[B]-kernel-verbose\f[R] \f[I]n\f[R]. .TP -.B -debug \f[I]n\f[R] +-debug \f[I]n\f[R] sets debugging level. Defaults to 0, meaning no debugging messages. This option has the same per-plugin (and kernel) specializations as \f[B]-verbose\f[R]. .TP -.B -quiet +-quiet sets verbosity and debugging level to 0. .SS Options controlling Frama-C\[cq]s kernel .TP -.B -absolute-valid-range \f[I]min-max\f[R] +-absolute-valid-range \f[I]min-max\f[R] considers that all numerical addresses in the range \f[I]min-max\f[R] are valid. Bounds are parsed as OCaml integer constants. By default, all numerical addresses are considered invalid. .TP -.B -add-path \f[I]p1[,p2[\&...,pn]]\f[R] +-add-path \f[I]p1[,p2[\&...,pn]]\f[R] adds directories \f[I]p1\f[R] through \f[I]pn\f[R] to the list of directories in which plugins are searched. .TP -.B \-add\-symbolic\-path \f[I]p1:n1[,p2:n2[\&...,pn:nn]]\f[] -replaces each path \f[I]pi\f[] with the name \f[I]ni\f[] when displaying -file locations in messages. -.RS -.RE +-add-symbolic-path \f[I]p1:n1[,p2:n2[\&...,pn:nn]]\f[R] +replaces each path \f[I]pi\f[R] with the name \f[I]ni\f[R] when +displaying file locations in messages. .TP -.B [-no]-aggressive-merging +[-no]-aggressive-merging merges function definitions modulo renaming. Defaults to no. .TP -.B [-no]-allow-duplication +[-no]-allow-duplication allows duplication of small blocks during normalization of tests and loops. Otherwise, normalization uses labels and gotos. @@ -141,53 +130,53 @@ Bigger blocks and blocks with non-trivial control flow are never duplicated. Defaults to yes. .TP -.B [-no]-annot +[-no]-annot reads ACSL annotations. This is the default. Annotations are pre-processed by default. Use -no-pp-annot if you don\[cq]t want to expand macros in annotations. .TP -.B -autocomplete \f[I]p1,\&...,pn\f[R] +-autocomplete \f[I]p1,\&...,pn\f[R] lists the options of plugins \f[I]p1,\&...,pn\f[R] in a format suitable for autocompletion scripts. .TP -.B -big-ints-hex \f[I]max\f[R] +-big-ints-hex \f[I]max\f[R] integers larger than \f[I]max\f[R] are displayed in hexadecimal (by default, all integers are displayed in decimal). .TP -.B -check +-check performs integrity checks on the internal AST (for developers only). .TP -.B [-no]-asm-contracts +[-no]-asm-contracts generates contracts for assembly code written according to gcc\[cq]s extended syntax. Defaults to yes. .TP -.B [-no]-asm-contracts-auto-validate +[-no]-asm-contracts-auto-validate automatically marks contracts generated from asm as valid. Defaults to no. .TP -.B -c11 +-c11 enables (partial) C11 compatibility, e.g.\ typedef redefinitions. Defaults to no. .TP -.B [-no]-collapse-call-cast +[-no]-collapse-call-cast allows implicit cast between the value returned by a function and the lvalue it is assigned to. Otherwise, a temporary variable is used and the cast is made explicit. Defaults to yes. .TP -.B [-no]-constfold +[-no]-constfold folds all syntactically constant expressions in the code before analyses. Defaults to no. .TP -.B -const-readonly +-const-readonly variables with const qualifier must be actually constant. Defaults to yes. The opposite option is \f[B]-unsafe-writable\f[R]. .TP -.B [-no]-continue-annot-error +[-no]-continue-annot-error when analyzing an annotation, the default behavior (the \f[B]-no\f[R] version of this option) when a typechecking error occurs is to reject the source file as is the case for typechecking errors within the C @@ -201,7 +190,7 @@ code are still fatal, though). \f[B]Deprecated\f[R]: use \f[B]-kernel-warn-key annot-error\f[R] instead. .TP -.B -cpp-command \f[I]cmd\f[R] +-cpp-command \f[I]cmd\f[R] uses \f[I]cmd\f[R] as the command to pre-process C files. Defaults to the \f[B]CPP\f[R] environment variable or to .RS @@ -221,7 +210,7 @@ to mark the position of \f[I]\f[R] and \f[I]\f[R] respectively. Note that this option is often better replaced by \f[B]-cpp-extra-args\f[R]. .TP -.B -cpp-extra-args \f[I]args\f[R] +-cpp-extra-args \f[I]args\f[R] gives additional arguments to the pre-processor. Pre-processing annotations is done in two separate pre-processing stages. @@ -233,18 +222,18 @@ pre-processed. should not be used twice (such as additional include directives or macro definitions) must thus go there instead of \f[B]-cpp-command\f[R]. .TP -.B -cpp-extra-args-per-file \f[I]file1:args1,\&...,filen:argsn\f[R] +-cpp-extra-args-per-file \f[I]file1:args1,\&...,filen:argsn\f[R] like \f[B]-cpp-extra-args\f[R], but the arguments only apply to the specified files. .TP -.B [-no]-cpp-frama-c-compliant +[-no]-cpp-frama-c-compliant indicates that the chosen preprocessor complies to some Frama-C requirements, such as accepting the same set of options as GNU cpp, and accepting architecture-specific options such as -m32/-m64. Default values depend on the installed preprocessor at configure time. See also \f[B]-pp-annot\f[R]. .TP -.B [-no]-autoload-plugins +[-no]-autoload-plugins when on, load all the dynamic plugins found in the search path (see \f[B]-print-plugin-path\f[R] for more information on the default search path). @@ -252,28 +241,28 @@ Otherwise, only plugins requested by \f[B]-load-module\f[R] will be loaded. Defaults to on. .TP -.B -enums \f[I]repr\f[R] +-enums \f[I]repr\f[R] choose the way the representation of enumerated types is determined. \f[B]frama-c -enums help\f[R] gives the list of available options. Default is \f[B]gcc-enums\f[R]. .TP -.B -float-digits \f[I]n\f[R] +-float-digits \f[I]n\f[R] when outputting floating-point numbers, display \f[I]n\f[R] digits. Defaults to 12. .TP -.B -float-flush-to-zero +-float-flush-to-zero floating point operations flush to zero. .TP -.B -float-hex +-float-hex display floats as hexadecimal. .TP -.B -float-normal +-float-normal display floats with the standard OCaml routine. .TP -.B -float-relative +-float-relative display float intervals as [ \f[I]lower_bound\f[R]++\f[I]width\f[R] ]. .TP -.B [-no]-frama-c-stdlib +[-no]-frama-c-stdlib adds \f[B]-I$FRAMAC_SHARE/libc\f[R] to the options given to the cpp command. If \f[B]-cpp-frama-c-compliant\f[R] is not false, also adds @@ -281,7 +270,7 @@ If \f[B]-cpp-frama-c-compliant\f[R] is not false, also adds header files. Defaults to yes. .TP -.B -implicit-function-declaration \f[I]action\f[R] +-implicit-function-declaration \f[I]action\f[R] warns or aborts when a function is called before it has been declared. \f[I]action\f[R] can be one of \f[B]ignore\f[R], \f[B]warn\f[R], or \f[B]error\f[R]. @@ -292,34 +281,34 @@ Defaults to \f[B]warn\f[R]. \f[B]Deprecated\f[R]: use \f[B]-kernel-warn-key typing:implicit-function-declaration\f[R] instead. .TP -.B -initialized-padding-locals +-initialized-padding-locals implicit initialization of locals sets padding bits to 0. If false, padding bits are left uninitialized. Defaults to yes. .TP -.B -inline-calls \f[I]f1,\&...,fn\f[R] +-inline-calls \f[I]f1,\&...,fn\f[R] syntactically inlines calls to functions \f[I]f1,\&...,fn\f[R]. Use \f[B]\[at]inline\f[R] to select all functions with attribute \f[I]inline\f[R]. Recursive functions are inlined only at the first level. Calls via function pointers are not inlined. .TP -.B -journal-disable +-journal-disable do not output a journal of the current session. See \f[B]-journal-enable\f[R]. .TP -.B -journal-enable +-journal-enable on by default, dumps a journal of all the actions performed during the current Frama-C session in the form of an OCaml script that can be replayed with \f[B]-load-script\f[R]. The name of the script can be set with the \f[B]-journal-name\f[R] option. .TP -.B -journal-name \f[I]name\f[R] +-journal-name \f[I]name\f[R] sets the name of the journal file (without the \f[I].ml\f[R] extension). Defaults to \f[B]frama_c_journal\f[R]. .TP -.B -json-compilation-database \f[I]path\f[R] +-json-compilation-database \f[I]path\f[R] use \f[I]path\f[R] as a JSON compilation database (see <https://clang.llvm.org/docs/JSONCompilationDatabase.html> for more information): each file preprocessed by Frama-C will include @@ -329,21 +318,21 @@ If \f[I]path\f[R] is a directory, use \f[B]<path>/compile_commands.json\f[R]. Disabled by default. .TP -.B [-no]-keep-comments +[-no]-keep-comments tries to preserve comments when pretty-printing the source code. Defaults to no. .TP -.B [-no]-keep-switch +[-no]-keep-switch when \f[B]-simplify-cfg\f[R] is set, keeps switch statements. Defaults to no. .TP -.B -keep-unused-specified-functions +-keep-unused-specified-functions see \f[B]-remove-unused-specified-functions\f[R]. .TP -.B -keep-unused-types +-keep-unused-types see \f[B]-remove-unused-types\f[R]. .TP -.B -kernel-log \f[I]kind:file\f[R] +-kernel-log \f[I]kind:file\f[R] copies log messages from the Frama-C\[cq]s kernel to file. \f[I]kind\f[R] specifies which kinds of messages to be copied (e.g.\ \f[B]w\f[R] for warnings, \f[B]e\f[R] for errors, etc.). @@ -351,7 +340,7 @@ See \f[B]-kernel-help\f[R] for more details. Can also be set on a per-plugin basis, with option -\f[I]<plugin>\f[R]-\f[B]log\f[R]. .TP -.B -kernel-msg-key \f[I]k1,\&...,kn\f[R] +-kernel-msg-key \f[I]k1,\&...,kn\f[R] controls the emission of messages based on categories. Use \f[B]-kernel-msg-key help\f[R] to get a list of available categories, and \f[B]-kernel-msg-key=\[lq]*\[rq]\f[R] to control all @@ -364,7 +353,7 @@ Can also be set on a per-plugin basis, with option -\f[I]<plugin>\f[R]-\f[B]msg-key\f[R]. Note that each plugin has its own set of categories. .TP -.B -kernel-warn-key \f[I]k1=a1,\&...,kn=an\f[R] +-kernel-warn-key \f[I]k1=a1,\&...,kn=an\f[R] controls the emission of warnings based on categories: for each warning category \f[I]k\f[R], associate action \f[I]a\f[R]. Use \f[B]-kernel-warn-key help\f[R] to get a list of available warning @@ -376,36 +365,34 @@ Omitting the action is equivalent to setting it to \f[B]active\f[R]. Warning categories can also be set on a per-plugin basis, with option -\f[I]<plugin>\f[R]\f[B]-warn-key\f[R]. .TP -.B [-no]-lib-entry +[-no]-lib-entry indicates that the entry point is called during program execution. This implies in particular that global variables cannot be assumed to have their initial values. The default is \f[B]-no-lib-entry\f[R]: the entry point is also the starting point of the program and globals have their initial value. .TP -.B -load \f[I]file\f[R] +-load \f[I]file\f[R] loads the (previously saved) state contained in \f[I]file\f[R]. .TP -.B -load-module \f[I]SPEC\f[R] +-load-module \f[I]SPEC\f[R] dynamically load OCaml plug-ins, modules and scripts. Each \f[I]SPEC\f[R] can be an OCaml source or object file, with or without extension, or a Findlib package. Loading order is preserved and additional dependencies can be listed in *\f[B].depend\f[R] files. .TP -.B -load-script \f[I]SPEC\f[R] +-load-script \f[I]SPEC\f[R] alias for option \f[B]-load-module\f[R]. .TP -.B -machdep \f[I]machine\f[R] +-machdep \f[I]machine\f[R] uses \f[I]machine\f[R] as the current machine-dependent configuration (size of the various integer types, endiandness, \&...). The list of currently supported machines is available through option \f[I]-machdep help\f[R]. -Default is \f[B]x86_64\f[R]. -The environment variable FRAMAC_MACHDEP can be used to override the default -value. The command line parameter still has priority over the default value. +Default is \f[B]x86_32\f[R]. .TP -.B -main \f[I]f\f[R] +-main \f[I]f\f[R] sets \f[I]f\f[R] as the entry point of the analysis. Defaults to \f[B]main\f[R]. By default, it is considered as the starting point of the program under @@ -413,24 +400,24 @@ analysis. Use \f[B]-lib-entry\f[R] if \f[I]f\f[R] is supposed to be called in the middle of an execution. .TP -.B -obfuscate +-obfuscate prints an obfuscated version of the code (where original identifiers are replaced by meaningless ones) and exits. The correspondence table between original and new symbols is kept at the beginning of the result. .TP -.B -ocode \f[I]file\f[R] +-ocode \f[I]file\f[R] redirects pretty-printed code to \f[I]file\f[R] instead of standard output. .TP -.B [-no]-orig-name +[-no]-orig-name During the normalization phase, some variables may get renamed when different variables with the same name can co-exist (e.g.\ a global variable and a formal parameter). When this option is on, a message is printed each time this occurs. Defaults to no. .TP -.B [-no]-pp-annot +[-no]-pp-annot pre-processes annotations. This is currently only possible when using gcc (or GNU cpp) pre-processor. @@ -438,117 +425,117 @@ The default is to pre-process annotations when the default pre-processor is identified as GNU or GNU-like. See also \f[B]-cpp-frama-c-compliant\f[R]. .TP -.B [-no]-print +[-no]-print pretty-prints the source code as normalized by CIL. Defaults to no. .TP -.B -print-cpp-commands +-print-cpp-commands outputs the preprocessing commands for all input files. .TP -.B -print-config-json +-print-config-json outputs extensive Frama-C configuration data in JSON format. .TP -.B [-no]-print-libc +[-no]-print-libc expands \f[B]#include\f[R] directives in the pretty-printed CIL code for files in the Frama-C standard library. Defaults to no. .TP -.B -print-libpath +-print-libpath outputs the directory where the Frama-C kernel library is installed. .TP -.B -print-path +-print-path alias of \f[B]-print-share-path\f[R]. .TP -.B -print-plugin-path +-print-plugin-path outputs the directory where Frama-C searches its plugins (can be overridden by the \f[B]FRAMAC_PLUGIN\f[R] variable and the \f[B]-add-path\f[R] option). .TP -.B -print-share-path +-print-share-path outputs the directory where Frama-C stores its data (can be overridden by the \f[B]FRAMAC_SHARE\f[R] variable). .TP -.B [-no]-remove-exn +[-no]-remove-exn transforms throw and try/catch statements into normal C functions. Defaults to no, unless the input source language has an exception mechanism. .TP -.B -remove-inlined \f[I]f1,\&...,fn\f[R] +-remove-inlined \f[I]f1,\&...,fn\f[R] removes inlined functions \f[I]f1,\&...,fn\f[R] from the AST, which must have been given to \f[B]-inline-calls\f[R]. Note: this option does not check if the given functions were fully inlined. .TP -.B -remove-projects \f[I]p1,\&...,pn\f[R] +-remove-projects \f[I]p1,\&...,pn\f[R] removes the given projects \f[I]p1,\&...,pn\f[R]. \f[B]\[at]all_but_current\f[R] removes all projects but the current one. .TP -.B -remove-unused-specified-functions +-remove-unused-specified-functions keeps function prototypes that have an ACSL specification but are not used in the code. This is the default. Functions having the attribute \f[B]FRAMAC_BUILTIN\f[R] are always kept. .TP -.B -remove-unused-types +-remove-unused-types remove types and struct/union/enum declarations that are not referenced anywhere else in the code. This is the default. Use \f[B]-keep-unused-types\f[R] to keep these definitions. .TP -.B -safe-arrays +-safe-arrays for multidimensional arrays or arrays that are fields inside structs, assumes that all accesses must be in bound (set by default). The opposite option is \f[B]-unsafe-arrays\f[R]. .TP -.B -save \f[I]file\f[R] +-save \f[I]file\f[R] saves Frama-C\[cq]s state into \f[I]file\f[R] after analyses have taken place. .TP -.B -session \f[I]s\f[R] +-session \f[I]s\f[R] sets \f[I]s\f[R] as the directory in which session files are searched. .TP -.B [-no]-set-project-as-default +[-no]-set-project-as-default the current project becomes the default one (and so future \f[B]-then\f[R] sequences are applied on it). Defaults to no. .TP -.B [-no]-simplify-cfg +[-no]-simplify-cfg removes \f[B]break\f[R], \f[B]continue\f[R] and \f[B]switch\f[R] statements before analyses. Defaults to no. .TP -.B [-no]-simplify-trivial-loops +[-no]-simplify-trivial-loops simplifies trivial loops such as \f[B]do \&... while (0)\f[R] loops. Defaults to yes. .TP -.B -then +-then allows one to compose analyses: a first run of Frama-C will occur with the options before \f[B]-then\f[R] and a second run will be done with the options after \f[B]-then\f[R] on the current project from the first run. .TP -.B -then-last +-then-last like \f[B]-then\f[R], but the second group of actions is executed on the last project created by a program transformer. .TP -.B -then-on \f[I]prj\f[R] +-then-on \f[I]prj\f[R] similar to \f[B]-then\f[R] except that the second run is performed in project \f[I]prj\f[R]. If no such project exists, Frama-C exits with an error. .TP -.B -then-replace +-then-replace like \f[B]-then-last\f[R], but also removes the previous current project. .TP -.B -time \f[I]file\f[R] +-time \f[I]file\f[R] appends user time and date in the given file when Frama-C exits. .TP -.B -typecheck +-typecheck forces typechecking of the source files. This option is only relevant if no further analysis is requested (as typechecking will implicitly occur before the analysis is launched). .TP -.B -ulevel \f[I]n\f[R] +-ulevel \f[I]n\f[R] syntactically unroll loops \f[I]n\f[R] times before the analysis. This can be quite costly and some plugins (e.g.\ Eva) provide more efficient ways to perform the same thing. @@ -557,7 +544,7 @@ This can also be activated on a per-loop basis via the \f[B]loop pragma unroll \f[R] directive. A negative value for \f[I]n\f[R] will inhibit such pragmas. .TP -.B [-no]-ulevel-force +[-no]-ulevel-force ignores \f[B]UNROLL\f[R] loop pragmas disabling unrolling. .PP [-no]-unicode outputs ACSL formulas with UTF-8 characters. @@ -566,20 +553,20 @@ When given the \f[B]-no-unicode\f[R] option, Frama-C will use the ASCII version instead. See the ACSL manual for the correspondence. .TP -.B -unsafe-arrays +-unsafe-arrays see \f[B]-safe-arrays\f[R]. .TP -.B [-no]-unspecified-access +[-no]-unspecified-access checks that read/write accesses occurring in an unspecified order (according to the C standard\[cq]s notion of sequence points) are performed on separate locations. With \f[B]-no-unspecified-access\f[R], assumes that it is always the case (this is the default). .TP -.B -version +-version outputs the version string of Frama-C. .TP -.B -warn-decimal-float \f[I]freq\f[R] +-warn-decimal-float \f[I]freq\f[R] warns when a floating-point constant cannot be exactly represented (e.g.\ 0.1). \f[I]freq\f[R] can be one of \f[B]none\f[R], \f[B]once\f[R], or @@ -590,41 +577,41 @@ warns when a floating-point constant cannot be exactly represented \f[B]Deprecated\f[R]: use \f[B]-kernel-warn-key parser:decimal-float=once\f[R] (and variants) instead. .TP -.B [-no]-warn-invalid-pointer +[-no]-warn-invalid-pointer generate alarms for invalid pointer arithmetic. Defaults to no. .TP -.B [-no]-warn-left-shift-negative +[-no]-warn-left-shift-negative generate alarms for signed left shifts on negative values. Defaults to yes. .TP -.B [-no]-warn-right-shift-negative +[-no]-warn-right-shift-negative generate alarms for signed right shifts on negative values. Defaults to no. .TP -.B [-no]-warn-pointer-downcast +[-no]-warn-pointer-downcast generates alarms when the downcast of a pointer may exceed the destination range. Defaults to yes. .TP -.B [-no]-warn-signed-downcast +[-no]-warn-signed-downcast generates alarms when signed downcasts may exceed the destination range. Defaults to no. .TP -.B [-no]-warn-signed-overflow +[-no]-warn-signed-overflow generates alarms for signed operations that overflow. Defaults to yes. .TP -.B [-no]-warn-unsigned-downcast +[-no]-warn-unsigned-downcast generates alarms when unsigned downcasts may exceed the destination range. Defaults to no. .TP -.B [-no]-warn-unsigned-overflow +[-no]-warn-unsigned-overflow generates alarms for unsigned operations that overflow. Defaults to no. .TP -.B [-no]-warn-invalid-bool +[-no]-warn-invalid-bool generates alarms for reads of trap representations of _Bool lvalues. Defaults to yes. .SS Plugin-specific options @@ -638,22 +625,22 @@ frama-c -plugin-help will give the list of options that are specific to the plugin. .SH EXIT STATUS .TP -.B 0 +0 Successful execution .TP -.B 1 +1 Invalid user input .TP -.B 2 +2 User interruption (kill or equivalent) .TP -.B 3 +3 Unimplemented feature .TP -.B 4 5 6 +4 5 6 Internal error .TP -.B 125 +125 Unknown error .PP Exit statuses greater than 2 can be considered as a bug (or a feature @@ -664,21 +651,22 @@ Frama-C\[cq]s BTS (see below). It is possible to control the places where Frama-C looks for its files through the following variables. .TP -.B FRAMAC_LIB +FRAMAC_LIB The directory where kernel\[cq]s compiled interfaces are installed. .TP -.B FRAMAC_PLUGIN +FRAMAC_PLUGIN The directory where Frama-C can find standard plugins. If you wish to have plugins in several places, use \f[B]-add-path\f[R] instead. .TP -.B FRAMAC_SHARE +FRAMAC_SHARE The directory where Frama-C data (e.g.\ its version of the standard library) is installed. .SH SEE ALSO .PP -Frama-C user manual: http://frama-c.com/download/frama-c-user-manual.pdf +Frama-C user manual: +https://frama-c.com/download/frama-c-user-manual.pdf .PP -Frama-C homepage: http://frama-c.com +Frama-C homepage: https://frama-c.com .PP -Frama-C BTS: http://bts.frama-c.com +Frama-C BTS: https://git.frama-c.com/pub/frama-c/issues diff --git a/man/frama-c.1.header b/man/frama-c.1.header deleted file mode 100644 index c70585242be9b04d9332047bf305dd8626f45879..0000000000000000000000000000000000000000 --- a/man/frama-c.1.header +++ /dev/null @@ -1,28 +0,0 @@ -.\"------------------------------------------------------------------------ -.\" -.\" This file is part of Frama-C. -.\" -.\" Copyright (C) 2007-2020 -.\" CEA (Commissariat à l'énergie atomique et aux énergies -.\" alternatives) -.\" -.\" you can redistribute it and/or modify it under the terms of the GNU -.\" Lesser General Public License as published by the Free Software -.\" Foundation, version 2.1. -.\" -.\" It is distributed in the hope that it will be useful, -.\" but WITHOUT ANY WARRANTY; without even the implied warranty of -.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -.\" GNU Lesser General Public License for more details. -.\" -.\" See the GNU Lesser General Public License version 2.1 -.\" for more details (enclosed in the file licenses/LGPLv2.1). -.\" -.\"------------------------------------------------------------------------ - -.\" DO NOT EDIT THIS FILE! -.\" This man file has been generated from a Markdown file (frama-c.1.md) -.\" using pandoc 2.0 or newer. To modify this file, edit the Markdown file -.\" and run `make man/frama-c.1`. - -.TH FRAMA-C 1 2020-10-07 diff --git a/man/frama-c.1.md b/man/frama-c.1.md index 7f71c13c8b9137771cf91b3aa293b77557af295b..5ed2c0f2b2385f7a93419eea37c5f19e106c9636 100644 --- a/man/frama-c.1.md +++ b/man/frama-c.1.md @@ -1,3 +1,25 @@ +--- +title: 'FRAMA-C(1) 2021-02-16' +header-includes: +- | + ```{=man} + .\"------------------------------------------------------------------------ + .\" + .\" This file is part of Frama-C documentation + .\" + .\" Copyright (C) 2007-2021 + .\" CEA (Commissariat à l'énergie atomique et aux énergies + .\" alternatives) + .\" + .\" you can redistribute it and/or modify it under the terms of the + .\" CC-BY-SA 4.0 license + + .\" DO NOT EDIT THIS FILE! + .\" This man file has been generated from a Markdown file (frama-c.1.md) + .\" using pandoc 2.0 or newer. To modify this file, edit the Markdown file + .\" and run `make man/frama-c.1`. + ``` +... # NAME frama-c[.byte] - a static analyzer for C programs @@ -547,8 +569,8 @@ is installed. # SEE ALSO -Frama-C user manual: http://frama-c.com/download/frama-c-user-manual.pdf +Frama-C user manual: https://frama-c.com/download/frama-c-user-manual.pdf -Frama-C homepage: http://frama-c.com +Frama-C homepage: https://frama-c.com -Frama-C BTS: http://bts.frama-c.com +Frama-C BTS: https://git.frama-c.com/pub/frama-c/issues diff --git a/nix/default.nix b/nix/default.nix index 9ca0675830136d3057ea9f865c30400e3afd6205..6b45d562bccf9479c2534a502b34618bcb5e692c 100644 --- a/nix/default.nix +++ b/nix/default.nix @@ -74,8 +74,13 @@ rec { lint = mk_deriv { name = "frama-c-lint"; inherit src; - buildInputs = (mk_buildInputs { opamPackages = [ { name = "ocp-indent"; constraint = "=1.7.0"; } ];} ) - ++ [ pkgs.bc plugins.headache.installed ]; + buildInputs = + (mk_buildInputs { + nixPackages = [ pkgs.bc ]; + opamPackages = [ + { name = "ocp-indent"; constraint = "=1.7.0"; } + { name = "headache"; constraint = "=1.05"; } + ];} ); outputs = [ "out" ]; postPatch = '' patchShebangs . @@ -120,7 +125,11 @@ rec { build-distrib-tarball = mk_deriv { name = "frama-c-build-distrib-tarball"; inherit src; - buildInputs = buildInputs ++ [ plugins.headache.installed ]; + buildInputs = + (mk_buildInputs { + opamPackages = [ + { name = "headache"; constraint = "=1.05"; } + ];} ); outputs = [ "out" ]; postPatch = '' patchShebangs . diff --git a/nix/frama-ci.nix b/nix/frama-ci.nix index 3e705a8ac1871c85d7680324718834ba71b0fd71..7cfc5f43524b5b55ba76d95c0de0934a6550343c 100644 --- a/nix/frama-ci.nix +++ b/nix/frama-ci.nix @@ -5,7 +5,7 @@ let src = builtins.fetchGit { "url" = "https://bobot:${password}@git.frama-c.com/frama-c/Frama-CI.git"; "name" = "Frama-CI"; - "rev" = "01d423ae0e14b2d0d41e952d261aa859b2a3855e"; + "rev" = "285cc9569c1ae0bfadb51320ba7d1d4c73b6bba0"; "ref" = "master"; }; in diff --git a/ptests/ptests.ml b/ptests/ptests.ml index e307c4a3ff53dc881203ac54caa0558e0ab79a40..829178387d73584bf79e2096fa8671c80f4fcc9b 100644 --- a/ptests/ptests.ml +++ b/ptests/ptests.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/share/Makefile.clean b/share/Makefile.clean index 2fc3624d681226b9949c1f9f5a60404c9469b897..17d241efb50a3a294f151930f20f435e99c6b002 100644 --- a/share/Makefile.clean +++ b/share/Makefile.clean @@ -2,7 +2,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/share/Makefile.common b/share/Makefile.common index affc77563611993266375cc54d2dfdfb7d31ba4e..fb4f37394e1c4ed99053d34d30e4ceb46df88c10 100644 --- a/share/Makefile.common +++ b/share/Makefile.common @@ -2,7 +2,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/share/Makefile.config.in b/share/Makefile.config.in index 40a619d925cea8999ded517a3027c373ef216283..06e6dd9f0258ec6ced459a3dbd65db26fbd65346 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-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/share/Makefile.dynamic b/share/Makefile.dynamic index 5b5340c79d1843ca83518015505e66c93281aa5d..080526de2a78bdc3aef1ecafd6faac7f5882a894 100644 --- a/share/Makefile.dynamic +++ b/share/Makefile.dynamic @@ -2,7 +2,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/share/Makefile.dynamic_config.external b/share/Makefile.dynamic_config.external index 84e72164a484bd5f7f1fadf7b58fef9e802368e2..182c1ddc4d18a8be747276e09f41be58166753cd 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-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/share/Makefile.dynamic_config.internal b/share/Makefile.dynamic_config.internal index 3a2c636410406e478c0f7ac343036136e9b36d7e..74e22f3d918875f5f961106739146cd09ef6ea2e 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-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/share/Makefile.generic b/share/Makefile.generic index 92235920129d62ca94459ed1f7807798c7cd22cf..6e8e94c8185d57fd8961274101d7968af9edb83a 100644 --- a/share/Makefile.generic +++ b/share/Makefile.generic @@ -2,7 +2,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/share/Makefile.plugin.template b/share/Makefile.plugin.template index b3c44fc76012d5d0595477c86c5075ad53b0da5d..d60bdd67cbd195058270c0ea70d8b82d35fe555d 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-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/share/_frama-c b/share/_frama-c index 7166a0a39da34072c13a76af50a71ed38b4cb48f..be5236b34309b884bbe0d634dc813567b7cdfa7b 100644 --- a/share/_frama-c +++ b/share/_frama-c @@ -3,7 +3,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/share/analysis-scripts/analysis.mk b/share/analysis-scripts/analysis.mk index 07bcf42f649be6868296faa913b8aaa052716515..4984908d62fbdbc85e8cf6b38912c14f961ad84e 100644 --- a/share/analysis-scripts/analysis.mk +++ b/share/analysis-scripts/analysis.mk @@ -2,7 +2,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/share/analysis-scripts/benchmark_database.py b/share/analysis-scripts/benchmark_database.py index 53ee4452c23058a6d13d0bbac73cd9cd01f88e3a..fa577c5de7516f3a9aa3e2526972f6dfee218605 100644 --- a/share/analysis-scripts/benchmark_database.py +++ b/share/analysis-scripts/benchmark_database.py @@ -2,7 +2,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/share/analysis-scripts/creduce.sh b/share/analysis-scripts/creduce.sh index 009cebf8a7c429cf0fdca7f98e869da48ecf5780..94ddd8ef10f33cd5aa676f17957842b19c057d7b 100755 --- a/share/analysis-scripts/creduce.sh +++ b/share/analysis-scripts/creduce.sh @@ -3,7 +3,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/share/analysis-scripts/epilogue.mk b/share/analysis-scripts/epilogue.mk index ca49ed6bc7b9fdf07d6871a42123c6b277941b1f..d4a64f1ee43504be532e664fd821ed2008be2fb1 100644 --- a/share/analysis-scripts/epilogue.mk +++ b/share/analysis-scripts/epilogue.mk @@ -2,7 +2,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2020 # +# Copyright (C) 2007-2021 # # 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 index 7324da49ef2db73bb3a0ed87b50c8cd8c426ab8d..18588b293bd0452317f4ae72f90e8b396775c3a1 100755 --- a/share/analysis-scripts/find_fun.py +++ b/share/analysis-scripts/find_fun.py @@ -4,7 +4,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/share/analysis-scripts/frama_c_results.py b/share/analysis-scripts/frama_c_results.py index 0519eda8ecccb5e78cfc51f2befe036cf16c792e..9f2847b63f9f2c4a3edd72ba95d7f3b79e48ecce 100644 --- a/share/analysis-scripts/frama_c_results.py +++ b/share/analysis-scripts/frama_c_results.py @@ -2,7 +2,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/share/analysis-scripts/git_utils.py b/share/analysis-scripts/git_utils.py index 38e8ac9cd25e284ee6297c31658b1408327ef64d..9714a3b1e3a9f8f3b5996727ccb683c17fad5f44 100644 --- a/share/analysis-scripts/git_utils.py +++ b/share/analysis-scripts/git_utils.py @@ -2,7 +2,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/share/analysis-scripts/list_files.py b/share/analysis-scripts/list_files.py index 6845700360341beaa1b9acba44e293688859f133..ac822030be89c50fcde456d387e91d6708cc50f7 100755 --- a/share/analysis-scripts/list_files.py +++ b/share/analysis-scripts/list_files.py @@ -4,7 +4,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/share/analysis-scripts/list_functions.ml b/share/analysis-scripts/list_functions.ml new file mode 100644 index 0000000000000000000000000000000000000000..96511af9c7140a248de0dd7fbe157e2f70f05887 --- /dev/null +++ b/share/analysis-scripts/list_functions.ml @@ -0,0 +1,304 @@ +(**************************************************************************) +(* *) +(* This file is part of Frama-C. *) +(* *) +(* Copyright (C) 2007-2021 *) +(* 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). *) +(* *) +(**************************************************************************) + +(* To avoid listing declarations several times, we use their locations + as proxies. However, we cannot directly compare locations, since static + (re-)definitions, as well as prototypes included several times, + have locations which are physically different (pos_cnum) + despite being semantically identical (same file/line/column). + The module below provides a hash table using the equality function + corresponding to our needs. +*) +module SemanticLocs : sig + include Hashtbl.S with type key = Cil_datatype.Location.t + val is_empty: 'a t -> bool + val keys: 'a t -> key list (* sorted w.r.t. cmp_start_semantic *) + val elements: 'a t -> (key * 'a) list (* sorted w.r.t. cmp_start_semantic *) +end = +struct + include + Hashtbl.Make(struct + type t = Cil_datatype.Location.t + let equal = Cil_datatype.Location.equal_start_semantic + let hash (b, _e) = Hashtbl.hash (b.Filepath.pos_path, b.Filepath.pos_lnum) + end) + let is_empty tbl = length tbl = 0 + let keys tbl = + let l = fold (fun loc _ acc -> loc :: acc) tbl [] in + List.sort Cil_datatype.Location.compare_start_semantic l + let elements tbl = + let l = fold (fun loc v acc -> (loc, v) :: acc) tbl [] in + List.sort (fun (l1, _v1) (l2, _v2) -> + Cil_datatype.Location.compare_start_semantic l1 l2) l +end + +module Self = Plugin.Register + (struct + let name = "list-functions" + let shortname = "list-functions" + let help = "prints the list of function definitions and declarations, \ + along with their locations and number of statements, \ + in text or JSON format" + end) + +module PrintLibc = + Self.False + (struct + let option_name = "-list-functions-libc" + let help = "whether to print functions located within Frama-C's libc \ + directory. Default: false" + end) + +module PrintDeclarations = + Self.False + (struct + let option_name = "-list-functions-declarations" + let help = "whether to print function declarations. Default: false" + end) + +module Output = + Self.Filepath + (struct + let option_name = "-list-functions-output" + let arg_name = "filename" + let existence = Filepath.Indifferent + let file_kind = "json" + let help = "where to save the output, in JSON format. If omitted', \ + then output to stdout in text format instead" + end) + +type funinfo = { + name : string; + declarations : unit SemanticLocs.t; + definitions : int (*number of statements*) SemanticLocs.t; + (* Note: only static functions can have multiple definitions *) +} + +class stmt_count_visitor = + object + inherit Visitor.frama_c_inplace + val count = ref 0 + method! vstmt_aux _s = + incr count; + Cil.DoChildren + method get = !count + end + +(* To find good locations for declarations and definitions, we use different + methods: + - For declarations, the Cabs AST information is much better than the Cil + one, which erases declarations when a definition is found; + - For definitions, the information seems to be equivalent, so we use the + one in Kernel_function. +*) + +(* Due to the fact that the Cabs AST contains no fc_stdlib attributes, we use a + location-based approach. *) +let located_within_framac_libc loc = + let pos = fst loc in + let file = (pos.Filepath.pos_path :> string) in + Filepath.is_relative ~base_name:Fc_config.framac_libc file + +class fun_cabs_visitor print_libc = object(self) + inherit Cabsvisit.nopCabsVisitor + + val decls : (string, 'a SemanticLocs.t) Hashtbl.t = Hashtbl.create 7 + method get_decls = decls + + method private get_single_name (_spec, (name, _, _, _)) = name + method private get_name (name, _, _, _) = name + + method private add_loc table name loc = + if print_libc || not (located_within_framac_libc loc) then + let locs_table = + try + Hashtbl.find table name + with + | Not_found -> + let t = SemanticLocs.create 1 in + Hashtbl.replace table name t; + t + in + SemanticLocs.replace locs_table loc () + + method! vdef def = + let open Cabs in + match def with + | FUNDEF _ -> + (* we will use Cil information anyway *) + Cil.SkipChildren + | DECDEF (_, (_, name_list), loc) -> + List.iter + (function + | ((name, PROTO _, _, _), _) -> + self#add_loc decls name loc + | _ -> () + ) name_list; + Cil.SkipChildren + | _ -> + Cil.DoChildren + +end + +let print_json (fp : Filepath.Normalized.t) funinfos_json = + try + let oc = open_out (fp:>string) in + let fmt = Format.formatter_of_out_channel oc in + Json.pp fmt funinfos_json; + Format.fprintf fmt "@."; + close_out oc; + Self.debug "List written to: %a" Filepath.Normalized.pretty fp + with Sys_error msg -> + Self.abort "cannot write JSON to %a: %s" + Filepath.Normalized.pretty fp msg + +let pp_semlocs fmt t = + Format.fprintf fmt "%a" + (Pretty_utils.pp_list ~sep:", " Cil_datatype.Location.pretty) + (SemanticLocs.keys t) + +let pp_loc_size fmt loc_size = + let (loc, size) = loc_size in + Format.fprintf fmt "%a (%d statement%s)" + Cil_datatype.Location.pretty loc size (if size <> 1 then "s" else "") + +let pp_definitions fmt defs = + Format.fprintf fmt "%a" + (Pretty_utils.pp_list ~sep:", " pp_loc_size) + (SemanticLocs.elements defs) + +let print_text funinfos = + List.iter (fun fi -> + if PrintDeclarations.get () || + not (SemanticLocs.is_empty fi.definitions) then + begin + Format.printf "%s:" fi.name; + begin + if not (SemanticLocs.is_empty fi.definitions) then + Format.printf " defined at %a;" + pp_definitions fi.definitions + end; + if PrintDeclarations.get () && + not (SemanticLocs.is_empty fi.declarations) then + Format.printf " declared at %a" pp_semlocs fi.declarations; + if SemanticLocs.(is_empty fi.definitions && is_empty fi.declarations) + then + Format.printf " called but never declared nor defined"; + Format.printf "@." + end + ) funinfos + +let get_size kf = + let stmt_count_vis = new stmt_count_visitor in + ignore Visitor.(visitFramacKf (stmt_count_vis :> frama_c_inplace) kf); + stmt_count_vis#get + +let definitions_with_size name = + let kfs = + List.filter Kernel_function.is_definition + (Globals.Functions.find_all_by_orig_name name) + in + let defs_with_size = SemanticLocs.create (List.length kfs) in + List.iter (fun kf -> + let n = get_size kf in + let loc = Kernel_function.get_location kf in + SemanticLocs.add defs_with_size loc n + ) kfs; + defs_with_size + +let json_string_of_loc loc = + `String (Format.asprintf "%a" Cil_datatype.Location.pretty loc) + +let json_list_of_loc_tbl tbl = + let keys = SemanticLocs.keys tbl in + `List (List.map json_string_of_loc keys) + +let json_array_of_loc_size (loc, size) = + `Assoc [("location", json_string_of_loc loc); ("statements", `Int size)] + +let json_list_of_loc_size_tbl tbl = + let elements = SemanticLocs.elements tbl in + `List (List.map json_array_of_loc_size elements) + +let run () = + if List.length (File.get_all ()) < 1 then begin + Self.abort "no input files"; + end; + let cabs_files = Ast.UntypedFiles.get () in + let vis = new fun_cabs_visitor (PrintLibc.get ()) in + List.iter (fun file -> + ignore Cabsvisit.(visitCabsFile (vis :> nopCabsVisitor) file) + ) cabs_files; + let decls = vis#get_decls in + let defs_without_decls = Globals.Functions.fold (fun kf acc -> + if Kernel_function.is_definition kf then begin + let orig_name = (Kernel_function.get_vi kf).vorig_name in + if Hashtbl.mem decls orig_name then acc + else Datatype.String.Set.add orig_name acc + end + else acc + ) Datatype.String.Set.empty + in + let funinfos = + Hashtbl.fold (fun name declarations acc -> + let definitions = definitions_with_size name in + let fi = { name; definitions; declarations } in + fi :: acc + ) decls [] + in + (* add data for defined functions not present in 'decls' *) + let funinfos = + Datatype.String.Set.fold (fun orig_name acc -> + if not (Hashtbl.mem decls orig_name) then begin + let definitions = definitions_with_size orig_name in + let fi = { name = orig_name; definitions; + declarations = SemanticLocs.create 0 } + in + fi :: acc + end else + acc + ) defs_without_decls funinfos + in + let funinfos = List.sort + (fun fi1 fi2 -> Extlib.compare_ignore_case fi1.name fi2.name) funinfos + in + let outfp = Output.get () in + if Filepath.Normalized.is_unknown outfp then + print_text funinfos + else + let funinfos_json = `List (List.map (fun fi -> + let definitions = + if SemanticLocs.is_empty fi.definitions then [] + else + [("definitions", json_list_of_loc_size_tbl fi.definitions)] + in + let declarations = + if SemanticLocs.is_empty fi.declarations then [] + else + [("declarations", json_list_of_loc_tbl fi.declarations)] + in + `Assoc [(fi.name, `Assoc (definitions @ declarations))] + ) funinfos) + in + print_json outfp funinfos_json + +let () = Db.Main.extend run diff --git a/share/analysis-scripts/make_template.py b/share/analysis-scripts/make_template.py index c39b82bd4f4836b06a45af4c79789e058a3c2685..c986e4551c446b47caff148e869d65ef1713c58d 100755 --- a/share/analysis-scripts/make_template.py +++ b/share/analysis-scripts/make_template.py @@ -4,7 +4,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/share/analysis-scripts/make_wrapper.py b/share/analysis-scripts/make_wrapper.py index 07c314b9d8a8679b51f13c03973d15e36091395e..ac42c8d36bff9465dd8b00cbf768d7123a56b57e 100755 --- a/share/analysis-scripts/make_wrapper.py +++ b/share/analysis-scripts/make_wrapper.py @@ -4,7 +4,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/share/analysis-scripts/normalize_jcdb.py b/share/analysis-scripts/normalize_jcdb.py index c578730c143eba4b23f5b1c6d7e4575c58ca2965..319a52d252aab583b2682b499adb574c4321b81b 100755 --- a/share/analysis-scripts/normalize_jcdb.py +++ b/share/analysis-scripts/normalize_jcdb.py @@ -4,7 +4,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/share/analysis-scripts/prologue.mk b/share/analysis-scripts/prologue.mk index f1cca3d38888a266e2f049084e8aa4a227af99fa..b5bfb92ea6388e02d6fada33e74b8dccfea901f4 100644 --- a/share/analysis-scripts/prologue.mk +++ b/share/analysis-scripts/prologue.mk @@ -2,7 +2,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/share/analysis-scripts/results_display.py b/share/analysis-scripts/results_display.py index 61339bfc02164d841df2d6d2804b1c56879fb5f8..62ba7aa7976872bb3fcfa0d3c851f7b1aa8d2deb 100644 --- a/share/analysis-scripts/results_display.py +++ b/share/analysis-scripts/results_display.py @@ -2,7 +2,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/share/analysis-scripts/summary.py b/share/analysis-scripts/summary.py index c3b309e80e0d7eaf771008144f5de9dcc4ff609a..9718a7ddbe4d778ed5e9b81fc78fd06919d62911 100755 --- a/share/analysis-scripts/summary.py +++ b/share/analysis-scripts/summary.py @@ -4,7 +4,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/share/autocomplete_frama-c b/share/autocomplete_frama-c index af9de4aaf1e6f6a3a036f14781bd810ada14fb23..0637900a8bc57ac7f9d94af7d12540bbb93ca1b9 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-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/share/configure.ac b/share/configure.ac index 10ba7e45c75b7f8aedf693bc2d935602bc846d55..5e18de02aa24b5c1bf1010e17af85287d84ebb18 100644 --- a/share/configure.ac +++ b/share/configure.ac @@ -2,7 +2,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/share/emacs/acsl.el b/share/emacs/acsl.el index 88157ff09ce1a718e678c605de4f4bd500de4ad6..b5ec8b002e8bdc0e283f1cefbc4dd3e1593ec5e2 100644 --- a/share/emacs/acsl.el +++ b/share/emacs/acsl.el @@ -5,7 +5,7 @@ ; Copyright (C) 2008-2011 ; ; Pierre Roux ; ; ; -; Copyright (C) 2009-2020 ; +; Copyright (C) 2009-2021 ; ; 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 b68b565a9a358268b16cd7ce1102e1a7b12c51ff..bcb05603ec24c07b64dd282f3fe47e95d26460b5 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-2020 ; +; Copyright (C) 2007-2021 ; ; 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 cab5b6de740f78940745d6bb63cba9fa8be66846..7171affeb4508fd9d13b45525b727767eb13ecb0 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-2020 ; +; Copyright (C) 2007-2021 ; ; 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 f58576651059f9c6da7141a53b5839331c53f615..75fa93d9f2a9bbf5756d531191443f13141690e7 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-2020 ; +; Copyright (C) 2007-2021 ; ; CEA (Commissariat à l'énergie atomique et aux énergies ; ; alternatives) ; ; ; diff --git a/share/frama-c.Unix.rc b/share/frama-c.Unix.rc index 484101c70e991df3bc874042025a708bbce97b48..2fda949c508b3984d2447f17663f974cf7e0a0ca 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-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/share/frama-c.WIN32.rc b/share/frama-c.WIN32.rc index 16d3c52a673980e08e43378efb09e10cb23422e8..febdfd24e2e2161cd029ee7679ea60db9dd4333f 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-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/share/libc.c b/share/libc.c index 770c29beb586def56b52cbdd51a3a3c1a5199204..901d891ba0499f880141b6d42e49d7d59d48f877 100644 --- a/share/libc.c +++ b/share/libc.c @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2020 */ +/* Copyright (C) 2007-2021 */ /* 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 a5cae2a5c45b2816d6981c6fefa1bc2e98fd225c..28811bef492b61391fbce433b84726c3ea8efbfc 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/__fc_builtin.c b/share/libc/__fc_builtin.c index bb20a9e503af71675d116dd8e1fcd8811c82aa47..b0b2d8d7a3f29a02937ce4aae3d5c7aa343ed357 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/__fc_builtin.h b/share/libc/__fc_builtin.h index 48babc72906a74f56ffe01172c555078735f5136..f3734a892ae7535f4019db7b1f5bbee2af712344 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-2020 */ +/* Copyright (C) 2007-2021 */ /* 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 eb82206155ec05bebd6a292bec76350de603730d..0eda3251c8afb07eb5ea3781de957fb3228f15c5 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-2020 */ +/* Copyright (C) 2007-2021 */ /* 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 298f9266c3320416df440974d2262dad9e7a4453..0303032836f9f66749ffce7d1f0a6b7cf813002a 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-2020 */ +/* Copyright (C) 2007-2021 */ /* 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 71deda04907da4a894f1717b1ec983891904f6b3..df95568e16769aa2cd74dd4d9afc7169c600e5b1 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-2020 */ +/* Copyright (C) 2007-2021 */ /* 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 5972cb8f1cf36452bba7d2bcf52900e3a25448c3..ccaf6a17a84d9b24f99cfa6a4ddc0a96f9a90edc 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-2020 */ +/* Copyright (C) 2007-2021 */ /* 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 28b12a3f75766c891c59d3a65be345175447d81b..4a430160ba45d94598d953bde8d6b1da891ce9fb 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-2020 */ +/* Copyright (C) 2007-2021 */ /* 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 eed177a1db8151e0906a3adada5ef9ddcc77f047..5f9b7c721b2124a2158961a07c7db38eda5506e3 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-2020 */ +/* Copyright (C) 2007-2021 */ /* 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 0cc9c88aa08d735d640290f5a639385ff5f342e0..474fbd30a6585ab3486bf2362b1791b37c02eee9 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-2020 */ +/* Copyright (C) 2007-2021 */ /* 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 0562f7a515ddc329d6a1af35ca7f6a93280ba558..42be555cb50f56effbcc65e10fb2ad0e3f7bb8e7 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-2020 */ +/* Copyright (C) 2007-2021 */ /* 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 43174d12ee60dbd855be3582f5b04944253181d4..d50b495bba89eb5921b190da6c45b6448301f5c9 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-2020 */ +/* Copyright (C) 2007-2021 */ /* 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 91d5e955833a26f8a44590400ff991c87be598e5..e073bb67add897dfb85c59af37f6e48a63745e9a 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-2020 */ +/* Copyright (C) 2007-2021 */ /* 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 5806aea0c080887b0dce91bdde4d595ef8e3a438..50799846b4bfc3c0c66012439e0db3d4a2b6b5a0 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-2020 */ +/* Copyright (C) 2007-2021 */ /* 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 105e55cfc0c7d7cc06965a255f6917bbe7b62a95..4e1d70e3ce0b6e366af5ab0512480c39821d776e 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-2020 */ +/* Copyright (C) 2007-2021 */ /* 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 7caa52bf85200dcc18b87d5df06ac79304e99031..adcc2b5164b06e32b4ddbfad0ad559741427de8b 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-2020 */ +/* Copyright (C) 2007-2021 */ /* 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 c5dcfab9e701e78d46034e8126108c9bf2e3c435..42bfec2531d3c87e6a3962cefc8b16394c4f65c0 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-2020 */ +/* Copyright (C) 2007-2021 */ /* 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 29d053f00911729c05067acb35c1b9c98f5c5ccf..e1d72f1bad6fb2c142f5c29823ccea02caec917e 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-2020 */ +/* Copyright (C) 2007-2021 */ /* 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 1e182333b44a51177028ebd56271fe11865f3b5b..d83407a60b23aaab05a2c71bec117e87348ae1ba 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-2020 */ +/* Copyright (C) 2007-2021 */ /* 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 39341324a1fbc6d283fd8b97dc6358e6a5786839..14e07237e2bf6916229a52b51218e9dac63f3d9f 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-2020 */ +/* Copyright (C) 2007-2021 */ /* 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 0b5a692a43c9dbc445297ecf9c397db5ee270b2a..7202a70ee2ebb666f92790ad2f35f584e646280f 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-2020 */ +/* Copyright (C) 2007-2021 */ /* 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 2ace5531ce27f878059dcf56770325010bb774bc..bb7d01a808b004a8760f2ce8f6e1ca22905531c4 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-2020 */ +/* Copyright (C) 2007-2021 */ /* 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 0b891c23224820effd54f872e6cf263a97408542..e070cc7a0319a8b29938950c0c7a089e8620ca19 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-2020 */ +/* Copyright (C) 2007-2021 */ /* 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 698a2d93f9be45724f38e57cde499138468e1570..3a45a4478e3a256fcf0810ec7861d74a060f1cf7 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-2020 */ +/* Copyright (C) 2007-2021 */ /* 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 76d0a63e928c0709b1558324fff80bc9a64946de..b7613a072ea5e1363658751a9d5d65f1947082b4 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-2020 */ +/* Copyright (C) 2007-2021 */ /* 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 a5ad019cda70e7138777737e40d98181c84e5bf6..55f0af019870bb1b6931a2d683ec6336330ae635 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-2020 */ +/* Copyright (C) 2007-2021 */ /* 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 4fdb19510b2f030b0f4919fa2a9eacfb665a9ede..04ecc9c8ac5b8be9e38f384b5c0f781143983480 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-2020 */ +/* Copyright (C) 2007-2021 */ /* 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 cfe87a0aadb3b266808016e3536379e6e8592271..ed8cbae3870278b9f397df2f8d9b8f758cd1a0c5 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-2020 */ +/* Copyright (C) 2007-2021 */ /* 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 265094f0eafe0ad170acef340d9e4696cb7eafa4..faa3cbe93b621e24b9ef78385941baa4b6564a2e 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-2020 */ +/* Copyright (C) 2007-2021 */ /* 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 7dd02c5a1718b5a573aabd462d24797186f8d0fe..c8914c361f490cbb39ed80851ed9cdfead42d066 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-2020 */ +/* Copyright (C) 2007-2021 */ /* 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 aac1acafad565b6ca5f15b44de3a88abd22516c7..0cc5f5337675eb31f0250418591bcc680155bf15 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-2020 */ +/* Copyright (C) 2007-2021 */ /* 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 4aa82952cd8eca097b7f780489e4fcf0235bed99..31c548e6b771b329a54d9a6e2c1356bf376e0c48 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-2020 */ +/* Copyright (C) 2007-2021 */ /* 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 c078fb0c42a19fedeb84367350898c8ce0ce2cf4..93af71842ead2ee4694cc3d0c6a496f60406e090 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-2020 */ +/* Copyright (C) 2007-2021 */ /* 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 dc3669dc9c09ce680de505f4e88501494c05f469..2daf07ca925cb3924f760b6ff56e8cdf6146156f 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-2020 */ +/* Copyright (C) 2007-2021 */ /* 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 a33ac7648b658ea3f2d664553b04252fc92405c9..96fceef5c4b6d4119d0a539e05f2bab2db6bc7e5 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-2020 */ +/* Copyright (C) 2007-2021 */ /* 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 6db956697253c72ec08f69275e39d891b7833e8d..a983554e5ab27a860740348d491762c5f904f239 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-2020 */ +/* Copyright (C) 2007-2021 */ /* 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 546d0b046a7860e9bea67edf86360c2eacde587e..f57438ff1684676d554a31ea28bcfb9d0df63627 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-2020 */ +/* Copyright (C) 2007-2021 */ /* 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 index aef4f536c808adcd12ea9bfdbc82d645e3d81418..875f746cc4d71193055c581c0054ece30d86c456 100644 --- a/share/libc/__fc_gcc_builtins.h +++ b/share/libc/__fc_gcc_builtins.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/__fc_inet.h b/share/libc/__fc_inet.h index cdb6eab9bdcbe9f1fb32903c67455fa107a7a371..5904cd5fff16da2ee40276eb02bdac5d8a5d6a7a 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/__fc_integer.h b/share/libc/__fc_integer.h index ec13533449295ac9a7109e66bc37f7e7c3b38383..cb844c52014edd973f8ef5df0a8026456edcc1a3 100644 --- a/share/libc/__fc_integer.h +++ b/share/libc/__fc_integer.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/__fc_machdep.h b/share/libc/__fc_machdep.h index 39a8c7b78a436263450fdc5f9e7ffa35ccdfcdf7..0f896073b29e71b5ab81eae8e7069dff0b7ee7b8 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/__fc_machdep_linux_shared.h b/share/libc/__fc_machdep_linux_shared.h index 96687a8db94bb18d477e9c9a9cf5cf3aac832251..03639befe95c9d1f3bb0a270cef3d2ff08830410 100644 --- a/share/libc/__fc_machdep_linux_shared.h +++ b/share/libc/__fc_machdep_linux_shared.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/__fc_runtime.c b/share/libc/__fc_runtime.c index 661e71a4e50939a2f7150f9860e9a1a8be40e52a..6c9dff3a43253b26f03383e547ca4ad30a721faa 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/__fc_select.h b/share/libc/__fc_select.h index 33c4c1cbd78f7cdfb56fbccffe65f7e4c894fcbb..4fc0f3b0aa6e161a24d6daefa686adb5e5223392 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-2020 */ +/* Copyright (C) 2007-2021 */ /* 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 929bf2c6238636daf5cdb34d05e3919d47475782..579d7f06097425a18dc10f65484efadad05b48bb 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/alloca.h b/share/libc/alloca.h index 0745815cd9802465fc0699bd4ee53c633e9ef572..021df05b3c36b7c2e338e4fb9dc406ee33ca379e 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/arpa/inet.h b/share/libc/arpa/inet.h index 07e7d70a191b7c42a1f52d39cd15b7ac83547d20..1621214a69faed626466a299afebc61580317761 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/assert.c b/share/libc/assert.c index 2b3d0dd72672e71edbd4e358b386db8829153325..201fabc19d2141324f7935b30e472d97ecc70304 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/assert.h b/share/libc/assert.h index c36cb54a52f90f4daff740ffdb7287514209a4b2..0886eac92d58bb02635d595448dcc83ba4f914bb 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/byteswap.h b/share/libc/byteswap.h index 18bea6617e391b1377ae9c4b3130ac380d7d6fb2..482159d8c35d396e17f867a3f39c7f2ee27a0eb3 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/complex.h b/share/libc/complex.h index 8d1db048a2642509121cab25b010a528c911585b..5ddf6cc2c255b612c8cb4c05873c9ad3901ef258 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/ctype.c b/share/libc/ctype.c index 24751fd206995bb209b824510ee28a17ccd62649..b959a9460419074ffa189cead3edda1374e8aa08 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/ctype.h b/share/libc/ctype.h index 1a83c8394dfb099c64fbcb14d430a3b8d935f5ee..268c9c88be186db32cbe3e1b628e46547b8b1e66 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/dirent.h b/share/libc/dirent.h index 008b4008cf8a2fea9e32f60f926f8e90ff1a5daa..d34f93c7edd9fbc8fb84c5ee38b2a9f7982c3328 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/dlfcn.h b/share/libc/dlfcn.h index 96184d2e013f6ba069cefc93b175d647f9ecfd88..20324d7bf797f3a72716d8c7fa488f3a136e9081 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/endian.h b/share/libc/endian.h index 00beca84df813eeb4efa03977634fba813ef0eaa..5e868d0dea7eedf212334f183bbd3e18dba558a4 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/errno.c b/share/libc/errno.c index 785e3a42d91d223781672dc9d221cc9aa354d51c..90183cb9085a769709b79bd2abc50b84cbee18c5 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/errno.h b/share/libc/errno.h index b166d602f2dede40ecdcfe723438495b4922cb44..392f8226d8da65085f6a69045c9d027edb7bbb64 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/fcntl.h b/share/libc/fcntl.h index 954ca1a6522703b10bd0f6535304596195a48f8b..a8ea0805a836b296e62470cef64a96765cbf825e 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/features.h b/share/libc/features.h index 4d1fa6cae92a6a720c82ac102e5eede1e93fb3fe..33ba5c44519ca2dbf961e7feea81bca02f001f58 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/fenv.c b/share/libc/fenv.c index 53644e303f765779cb71ab0a8d97a3f4053b382e..1f59657d94c7aa3ad9b729666964c960a62e6b9e 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/fenv.h b/share/libc/fenv.h index 5428602c7ca1af66feae7c49167b5089e34bce54..cde617b2073ee4c0c4c614466edb0e841f262575 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/float.h b/share/libc/float.h index 7f15d24fe977ba44e80e9051d93b8e771fe924e4..ac3dae66656f0e247c849366147a6ab3b624ec08 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/fnmatch.h b/share/libc/fnmatch.h index 92cb1fd6a8f32ff43f431fd673b13cb983c3fa47..a5d21561afba91654ecac487458c5843e1175fb5 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/ftw.h b/share/libc/ftw.h index 99b70339c853a8ff065bc3a3de614988c8eda592..b702c27ad2dceca39d54f0b858fbc9698446166f 100644 --- a/share/libc/ftw.h +++ b/share/libc/ftw.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/getopt.c b/share/libc/getopt.c index cc32174f8ee25af078e2c486ad576e5a77c6b0a6..dcd6e7976c79a299df8a18c7e13163483cb20cdd 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/getopt.h b/share/libc/getopt.h index d3f0ae915d94b13148942e408155cb0ff73f8ecd..ed3f45384b71e51ed761a1e0d67c7f38462eb608 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/glob.c b/share/libc/glob.c index 4f29323537c4b8945c8a60ad3b9542381736004f..b4b55cda11a3ad9d9538da387aebb78926345d06 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/glob.h b/share/libc/glob.h index ba30b24faf6e4c3d81ee63d386b73ee3cde81609..cd6987ef49d177d5b657fcb26111ff813db94f47 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/grp.h b/share/libc/grp.h index 0c2ecaf6fa9d40982ee3f2e4d96cc058cb12ba70..82c5fb76865baba7b72384b2e9d18c7a216fc354 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/iconv.h b/share/libc/iconv.h index cb6875b8f0830008aaae2ae304484bafeaa6ddd0..a4aa0f48a3a46ff8529a604380d8773a656be1aa 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/ifaddrs.h b/share/libc/ifaddrs.h index adc7b011ff258b45cb311cbf45a295b2ec9328ab..bb85c96716014014482c51e5bda7e09a1861744c 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/inttypes.c b/share/libc/inttypes.c index 5a5e71762ccb620b7660e25d019e487f6f456d82..56c613844f53a1e795e28984b84a5184ec78c216 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/inttypes.h b/share/libc/inttypes.h index 49becc11ad8aaf4c816cb85cac8aae27c5f24874..5aebb0cfe669757688eec73cffbae9fb13ff33f4 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/iso646.h b/share/libc/iso646.h index 0021b7d7e23a5aa316bc26fe5951a656fb641786..a24b936810fec69f2dc37d0e14afc4b91c80e6a5 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/libgen.h b/share/libc/libgen.h index a1836e5ea90e8abad07a368e64bce95a70cfdac1..84a397167bba58916fa050901842843fa26715e5 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/limits.h b/share/libc/limits.h index aac40203a83d6b9229b3f3562df62ca13d6ac103..be32d497acd2883f59ef9096978290932287fc37 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/locale.c b/share/libc/locale.c index 9d23c852e20e192df687d60e423b8657dd2c81ad..0b3dc103fce5463b9c65b9522fdb8eb7b2d0d6c4 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/locale.h b/share/libc/locale.h index cbe7fec2c6db0439274579f1c2ebe582f344eaa5..ca23603228d31d79d2a1b3d2f2870df595cb9eb6 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/malloc.h b/share/libc/malloc.h index f1b5e0f26be8ca6f75abca7008ed51768a4f33f6..13fa0a0d0aed0d22e8958a8a03a5fd2accf733b2 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/math.c b/share/libc/math.c index e2416c5c8b62f37c6bfc4abab2a3a1b05f3ca9c5..97d057860d89491e79c123801d8a344aa1860067 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/math.h b/share/libc/math.h index 10229ad2ec85d98a834f04d16d6f01f5bc7e3046..f8b370fae2ef29472cc6a2f7aac0defa95979607 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/memory.h b/share/libc/memory.h index 2d613109dc9d57b785f03fc8d0ae803d96ee663d..a93ab7a06383192d7166078462f3388ab5872d4c 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/net/if.h b/share/libc/net/if.h index 1cbc9f278f10bdae070fca6f9b93a40249a50b16..c853f1ba3a31f958c6bcc30a9bc9b9c58b8552de 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/netdb.c b/share/libc/netdb.c index 53c4b472ade5e9cffc6a4c50322b46fc9107d14d..887b73f5bc84aa43b1f4afdb5be6f54ec884fa53 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/netdb.h b/share/libc/netdb.h index d93c6be3d74819925982ff9fc8374e761170a837..68f12a1ccf8e929e753b86f9223ed49031911545 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/netinet/in.h b/share/libc/netinet/in.h index 6eb54f02eb08689f98c9de89298b8ca1535510dc..329b795e69e461ced11e2c40b0db4b890b849988 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/netinet/ip.h b/share/libc/netinet/ip.h index e4e709f347008b1b99daf8f5921f7e841fc443bb..9c15990c9f74c28ce6d6dc34d4d48bc4a2dbec33 100644 --- a/share/libc/netinet/ip.h +++ b/share/libc/netinet/ip.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/netinet/tcp.h b/share/libc/netinet/tcp.h index a87954a655ae87e5e60a0a79418a90b68854f658..d52d17fee1459b119b4ee9a97056cfccf4912cb8 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/nl_types.h b/share/libc/nl_types.h index 1fbc06f19bb80184a1e8d543e21ade94865fb91b..ce6393142042d36204a539ba0a707fb6659fe1b4 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/poll.h b/share/libc/poll.h index 1ed68dc4b0f0e0060cf4b9868824c546ddb47b85..6e16e68e50c00eca57d9a3141a9fccaa519db52c 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/pthread.h b/share/libc/pthread.h index 08c08ca6449dc213d5137bf473b61ea2a0456544..88b97b4de46a457375a343fea4793a0cbf4ef6d7 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/pwd.h b/share/libc/pwd.h index 4a8def9815877380add9fdbf03eee18885207998..f0e37fef4d6d1b36d513e07ea8beedac43e7df6a 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/regex.h b/share/libc/regex.h index 58ece2b8fe60135291e699736ec07d7f1fe0f9a8..c2bdf2b425113a938daa1de1d651b9641e966483 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/resolv.h b/share/libc/resolv.h index 808aa1528ff5cf579fb952a564525a1267143bee..cd39508dc18830ec262773f570cd1375301c85cd 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/sched.h b/share/libc/sched.h index e47f9a462fb2a7bf52ccd1618ba547a199fd7c9b..bf609d91c058fb8824492001dbcab34ea943a0cf 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/semaphore.h b/share/libc/semaphore.h index fd29b4b9fcb44fe586edb6eb0b6117e2aa359f4d..d36408f4b1aa287af74e4c13d30f828b1547ded7 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/setjmp.h b/share/libc/setjmp.h index b5cfe41784d6d80132b96c2e2300d77a0fbb2f24..56b0ddf54911d1d988686c8d3702e239b4e6edc7 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/signal.c b/share/libc/signal.c index 7238ff1db2bf13f717a9442e6c53409b622a7f0e..e74237207d612e4dfee8dd737560184fce40fc40 100644 --- a/share/libc/signal.c +++ b/share/libc/signal.c @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/signal.h b/share/libc/signal.h index 063ba74ba581184005d570549e26d07323a2652c..37749792bb6187579df6a8e994f804b9bfd99e7f 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/stdarg.h b/share/libc/stdarg.h index d02591b6def49dbdd31425e7cf53e2d4fc3fd68e..0d17b34cb854185c8d2bf588e0ba3e58604ea6cb 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/stdbool.h b/share/libc/stdbool.h index f1ae8e86273d05764b59e58a3c8a916e16670e3e..c7eee3eeab20337d22d1555b2a406fd51a78275f 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/stddef.h b/share/libc/stddef.h index a3ec58168cf01dd644bc74089a40be0896f84cac..664b507ac372d6f998796f4b041ccbb3ff30a77d 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/stdint.h b/share/libc/stdint.h index 812cf9b6613db8cc130b596f7bb9a87682e1eea3..809e3ccd7b05e029e27157e07dbb584cf01f9f26 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/stdio.c b/share/libc/stdio.c index dcef7291f9dd378b027088e9d2905984757b1b38..0da68a57ac73d70d2a47d102566a06265092dd14 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/stdio.h b/share/libc/stdio.h index fe7f34f40a97524cb22e1f84377bdc2a7a34d99d..69e8f869721672cd0ab6f6981a012fa561257cc3 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/stdlib.c b/share/libc/stdlib.c index 7437c80fd775481c4bc32ab6d9bd85c3f59dc6f7..9874c18211f312864165db98c7e9ac3adef3e402 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/stdlib.h b/share/libc/stdlib.h index 541fc9664bb7724d7024d8548edb38d5bf4e1475..98735a9afbaabfd7ad65bda2459c2a1b60231e9a 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/string.c b/share/libc/string.c index 26a04b26ab4dddeda687e6469a72fd54ec42d189..998ca167775c63aeb536528f925d71204e8637e2 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/string.h b/share/libc/string.h index a2b62c15e8dfef158d4d47585d835bcbc8606236..2fd6f72d2493a1b407f85a707f348feea8dfdc64 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/strings.h b/share/libc/strings.h index 1b83bbd2215de385725764b8d794f16b0ac9aff2..b1810666145f3548d40928a7da07126fb6cae714 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/stropts.h b/share/libc/stropts.h index f3965901f03365f099f88a820b167fd51c830dfc..822cbc6aa23e7cf492a64d21ad6a61dbde4e3128 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/sys/file.h b/share/libc/sys/file.h index b627e24badd85e725310daaa6287a44af726f248..63364dcd46963d8c85f78c410aadac82ea8c8d9f 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/sys/ioctl.h b/share/libc/sys/ioctl.h index 82372ab303722507f054f37237e1fc882b34c54d..6976a6674962b99bfaa11b213c49a34ac5b77e55 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/sys/ipc.h b/share/libc/sys/ipc.h index 7a32d0b69a805742f8cf874f13c31ef1b69a7ae1..12adba49e62bf86549701cf0d243a44de8decf82 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/sys/mman.h b/share/libc/sys/mman.h index ed2baf1ff2c81de8c8870e24bd878b21d4cf5ab8..552cb9a6c57983884312c5e83c64a3cedfc20938 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/sys/param.h b/share/libc/sys/param.h index a8206b81cd6a78791ee12d0ae7b8438eeba5d638..45c9501ad652d852ecc201c0dcc154bad38acbc8 100644 --- a/share/libc/sys/param.h +++ b/share/libc/sys/param.h @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/sys/random.h b/share/libc/sys/random.h index 2278beb926f2dc44a078cbb42b721e966d2d1f62..dcd16b6e56c7e9e9a056edd8e78de50090d9edce 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/sys/resource.h b/share/libc/sys/resource.h index b6c35f32b8906cf2c74173090ed55dbdeb9c042f..4ea734ce7e9487bf41e31c2ee4621988328249a7 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/sys/select.h b/share/libc/sys/select.h index c4003438ced6bc4c31dd34cc9a8e10b023f8b5de..c680c04d2e2ec48a879ee4b74dccc8468abfbdd2 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/sys/shm.h b/share/libc/sys/shm.h index 3e068753f513d9578a843d58fad9543f52d6d41d..25b080f81fb0832a75040987067c1e1c586d9923 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/sys/signal.h b/share/libc/sys/signal.h index 8768ac1c925cde9d6358353d9b9c184d17e0b79e..ae83b87a8c03b2a1807bdcff140d71dbbfa33692 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/sys/socket.h b/share/libc/sys/socket.h index faad4d167cb90fb2aee12659ee8782fb3e903b6a..558129b5165e992f1a3c7eb6ced85231ac759594 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/sys/stat.h b/share/libc/sys/stat.h index 8dc437102d8d8fb9f980b1b4f7c643caae28aff4..84cb183263707d83fee1afe745ac2e60dfd84fcb 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/sys/time.h b/share/libc/sys/time.h index e7f0f0ba66f33ac003e6ac54fa4063a03ffdadaf..ce3c8be4b5029c0c74d8d54edff859949934a7ae 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/sys/times.h b/share/libc/sys/times.h index 8d54e4e2edaa7f894ec571f4575070beb2c8525d..49cf6b914024dc322eda8faa07c26a54e44442d9 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/sys/timex.h b/share/libc/sys/timex.h index f3f8369653e49c1b23ee0275990559632bbcc896..3446c7d4b46b31ee647dded70da6cf5920124faa 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/sys/types.h b/share/libc/sys/types.h index 41ba9673a06b625d828b3cbfbe577b66579571ec..d540a3b9df7a7469f367a4bc69585a872a7546ab 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/sys/uio.h b/share/libc/sys/uio.h index c4870f1c7e5d9222acb911706327a8806fc5a7a2..7ef6ce26a73b7c58c36a3413b228658349faa9ff 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/sys/un.h b/share/libc/sys/un.h index c8d2594d94d7e4337b9ebc99b8018288a11bb2a8..80e7b56937870e762869d87b0dd0b4c699482b99 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/sys/utsname.h b/share/libc/sys/utsname.h index b26453462934619f6359b93963bc0b95e13bda93..0220d6b457ad4b5db4091500c4292802d402156d 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/sys/wait.h b/share/libc/sys/wait.h index 9509d1daa5e03c9a8691cbe6d9a4db265a92c2de..df14c934bc7579ada01667cb475a3f86acc24111 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/syslog.h b/share/libc/syslog.h index 6c227214d868fb91da9b2b299651b6641d32995b..a4819eed986d6d51c644c201d0fbcfa98b99a1b1 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/termios.h b/share/libc/termios.h index ccaba4b78986ef16eae089d9413ab3eeee641122..f90381daceb4cad4d11fa19b99e3274c5f473dc6 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/tgmath.h b/share/libc/tgmath.h index bdc10ed93299191b0a2c5eeb36a84ffb66d5613e..87a1c95a92f90b8abdb567ce049743fbc9cc8c2e 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/time.c b/share/libc/time.c index c12a478c9d9bffda87e3cac64571951d74332e5e..777dac4ef182359e2ac020175d6a4cb258818f8f 100644 --- a/share/libc/time.c +++ b/share/libc/time.c @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/time.h b/share/libc/time.h index 9b11b2503582007f275f894cebdcfafc6a3e45bc..d156b59c620e759c9709a9b8da294049b57e0476 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/unistd.c b/share/libc/unistd.c index 968fbdf0fa376a5b926a7a94f1f83a2ef3e8d2e8..c3050e3c51e1ce6638c7292d167a6bed620878c9 100644 --- a/share/libc/unistd.c +++ b/share/libc/unistd.c @@ -2,7 +2,7 @@ /* */ /* This file is part of Frama-C. */ /* */ -/* Copyright (C) 2007-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/unistd.h b/share/libc/unistd.h index 48f00bd66117f8c91ab019c13ef17e0f9a11fc23..301ce7d5e4b7e692c54b054ec569f03bd4fc3735 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/utime.h b/share/libc/utime.h index 71a109cf89d7f181d999ae1361518c971ff7120e..846de75ba52a0407ec5a5266a419c70ff8b0c077 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/utmpx.h b/share/libc/utmpx.h index 9fa37699215193fca1f6bf1fa72b86d1aae18070..17aefa94f035c2221b1ccc52a4094028a4ffc0d2 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/share/libc/wchar.c b/share/libc/wchar.c index 565670186d0b76f467493a536e37e8d950cde592..6a54fbfd7aee508cbaf4243ebc23c173dfc8827c 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ @@ -91,4 +91,18 @@ wchar_t* wcsncat(wchar_t *dest, const wchar_t *src, size_t n) return dest; } +/* Warning: read considerations about malloc() in Frama-C */ +#include "stdlib.h" +wchar_t *wcsdup(const wchar_t *ws) +{ + size_t l = wcslen(ws) + 1; + wchar_t *p = malloc(sizeof(wchar_t) * l); + if (!p) { + errno = ENOMEM; + return 0; + } + wmemcpy(p, ws, l); + return p; +} + __POP_FC_STDLIB diff --git a/share/libc/wchar.h b/share/libc/wchar.h index 5ea6aa80e83353e559c1f2fec72ba6504d6ab0c5..58bfe153f33d1aae90c08361352d63dd4db319bb 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ @@ -260,6 +260,13 @@ extern wchar_t *fgetws(wchar_t * restrict ws, int n, FILE * restrict stream); } */ +/*@ + requires valid_wstring_ws1: valid_read_wstring(ws1); + requires valid_wstring_ws2: valid_read_wstring(ws2); + assigns \result \from indirect:ws1[0..], indirect:ws2[0..]; +*/ +extern int wcscasecmp(const wchar_t *ws1, const wchar_t *ws2); + /* It is unclear whether these are more often in wchar.h or stdio.h */ extern int fwprintf(FILE * stream, const wchar_t * format, ...); diff --git a/share/libc/wctype.h b/share/libc/wctype.h index a65baafe48adc967d91adc4bbb01dc5f99a750c6..b0b0b130f4fd07e257f2ed3406f3c54467a77296 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-2020 */ +/* Copyright (C) 2007-2021 */ /* 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 83d2a8b902edbf14ab5fa8d8d705d2f9fabfb206..639b8a991ccb7ff661606e73734fcc16cbaba00d 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_internals/parsing/cparser.mly b/src/kernel_internals/parsing/cparser.mly index 26a088776423753ffba37c1c13e53a6c59c29455..11d9ae4dbcd3c6a7af92e7f44b7412d1a2585836 100644 --- a/src/kernel_internals/parsing/cparser.mly +++ b/src/kernel_internals/parsing/cparser.mly @@ -1528,7 +1528,7 @@ attribute: | VOLATILE { ("volatile",[]), $1 } | GHOST { ("ghost",[]), $1 } | ATTRIBUTE_ANNOT { let annot, loc = $1 in - ("$annot:" ^ annot, []), loc } + (Cil.mkAttrAnnot annot, []), loc } ; /* (* sm: I need something that just includes __attribute__ and nothing more, diff --git a/src/kernel_internals/parsing/logic_lexer.mli b/src/kernel_internals/parsing/logic_lexer.mli index e0302bff9bed26115c5628a4f35396b9183d7c74..579e2b0a47be0696a9e8a4ced0cf1511c7ebdd6e 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 ad2a6c5f1ce6aa919f840f588a4a0ba949778492..4029bbd19f1f7059500d1d8b00739c26b8e86032 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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_parser.mly b/src/kernel_internals/parsing/logic_parser.mly index 5cdd093c8794c2fd9bcb4996020694cf08d8de67..6f0ad747309650ac647c2d41ccb6c6a4f3eecbaa 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* INRIA (Institut National de Recherche en Informatique et en */ @@ -1699,15 +1699,15 @@ logic_def: | LEMMA poly_id COLON full_lexpr SEMICOLON { let (id,labels,tvars) = $2 in exit_type_variables_scope (); - LDlemma (id, false, labels, tvars, toplevel_pred Assert $4) } + LDlemma (id, labels, tvars, toplevel_pred Assert $4) } | CHECK_LEMMA poly_id COLON full_lexpr SEMICOLON { let (id,labels,tvars) = $2 in exit_type_variables_scope (); - LDlemma (id, false, labels, tvars, toplevel_pred Check $4) } + LDlemma (id, labels, tvars, toplevel_pred Check $4) } | ADMIT_LEMMA poly_id COLON full_lexpr SEMICOLON { let (id,labels,tvars) = $2 in exit_type_variables_scope (); - LDlemma (id, false, labels, tvars, toplevel_pred Admit $4) } + LDlemma (id, labels, tvars, toplevel_pred Admit $4) } | AXIOMATIC any_identifier LBRACE logic_decls RBRACE { LDaxiomatic($2,$4) } | TYPE poly_id_type_add_typename EQUAL typedef SEMICOLON @@ -1780,7 +1780,7 @@ logic_decl: | AXIOM poly_id COLON full_lexpr SEMICOLON { let (id,labels,tvars) = $2 in exit_type_variables_scope (); - LDlemma (id, true, labels, tvars, toplevel_pred Assert $4) } + LDlemma (id, labels, tvars, toplevel_pred Admit $4) } ; logic_decl_loc: diff --git a/src/kernel_internals/parsing/logic_preprocess.mli b/src/kernel_internals/parsing/logic_preprocess.mli index 24110e8bdd47c8304df6e4c9e340ed728014125e..6fbac6da4811d487029b23cd87ae846e02b0d23f 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 765d158daf4a966e8c609f7a6f0e56426b143a7e..67bc6b0fe7b38bcf871280c4bac5b17de47c7c24 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) @@ -171,7 +171,10 @@ Buffer.output_buffer ppfile preprocess_buffer; close_out ppfile; let cppname = Extlib.temp_file_cleanup_at_exit ~debug "cppannot" suffix in - let res = Sys.command (cpp ppname cppname) in + let pp_cmd = cpp ppname cppname in + Kernel.feedback ~dkey:Kernel.dkey_pp_logic + "logic preprocessing with \"%s\"" pp_cmd; + let res = Sys.command pp_cmd in let result_file = if res <> 0 then begin abort_preprocess "Preprocessor call exited with an error"; diff --git a/src/kernel_internals/runtime/boot.ml b/src/kernel_internals/runtime/boot.ml index 71c2c5c00ec6d76d750ad9505e0947d77d8770dd..51cde96cb178def649b95a13dbfb1536cef1e9c4 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_internals/runtime/dump_config.ml b/src/kernel_internals/runtime/dump_config.ml index 15ffcdaad28cd58a3006b69de9b954946abec2ac..f2e6e803a244ac7ea83be3d243fafddf9c9bdb8d 100644 --- a/src/kernel_internals/runtime/dump_config.ml +++ b/src/kernel_internals/runtime/dump_config.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_internals/runtime/dump_config.mli b/src/kernel_internals/runtime/dump_config.mli index 018f6f72255b3fe3ce065072b18903c578405fcb..006bbb7ae5dc96cb4945b875b5417bd06a3a4fcd 100644 --- a/src/kernel_internals/runtime/dump_config.mli +++ b/src/kernel_internals/runtime/dump_config.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_internals/runtime/fc_config.ml.in b/src/kernel_internals/runtime/fc_config.ml.in index 8fda151a90da255afe4368634d054349eda881f2..f312b009a0118faa6965c78ec4edf4b1677224d7 100644 --- a/src/kernel_internals/runtime/fc_config.ml.in +++ b/src/kernel_internals/runtime/fc_config.ml.in @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_internals/runtime/fc_config.mli b/src/kernel_internals/runtime/fc_config.mli index 14f5169a9f042608154549b61dd561c07b36c82a..5bbf87758c8e2da4c79594222c7db6b980d6ade6 100644 --- a/src/kernel_internals/runtime/fc_config.mli +++ b/src/kernel_internals/runtime/fc_config.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 1e1f014eacb3780858ba205074ee3921d7989f93..edd255e119eec61a659838dbec7d47c25b3e3dd9 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 cf88138fcde231ebedffeb0d70b42b7bee13410f..86af86690f1efdb9ba50beedc7ea969240e19b64 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 e01dc6f61c92e28d9a758dd4b1502f7258a5cd9b..0d531fbb09e1c850785ec7841f1695189b350d49 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 13608b411ed418dd5f4697a436c104f24415fc99..b822e400026e622132b038b39eee9e8c7477768d 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 2f4cffa49367a7dd56c1652b158f4c3100c96fef..391a0bec9a729f610780b121bbe132040b055064 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 11f26cc5bf12d49304fa30a01e87d592f44d3c21..ecac858d28deae0e81b7f4ea69f838de0b7404fd 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 6ebb0d2e05fac096aea5cb99bcb2b435fb7418f5..fd23b4bec48a74b72bd789d3b2f5df3bce4af279 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 b9145836812dddc9e2f8f24bc13eaadba395ffee..e6c1824fce4edddc8421d7ca3e1bfe76244812e0 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 0e6eba462cc4dcad44241f970c6cad726dd7b431..c9fe4aa91950ba2c50ef9b7831ff57586a0c82d4 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 21d04239663de36f3e20c3b6e81bc6a4e9a292be..8eacc4836657838f88673684df5ba8f230c75604 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 3aa2863075cbc0a49e8fd606500872cb6fdabbbb..49b6bedfe388cd8228899fb22baa2c4857e82fb2 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_internals/typing/alpha.ml b/src/kernel_internals/typing/alpha.ml index 727d2c77733d52b85bd88b6e909f69f36e46f6a5..b4d470ca682c49a31e0f02f6a45fe08c879d9dd7 100644 --- a/src/kernel_internals/typing/alpha.ml +++ b/src/kernel_internals/typing/alpha.ml @@ -161,7 +161,7 @@ let get_suffix_idx rename_mode infix = * been used. *) let alphaWorker ~(alphaTable: 'a alphaTable) - ?undolist + ~undolist ~(lookupname: string) ~(data:'a) (make_new: bool) : string * 'a = let prefix, infix = splitNameForAlpha ~lookupname in @@ -184,9 +184,7 @@ let alphaWorker ~(alphaTable: 'a alphaTable) (fun fmt (s,_) -> Format.fprintf fmt "%s" (Integer.to_string s))) suffixes; (* Save the undo info *) - (match undolist with - Some l -> l := AlphaChangedSuffix (rc, !rc) :: !l - | _ -> ()); + Option.iter (fun l -> l := AlphaChangedSuffix (rc, !rc) :: !l) undolist; let newname, newmin, (olddata: 'a), newsuffixes = match List.filter (fun (n, _) -> Integer.equal n curr_idx) suffixes @@ -211,9 +209,7 @@ let alphaWorker ~(alphaTable: 'a alphaTable) H.add infixes newinfix (ref (Integer.minus_one, [(Integer.minus_one, data)])); - (match undolist with - | Some l -> l:= AlphaAddedSuffix (prefix,newsuffix)::!l - | None -> ()); + Option.iter (fun l -> l := AlphaAddedSuffix (prefix, newsuffix) :: !l) undolist; base ^ newsuffix, newmin, l, (newmin, data) :: suffixes end else lookupname, min, data, suffixes | _ -> (Kernel.fatal "Cil.alphaWorker") @@ -239,12 +235,12 @@ let alphaWorker ~(alphaTable: 'a alphaTable) newname, olddata -let newAlphaName ~alphaTable ?undolist ~lookupname ~data = - alphaWorker ~alphaTable ?undolist ~lookupname ~data true +let newAlphaName ~alphaTable ~undolist ~lookupname ~data = + alphaWorker ~alphaTable ~undolist ~lookupname ~data true (** Just register the name so that we will not use in the future *) -let registerAlphaName ~alphaTable ?undolist ~lookupname ~data = - ignore (alphaWorker ~alphaTable ?undolist ~lookupname ~data false) +let registerAlphaName ~alphaTable ~lookupname ~data = + ignore (alphaWorker ~alphaTable ~undolist:None ~lookupname ~data false) let getAlphaPrefix ~lookupname = splitNameForAlpha ~lookupname diff --git a/src/kernel_internals/typing/alpha.mli b/src/kernel_internals/typing/alpha.mli index 9101266f4187f9bad0896d686939301ff27b8c3b..ca29d22cc941731502af181e11db2856cfbcb98f 100644 --- a/src/kernel_internals/typing/alpha.mli +++ b/src/kernel_internals/typing/alpha.mli @@ -73,14 +73,13 @@ type 'a alphaTable = * previous occurrence. This function knows about the location implicitly * from the [(Cil.CurrentLoc.get ())]. *) val newAlphaName: alphaTable: 'a alphaTable -> - ?undolist: 'a undoAlphaElement list ref -> + undolist: 'a undoAlphaElement list ref option -> lookupname:string -> data:'a -> string * 'a (** Register a name with an alpha conversion table to ensure that when later * we call newAlphaName we do not end up generating this one *) val registerAlphaName: alphaTable: 'a alphaTable -> - ?undolist: 'a undoAlphaElement list ref -> lookupname:string -> data:'a -> unit (** Split the name in preparation for newAlphaName. Returns a pair diff --git a/src/kernel_internals/typing/asm_contracts.ml b/src/kernel_internals/typing/asm_contracts.ml index a841b52040557d15f88774c4f07f1a99193a75d9..9de8a8b51ffe830ec161e0ea64b3fe7c44c11652 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 931450e8e4d8e4491ece085b96f032020567766f..2457863c1c733de62664cb3bbadafb3ab754a05e 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 703a2ea9f3b3548161133d0236d1928de8340b5d..64bd16cb8239e8272bed82fc0653977951537875 100644 --- a/src/kernel_internals/typing/cabs2cil.ml +++ b/src/kernel_internals/typing/cabs2cil.ml @@ -967,7 +967,7 @@ let alphaTable : location Alpha.alphaTable = H.create 307 * foo" or "union bar" *) let fresh_global lookupname = - fst (Alpha.newAlphaName alphaTable lookupname (CurrentLoc.get ())) + fst (Alpha.newAlphaName alphaTable None lookupname (CurrentLoc.get ())) (* To keep different name scopes different, we add prefixes to names * specifying the kind of name: the kind can be one of "" for variables or @@ -1026,7 +1026,7 @@ let newAlphaName in let data = CurrentLoc.get () in let newname, oldloc = - Alpha.newAlphaName ~alphaTable ?undolist ~lookupname ~data + Alpha.newAlphaName ~alphaTable ~undolist ~lookupname ~data in (match undo_scope, undolist with | None, None -> () @@ -1199,7 +1199,7 @@ let get_temp_name ghost () = let data = CurrentLoc.get() in let name = if ghost then "g_tmp" else "tmp" in let name, _ = - Alpha.newAlphaName ~alphaTable ~undolist ~lookupname:name ~data + Alpha.newAlphaName ~alphaTable ~undolist:(Some undolist) ~lookupname:name ~data in let undolist = !undolist in Alpha.undoAlphaChanges ~alphaTable ~undolist; @@ -1368,7 +1368,7 @@ let rec is_boolean_result e = (* Like Cil.mkCastT, but it calls typeForInsertedCast *) let makeCastT ~(e: exp) ~(oldt: typ) ~(newt: typ) = if need_cast oldt newt then - Cil.mkCastT e oldt (!typeForInsertedCast e oldt newt) + Cil.mkCastT oldt (!typeForInsertedCast e oldt newt) e else e let makeCast ~(e: exp) ~(newt: typ) = @@ -2652,8 +2652,8 @@ let rec combineTypes (what: combineWhat) (oldt: typ) (t: typ) : typ = evaluate them. Check first machine independent comparison. *) let checkEqualSize (machdep: bool) = let size_t = Cil.theMachine.Cil.typeOfSizeOf in - let size_t_oldsz' = Cil.mkCast ~force:false ~e:oldsz' ~newt:size_t in - let size_t_sz' = Cil.mkCast ~force:false ~e:sz' ~newt:size_t in + let size_t_oldsz' = Cil.mkCast ~force:false ~newt:size_t oldsz' in + let size_t_sz' = Cil.mkCast ~force:false ~newt:size_t sz' in ExpStructEq.equal (constFold machdep size_t_oldsz') (constFold machdep size_t_sz') @@ -2852,7 +2852,7 @@ let rec castTo ?context ?(fromsource=false) end else begin let nt' = if fromsource then nt' else !typeForInsertedCast e ot' nt' in let result = (nt', if theMachine.insertImplicitCasts || fromsource then - Cil.mkCastT ~force:true ~e ~oldt:ot ~newt:nt' else e) + Cil.mkCastT ~force:true ~oldt:ot ~newt:nt' e else e) in let error s = if fromsource then abort_context s else Kernel.fatal ~current:true s @@ -2872,10 +2872,10 @@ let rec castTo ?context ?(fromsource=false) else nt, Cil.mkCastT + ot nt' (constFold true (new_exp ~loc:e.eloc (BinOp(Ne,e,Cil.integer ~loc:e.eloc 0,intType)))) - ot nt' | TInt(_,_), TInt(_,_) -> (* We used to ignore attributes on integer-integer casts. Not anymore *) (* if ikindo = ikindn then (nt, e) else *) @@ -3923,7 +3923,7 @@ struct let anonCompFieldName = anonCompFieldName let conditionalConversion = logicConditionalConversion let find_macro _ = raise Not_found - let find_var ?label ~var = + let find_var ?label var = let find_from_curr_env test = (* logic has always access to the ghost variables. *) match Datatype.String.Hashtbl.find ghost_env var with diff --git a/src/kernel_internals/typing/cfg.ml b/src/kernel_internals/typing/cfg.ml index 3438e59ff51819ce28c437e4f00287ca463da39e..d9cb57f9193b322f97e4f69dbc54ca15714123a6 100644 --- a/src/kernel_internals/typing/cfg.ml +++ b/src/kernel_internals/typing/cfg.ml @@ -340,7 +340,7 @@ let computeFileCFG (f : file) = let labelAlphaTable : unit Alpha.alphaTable = Hashtbl.create 11 let freshLabel (base:string) = - fst (Alpha.newAlphaName labelAlphaTable base ()) + fst (Alpha.newAlphaName labelAlphaTable None base ()) let xform_switch_block ?(keepSwitch=false) b = diff --git a/src/kernel_internals/typing/ghost_accesses.ml b/src/kernel_internals/typing/ghost_accesses.ml index ae1eceffe9607d029a978c3ef746b07439497f68..0cbb74f56b4634077f09227e0f550a8684c85537 100644 --- a/src/kernel_internals/typing/ghost_accesses.ml +++ b/src/kernel_internals/typing/ghost_accesses.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_internals/typing/ghost_accesses.mli b/src/kernel_internals/typing/ghost_accesses.mli index 2b465e6add29b49715a1e5393f998c76015bbe55..4ddfd4aac14413a4473917c8462124ae342b91a7 100644 --- a/src/kernel_internals/typing/ghost_accesses.mli +++ b/src/kernel_internals/typing/ghost_accesses.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_internals/typing/ghost_cfg.ml b/src/kernel_internals/typing/ghost_cfg.ml index 524545e98d8ea1019647fb97ec05f01848719ed7..f440d88b5142c2576a68a81dcd351f82d5bee1ac 100644 --- a/src/kernel_internals/typing/ghost_cfg.ml +++ b/src/kernel_internals/typing/ghost_cfg.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_internals/typing/ghost_cfg.mli b/src/kernel_internals/typing/ghost_cfg.mli index 3450700f88324d97ec24be924317f2be4bcd0a11..a7f8f1a62e564293dbaf1cbce3d804cac01233a1 100644 --- a/src/kernel_internals/typing/ghost_cfg.mli +++ b/src/kernel_internals/typing/ghost_cfg.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_internals/typing/infer_annotations.ml b/src/kernel_internals/typing/infer_annotations.ml index 207cc91a28d224c8d9608d9e3ab55e1480809b26..e94dce2909ac3ed2036708d171370ed06fe3608b 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 0d91435e5c5000a6857df06451dfeda52ab0ea7c..d2691f7cf54eabe79ca7e3949ba9f070fa9cae2c 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 961fc5b3aacdbcb9e60074a996e1238af8389697..d63c53b04cea745d00e7ad1ef1189ed8b564ab3e 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 d0dd75e565470ed8fc056f653f98cf31a632ffce..af6401188e2478f11f800956fe9981a94aa660cd 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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/mergecil.ml b/src/kernel_internals/typing/mergecil.ml index 5815b0145f26b0ab9c25bee502028062e76cdb18..7fe064e19d786945e81b32f6ee274802dcadfd65 100644 --- a/src/kernel_internals/typing/mergecil.ml +++ b/src/kernel_internals/typing/mergecil.ml @@ -618,7 +618,7 @@ module EnumMerging = (e2.ename <- fst (Alpha.newAlphaName - aeAlpha e2.ename Cil_datatype.Location.unknown); + aeAlpha None e2.ename Cil_datatype.Location.unknown); Kernel.debug ~dkey:Kernel.dkey_linker "new anonymous name %s" e2.ename; false)))) @@ -867,8 +867,8 @@ let rec global_annot_without_irrelevant_attributes ga = | Daxiomatic(n,l,attr,loc) -> Daxiomatic(n,List.map global_annot_without_irrelevant_attributes l, drop_attributes_for_merge attr,loc) - | Dlemma (id,ax,labs,typs,st,attr,loc) -> - Dlemma (id,ax,labs,typs,st,drop_attributes_for_merge attr,loc) + | Dlemma (id,labs,typs,st,attr,loc) -> + Dlemma (id,labs,typs,st,drop_attributes_for_merge attr,loc) | Dtype (lti,loc) -> Dtype (logic_type_info_without_irrelevant_attributes lti, loc) | Dextended (ext, attr, loc) -> @@ -941,10 +941,10 @@ let rec global_annot_pass1 g = match g with ignore (PlainMerging.getNode ltEq ltSyn !currentFidx info.lt_name info (Some (l, !currentDeclIdx))) - | Dlemma (n,is_ax,labs,typs,st,attr,l) -> + | Dlemma (n,labs,typs,st,attr,l) -> CurrentLoc.set l; ignore (PlainMerging.getNode - llEq llSyn !currentFidx n (n,(is_ax,labs,typs,st,attr,l)) + llEq llSyn !currentFidx n (n,(labs,typs,st,attr,l)) (Some (l, !currentDeclIdx))) | Dextended(ext,_,l) -> CurrentLoc.set l; @@ -1403,7 +1403,7 @@ let update_compinfo ci = in Alpha.registerAlphaName sAlpha ci.cname loc; let orig_name = if ci.corig_name = "" then ci.cname else ci.corig_name in - let n, _ = Alpha.newAlphaName sAlpha orig_name loc in + let n, _ = Alpha.newAlphaName sAlpha None orig_name loc in let oldnode = PlainMerging.find true node in if oldnode == node then begin let node = @@ -1440,7 +1440,7 @@ let rec update_type_repr t = | None -> Cil_datatype.Location.unknown in Alpha.registerAlphaName vtAlpha ti.tname loc; - let n,_ = Alpha.newAlphaName vtAlpha ti.torig_name loc in + let n,_ = Alpha.newAlphaName vtAlpha None ti.torig_name loc in let oldnode = PlainMerging.find true node in if oldnode == node then begin let node = @@ -1569,15 +1569,15 @@ let matchLogicLemma oldfidx (oldid, _ as oldnode) fidx (id, _ as node) = let oldlnode = PlainMerging.getNode llEq llSyn oldfidx oldid oldnode None in let lnode = PlainMerging.getNode llEq llSyn fidx id node None in if oldlnode != lnode then begin - let (oldid,(oldax,oldlabs,oldtyps,oldst,oldattr,oldloc)) = oldlnode.ndata in + let (oldid,(oldlabs,oldtyps,oldst,oldattr,oldloc)) = oldlnode.ndata in let oldfidx = oldlnode.nfidx in - let (id,(ax,labs,typs,st,attr,loc)) = lnode.ndata in + let (id,(labs,typs,st,attr,loc)) = lnode.ndata in let fidx = lnode.nfidx in let oldattr = drop_attributes_for_merge oldattr in let attr = drop_attributes_for_merge attr in if Logic_utils.is_same_global_annotation - (Dlemma (oldid,oldax,oldlabs,oldtyps,oldst,oldattr,oldloc)) - (Dlemma (id,ax,labs,typs,st,attr,loc)) + (Dlemma (oldid,oldlabs,oldtyps,oldst,oldattr,oldloc)) + (Dlemma (id,labs,typs,st,attr,loc)) then begin if oldfidx < fidx then lnode.nrep <- oldlnode.nrep @@ -1851,7 +1851,7 @@ let oneFilePass1 (f:file) : unit = let orig_name = if ei.eorig_name = "" then ei.ename else ei.eorig_name in - ignore (Alpha.newAlphaName aeAlpha orig_name l); + ignore (Alpha.newAlphaName aeAlpha None orig_name l); ei.ereferenced <- false; ignore (EnumMerging.getNode eEq eSyn !currentFidx ei ei @@ -2375,7 +2375,7 @@ let rec logic_annot_pass2 ~in_axiomatic g a = mergePushGlobals g | Some _ -> () end - | Dlemma (n,_,_,_,_,_,l) -> + | Dlemma (n,_,_,_,_,l) -> begin CurrentLoc.set l; match PlainMerging.findReplacement true llEq !currentFidx n with @@ -2670,7 +2670,7 @@ let oneFilePass2 (f: file) = (* Maybe it is static. Rename it then *) if vi.vstorage = Static then begin let newName, _ = - Alpha.newAlphaName vtAlpha vi.vname (CurrentLoc.get ()) + Alpha.newAlphaName vtAlpha None vi.vname (CurrentLoc.get ()) in let formals_decl = try Some (Cil.getFormalsDecl vi) @@ -3026,7 +3026,7 @@ let oneFilePass2 (f: file) = if ci.corig_name = "" then ci.cname else ci.corig_name in let newname, _ = - Alpha.newAlphaName sAlpha orig_name (CurrentLoc.get ()) + Alpha.newAlphaName sAlpha None orig_name (CurrentLoc.get ()) in ci.cname <- newname; ci.creferenced <- true; @@ -3055,7 +3055,7 @@ let oneFilePass2 (f: file) = if ei.eorig_name = "" then ei.ename else ei.eorig_name in let newname, _ = - Alpha.newAlphaName eAlpha orig_name (CurrentLoc.get ()) + Alpha.newAlphaName eAlpha None orig_name (CurrentLoc.get ()) in ei.ename <- newname; ei.ereferenced <- true; @@ -3064,7 +3064,7 @@ let oneFilePass2 (f: file) = List.iter (fun item -> let newname,_ = - Alpha.newAlphaName vtAlpha item.eiorig_name item.eiloc + Alpha.newAlphaName vtAlpha None item.eiorig_name item.eiloc in item.einame <- newname) ei.eitems; @@ -3108,7 +3108,7 @@ let oneFilePass2 (f: file) = with None -> (* We must rename it and keep it *) let newname, _ = - Alpha.newAlphaName vtAlpha ti.torig_name (CurrentLoc.get ()) + Alpha.newAlphaName vtAlpha None ti.torig_name (CurrentLoc.get ()) in ti.tname <- newname; ti.treferenced <- true; diff --git a/src/kernel_internals/typing/substitute_const_globals.ml b/src/kernel_internals/typing/substitute_const_globals.ml index fcfc89f95d77d7c462aba1ba45ca9846ddc5f083..3544d1f61df0916503baec586a127ee9954853fe 100644 --- a/src/kernel_internals/typing/substitute_const_globals.ml +++ b/src/kernel_internals/typing/substitute_const_globals.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_internals/typing/substitute_const_globals.mli b/src/kernel_internals/typing/substitute_const_globals.mli index 49fab4d08e693b76aa57d736303e7f73078a545c..85f3f86184f20c7c72f96a1bf5f44980f6752544 100644 --- a/src/kernel_internals/typing/substitute_const_globals.mli +++ b/src/kernel_internals/typing/substitute_const_globals.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_internals/typing/translate_lightweight.ml b/src/kernel_internals/typing/translate_lightweight.ml index 8bed9c25d6fec413bfb4085f3ff0e310aec52270..87ec8e5ac33969b260b21acc933182a7bed7d75f 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 db3df2b7fd9bc38a4a2fa51960647aa563449363..c8c10c22efce2f3304141c4ca33d3040dea1eb69 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 2ef5c657b18fb1ffc3bd7c32eac702fd0482aa17..cecd0aefe59e5453d5afca8d698d7ffa062fbd24 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_internals/typing/unroll_loops.mli b/src/kernel_internals/typing/unroll_loops.mli index bc72d0f1fe92a9c40c7d33f5b2a27b692e42fa3d..679216123be753b90eb20a61960e6ec54661a6ed 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 89202b4021e323eb84e96c3951b1246e64149594..e7bbbb5bf8cb8aa68dc26b0c57ce254a0749e53a 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 36591c60c94120537454517b7caa1b902d8cafac..68bcf7f7e40af8c77476cd0cfb5d74be1d4567e5 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 095c1b9cef30592a727e57fd69af31aeb6640c8b..0bfde596c3a5a58f79426bb00d5e24df90604f56 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/abstract_interp/base.mli b/src/kernel_services/abstract_interp/base.mli index 924cf619648fa3874122ea6ed6c3c32610ca1e7b..708c79c5579a7cd21c2b3a44e64001e47d2cbef7 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 baaa5fdecbd491d31902741bb8888904b493d6b5..5b3d5be7595cb425e4796c4fe01d9ba5931fd6e5 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 0af283e70bf755cd874fc5ea3bc51725fd8007d6..35688acb6bd7118ab430dbc5d9ec14ee5f9a1e88 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/abstract_interp/eva_lattice_type.mli b/src/kernel_services/abstract_interp/eva_lattice_type.mli index 9b3420841225cec56bce74a48d0cf2558feaa4cb..9519f311e9f56086b9002671fd083f038537e7f5 100644 --- a/src/kernel_services/abstract_interp/eva_lattice_type.mli +++ b/src/kernel_services/abstract_interp/eva_lattice_type.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 748e227d2dd83dd709a9d36b08724a06029ebbd5..9483f85d638f60d2e14ca8da998fa7419d92614c 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 b895a8e9e0c39326d852e741209fc373aa98a530..88447c622e7d63265d3ad1f35c797488259b8ad7 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 195d7f285c35cccc2eaf3bd81012fe37ef1ba1f4..7e733d4faa6e16369e30dd6c34f99b2f9e01b6af 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 f59f525caead7002fa373bf0aa0dcb0dcbe42572..ef9e87fc251b13ec744d8c94a180a73f46bcaef3 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 93f2449edb27f4a93b5f5c2bc04628d00f3ef02d..e105e4b09b5f6443989010ae916c880c392d30ef 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 b897cd89d1b64c80404513022e33f012ae39b31e..4cb6aad51bee82f4b69fd63caa864c8380d8b561 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 a3771a9b86e7d65a30c5a5fdd7c2dcab18d3c45a..8056b97ec7255b9bf5a5f1a79bbe651a81f5757a 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 a3bac15f70f844c20258a567ad50f9e2129f654a..233ce9ada22508f097f8079b7da4a13b08b9eefb 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 5cc87e94dbba7f263aee36e75d6130bac9d9b75a..7ac291fde721eb6e0c8a604afba98eb318edcd1b 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 7b5d89126b86d19b4a6eddb37277be1b050182db..9686888a528b01634ba4176911fc38d5e7c89422 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 bc75da0cc700f855b9b2d3e74036539786fe0e3e..f568b624e33ca74f81d54d6912ea354ff96bfb41 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 9bba8a2b8ec649e58c0f49b7270606554926fd78..26d061b76344499afd17e1ad12461e13f1751f8f 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 a33aea2d443e72424b966e6da9c50710bec5f7de..55c2a3c13858cb9c56f1831fa6a6970d906d002b 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/abstract_interp/int_interval.ml b/src/kernel_services/abstract_interp/int_interval.ml index 5a6b83b8b72f80269cf275511b0854a95dec7760..c975b3ae78b8220b9190bdcd9a93547307a30811 100644 --- a/src/kernel_services/abstract_interp/int_interval.ml +++ b/src/kernel_services/abstract_interp/int_interval.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/abstract_interp/int_interval.mli b/src/kernel_services/abstract_interp/int_interval.mli index 39e08eddaaad86f175b0d425c76c57969aab5d13..a61cfd27bad423fea824d53c58e0a4286a36f193 100644 --- a/src/kernel_services/abstract_interp/int_interval.mli +++ b/src/kernel_services/abstract_interp/int_interval.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/abstract_interp/int_set.ml b/src/kernel_services/abstract_interp/int_set.ml index e6ad99f6fadde425107ba87cf766d6b025422c61..00a4e0fe4bde6e387d865c356b727f74c2d0522a 100644 --- a/src/kernel_services/abstract_interp/int_set.ml +++ b/src/kernel_services/abstract_interp/int_set.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/abstract_interp/int_set.mli b/src/kernel_services/abstract_interp/int_set.mli index a55b2e745b59a1db88dda4958a02c6d84d6d5b1a..a69521b71f6079a1bf991a8b502519e997ae6861 100644 --- a/src/kernel_services/abstract_interp/int_set.mli +++ b/src/kernel_services/abstract_interp/int_set.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/abstract_interp/int_val.ml b/src/kernel_services/abstract_interp/int_val.ml index a35989c89fd42576de4e16618decf88e0e81b022..961bc56607173c1681c0ae81bd5a3f5db4f24de4 100644 --- a/src/kernel_services/abstract_interp/int_val.ml +++ b/src/kernel_services/abstract_interp/int_val.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/abstract_interp/int_val.mli b/src/kernel_services/abstract_interp/int_val.mli index 64fc2616d1c53f75e7795bb8b932e36d4482ee0f..0d2d5da2ac96549b5fd4e65d746d6218f95f87c6 100644 --- a/src/kernel_services/abstract_interp/int_val.mli +++ b/src/kernel_services/abstract_interp/int_val.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 840592615b1dde78505a3caeda6cb92e066b1d79..eaa27972c9144ddff0ffbff7f871ed0f59b36fab 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/abstract_interp/ival.mli b/src/kernel_services/abstract_interp/ival.mli index d45cc3cf6313f43e6a15337ce15a2858a55260ef..f9ddb2915d90ae1b3da1e99c85e5967101a49986 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/abstract_interp/lattice_messages.ml b/src/kernel_services/abstract_interp/lattice_messages.ml index 2bf824b5f53ae9196a7b3df9de629f811f8cd47c..8e481974c106e5b65ac92410bc0e77c696b56c57 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 df4799c3aace85168779ed809d3aaccc23f65ac4..05c67036d3b7848d5a87b4d592597e433ee288c1 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 95f0b39d6b80012ef356d0ea1c4acf9bdc3a43fb..3c41400e758a92c15d78704ddb68e3d0b5f14501 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 f41d068c2d27d1e9426eb2f9d57f84ed7313157e..46906585f7665013e9e5de09741e9e87a4b31377 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 5db64b00f90c7a1516c728f4e684e2aa7c4d72a8..5a033415f2e5d01621544e2a409d6a7e4ce0ed76 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 dd2baf8560700ee1aa70690f7ad1e74b3a9a380b..f20740592041af45826e0c553643a770af0f27a5 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 629b07a4179465002fd50ca9b1240fd699e73e29..edb5e6c71f0d153aea940ab4edc7e26deca2ef25 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 1640a2a118ad2af338051298658abebb23921f8d..9a7ac8d40b99f7cf4072d0a67e24a5509661db74 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 64b75c8765fc4219d2c831d6d1f165cd59197ca2..f5c126c7119a38108bfa9d98a3f9b0c2bec5ce0d 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 b8de6dce344930a6d04a3a1b97088f0a966d7976..760e1b93fa61909cf5a2fe0326db8f63f205c7bc 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 deb50121dd63ca79fe0bd8487d91cdfc40c4e11d..1725256a484b75b2d0342d7f943f62a93537c472 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 ded5f78b4a4fd1f153971589f42bab42f6e98e5e..426cb9fa180e1d6c8f0d87d6256bf9642c079fd1 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 624255d6fe3c6a3389ab128ccd16a2357a62c77c..d68922acec8b41944225c7516d83c23d13f82635 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 279e77e49d1ff0fbc2271e0f3ecdbd7c4581f381..787f8efd859673937656ee12f359f493290bbc6b 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 2ce217401450dd018cebb554763d54d0628c4d0c..1d5b8039d5be60afe3586437234b5ff7ca2e0dad 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 e23e62dfd81d74b44da8a4cb9a4f342d12c29b1c..b1058820647c0177905056a0c770a69d4b0f96f2 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 9c434b5a7d6bff96bd6d268946ab171da2628593..c8f7a52238f2fbb8a45daa90e9304f70d818ebc4 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 8a4dfa652ffbd1fb340af37bcd3be255559a7a1e..5023728e3df5d9ace434f08103eebc82e9943ac2 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 25c489281609a259e63a66623b4a3b1a1df49f3f..be9dd49e267fac7b84c03f447eddc9c1537bc2ca 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 f923d0914630844a230b41835bfb09ef3409bfb9..8a252bbe5d07aaccbe899a3346b9a786aa8010c0 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 b4b630d86575df70ddf22b5b86ac9e46d3cb23ec..17b3531b62120ec863f60a065a21463e2bff6b42 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 90968aed324a5b1a9921a83277f9666bfcf25ce8..5af81b797eb191fe248f54761c7d5580eeead488 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 abc0db24d0f2438a3d134d3797b8236c7fc97430..a9d28aad6d5c6940c7e87f12f64503ece03a465e 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 24d9cf46ae218b4286edb020014d7ecd7bfea612..6d63d328f0356306643babf3c76023e0bb8f7862 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 146e4d1c56917e74842b95a7e6632fb9d79d7f43..46859572f75031f0232913b64d88eb23f5724c41 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 99e2cef1c2ea23922820e87c639dfb55749c480d..379bca768b4d2732a0f7bb04d1d4cfae5334871f 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -32,7 +32,7 @@ let add_destructor (_, l as acc) var = let e = match Globals.Functions.get_params kf with | vi :: _ -> - if Cil.need_cast (Cil.typeOf e) vi.vtype then Cil.mkCast e vi.vtype + if Cil.need_cast (Cil.typeOf e) vi.vtype then Cil.mkCast vi.vtype e else e | [] -> Kernel.fatal diff --git a/src/kernel_services/analysis/destructors.mli b/src/kernel_services/analysis/destructors.mli index c8ca7c9158e826bceac72ce3645c806dba3603d5..207a23d70a0e7ac17e6bae21eb7e2fbd34d1d3d1 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 dc0d578bd3b0e849f32f80aa9bb1f0d1632a56e3..e6645a768f3185b1b40984aa89dad65dd918454d 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 a8c3e741cd5881850c5cd467eb13ae68d4a226a5..8d0a2b95599487ddb13e6146a993bd076d8f5a1f 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 6c1568a7051e44207129266ad9a6e9560c1531dc..2a063fe0b9752b8756e2074cf694495167a9ab5f 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 d4a7f92cbba2185ac50ae1633bf1d5cca21cc7f8..ca3c18369d77d83efb14d0b4f6df168def9949aa 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 6f45565db717af3e6a4c5e1021b47067240d340b..fcccfae9e9da5f29294cd49ff21cfa72f1607874 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 6a4dc438b2d74ab6dee92a90ce9d527c2a992c56..f8b3779c643098ab851054aabdf24aba31345478 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 06a027ae6107987adb4143b0eb3879b2c455fbde..86b2ea230e3c4a446378a6fd74f602861b22f4b4 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -27,7 +27,7 @@ open Cil_datatype exception Error of Cil_types.location * string exception Unbound of string -let find_var kf kinstr ?label ~var = +let find_var kf kinstr ?label var = let vi = try let vi = Globals.Vars.find_from_astinfo var (VLocal kf) in @@ -89,7 +89,7 @@ end) = let find_macro _ = raise Not_found - let find_var ?label ~var = find_var X.kf X.kinstr ?label ~var + let find_var ?label var = find_var X.kf X.kinstr ?label var let find_enum_tag x = try @@ -312,7 +312,7 @@ and loc_to_exp ~result {term_node = lnode ; term_type = ltype; term_loc = loc} = Logic_utils.is_same_type (Logic_typing.type_of_set_elem set) t.term_type -> loc_to_exp ~result t - | Tnull -> [ Cil.mkCast (Cil.zero ~loc) (TPtr(TVoid [], [])) ] + | Tnull -> [ Cil.mkCast (TPtr(TVoid [], [])) (Cil.zero ~loc) ] (* additional constructs *) | Tapp _ | Tlambda _ | Trange _ | Tlet _ diff --git a/src/kernel_services/analysis/logic_interp.mli b/src/kernel_services/analysis/logic_interp.mli index bbfa7ffb49dfece762d167672fdbd403c692d679..928b727a865fbdcf7a0415c9428fe135277b4266 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 491d5cd0aea81b52b9e55f3ab3080de1043fc36a..9c2bc17726a1c5d3ba16fc40549a1c7ac5cf669e 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 70d176935cbda9d5389aab1212d10071cd937c07..0e4dbca82c5adf4bf7013985673c28275cfd4efe 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 9fd7f0dee2253744a8ebc76326188195e4777977..d041f7aa94dc2e8c982ed90d2d3c77e891091d8f 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 f10b451674bc47f172c7a666fcc6f645208670ca..89ea22e9b8970030dead9d0616e083d259464743 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 40be8864a666e7e57a55f5629b00436af25efd98..a6e7216d5a042f05564f8bf5824243d6c93e585e 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 8a26542cb32be6823d26373e0efb5a2c15b706d1..da9a8ddd5cf3eaf5fe167e1acf551911df382354 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 8dfd0f0f66e698b55c3375cf46f1243f091c874d..b8a2dc0ba13ef3557a2545c9417a52b555f4b030 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 43197e6c08f2b69926cd61bdac34cf2210327f9b..88f0b81d8391a57797e3ae37deefbd6dc03878be 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 9035e588c4ff6133caaee296d9a9b43607e61688..bb498af5f2bfa4e21bbb46fb6040e80f678ba04f 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 72ef9bf6d14e5caa6555546a8ddcbe0b38e9769c..d80e81a74aa09aa170d62bc422c43a0620c9ba28 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 bfa182f5e12a8603b8a2989ba244fd5a4bae7a21..8b0a78f9e921b6db95ef2332c78875785e56dcbc 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -39,7 +39,7 @@ let build_wto kf = let init = Kernel_function.find_first_stmt kf and succs = fun stmt -> List.rev stmt.succs in - Scheduler.partition ?pref:None ~init ~succs + Scheduler.partition ~pref:(fun _ _ -> 0) ~init ~succs (* ********************************************************************** *) diff --git a/src/kernel_services/analysis/wto_statement.mli b/src/kernel_services/analysis/wto_statement.mli index 4b6d5e9f3b5722cd2fb65a35725ea14534247c66..9893ca9dda9e43b7b60ee48a3fb26d2f13ff2028 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 eefbda4d0b28f0b9c96d180dd9057dad295006d4..45b9381a216dd1c7909d8115b725b1422e3ba82a 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -648,7 +648,7 @@ let create_predicate ?(loc=Location.unknown) alarm = | TPtr (TFun (ret, None, var, attrs), _), Some args -> let ltyps = List.map (fun arg -> "", Cil.typeOf arg, []) args in let typ = TFun (ret, Some ltyps, var, attrs) in - Cil.mkCast e (TPtr (typ, [])) + Cil.mkCast (TPtr (typ, [])) e | t', _ -> Kernel.fatal "Trying to emit a Function_pointer alarm over expression %a \ diff --git a/src/kernel_services/ast_data/alarms.mli b/src/kernel_services/ast_data/alarms.mli index bdbc4f9fa4d013e463bde896f16e9c81ea8ca1b2..84262898764fbdf6cbad20e7945a403423126f21 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 d5425c2e242959d5f23a56f658a1dd2f66444771..90690303633e5645a68168a2d13dcf4a7c9cab9c 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -1001,6 +1001,19 @@ let add_disjoint e kf ?stmt ?active l = Property_status.register (Property.ip_of_disjoint kf (kinstr stmt) active l) end +let add_spec ?register_children e kf ?stmt ?active spec = + add_behaviors ?register_children e kf ?stmt ?active spec.spec_behavior; + Option.iter (fun variant -> add_decreases e kf variant) spec.spec_variant; + Option.iter + (fun terminates -> add_terminates e kf ?stmt ?active terminates) + spec.spec_terminates; + List.iter + (fun complete -> add_complete e kf ?stmt ?active complete) + spec.spec_complete_behaviors; + List.iter + (fun disjoint -> add_disjoint e kf ?stmt ?active disjoint) + spec.spec_disjoint_behaviors + let extend_behavior e kf ?stmt ?active ?(behavior=Cil.default_behavior_name) set_bhv = (* Kernel.feedback "Function %a, behavior %s" Kf.pretty kf bhv_name;*) diff --git a/src/kernel_services/ast_data/annotations.mli b/src/kernel_services/ast_data/annotations.mli index 9bea58d4ab70e336a338f68c06b7503a4ee589d1..1b7e315613ec5e5bd32073bb0b8eef9424d1218f 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -334,6 +334,14 @@ type 'a behavior_component_addition = @since Aluminium-20160501 *) +val add_spec: ?register_children:bool -> spec contract_component_addition +(** Add new spec into the given contract. + + [register_children] is directly given to the function [add_behaviors]. + + @since Frama-C+dev +*) + val add_behaviors: ?register_children:bool -> funbehavior list contract_component_addition (** Add new behaviors into the given contract. diff --git a/src/kernel_services/ast_data/ast.ml b/src/kernel_services/ast_data/ast.ml index 1ff587fce07fce4de9d9223619bf712ee3d69ac4..c56f5472689fc986e096c9bb644e84e500ee0890 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 77ba9b564358dc656fdf93584285e920b4ec0ce5..fcb527b68cc1a6865571ebb281260057a0aa8aca 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 3e7cf2768e11f22a3b0ef9b1a9ec1e7f0c5f551b..a4ee7f3882e02ae8cf6d4ea3038de785fcbf24eb 100644 --- a/src/kernel_services/ast_data/cil_types.mli +++ b/src/kernel_services/ast_data/cil_types.mli @@ -1827,10 +1827,9 @@ and global_annotation = | Daxiomatic of string * global_annotation list * attributes * location | Dtype of logic_type_info * location (** declaration of a logic type. *) | Dlemma of - string * bool * logic_label list * string list * + string * logic_label list * string list * toplevel_predicate * attributes * location - (** definition of a lemma. The boolean flag is [true] if the property should - be taken as an axiom and [false] if it must be proved. *) + (** definition of all kinds of lemmas (axioms are admit lemmas). *) | Dinvariant of logic_info * location (** global invariant. The predicate does not have any argument. *) | Dtype_annot of logic_info * location diff --git a/src/kernel_services/ast_data/globals.ml b/src/kernel_services/ast_data/globals.ml index a88e444703a4b42a6e31ee16441763906e6bc61a..440ea2a0b01a171985775a675ee0be2b3015f255 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -343,6 +343,17 @@ module Functions = struct let vi = Datatype.String.Map.find fct_name (Iterator.State.get ()) in State.find vi + let find_all_by_orig_name ?cmp fct_name = + let l = + Datatype.String.Map.fold (fun _ vi acc -> + if vi.vorig_name = fct_name then (State.find vi) :: acc + else acc + ) (Iterator.State.get ()) [] + in + match cmp with + | None -> l + | Some cmp -> List.sort cmp l + let find_def_by_name fct_name = let vi = Datatype.String.Map.find fct_name (Iterator.State.get ()) in let res = State.find vi in diff --git a/src/kernel_services/ast_data/globals.mli b/src/kernel_services/ast_data/globals.mli index b3f359ffbc8507182062c6876f840e6835056682..1a6775ec97211057dde42464d14686d73c432e1a 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -122,6 +122,16 @@ module Functions: sig val find_by_name : string -> kernel_function (** @raise Not_found if there is no function of this name. *) + val find_all_by_orig_name : ?cmp:(kernel_function -> kernel_function -> int) -> + string -> kernel_function list + (** + [find_all_by_orig_name ?cmp name] returns the list of functions whose original + name is [name], sorted according to [cmp]. If [cmp] is [None], + the resulting order is unspecified. + + @since Frama-C+dev + *) + val find_def_by_name : string -> kernel_function (** @raise Not_found if there is no function definition of this name. *) diff --git a/src/kernel_services/ast_data/kernel_function.ml b/src/kernel_services/ast_data/kernel_function.ml index df3e3d243bb20f4081244e9627fc3e740cb8ce9f..96dba0c015c3be70a3fcdea052b91091dd2e7e96 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 df4cceb7ae4053836604d4bf163153d9e428550f..5f1adcaf860d3cb16ed02c8faed226990cbf81f6 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/ast_data/property.ml b/src/kernel_services/ast_data/property.ml index 2ecf1e2e78967e04ee23d8522fd9301e23ac38aa..506bb221ee18751fb718f5c3806dc5f243890f31 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -132,8 +132,6 @@ and identified_lemma = { il_loc : location } -and identified_axiom = identified_lemma - and identified_instance = { ii_kf : kernel_function; ii_stmt : stmt; @@ -162,7 +160,6 @@ and identified_other = { and identified_property = | IPPredicate of identified_predicate | IPExtended of identified_extended - | IPAxiom of identified_axiom | IPAxiomatic of identified_axiomatic | IPLemma of identified_lemma | IPBehavior of identified_behavior @@ -237,7 +234,6 @@ let get_kinstr = function | IPFrom {if_kinstr=ki} | IPReachable {ir_kinstr=ki} | IPDecrease {id_kinstr=ki} -> ki - | IPAxiom _ | IPAxiomatic _ | IPLemma _ -> Kglobal | IPOther {io_loc} -> ki_of_o_loc io_loc @@ -265,7 +261,6 @@ let get_kf = function | IPFrom {if_kf=kf} | IPDecrease {id_kf=kf} | IPPropertyInstance {ii_kf=kf} -> Some kf - | IPAxiom _ | IPAxiomatic _ | IPLemma _ -> None | IPReachable {ir_kf} -> ir_kf @@ -276,7 +271,6 @@ let get_kf = function let rec get_names = function | IPPredicate ip -> (Logic_const.pred_of_id_pred ip.ip_pred).pred_name | IPExtended { ie_ext = {ext_name = name} } - | IPAxiom { il_name = name } | IPAxiomatic { iax_name = name } | IPLemma { il_name = name } | IPBehavior { ib_bhv = {b_name = name} } @@ -327,7 +321,6 @@ let rec location = function | _,(t :: _) -> t.it_content.term_loc) | IPFrom {if_from=(t, _)} -> t.it_content.term_loc | IPDecrease {id_variant=(t, _)} -> t.term_loc - | IPAxiom {il_loc} -> il_loc | IPAxiomatic {iax_props} -> (match iax_props with | [] -> Cil_datatype.Location.unknown @@ -364,7 +357,6 @@ let get_behavior = function | IPAllocation {ial_bhv=Id_loop _} | IPAssigns {ias_bhv=Id_loop _} | IPFrom {if_bhv=Id_loop _} - | IPAxiom _ | IPAxiomatic _ | IPExtended _ | IPLemma _ @@ -400,7 +392,6 @@ let get_for_behaviors = function | AVariant _ | APragma _ | AExtended _ -> [] end - | IPAxiom _ | IPAxiomatic _ | IPExtended _ | IPLemma _ @@ -437,7 +428,7 @@ let rec has_status = function | IPCodeAnnot {ica_ca={annot_content}} -> has_status_ca annot_content | IPPropertyInstance {ii_ip} -> has_status ii_ip | IPOther _ | IPReachable _ - | IPAxiom _ | IPAxiomatic _ | IPBehavior _ + | IPAxiomatic _ | IPBehavior _ | IPDisjoint _ | IPComplete _ | IPAssigns _ | IPFrom _ | IPAllocation _ | IPDecrease _ | IPLemma _ @@ -447,6 +438,141 @@ let rec has_status = function (* -------------------------------------------------------------------------- *) (* --- Datatype --- *) (* -------------------------------------------------------------------------- *) +let pp_active fmt active = + let sep = ref false in + let print_one a = + Format.fprintf fmt "%s%s" (if !sep then ", " else "") a; + sep:=true + in + Datatype.String.Set.iter print_one active + +let rec pretty_ip fmt = function + | IPPredicate {ip_kind; ip_pred} -> + Format.fprintf fmt "%a@ %a" + pretty_predicate_kind ip_kind + Cil_printer.pp_identified_predicate ip_pred + | IPExtended {ie_ext} -> Cil_printer.pp_extended fmt ie_ext + | IPAxiomatic {iax_name} -> Format.fprintf fmt "axiomatic@ %s" iax_name + | IPLemma {il_name; il_pred} -> + Format.fprintf fmt "%a@ %s" + Cil_printer.pp_lemma_kind il_pred.tp_kind il_name + | IPTypeInvariant {iti_name; iti_type} -> + Format.fprintf fmt "invariant@ %s for type %a" iti_name + Cil_printer.pp_typ iti_type + | IPGlobalInvariant {igi_name} -> + Format.fprintf fmt "global invariant@ %s" igi_name + | IPBehavior {ib_bhv; ib_kinstr; ib_active} -> + if Cil.is_default_behavior ib_bhv then + Format.pp_print_string fmt "default behavior" + else + Format.fprintf fmt "behavior %s" ib_bhv.b_name; + (match ib_kinstr with + | Kstmt s -> Format.fprintf fmt " for statement %d" s.sid + | Kglobal -> ()); + pp_active fmt ib_active + | IPCodeAnnot {ica_ca} -> Cil_printer.pp_code_annotation fmt ica_ca + | IPComplete {ic_active; ic_bhvs} -> + Format.fprintf fmt "complete@ %a" + (Pretty_utils.pp_iter ~sep:"," + Datatype.String.Set.iter + (fun fmt s -> Format.fprintf fmt "@ %s" s)) + ic_bhvs; + pp_active fmt ic_active + | IPDisjoint {ic_active; ic_bhvs} -> + Format.fprintf fmt "disjoint@ %a" + (Pretty_utils.pp_iter ~sep:"," + Datatype.String.Set.iter + (fun fmt s -> Format.fprintf fmt "@ %s" s)) + ic_bhvs; + pp_active fmt ic_active + | IPAllocation {ial_allocs=(f,a)} -> + Cil_printer.pp_allocation fmt (FreeAlloc(f,a)) + | IPAssigns {ias_froms} -> Cil_printer.pp_assigns fmt (Writes ias_froms) + | IPFrom {if_from} -> Cil_printer.pp_from fmt if_from + | IPDecrease {id_ca=None; id_variant=v} -> Cil_printer.pp_decreases fmt v + | IPDecrease {id_variant=v} -> Cil_printer.pp_variant fmt v + | IPReachable {ir_kf=None; ir_kinstr=Kstmt _} -> assert false + | IPReachable {ir_kf=None; ir_kinstr=Kglobal} -> + Format.fprintf fmt "reachability of entry point" + | IPReachable {ir_kf=Some kf; ir_kinstr=Kglobal} -> + Format.fprintf fmt "reachability of function %a" Kf.pretty kf + | IPReachable {ir_kf=Some kf; ir_kinstr=Kstmt stmt; ir_program_point=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 + | IPPropertyInstance {ii_kf; ii_stmt; ii_ip} -> + Format.fprintf fmt "status of '%a'%t %a" + pretty_ip ii_ip + (fun fmt -> match get_kf ii_ip with + | Some kf -> Format.fprintf fmt " of %a" Kernel_function.pretty kf + | None -> ()) + pretty_instance_location (ii_kf, ii_stmt) + | IPOther {io_name} -> Format.pp_print_string fmt io_name + +let rec hash_ip = + let hash_bhv_loop = function + | Id_contract (a,b) -> (0, Hashtbl.hash (a,b.b_name)) + | Id_loop ca -> (1, ca.annot_id) + in + function + | IPPredicate {ip_pred=x} -> Hashtbl.hash (1, x.ip_id) + | IPAxiomatic {iax_name=x} -> Hashtbl.hash (3, (x:string)) + | IPLemma {il_name=x} -> Hashtbl.hash (4, (x:string)) + | IPCodeAnnot {ica_ca=ca} -> Hashtbl.hash (5, ca.annot_id) + | IPComplete {ic_kf=f; ic_kinstr=ki; ic_bhvs=y; ic_active=x} -> + (* complete list is more likely to discriminate than active list. *) + Hashtbl.hash + (6, Kf.hash f, Kinstr.hash ki, + Datatype.String.Set.hash y, Datatype.String.Set.hash x) + | IPDisjoint {ic_kf=f; ic_kinstr=ki; ic_bhvs=y; ic_active=x} -> + Hashtbl.hash + (7, Kf.hash f, Kinstr.hash ki, + Datatype.String.Set.hash y, Datatype.String.Set.hash x) + | IPAssigns {ias_kf=f; ias_kinstr=ki; ias_bhv=b} -> + Hashtbl.hash (8, Kf.hash f, Kinstr.hash ki, hash_bhv_loop b) + | IPFrom {if_kf=kf; if_kinstr=ki; if_bhv=b; if_from=(t, _)} -> + Hashtbl.hash + (9, Kf.hash kf, Kinstr.hash ki, + hash_bhv_loop b, Identified_term.hash t) + | IPDecrease {id_kf=kf; id_kinstr=ki} -> + (* 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 {ib_kf=kf; ib_kinstr=s; ib_active=a; ib_bhv=b} -> + Hashtbl.hash + (11, Kf.hash kf, Kinstr.hash s, + (b.b_name:string), (a:Datatype.String.Set.t)) + | IPReachable {ir_kf=kf; ir_kinstr=ki; ir_program_point=ba} -> + Hashtbl.hash(12, Option.fold ~some:Kf.hash ~none:0 kf, + Kinstr.hash ki, Hashtbl.hash ba) + | IPAllocation {ial_kf=f; ial_kinstr=ki; ial_bhv=b} -> + Hashtbl.hash (13, Kf.hash f, Kinstr.hash ki, hash_bhv_loop b) + | IPPropertyInstance {ii_kf=kf_caller; ii_stmt=stmt; ii_ip=ip} -> + Hashtbl.hash (14, Kf.hash kf_caller, + Stmt.hash stmt, hash_ip ip) + | IPOther {io_name=s} -> Hashtbl.hash (15, (s:string)) + | IPTypeInvariant {iti_name=s} -> Hashtbl.hash (16, (s:string)) + | IPGlobalInvariant {igi_name=s} -> Hashtbl.hash (17, (s:string)) + | IPExtended {ie_ext={ext_id}} -> Hashtbl.hash (18, ext_id) + +let reprs = [ + IPLemma { + il_name="";il_labels=[];il_args=[]; + il_pred=Logic_const.(toplevel_predicate ptrue); + il_attrs=[]; + il_loc=Location.unknown + }] + +let compare_behavior_or_loop b1 b2 = + match b1, b2 with + | Id_contract (a1,b1), Id_contract (a2,b2) -> + let n = Datatype.String.compare b1.b_name b2.b_name in + if n = 0 then Datatype.String.Set.compare a1 a2 else n + | Id_loop ca1, Id_loop ca2 -> + Datatype.Int.compare ca1.annot_id ca2.annot_id + | Id_contract _, Id_loop _ -> -1 + | Id_loop _, Id_contract _ -> 1 include Datatype.Make_with_collections (struct @@ -455,133 +581,14 @@ include Datatype.Make_with_collections type t = identified_property let name = "Property.t" - let reprs = [ - IPAxiom { - il_name="";il_labels=[];il_args=[]; - il_pred=Logic_const.(toplevel_predicate ptrue); - il_attrs=[]; - il_loc=Location.unknown - }] + + let reprs = reprs let mem_project = Datatype.never_any_project - let pp_active fmt active = - let sep = ref false in - let print_one a = - Format.fprintf fmt "%s%s" (if !sep then ", " else "") a; - sep:=true - in - Datatype.String.Set.iter print_one active - - let rec pretty fmt = function - | IPPredicate {ip_kind; ip_pred} -> - Format.fprintf fmt "%a@ %a" - pretty_predicate_kind ip_kind - Cil_printer.pp_identified_predicate ip_pred - | IPExtended {ie_ext} -> Cil_printer.pp_extended fmt ie_ext - | IPAxiom {il_name} -> Format.fprintf fmt "axiom@ %s" il_name - | IPAxiomatic {iax_name} -> Format.fprintf fmt "axiomatic@ %s" iax_name - | IPLemma {il_name} -> Format.fprintf fmt "lemma@ %s" il_name - | IPTypeInvariant {iti_name; iti_type} -> - Format.fprintf fmt "invariant@ %s for type %a" iti_name - Cil_printer.pp_typ iti_type - | IPGlobalInvariant {igi_name} -> - Format.fprintf fmt "global invariant@ %s" igi_name - | IPBehavior {ib_bhv; ib_kinstr; ib_active} -> - if Cil.is_default_behavior ib_bhv then - Format.pp_print_string fmt "default behavior" - else - Format.fprintf fmt "behavior %s" ib_bhv.b_name; - (match ib_kinstr with - | Kstmt s -> Format.fprintf fmt " for statement %d" s.sid - | Kglobal -> ()); - pp_active fmt ib_active - | IPCodeAnnot {ica_ca} -> Cil_printer.pp_code_annotation fmt ica_ca - | IPComplete {ic_active; ic_bhvs} -> - Format.fprintf fmt "complete@ %a" - (Pretty_utils.pp_iter ~sep:"," - Datatype.String.Set.iter - (fun fmt s -> Format.fprintf fmt "@ %s" s)) - ic_bhvs; - pp_active fmt ic_active - | IPDisjoint {ic_active; ic_bhvs} -> - Format.fprintf fmt "disjoint@ %a" - (Pretty_utils.pp_iter ~sep:"," - Datatype.String.Set.iter - (fun fmt s -> Format.fprintf fmt "@ %s" s)) - ic_bhvs; - pp_active fmt ic_active - | IPAllocation {ial_allocs=(f,a)} -> - Cil_printer.pp_allocation fmt (FreeAlloc(f,a)) - | IPAssigns {ias_froms} -> Cil_printer.pp_assigns fmt (Writes ias_froms) - | IPFrom {if_from} -> Cil_printer.pp_from fmt if_from - | IPDecrease {id_ca=None; id_variant=v} -> Cil_printer.pp_decreases fmt v - | IPDecrease {id_variant=v} -> Cil_printer.pp_variant fmt v - | IPReachable {ir_kf=None; ir_kinstr=Kstmt _} -> assert false - | IPReachable {ir_kf=None; ir_kinstr=Kglobal} -> - Format.fprintf fmt "reachability of entry point" - | IPReachable {ir_kf=Some kf; ir_kinstr=Kglobal} -> - Format.fprintf fmt "reachability of function %a" Kf.pretty kf - | IPReachable {ir_kf=Some kf; ir_kinstr=Kstmt stmt; ir_program_point=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 - | IPPropertyInstance {ii_kf; ii_stmt; ii_ip} -> - Format.fprintf fmt "status of '%a'%t %a" - pretty ii_ip - (fun fmt -> match get_kf ii_ip with - | Some kf -> Format.fprintf fmt " of %a" Kernel_function.pretty kf - | None -> ()) - pretty_instance_location (ii_kf, ii_stmt) - | IPOther {io_name} -> Format.pp_print_string fmt io_name - - let rec hash = - let hash_bhv_loop = function - | Id_contract (a,b) -> (0, Hashtbl.hash (a,b.b_name)) - | Id_loop ca -> (1, ca.annot_id) - in - function - | IPPredicate {ip_pred=x} -> Hashtbl.hash (1, x.ip_id) - | IPAxiom {il_name=x} -> Hashtbl.hash (2, (x:string)) - | IPAxiomatic {iax_name=x} -> Hashtbl.hash (3, (x:string)) - | IPLemma {il_name=x} -> Hashtbl.hash (4, (x:string)) - | IPCodeAnnot {ica_ca=ca} -> Hashtbl.hash (5, ca.annot_id) - | IPComplete {ic_kf=f; ic_kinstr=ki; ic_bhvs=y; ic_active=x} -> - (* complete list is more likely to discriminate than active list. *) - Hashtbl.hash - (6, Kf.hash f, Kinstr.hash ki, - Datatype.String.Set.hash y, Datatype.String.Set.hash x) - | IPDisjoint {ic_kf=f; ic_kinstr=ki; ic_bhvs=y; ic_active=x} -> - Hashtbl.hash - (7, Kf.hash f, Kinstr.hash ki, - Datatype.String.Set.hash y, Datatype.String.Set.hash x) - | IPAssigns {ias_kf=f; ias_kinstr=ki; ias_bhv=b} -> - Hashtbl.hash (8, Kf.hash f, Kinstr.hash ki, hash_bhv_loop b) - | IPFrom {if_kf=kf; if_kinstr=ki; if_bhv=b; if_from=(t, _)} -> - Hashtbl.hash - (9, Kf.hash kf, Kinstr.hash ki, - hash_bhv_loop b, Identified_term.hash t) - | IPDecrease {id_kf=kf; id_kinstr=ki} -> - (* 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 {ib_kf=kf; ib_kinstr=s; ib_active=a; ib_bhv=b} -> - Hashtbl.hash - (11, Kf.hash kf, Kinstr.hash s, - (b.b_name:string), (a:Datatype.String.Set.t)) - | IPReachable {ir_kf=kf; ir_kinstr=ki; ir_program_point=ba} -> - Hashtbl.hash(12, Option.fold ~some:Kf.hash ~none:0 kf, - Kinstr.hash ki, Hashtbl.hash ba) - | IPAllocation {ial_kf=f; ial_kinstr=ki; ial_bhv=b} -> - Hashtbl.hash (13, Kf.hash f, Kinstr.hash ki, hash_bhv_loop b) - | IPPropertyInstance {ii_kf=kf_caller; ii_stmt=stmt; ii_ip=ip} -> - Hashtbl.hash (14, Kf.hash kf_caller, - Stmt.hash stmt, hash ip) - | IPOther {io_name=s} -> Hashtbl.hash (15, (s:string)) - | IPTypeInvariant {iti_name=s} -> Hashtbl.hash (16, (s:string)) - | IPGlobalInvariant {igi_name=s} -> Hashtbl.hash (17, (s:string)) - | IPExtended {ie_ext={ext_id}} -> Hashtbl.hash (18, ext_id) + let pretty = pretty_ip + + let hash = hash_ip let rec equal p1 p2 = let eq_bhv (f1,ki1,b1) (f2,ki2,b2) = @@ -600,7 +607,6 @@ include Datatype.Make_with_collections | IPPredicate {ip_pred=s1}, IPPredicate {ip_pred=s2} -> s1.ip_id = s2.ip_id | IPExtended {ie_ext={ext_id=i1}}, IPExtended {ie_ext={ext_id=i2}} -> Datatype.Int.equal i1 i2 - | IPAxiom {il_name=s1}, IPAxiom {il_name=s2} | IPAxiomatic {iax_name=s1}, IPAxiomatic {iax_name=s2} | IPTypeInvariant {iti_name=s1}, IPTypeInvariant {iti_name=s2} | IPGlobalInvariant {igi_name=s1}, IPGlobalInvariant {igi_name=s2} @@ -612,7 +618,8 @@ include Datatype.Make_with_collections IPComplete {ic_kf=f2;ic_kinstr=ki2;ic_active=a2;ic_bhvs=x2} | IPDisjoint {ic_kf=f1;ic_kinstr=ki1;ic_active=a1;ic_bhvs=x1}, IPDisjoint {ic_kf=f2;ic_kinstr=ki2;ic_active=a2;ic_bhvs=x2} -> - Kf.equal f1 f2 && Kinstr.equal ki1 ki2 && a1 = a2 && Datatype.String.Set.equal x1 x2 + Kf.equal f1 f2 && Kinstr.equal ki1 ki2 && a1 = a2 + && Datatype.String.Set.equal x1 x2 | IPAllocation {ial_kf=f1;ial_kinstr=ki1;ial_bhv=b1}, IPAllocation {ial_kf=f2;ial_kinstr=ki2;ial_bhv=b2} | IPAssigns {ias_kf=f1;ias_kinstr=ki1;ias_bhv=b1}, @@ -640,7 +647,7 @@ include Datatype.Make_with_collections IPPropertyInstance {ii_kf=kf2;ii_stmt=s2;ii_ip=ip2} -> Kernel_function.equal kf1 kf2 && Stmt.equal s1 s2 && equal ip1 ip2 - | (IPPredicate _ | IPAxiom _ | IPExtended _ | IPAxiomatic _ | IPLemma _ + | (IPPredicate _ | IPExtended _ | IPAxiomatic _ | IPLemma _ | IPCodeAnnot _ | IPComplete _ | IPDisjoint _ | IPAssigns _ | IPFrom _ | IPDecrease _ | IPBehavior _ | IPReachable _ | IPAllocation _ | IPOther _ | IPPropertyInstance _ @@ -652,14 +659,7 @@ include Datatype.Make_with_collections if n = 0 then let n = Kinstr.compare ki1 ki2 in if n = 0 then - match b1, b2 with - | Id_contract (a1,b1), Id_contract (a2,b2) -> - let n = Datatype.String.compare b1.b_name b2.b_name in - if n = 0 then Datatype.String.Set.compare a1 a2 else n - | Id_loop ca1, Id_loop ca2 -> - Datatype.Int.compare ca1.annot_id ca2.annot_id - | Id_contract _, Id_loop _ -> -1 - | Id_loop _, Id_contract _ -> 1 + compare_behavior_or_loop b1 b2 else n else n in @@ -706,7 +706,6 @@ include Datatype.Make_with_collections if n = 0 then Stdlib.compare ba1 ba2 else n else n - | IPAxiom {il_name=s1}, IPAxiom {il_name=s2} | IPAxiomatic {iax_name=s1}, IPAxiomatic {iax_name=s2} | IPTypeInvariant {iti_name=s1}, IPTypeInvariant {iti_name=s2} | IPGlobalInvariant {igi_name=s1}, IPGlobalInvariant {igi_name=s2} @@ -726,14 +725,13 @@ include Datatype.Make_with_collections if c <> 0 then c else compare ip1 ip2 | (IPPredicate _ | IPExtended _ | IPCodeAnnot _ | IPBehavior _ | IPComplete _ | IPDisjoint _ | IPAssigns _ | IPFrom _ | IPDecrease _ | - IPReachable _ | IPAxiom _ | IPAxiomatic _ | IPLemma _ | + IPReachable _ | IPAxiomatic _ | IPLemma _ | IPOther _ | IPAllocation _ | IPPropertyInstance _ | IPTypeInvariant _ | IPGlobalInvariant _) as x, y -> let nb = function | IPPredicate _ -> 1 | IPAssigns _ -> 2 | IPDecrease _ -> 3 - | IPAxiom _ -> 4 | IPAxiomatic _ -> 5 | IPLemma _ -> 6 | IPCodeAnnot _ -> 7 @@ -753,13 +751,136 @@ include Datatype.Make_with_collections end) +module Ordered_by_function = Datatype.Make_with_collections( + struct + include Datatype.Serializable_undefined + type t = identified_property + let name = "Property.Ordered_by_function" + let reprs = reprs + let hash = hash_ip + let pretty = pretty_ip + + (* be sure to keep cmp_same_kind synchronized with this function. *) + let cmp_kind p1 p2 = + let nb = function + | IPAxiomatic _ -> 1 + | IPLemma _ -> 3 + | IPTypeInvariant _ -> 4 + | IPGlobalInvariant _ -> 5 + | IPPropertyInstance _ -> 6 + | IPBehavior _ -> 7 + | IPPredicate { ip_kind = PKRequires _ } -> 8 + | IPPredicate { ip_kind = PKAssumes _ } -> 9 + | IPPredicate { ip_kind = PKEnsures _ } -> 10 + | IPCodeAnnot { ica_ca = { annot_content = AAssert _ }} -> 11 + | IPCodeAnnot { ica_ca = { annot_content = AInvariant _ }} -> 12 + | IPCodeAnnot { ica_ca = { annot_content = APragma _ }} -> 13 + | IPAssigns _ -> 14 + | IPFrom _ -> 15 + | IPAllocation _ -> 16 + | IPPredicate { ip_kind = PKTerminates } -> 17 + | IPDecrease _ -> 18 + | IPReachable _ -> 19 + | IPComplete _ -> 20 + | IPDisjoint _ -> 21 + | IPExtended _ -> 22 + | IPOther _ -> 23 + | IPCodeAnnot ca -> + Kernel.fatal "Unexpected code annot %a in identified property" + Cil_printer.pp_code_annotation ca.ica_ca + in + Datatype.Int.compare (nb p1) (nb p2) + + let rec cmp_same_kind p1 p2 = + match (p1,p2) with + | IPAxiomatic { iax_name = n1 }, IPAxiomatic { iax_name = n2 } + | IPLemma { il_name = n1 }, IPLemma { il_name = n2 } + | IPTypeInvariant { iti_name = n1 }, IPTypeInvariant { iti_name = n2 } + | IPGlobalInvariant { igi_name = n1 }, + IPGlobalInvariant { igi_name = n2 } + -> + String.compare n1 n2 + | IPPropertyInstance { ii_ip = p1 }, IPPropertyInstance { ii_ip = p2 } + -> + let res = cmp_kind p1 p2 in + if res <> 0 then res else cmp_same_kind p1 p2 + | IPBehavior { ib_active = a1; ib_bhv = b1 }, + IPBehavior { ib_active = a2; ib_bhv = b2 } -> + compare_behavior_or_loop (Id_contract(a1,b1)) (Id_contract(a2,b2)) + | IPPredicate { ip_pred = i1 }, IPPredicate { ip_pred = i2 } -> + Datatype.Int.compare i1.ip_id i2.ip_id + | IPCodeAnnot { ica_ca = a1 }, IPCodeAnnot { ica_ca = a2 } -> + Datatype.Int.compare a1.annot_id a2.annot_id + | IPAssigns { ias_bhv = b1 }, IPAssigns { ias_bhv = b2 } + | IPAllocation { ial_bhv = b1 }, IPAllocation { ial_bhv = b2 } -> + compare_behavior_or_loop b1 b2 + | IPFrom { if_bhv = b1; if_from = (f1,_) }, + IPFrom { if_bhv = b2; if_from = (f2,_) } -> + let res = compare_behavior_or_loop b1 b2 in + if res <> 0 then res + else Datatype.Int.compare f1.it_id f2.it_id + (* at most one decrease per statement *) + | IPDecrease _, IPDecrease _ -> 0 + | IPReachable { ir_program_point = Before }, + IPReachable { ir_program_point = After } -> -1 + | IPReachable { ir_program_point = After }, + IPReachable { ir_program_point = Before } -> 1 + | IPReachable _, IPReachable _ -> 0 + + | IPComplete { ic_active = b1; ic_bhvs = s1 }, + IPComplete { ic_active = b2; ic_bhvs = s2 } + | IPDisjoint { ic_active = b1; ic_bhvs = s1 }, + IPDisjoint { ic_active = b2; ic_bhvs = s2 } -> + let res = Datatype.String.Set.compare b1 b2 in + if res <> 0 then res + else Datatype.String.Set.compare s1 s2 + | IPExtended { ie_ext = e1 }, IPExtended { ie_ext = e2 } -> + Datatype.Int.compare e1.ext_id e2.ext_id + | IPOther { io_name = n1; io_loc = l1 }, + IPOther { io_name = n2; io_loc = l2 } -> + let res = other_loc_compare l1 l2 in + if res <> 0 then res + else String.compare n1 n2 + | (p1,p2) -> + Kernel.fatal + "Property.cmp_same_kind called with 2 arguments of different kind:\ + @\n@[<2>Property 1 is: %a@]@\n@[<2>Property 2 is: %a@]" + pretty p1 pretty p2 + + let compare p1 p2 = + let kf1 = get_kf p1 and kf2 = get_kf p2 in + let cmp_kf kf1 kf2 = + String.compare + (Kernel_function.get_name kf1) (Kernel_function.get_name kf2) + in + let res = Option.compare cmp_kf kf1 kf2 in + if res <> 0 then res + else begin + let ki1 = get_kinstr p1 and ki2 = get_kinstr p2 in + let res = + match ki1, ki2 with + | Kglobal, Kglobal -> 0 + | Kstmt _, Kglobal -> 1 + | Kglobal, Kstmt _ -> -1 + | Kstmt s1, Kstmt s2 -> Datatype.Int.compare s1.sid s2.sid + in + if res <> 0 then res + else begin + let res = cmp_kind p1 p2 in + if res <> 0 then res + else cmp_same_kind p1 p2 + end + end + let equal = Datatype.from_compare + end) + let rec short_pretty fmt p = match p with | IPPredicate {ip_pred} -> (match (Logic_const.pred_of_id_pred ip_pred).pred_name with | name :: _ -> Format.pp_print_string fmt name | [] -> pretty fmt p) | IPExtended {ie_ext={ext_name}} -> Format.pp_print_string fmt ext_name - | IPAxiom {il_name=n} | IPLemma {il_name=n} + | IPLemma {il_name=n} | IPTypeInvariant {iti_name=n} | IPGlobalInvariant {igi_name=n} | IPAxiomatic {iax_name=n} -> Format.pp_print_string fmt n | IPBehavior {ib_kf; ib_bhv={b_name}} -> @@ -877,14 +998,6 @@ let rec pretty_debug fmt = function Cil_types_debug.pp_kinstr id_kinstr (Cil_types_debug.pp_option Cil_types_debug.pp_code_annotation) id_ca Cil_types_debug.pp_variant id_variant - | IPAxiom {il_name; il_labels; il_args; il_pred; il_attrs; il_loc} -> - Format.fprintf fmt "IPAxiom(%a,%a,%a,%a,%a,%a)" - Cil_types_debug.pp_string il_name - (Cil_types_debug.pp_list Cil_types_debug.pp_logic_label) il_labels - (Cil_types_debug.pp_list Cil_types_debug.pp_string) il_args - Cil_types_debug.pp_toplevel_predicate il_pred - Cil_types_debug.pp_attributes il_attrs - Cil_types_debug.pp_location il_loc | IPAxiomatic {iax_name; iax_props; iax_attrs} -> Format.fprintf fmt "IPAxiomatic(%a,%a,%a)" Cil_types_debug.pp_string iax_name @@ -1054,11 +1167,10 @@ struct Format.asprintf "%sextended%a" (extended_loc_prefix le) pp_names [ext_name] | IPCodeAnnot {ica_kf=kf; ica_ca=ca} -> let name = match ca.annot_content with - | AAssert (_, {tp_kind = Assert }) -> "assert" - | AAssert (_, {tp_kind = Check }) -> "check" - | AAssert (_, {tp_kind = Admit }) -> "admit" - | AInvariant (_,true,_) -> "loop_inv" - | AInvariant _ -> "inv" + | AAssert (_, {tp_kind}) -> Cil_printer.string_of_assert tp_kind + | AInvariant (_,loop,{tp_kind}) -> + let kw = if loop then "invariant" else "loop_invariant" in + Cil_printer.ident_of_predicate ~kw tp_kind | APragma _ -> "pragma" | AStmtSpec _ -> "contract" | AAssigns _ -> "assigns" @@ -1078,11 +1190,11 @@ struct (kf_prefix kf) ^ "decr" ^ (variant_suffix variant) | IPDecrease {id_kf=kf; id_variant=variant} -> (kf_prefix kf) ^ "loop_term" ^ (variant_suffix variant) - | IPAxiom {il_name=name; il_pred} -> - Format.asprintf "axiom_%s%a" name pp_names il_pred.tp_statement.pred_name | IPAxiomatic {iax_name} -> "axiomatic_" ^ iax_name | IPLemma {il_name=name; il_pred} -> - Format.asprintf "lemma_%s%a" name pp_names il_pred.tp_statement.pred_name + Format.asprintf "%s_%s%a" + (Cil_printer.ident_of_lemma il_pred.tp_kind) + name pp_names il_pred.tp_statement.pred_name | IPTypeInvariant {iti_name; iti_pred} -> Format.asprintf "type_invariant_%s%a" iti_name pp_names iti_pred.pred_name @@ -1090,10 +1202,10 @@ struct Format.asprintf "global_invariant_%s%a" igi_name pp_names igi_pred.pred_name | IPAllocation {ial_kf=kf; ial_kinstr=ki; ial_bhv=Id_contract (a,b)} -> - Format.asprintf "%s%s%a%salloc" + Format.asprintf "%s%s%a%sallocates" (kf_prefix kf) (ki_prefix ki) active_prefix a (behavior_prefix b) | IPAllocation {ial_kf=kf; ial_kinstr=Kstmt _; ial_bhv=Id_loop ca} -> - Format.asprintf "%sloop_alloc%a" + Format.asprintf "%sloop_allocates%a" (kf_prefix kf) pp_code_annot_names ca | IPAllocation _ -> assert false | IPAssigns {ias_kf=kf; ias_kinstr=ki; ias_bhv=Id_contract (a,b)} -> @@ -1192,10 +1304,7 @@ struct add_part buffer p ; add_sep buffer ; add_parts buffer ps let prefix_with_kind tp name = - match tp.tp_kind with - | Assert -> name - | Check -> "check_" ^ name - | Admit -> "admit_" ^ name + Cil_printer.ident_of_predicate ~kw:name tp.tp_kind let rec parts_of_property ip : part list = match ip with @@ -1255,11 +1364,7 @@ struct ica_ca={annot_content=AExtended (_, _, {ext_name})}} -> [ K kf ; A ext_name ; S stmt ] | IPCodeAnnot {ica_kf=kf; ica_ca={annot_content=AAssert (_,p)}} -> - let a = match p.tp_kind with - | Assert -> "assert" - | Check -> "check" - | Admit -> "admit" - in + let a = Cil_printer.string_of_assert p.tp_kind in [K kf ; A a ; P p.tp_statement ] | IPCodeAnnot {ica_kf=kf; ica_ca={annot_content=AInvariant (_, true, p)}} -> let a = prefix_with_kind p "loop_invariant" in @@ -1291,10 +1396,9 @@ struct | IPReachable {ir_kf=Some kf; ir_kinstr=Kstmt s; ir_program_point=After} -> [ K kf ; A "reachable_after" ; S s ] - | IPAxiomatic _ - | IPAxiom _ -> [] + | IPAxiomatic _ -> [] | IPLemma {il_name=name; il_pred=p} -> - let a = prefix_with_kind p "lemma" in + let a = Cil_printer.ident_of_lemma p.tp_kind in [ A a ; A name ; P p.tp_statement ] | IPTypeInvariant {iti_name=name} @@ -1376,7 +1480,7 @@ let ip_reachable_ppt p = let ir_kinstr = get_kinstr p in let ir_program_point = match p with | IPPredicate {ip_kind=(PKRequires _ | PKAssumes _ | PKTerminates)} - | IPAxiom _ | IPAxiomatic _ | IPLemma _ | IPComplete _ + | IPAxiomatic _ | IPLemma _ | IPComplete _ | IPDisjoint _ | IPCodeAnnot _ | IPAllocation _ | IPDecrease _ | IPPropertyInstance _ | IPOther _ | IPTypeInvariant _ | IPGlobalInvariant _ @@ -1530,7 +1634,6 @@ let ip_of_spec kf st ~active s = @ (Option.to_list (ip_terminates_of_spec kf st s)) @ (Option.to_list (ip_decreases_of_spec kf st s)) -let ip_axiom s = IPAxiom s let ip_lemma s = IPLemma s let ip_type_invariant s = IPTypeInvariant s let ip_global_invariant s = IPGlobalInvariant s @@ -1584,9 +1687,7 @@ let ip_of_global_annotation a = | Daxiomatic(iax_name, l, iax_attrs, _) -> let iax_props = List.fold_left aux [] l in IPAxiomatic {iax_name; iax_props; iax_attrs} :: (iax_props @ acc) - | Dlemma(il_name, true, il_labels, il_args, il_pred, il_attrs, il_loc) -> - ip_axiom {il_name; il_labels; il_args; il_pred; il_attrs; il_loc} :: acc - | Dlemma(il_name, false, il_labels, il_args, il_pred, il_attrs, il_loc) -> + | Dlemma(il_name, il_labels, il_args, il_pred, il_attrs, il_loc) -> ip_lemma {il_name; il_labels; il_args; il_pred; il_attrs; il_loc} :: acc | Dinvariant(l, igi_loc) -> let igi_pred = match l.l_body with diff --git a/src/kernel_services/ast_data/property.mli b/src/kernel_services/ast_data/property.mli index 6f0b150adb05d0acf4e9a1997c6e97a8f32c163a..531f38e79aab9956d437243fb4ce703c2d043383 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -162,8 +162,6 @@ and identified_lemma = { il_loc : location } -and identified_axiom = identified_lemma - (** Specialization of a property at a given point, identified by a statement and a function, along with the predicate transposed at this point (if it can be) and the original property. *) @@ -195,7 +193,6 @@ and identified_other = { and identified_property = private | IPPredicate of identified_predicate | IPExtended of identified_extended - | IPAxiom of identified_axiom | IPAxiomatic of identified_axiomatic | IPLemma of identified_lemma | IPBehavior of identified_behavior @@ -214,6 +211,18 @@ and identified_property = private include Datatype.S_with_collections with type t = identified_property +(** Datatype with alternative ordering, where properties are ordered according + the following criteria: + 1. Kf name (global properties ranked first) + 2. Kinstr + 3. kind of property + 4. id of the property + + @since Frama-C+dev +*) +module Ordered_by_function: + Datatype.S_with_collections with type t = identified_property + val short_pretty: Format.formatter -> t -> unit (** output a meaningful name for the property (e.g. the name of the corresponding identified predicate when available) @@ -465,12 +474,6 @@ val ip_property_instance: kernel_function -> stmt -> Cil_types.identified_predicate option -> identified_property -> identified_property -(** Builds an IPAxiom. - @since Carbon-20110201 - @modify Oxygen-20120901 takes an identified_axiom instead of a string -*) -val ip_axiom: identified_axiom -> identified_property - (** Build an IPLemma. @since Nitrogen-20111001 @modify Oxygen-20120901 takes an identified_lemma instead of a string diff --git a/src/kernel_services/ast_data/property_status.ml b/src/kernel_services/ast_data/property_status.ml index 807c37dc47425e70d4a927d59fd701b95ae19148..69eea3203070c39503ca52cb9bc79e10a9d2a722 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -182,9 +182,10 @@ let fold_on_statuses f ip acc = Emitter_with_properties.Hashtbl.fold f h acc with Not_found -> acc - let iter f = Status.iter (fun p _ -> f p) let fold f = Status.fold (fun p _ -> f p) +let iter_sorted ~cmp f = Status.iter_sorted ~cmp (fun p _ -> f p) +let fold_sorted ~cmp f = Status.fold_sorted ~cmp (fun p _ -> f p) (* ok to be computed once right now since there is no parameter dependency *) let usable_kernel_emitter = Emitter.get Emitter.kernel @@ -352,7 +353,6 @@ let is_admitted_code_annot = function | _ -> false let rec is_admitted = function - | Property.IPAxiom _ -> true | Property.IPPredicate ip -> ip.ip_pred.ip_content.tp_kind = Admit | IPLemma lemma -> lemma.il_pred.tp_kind = Admit | IPCodeAnnot ca -> is_admitted_code_annot ca.ica_ca.annot_content @@ -518,8 +518,9 @@ and unsafe_emit_and_get e ~hyps ~auto ppt ?(distinct=false) s = | Property.IPPredicate _ | Property.IPCodeAnnot _ | Property.IPComplete _ | Property.IPDisjoint _ | Property.IPAssigns _ | Property.IPFrom _ | Property.IPAllocation _ | Property.IPDecrease _ | Property.IPBehavior _ - | Property.IPAxiom _ | Property.IPAxiomatic _ | Property.IPLemma _ - | Property.IPTypeInvariant _ | Property.IPGlobalInvariant _ | Property.IPExtended _ -> + | Property.IPAxiomatic _ | Property.IPLemma _ + | Property.IPTypeInvariant _ | Property.IPGlobalInvariant _ + | Property.IPExtended _ -> Kernel.fatal "unregistered property %a" Property.pretty ppt and logical_consequence e ppt hyps = @@ -685,7 +686,7 @@ and get_status ?(must_register=true) ppt = | Property.IPPredicate _ | Property.IPCodeAnnot _ | Property.IPComplete _ | Property.IPDisjoint _ | Property.IPAssigns _ | Property.IPFrom _ | Property.IPDecrease _ | Property.IPAllocation _ - | Property.IPAxiom _ | Property.IPAxiomatic _ | Property.IPLemma _ + | Property.IPAxiomatic _ | Property.IPLemma _ | Property.IPTypeInvariant _ | Property.IPGlobalInvariant _ -> Kernel.fatal "trying to get status of unregistered property `%a'.\n\ That is forbidden (kernel invariant broken)." diff --git a/src/kernel_services/ast_data/property_status.mli b/src/kernel_services/ast_data/property_status.mli index 5656c38152bc9d7009c892748ecdf561bed82fcf..aaf4f44d710828848e432bbde68b8ee9aace8b1f 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -124,6 +124,9 @@ val get: Property.t -> status Consider using {!Property_status.Consolidation.get} if you want to know the consolidated status of the property. *) +(** Iteration on all the individual statuses emitted for the given property. + @since Aluminium-20160501 *) + val iter_on_statuses: (emitter_with_properties -> emitted_status -> unit) -> Property.t -> unit @@ -131,8 +134,6 @@ val fold_on_statuses: (emitter_with_properties -> emitted_status -> 'a -> 'a) -> Property.t -> 'a -> 'a -(** Iteration on all the individual statuses emitted for the given property. - @since Aluminium-20160501 *) (* ************************************************************************ *) (** {2 Consolidated status} *) @@ -232,12 +233,20 @@ module Consolidation_graph: sig end (* ************************************************************************* *) -(** {2 Access to the registered properties} *) +(** {2 Iteration over the registered properties} *) (* ************************************************************************* *) val iter: (Property.t -> unit) -> unit val fold: (Property.t -> 'a -> 'a) -> 'a -> 'a +(** @since Frama-C+dev *) +val iter_sorted: + cmp:(Property.t -> Property.t -> int) -> (Property.t -> unit) -> unit + +val fold_sorted: + cmp:(Property.t -> Property.t -> int) -> + (Property.t -> 'a -> 'a) -> 'a -> 'a + (* ************************************************************************* *) (** {2 API not for casual users} *) (* ************************************************************************* *) diff --git a/src/kernel_services/ast_data/statuses_by_call.ml b/src/kernel_services/ast_data/statuses_by_call.ml index a623869699afdccd2e13c035aa06ee822a951357..ff90571445513f943d7294e5b51e8054f5971c7c 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 fda44ad75c27059185cd23205651694ade60d838..47799199f66b71f844ba042835e4fcabc124a3f9 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 9ec29a131e400c08717e0b17458a5f4b5373de2f..fbcdd4854b795ce496e5ba8bc6a0563d77bb1fa2 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 edcd0357550502bd1f5c7b6b40b1c223b9682bac..abfadceee0c52e2bced80b87be9b92195168e987 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 7cdcca8778d0e7a1d6bdf5e8e6819216db7d4023..53fcb1dbc2c76844ae4fdac21f2233bc51421984 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 c6bdbc86cdd790fcce119c626d1a22234f7fd7bb..547c0aadd5400e6470b87ee317605c312c813fc1 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 f3ee3536abee0d8f6038fff3709931c4bf0e427e..951787b536a0f476d6946932eab7f175cad825d6 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -27,6 +27,53 @@ open Cil_datatype open Printer_api open Format +let string_of_assert = function + | Assert -> "assert" + | Check -> "check" + | Admit -> "admit" + +let name_of_assert = function + | Assert -> "assertion" + | Check -> "check" + | Admit -> "admit" + +let string_of_lemma = function + | Assert -> "lemma" + | Check -> "check lemma" + | Admit -> "axiom" + +let ident_of_lemma = function + | Assert -> "lemma" + | Check -> "check_lemma" + | Admit -> "axiom" + +let string_of_predicate ~kw = function + | Assert -> kw + | Check -> "check " ^ kw + | Admit -> "admit " ^ kw + +let ident_of_predicate ~kw = function + | Assert -> kw + | Check -> "check_" ^ kw + | Admit -> "admit_" ^ kw + +let pp_assert_kind fmt kd = Format.pp_print_string fmt (string_of_assert kd) +let pp_lemma_kind fmt kd = Format.pp_print_string fmt (string_of_lemma kd) +let pp_predicate_kind ~kw fmt kd = + match kd with + | Assert -> Format.pp_print_string fmt kw + | Check -> + begin + Format.pp_print_string fmt "check " ; + Format.pp_print_string fmt kw ; + end + | Admit -> + begin + Format.pp_print_string fmt "admit " ; + Format.pp_print_string fmt kw ; + end + + module Extensions = struct let initialized = ref false let ref_print = ref (fun _ _ _ _ -> assert false) @@ -2847,11 +2894,20 @@ class cil_printer () = object (self) method decreases fmt v = self#decrement "decreases" fmt v method variant fmt v = self#decrement "loop variant" fmt v - method private pp_predicate_kind fmt p = - match p.tp_kind with + method private pp_predicate_kind fmt = function | Assert -> () - | Check -> fprintf fmt "%a " self#pp_acsl_keyword "check" - | Admit -> fprintf fmt "%a " self#pp_acsl_keyword "admit" + | Check -> self#pp_acsl_keyword fmt "check" ; pp_print_char fmt ' ' + | Admit -> self#pp_acsl_keyword fmt "admit" ; pp_print_char fmt ' ' + + method private pp_lemma_kind fmt = function + | Assert -> self#pp_acsl_keyword fmt "lemma" + | Admit -> self#pp_acsl_keyword fmt "axiom" + | Check -> + begin + self#pp_acsl_keyword fmt "check" ; + pp_print_char fmt ' ' ; + self#pp_acsl_keyword fmt "lemma" ; + end method assumes fmt p = fprintf fmt "@[<hov 2>%a@ %a;@]" @@ -2860,7 +2916,7 @@ class cil_printer () = object (self) method requires fmt p = fprintf fmt "@[<hov 2>%a%a@ %a;@]" - self#pp_predicate_kind p.ip_content + self#pp_predicate_kind p.ip_content.tp_kind self#pp_acsl_keyword "requires" self#identified_predicate p @@ -2873,7 +2929,7 @@ class cil_printer () = object (self) method post_cond fmt (k,p) = let kw = get_termination_kind_name k in fprintf fmt "@[<hov 2>%a%a@ %a;@]" - self#pp_predicate_kind p.ip_content + self#pp_predicate_kind p.ip_content.tp_kind self#pp_acsl_keyword kw self#identified_predicate p @@ -3086,14 +3142,9 @@ class cil_printer () = object (self) in match ca.annot_content with | AAssert (behav,p) -> - let kw = match p.tp_kind with - | Assert -> "assert" - | Check -> "check" - | Admit -> "admit" - in fprintf fmt "@[%a%a@ %a;@]" pp_for_behavs behav - self#pp_acsl_keyword kw + self#pp_acsl_keyword (string_of_assert p.tp_kind) self#predicate p.tp_statement | APragma (Slice_pragma sp) -> fprintf fmt "@[%a@ %a;@]" @@ -3122,13 +3173,13 @@ class cil_printer () = object (self) | AInvariant(behav,true, i) -> fprintf fmt "@[<2>%a%a%a@ %a;@]" pp_for_behavs behav - self#pp_predicate_kind i + self#pp_predicate_kind i.tp_kind self#pp_acsl_keyword "loop invariant" self#predicate i.tp_statement | AInvariant(behav,false,i) -> fprintf fmt "@[<2>%a%a%a@ %a;@]" pp_for_behavs behav - self#pp_predicate_kind i + self#pp_predicate_kind i.tp_kind self#pp_acsl_keyword "invariant" self#predicate i.tp_statement | AVariant v -> @@ -3217,12 +3268,11 @@ class cil_printer () = object (self) self#logic_var pred.l_var_info self#predicate (pred_body pred.l_body); current_label <- old_label - | Dlemma(name, is_axiom, labels, tvars, pred, _attr, _) -> + | Dlemma(name, labels, tvars, pred, _attr, _) -> (* attributes are meant to be purely internal for now. *) let old_lab = current_label in - fprintf fmt "@[<hv 2>@[<hov 1>%a%a %a%a%a:@]@ %t%a;@]@\n" - self#pp_predicate_kind pred - self#pp_acsl_keyword (if is_axiom then "axiom" else "lemma") + fprintf fmt "@[<hv 2>@[<hov 1>%a %a%a%a:@]@ %t%a;@]@\n" + self#pp_lemma_kind pred.tp_kind self#varname name self#labels labels self#polyTypePrms tvars diff --git a/src/kernel_services/ast_printing/cil_printer.mli b/src/kernel_services/ast_printing/cil_printer.mli index 40eeaa1b3e0112366d0158fb291fa598136dabba..7e0b5fd02905c3441575f96375a3d1be1574db85 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -30,6 +30,34 @@ include Printer_api.S +(** ["assert"], ["check"] or ["admit"]. *) +val string_of_assert : Cil_types.predicate_kind -> string + +(** ["assertion"], ["check"] or ["admit"]. *) +val name_of_assert : Cil_types.predicate_kind -> string + +(** ["lemma"], ["check lemma"] or ["axiom"]. *) +val string_of_lemma : Cil_types.predicate_kind -> string + +(** clause, prefixed by ["check"] or ["admit"]. *) +val string_of_predicate : kw:string -> Cil_types.predicate_kind -> string + +(** same as [string_of_lemma] with ["_"] for separator. *) +val ident_of_lemma : Cil_types.predicate_kind -> string + +(** same as [string_of_predicate] with ["_"] for separator. *) +val ident_of_predicate : kw:string -> Cil_types.predicate_kind -> string + +(** pretty prints [string_of_assert]. *) +val pp_assert_kind : Format.formatter -> Cil_types.predicate_kind -> unit + +(** pretty prints [string_of_lemma]. *) +val pp_lemma_kind : Format.formatter -> Cil_types.predicate_kind -> unit + +(** pretty prints [string_of_predicate]. *) +val pp_predicate_kind : + kw:string -> Format.formatter -> Cil_types.predicate_kind -> unit + val get_termination_kind_name: Cil_types.termination_kind -> string val register_shallow_attribute: string -> unit diff --git a/src/kernel_services/ast_printing/cil_types_debug.ml b/src/kernel_services/ast_printing/cil_types_debug.ml index 326c95e4eab0f88c9d8bd2ed15a16bfc1ee063bf..e818857a279b7482830c58d6473fd2d73b6b910b 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -1017,8 +1017,8 @@ and pp_global_annotation fmt = function pp_attributes attributes pp_location location | Dtype(logic_type_info,location) -> Format.fprintf fmt "Dtype(%a,%a)" pp_logic_type_info logic_type_info pp_location location - | Dlemma(string,bool,logic_label_list,string_list,predicate,attributes,location) -> - Format.fprintf fmt "Dlemma(%a,%a,%a,%a,%a,%a,%a)" pp_string string pp_bool bool + | Dlemma(string,logic_label_list,string_list,predicate,attributes,location) -> + Format.fprintf fmt "Dlemma(%a,%a,%a,%a,%a,%a)" pp_string string (pp_list pp_logic_label) logic_label_list (pp_list pp_string) string_list pp_toplevel_predicate predicate pp_attributes attributes pp_location location diff --git a/src/kernel_services/ast_printing/cil_types_debug.mli b/src/kernel_services/ast_printing/cil_types_debug.mli index b64e8fbfebde6a2bb71a95224180bbcdb9f135ac..70cafd3ad0cff0567590dda23d31da57d4501b26 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 fc6ff06a00e3f341ba21a247bd690dde81543fc9..63119aba59ed84b535b975d90fd31a7d738ae5b7 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -120,13 +120,8 @@ let pp_top fmt tp = pp_named fmt tp.tp_statement let pp_code_annot fmt ca = match ca.annot_content with | AAssert(bs,tp) -> - let kind = - match tp.tp_kind with - | Assert -> "assertion" - | Check -> "check" - | Admit -> "admit" - in - Format.fprintf fmt "%s%a%a" kind pp_for bs pp_top tp + Format.fprintf fmt "%a%a%a" + Cil_printer.pp_assert_kind tp.tp_kind pp_for bs pp_top tp | AInvariant(bs,_,tp) -> Format.fprintf fmt "invariant%a%a" pp_for bs pp_top tp | AAssigns(bs,_) -> Format.fprintf fmt "assigns%a" pp_for bs @@ -226,8 +221,11 @@ let pp_capitalize fmt s = let pp_acsl_extension fmt {ext_name} = pp_capitalize fmt ext_name let rec pp_prop kfopt kiopt kloc fmt = function - | IPAxiom {il_name=s} -> Format.fprintf fmt "Axiom '%s'" s - | IPLemma {il_name=s} -> Format.fprintf fmt "Lemma '%s'" s + | IPLemma {il_name=s; il_pred=p} -> + (match p.tp_kind with + | Admit -> Format.fprintf fmt "Axiom '%s'" s + | Assert -> Format.fprintf fmt "Lemma '%s'" s + | Check -> Format.fprintf fmt "Check Lemma '%s'" s) | IPTypeInvariant {iti_name=s} -> Format.fprintf fmt "Type invariant '%s'" s | IPGlobalInvariant {igi_name=s} -> Format.fprintf fmt "Global invariant '%s'" s | IPAxiomatic {iax_name=s} -> Format.fprintf fmt "Axiomatic '%s'" s @@ -500,7 +498,7 @@ let loop_order = function let rec ip_order = function | IPAxiomatic {iax_name=a} -> [I 0;S a] - | IPAxiom {il_name=a} | IPLemma {il_name=a} -> [I 1;S a] + | IPLemma {il_name=a} -> [I 1;S a] | IPOther {io_name=s;io_loc=OLContract kf} -> [I 3;F kf;S s] | IPOther {io_name=s;io_loc=OLStmt (kf, stmt)} -> [I 4;F kf;K (Kstmt stmt);S s] | IPOther {io_name=s;io_loc=OLGlob _} -> [I 5; S s] diff --git a/src/kernel_services/ast_printing/description.mli b/src/kernel_services/ast_printing/description.mli index 41cf5521eb466f296555471063c185ed7b3cf543..54f432c53e04bc8e17161d58d71ab23a33617682 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/ast_printing/logic_print.ml b/src/kernel_services/ast_printing/logic_print.ml index ffd4b850dda5c351dcc0ef170709c7077f0c48f5..2c6c5a8ecee96fd92dcb751bc3e09e72f6182270 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) @@ -364,13 +364,9 @@ let rec print_decl fmt d = (pp_list ~pre:"<@[" ~sep:",@ " ~suf:"@>}" pp_print_string) tvar (pp_list ~sep:",@ " print_typed_ident) prms (pp_list ~sep:"@\n" print_case) cases - | LDlemma(name,is_axiom,labels,tvar,body) -> - fprintf fmt "@[<2>%s%a@ %s%a%a:@ %a;@]" - (match body.tp_kind with - | Assert -> "" - | Check -> "check " - | Admit -> "admit") - (pp_cond ~pr_false:"lemma" is_axiom) "axiom" name + | LDlemma(name,labels,tvar,body) -> + fprintf fmt "@[<2>%a@ %s%a%a:@ %a;@]" + Cil_printer.pp_lemma_kind body.tp_kind name (pp_list ~pre:"{@[" ~sep:",@ " ~suf:"@]}" pp_print_string) labels (pp_list ~pre:"<@[" ~sep:",@ " ~suf:"@>}" pp_print_string) tvar print_lexpr body.tp_statement @@ -422,12 +418,7 @@ let print_allocation ~isloop fmt fa = let print_clause name fmt e = fprintf fmt "@\n%s@ %a;" name print_lexpr e let print_tp_clause name fmt e = - let name = - match e.tp_kind with - | Assert -> name - | Check -> "check " ^ name - | Admit -> "admit " ^ name - in + let name = Cil_printer.string_of_predicate ~kw:name e.tp_kind in print_clause name fmt e.tp_statement let print_post fmt (k,e) = @@ -493,23 +484,19 @@ let print_code_annot fmt ca = in match ca with AAssert(bhvs,e) -> - fprintf fmt "%a%s@ %a;" + fprintf fmt "%a%a@ %a;" print_behaviors bhvs - (match e.tp_kind with - | Assert -> "" - | Check -> "check " - | Admit -> "admit") + Cil_printer.pp_assert_kind e.tp_kind print_lexpr e.tp_statement | AStmtSpec (bhvs,s) -> fprintf fmt "%a%a" print_behaviors bhvs print_spec s | AInvariant (bhvs,loop,e) -> - fprintf fmt "%a%a%a%ainvariant@ %a;" + let kw = if loop then "loop invariant" else "invariant" in + fprintf fmt "%a%a@ %a;" print_behaviors bhvs - (pp_cond (e.tp_kind = Check)) "check @" - (pp_cond (e.tp_kind = Admit)) "admit @" - (pp_cond loop) "loop@ " + (Cil_printer.pp_predicate_kind ~kw) e.tp_kind print_lexpr e.tp_statement | AVariant e -> fprintf fmt "loop@ variant@ %a;" print_variant e | AAssigns (bhvs,a) -> diff --git a/src/kernel_services/ast_printing/logic_print.mli b/src/kernel_services/ast_printing/logic_print.mli index c4966d97e40e7bbfb033d201fb3abbdbc2bdfa28..0a5a3e100315f9e3a53b5a47742b043701f77f77 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 8b8fa7737f1501afeda0f7d72b122ed13a860cff..c8e1bac0d46a728fd3b9b5893f68b4f675d67890 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/ast_printing/printer.mli b/src/kernel_services/ast_printing/printer.mli index b653fac8e08b95a75f7f3b4822c6fe026007d4bb..77d0b364a14980f4f78aa7f5236edb22195482a3 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 b6cec4010d9dcd9865f1b6538bde79265a3684c0..abddde80992f971dd40eaacde7476bde49dee1f7 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/ast_printing/printer_builder.ml b/src/kernel_services/ast_printing/printer_builder.ml index a733de957ce3d588aff9f84e93bb978a25ad1f14..a1c67d83ff5f55538f3b17f97805b07f77c64e6d 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 552cbfef3bac46433fffb0331c74e345b43226d1..5790991f7672f6f4a5604710c4bc5b3af12d9e1b 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/ast_printing/printer_tag.ml b/src/kernel_services/ast_printing/printer_tag.ml index c95353544de9d0f43741b2dd4e215c48885d26f6..4f07c37e14609ce2be24fba5135655a1404ab495 100644 --- a/src/kernel_services/ast_printing/printer_tag.ml +++ b/src/kernel_services/ast_printing/printer_tag.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/ast_printing/printer_tag.mli b/src/kernel_services/ast_printing/printer_tag.mli index af081f1eec0435423f8181e0032dc09b3c4377dc..a35466dfc72390bf57d86673f670c26698ec962b 100644 --- a/src/kernel_services/ast_printing/printer_tag.mli +++ b/src/kernel_services/ast_printing/printer_tag.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/ast_queries/acsl_extension.ml b/src/kernel_services/ast_queries/acsl_extension.ml index 5132e3e1540275b6b489bf52fec1e023e9a3d864..450fd797e13a085e92cdf1469e8d89f14705fd2e 100644 --- a/src/kernel_services/ast_queries/acsl_extension.ml +++ b/src/kernel_services/ast_queries/acsl_extension.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/ast_queries/acsl_extension.mli b/src/kernel_services/ast_queries/acsl_extension.mli index c615564b73e848de661706e29db19b63f931fbed..a4b99bcf14208e8356fbed6097670c7f890a3edb 100644 --- a/src/kernel_services/ast_queries/acsl_extension.mli +++ b/src/kernel_services/ast_queries/acsl_extension.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 3a0b67f0857f54158c41ba96b0974678e1683240..be162cec7f9f81ad3a4cbf9a95f7ad4b7b9a7959 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 1adcb7480a59fa6b5c0efd6bab272097749773fa..14fb2476dbac0e3203aa092cc45e2b4b81868b02 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -69,7 +69,9 @@ val precondition : goal:bool -> funspec -> predicate (** Builds the precondition from [b_assumes] and [b_requires] clauses. With [~goal:true], only returns assert and check predicates. With [~goal:false], only returns assert and admit predicates. - @since Carbon-20101201 *) + @since Carbon-20101201 + @modify Frama-C+dev introduce [goal] flag +*) val behavior_assumes : funbehavior -> predicate (** Builds the conjunction of the [b_assumes]. @@ -77,14 +79,18 @@ val behavior_assumes : funbehavior -> predicate val behavior_precondition : goal:bool -> funbehavior -> predicate (** Builds the precondition from [b_assumes] and [b_requires] clauses. - For flag [~goal] see [precondition] above. - @since Carbon-20101201 *) + For flag [~goal] see {!Ast_info.precondition} above. + @since Carbon-20101201 + @modify Frama-C+dev introduce [goal] flag +*) val behavior_postcondition : goal:bool -> funbehavior -> termination_kind -> predicate (** Builds the postcondition from [b_assumes] and [b_post_cond] clauses. - For flag [~goal] see [precondition] above. - @modify Boron-20100401 added termination kind as filtering argument. *) + For flag [~goal] see {Ast_info.precondition} above. + @modify Boron-20100401 added termination kind as filtering argument. + @modify Frama-C+dev introduce [goal] flag +*) val disjoint_behaviors : funspec -> string list -> predicate (** Builds the [disjoint_behaviors] property for the behavior names. diff --git a/src/kernel_services/ast_queries/cil.ml b/src/kernel_services/ast_queries/cil.ml index 0edffb0dd95d3c08071125f6d65856aa016648ff..9989a671d839911fefad80bd78d5184f41161a6e 100644 --- a/src/kernel_services/ast_queries/cil.ml +++ b/src/kernel_services/ast_queries/cil.ml @@ -665,7 +665,9 @@ let update_var_type v t = v.vtype <- if v.vghost then typeAddGhost t else t; match v.vlogic_var_assoc with | None -> () - | Some lv -> lv.lv_type <- Ctype t + | Some lv -> + (* ghost attribute is irrelevant in ACSL. *) + lv.lv_type <- Ctype t (* Make a varinfo. Used mostly as a helper function below *) let makeVarinfo @@ -2111,11 +2113,11 @@ and childrenAnnotation vis a = Logic_env.add_logic_type ti'.lt_name ti') vis#get_filling_actions; if ti' != ti then Dtype (ti',loc) else a - | Dlemma(s,is_axiom,labels,tvars,p,attr,loc) -> + | Dlemma(s,labels,tvars,p,attr,loc) -> let p' = visitCilToplevel_predicate vis p in let attr' = visitCilAttributes vis attr in if p' != p || attr != attr' then - Dlemma(s,is_axiom,labels,tvars,p',attr',loc) + Dlemma(s,labels,tvars,p',attr',loc) else a | Dinvariant (p,loc) -> let p' = visitCilLogicInfo vis p in @@ -3394,9 +3396,9 @@ let evar ?(loc=Location.unknown) vi = new_exp ~loc (Lval (var vi)) let mkString ~loc s = new_exp ~loc (Const(CStr s)) -let mkLoop ?(sattr = [Attr("while", [])]) ~(guard:exp) ~(body: stmt list) : stmt list = +let mkLoop ?sattr ~(guard:exp) ~(body: stmt list) () : stmt list = (* Do it like this so that the pretty printer recognizes it *) - [ mkStmt ~valid_sid:true ~sattr + [ mkStmt ~valid_sid:true ?sattr (Loop ([], mkBlock (mkStmt ~valid_sid:true @@ -3405,28 +3407,43 @@ let mkLoop ?(sattr = [Attr("while", [])]) ~(guard:exp) ~(body: stmt list) : stmt mkBlock [ mkStmt ~valid_sid:true (Break guard.eloc)], guard.eloc)) :: body), guard.eloc, None, None)) ] -let mkFor ~(start: stmt list) ~(guard: exp) ~(next: stmt list) - ~(body: stmt list) : stmt list = +let mkWhile ?sattr ~(guard:exp) ~(body: stmt list) () : stmt list = + let sattr = [Attr("while", [])] @ Option.value ~default:[] sattr in + mkLoop ~sattr ~guard ~body () + +let mkDoWhile ?sattr ~(body: stmt list) ~(guard:exp) () : stmt list = + let sattr = [Attr("dowhile", [])] @ Option.value ~default:[] sattr in + let exit_stmt = + mkStmt ~valid_sid:true + (If(guard, mkBlock [mkStmt ~valid_sid:true (Break guard.eloc)], + mkBlock [], guard.eloc)) + in + let true_exp = one ~loc:guard.eloc in + mkLoop ~sattr ~guard:true_exp ~body:(body @ [exit_stmt]) () + +let mkFor ?sattr ~(start: stmt list) ~(guard: exp) ~(next: stmt list) + ~(body: stmt list) () : stmt list = + let sattr = [Attr("for", [])] @ Option.value ~default:[] sattr in (start @ - (mkLoop ~sattr:[Attr("For",[])] ~guard ~body:(body @ next))) + (mkLoop ~sattr ~guard ~body:(body @ next)) ()) -let mkForIncr ~(iter : varinfo) ~(first: exp) ~(stopat: exp) ~(incr: exp) - ~(body: stmt list) : stmt list = +let mkForIncr ?sattr ~(iter : varinfo) ~(first: exp) ~(stopat: exp) ~(incr: exp) + ~(body: stmt list) () : stmt list = (* See what kind of operator we need *) let nextop = match unrollTypeSkel iter.vtype with | TPtr _ -> PlusPI | _ -> PlusA in - mkFor - [ mkStmtOneInstr ~valid_sid:true (Set (var iter, first, first.eloc)) ] - (new_exp ~loc:stopat.eloc (BinOp(Lt, evar iter, stopat, intType))) - [ mkStmtOneInstr ~valid_sid:true - (Set - (var iter, - (new_exp ~loc:incr.eloc - (BinOp(nextop, evar iter, incr, iter.vtype))), - incr.eloc))] - body + mkFor ?sattr + ~start:[ mkStmtOneInstr ~valid_sid:true (Set (var iter, first, first.eloc)) ] + ~guard:(new_exp ~loc:stopat.eloc (BinOp(Lt, evar iter, stopat, intType))) + ~next:[ mkStmtOneInstr ~valid_sid:true + (Set + (var iter, + (new_exp ~loc:incr.eloc + (BinOp(nextop, evar iter, incr, iter.vtype))), + incr.eloc))] + ~body () let block_from_unspecified_sequence us = mkBlock (List.map (fun (x,_,_,_,_) ->x) us) @@ -4161,7 +4178,7 @@ and process_aligned_attribute (pp:Format.formatter->unit) ~may_reduce attrs defa (* Computation of the offset of the field [fi], given the information [sofar] computed for the previous fields. [last] indicates that we are considering the last field of the struct. Set to [false] by default for unions. *) -and offsetOfFieldAcc ?(last=false) ~(fi: fieldinfo) ~(sofar: offsetAcc) : offsetAcc = +and offsetOfFieldAcc ~last ~(fi: fieldinfo) ~(sofar: offsetAcc) : offsetAcc = if msvcMode () then offsetOfFieldAcc_MSVC last fi sofar else offsetOfFieldAcc_GCC last fi sofar @@ -4372,7 +4389,7 @@ and bitsSizeOf t = oaPrevBitPack = None; } in let fold acc fi = - let lastoff = offsetOfFieldAcc ?last:None ~fi ~sofar:startAcc in + let lastoff = offsetOfFieldAcc ~last:false ~fi ~sofar:startAcc in if lastoff.oaFirstFree > acc then lastoff.oaFirstFree else acc @@ -5356,7 +5373,7 @@ let global_annotation_attributes = function | Dvolatile (_,_,_,attrs,_) -> attrs | Daxiomatic (_,_,attrs,_) -> attrs | Dtype ({ lt_attr }, _) -> lt_attr - | Dlemma (_,_,_,_,_,attrs,_) -> attrs + | Dlemma (_,_,_,_,attrs,_) -> attrs | Dinvariant ({l_var_info = { lv_attr }}, _) -> lv_attr | Dtype_annot ({l_var_info = { lv_attr }}, _) -> lv_attr | Dmodel_annot ({ mi_attr }, _) -> mi_attr @@ -5757,7 +5774,7 @@ let getCompField cinfo fieldName = (fun fi -> fi.fname = fieldName) (Option.value ~default:[] cinfo.cfields) -let mkCastT ?(force=false) ~(e: exp) ~(oldt: typ) ~(newt: typ) = +let mkCastT ?(force=false) ~(oldt: typ) ~(newt: typ) e = let loc = e.eloc in (* Issue #!1546 let force = force || @@ -5794,8 +5811,8 @@ let mkCastT ?(force=false) ~(e: exp) ~(oldt: typ) ~(newt: typ) = end else e -let mkCast ?force ~(e: exp) ~(newt: typ) = - mkCastT ?force ~e ~oldt:(typeOf e) ~newt +let mkCast ?force ~(newt: typ) e = + mkCastT ?force ~oldt:(typeOf e) ~newt e (* TODO: unify this with doBinOp in Cabs2cil. *) let mkBinOp ~loc op e1 e2 = @@ -5804,8 +5821,8 @@ let mkBinOp ~loc op e1 e2 = let machdep = false in let make_expr common_type res_type = constFoldBinOp ~loc machdep op - (mkCastT e1 t1 common_type) - (mkCastT e2 t2 common_type) + (mkCastT t1 common_type e1) + (mkCastT t2 common_type e2) res_type in let doArithmetic () = @@ -5826,7 +5843,7 @@ let mkBinOp ~loc op e1 e2 = let compare_pointer op ?cast1 ?cast2 e1 e2 = let do_cast e = function | None -> e - | Some t' -> mkCastT ~force:false ~e ~oldt:(typeOf e) ~newt:t' + | Some t' -> mkCastT ~force:false ~oldt:(typeOf e) ~newt:t' e in let e1, e2 = if need_cast ~force:true (typeOf e1) (typeOf e2) then @@ -5857,14 +5874,14 @@ let mkBinOp ~loc op e1 e2 = let t1' = integralPromotion t1 in let t2' = integralPromotion t2 in constFoldBinOp ~loc machdep op - (mkCastT e1 t1 t1') (mkCastT e2 t2 t2') t1' + (mkCastT t1 t1' e1) (mkCastT t2 t2' e2) t1' | (PlusA|MinusA) when isArithmeticType t1 && isArithmeticType t2 -> doArithmetic () | (PlusPI|MinusPI|IndexPI) when isPointerType t1 && isIntegralType t2 -> constFoldBinOp ~loc machdep op e1 e2 t1 | MinusPP when isPointerType t1 && isPointerType t2 -> (* NB: Same as cabs2cil. Check if this is really what the standard says*) - constFoldBinOp ~loc machdep op e1 (mkCastT e2 t2 t1) intType + constFoldBinOp ~loc machdep op e1 (mkCastT t2 t1 e2) intType | (Eq|Ne|Lt|Le|Ge|Gt) when isArithmeticType t1 && isArithmeticType t2 -> doArithmeticComp () @@ -5894,8 +5911,8 @@ let mkBinOp_safe_ptr_cmp ~loc op e1 e2 = if isPointerType t1 && isPointerType t2 && not (isZero e1) && not (isZero e2) then begin - mkCast ~force:true ~e:e1 ~newt:theMachine.upointType, - mkCast ~force:true ~e:e2 ~newt:theMachine.upointType + mkCast ~force:true ~newt:theMachine.upointType e1, + mkCast ~force:true ~newt:theMachine.upointType e2 end else e1, e2 | _ -> e1, e2 in @@ -6013,7 +6030,7 @@ let rec makeZeroInit ~loc (t: typ) : init = | TPtr _ as t -> SingleInit( - if theMachine.insertImplicitCasts then mkCast (zero ~loc) t + if theMachine.insertImplicitCasts then mkCast t (zero ~loc) else zero ~loc) | x -> Kernel.fatal ~current:true "Cannot initialize type: %a" !pp_typ_ref x @@ -6219,7 +6236,8 @@ let uniqueVarNames (f: file) : unit = let data = CurrentLoc.get () in let newname, oldloc = Alpha.newAlphaName - ~alphaTable:gAlphaTable ~undolist ~lookupname ~data + ~alphaTable:gAlphaTable ~undolist:(Some undolist) + ~lookupname ~data in if false && newname <> v.vname then (* Disable this warning *) Kernel.warning diff --git a/src/kernel_services/ast_queries/cil.mli b/src/kernel_services/ast_queries/cil.mli index ae92a0c24ed9f2fa5bb8db649f1a52031fee9632..5bdb0939b7a617338d8b221ca8cffe24fad7c7a3 100644 --- a/src/kernel_services/ast_queries/cil.mli +++ b/src/kernel_services/ast_queries/cil.mli @@ -978,11 +978,14 @@ val need_cast: ?force:bool -> typ -> typ -> bool type is the same as the old type, then no cast is added, unless [force] is [true] (default is [false]) @modify Fluorine-20130401 add [force] argument + @modify Frama-C+dev change order or arguments *) -val mkCastT: ?force:bool -> e:exp -> oldt:typ -> newt:typ -> exp +val mkCastT: ?force:bool -> oldt:typ -> newt:typ -> exp -> exp -(** Like {!Cil.mkCastT} but uses typeOf to get [oldt] *) -val mkCast: ?force:bool -> e:exp -> newt:typ -> exp +(** Like {!Cil.mkCastT} but uses typeOf to get [oldt] + @modify Frama-C+dev change order or arguments +*) +val mkCast: ?force:bool -> newt:typ -> exp -> exp (** Equivalent to [stripCasts] for terms. *) val stripTermCasts: term -> term @@ -1116,21 +1119,41 @@ val mkPureExpr: ?loc:location -> exp -> stmt (** 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 + The kind of loop (while, for, dowhile) is given by [sattr] + (none by default). Use {!Cil.mkWhile} for a While loop. + @modify Frama-C+dev add unit argument. Default type is no longer While, + use {!Cil.mkWhile} instead. +*) +val mkLoop: ?sattr:attributes -> guard:exp -> body:stmt list -> unit -> + 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 or an integer. Start and done must have the same type but incr - must be an integer *) -val mkForIncr: iter:varinfo -> first:exp -> stopat:exp -> incr:exp - -> body:stmt list -> stmt list + must be an integer + @modify Frama-C+dev add unit argument +*) +val mkForIncr: ?sattr:attributes -> iter:varinfo -> first:exp -> stopat:exp -> + incr:exp -> body:stmt list -> unit -> stmt list (** Make a for loop for(start; guard; next) \{ ... \}. The body can - contain Break but not Continue !!! *) -val mkFor: start:stmt list -> guard:exp -> next: stmt list -> - body: stmt list -> stmt list + contain Break but not Continue !!! + @modify Frama-C+dev add unit argument +*) +val mkFor: ?sattr:attributes -> start:stmt list -> guard:exp -> next: stmt list -> + body: stmt list -> unit -> stmt list + +(** Make a while loop. + @since Frama-C+dev +*) +val mkWhile: ?sattr:attributes -> guard:exp -> body:stmt list -> unit -> + stmt list + +(** Make a do ... while loop. + @since Frama-C+dev +*) +val mkDoWhile: ?sattr:attributes -> body:stmt list -> guard:exp -> unit -> + stmt list (** creates a block with empty attributes from an unspecified sequence. *) val block_from_unspecified_sequence: diff --git a/src/kernel_services/ast_queries/cil_builtins.ml b/src/kernel_services/ast_queries/cil_builtins.ml index 94d8a3a62efb9e5a14bcda569a26f697ecf8ad9d..f070c99028da28b9602d3c19c0742bad4fb22a6d 100644 --- a/src/kernel_services/ast_queries/cil_builtins.ml +++ b/src/kernel_services/ast_queries/cil_builtins.ml @@ -685,6 +685,13 @@ let init_common_builtins () = [ Cil.theMachine.typeOfSizeOf ] false +let custom_builtins = Queue.create () + +let add_custom_builtin f = Queue.add f custom_builtins + +let register_custom_builtin (name, rt, prms, isva) = + Builtin_functions.add name (rt,prms,isva) + let init_builtins () = if not (Cil.selfMachine_is_computed ()) then Kernel.fatal ~current:true "You must call initCIL before init_builtins" ; @@ -696,7 +703,8 @@ let init_builtins () = else begin initVABuiltins (); if Cil.gccMode () then initGccBuiltins (); - end + end; + Queue.iter (fun f -> register_custom_builtin (f())) custom_builtins (** This is used as the location of the prototypes of builtin functions. *) let builtinLoc: location = Location.unknown diff --git a/src/kernel_services/ast_queries/cil_builtins.mli b/src/kernel_services/ast_queries/cil_builtins.mli index adb9caf1eb57e165b9e9ba0d56d9bf8e9dce3670..90b7cfea4a7e9868c2e69821af99e32573edbae5 100644 --- a/src/kernel_services/ast_queries/cil_builtins.mli +++ b/src/kernel_services/ast_queries/cil_builtins.mli @@ -86,7 +86,8 @@ val init_builtins: unit -> unit (** A list of the built-in functions for the current compiler (GCC or * MSVC, depending on [!msvcMode]). Maps the name to the * result and argument types, and whether it is vararg. - * Initialized by {!Cil.initCIL} + * Initialized by {!Cil.initCIL}. Do not add builtins directly, use + * {! add_custom_builtin } below for that. * * This map replaces [gccBuiltins] and [msvcBuiltins] in previous * versions of CIL.*) @@ -94,5 +95,13 @@ module Builtin_functions : State_builder.Hashtbl with type key = string and type data = typ * typ list * bool +(** Register a new builtin. The function will be called after setting + the machdep and initializing machine-dependent builtins. Hence, types + such {!Cil.uint16_t} might be used if needed. + + @since Frama-C+dev +*) +val add_custom_builtin: (unit -> (string * typ * typ list * bool)) -> unit + (** This is used as the location of the prototypes of builtin functions. *) val builtinLoc: location diff --git a/src/kernel_services/ast_queries/cil_datatype.ml b/src/kernel_services/ast_queries/cil_datatype.ml index 882c494bce29891729f876f88bc199d62ae6f864..3a032c50e526be36d7334c04c83cc14eb547ad1a 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -226,10 +226,15 @@ module Location = struct let to_lexing_loc (pos1, pos2) = Position.to_lexing_pos pos1, Position.to_lexing_pos pos2 - let equal_start_semantic (pos1, _) (pos2, _) = - Filepath.(Datatype.Filepath.equal pos1.pos_path pos2.pos_path - && pos1.pos_lnum = pos2.pos_lnum - && pos1.pos_cnum - pos1.pos_bol = pos2.pos_cnum - pos2.pos_bol) + let compare_start_semantic (pos1, _) (pos2, _) = + let open Filepath in + let c = Datatype.Filepath.compare pos1.pos_path pos2.pos_path in + if c <> 0 then c else + let c = pos1.pos_lnum - pos2.pos_lnum in + if c <> 0 then c else + (pos1.pos_cnum - pos1.pos_bol) - (pos2.pos_cnum - pos2.pos_bol) + + let equal_start_semantic l1 l2 = compare_start_semantic l1 l2 = 0 end @@ -1982,7 +1987,7 @@ module Global_annotation = struct | Dtype(t1,_), Dtype(t2,_) -> Logic_type_info.compare t1 t2 | Dtype _, _ -> -1 | _, Dtype _ -> 1 - | Dlemma (l1,_,_,_,_,attr1,_), Dlemma(l2,_,_,_,_,attr2,_) -> + | Dlemma (l1,_,_,_,attr1,_), Dlemma(l2,_,_,_,attr2,_) -> let res = Datatype.String.compare l1 l2 in if res = 0 then Attributes.compare attr1 attr2 else res | Dlemma _, _ -> -1 @@ -2017,7 +2022,7 @@ module Global_annotation = struct (* Empty axiomatic is weird but authorized. *) | Daxiomatic (_,g::_,_,_) -> 5 * hash g | Dtype (t,_) -> 7 * Logic_type_info.hash t - | Dlemma(n,_,_,_,_,_,_) -> 11 * Datatype.String.hash n + | Dlemma(n,_,_,_,_,_) -> 11 * Datatype.String.hash n | Dinvariant(l,_) -> 13 * Logic_info.hash l | Dtype_annot(l,_) -> 17 * Logic_info.hash l | Dmodel_annot(l,_) -> 19 * Model_info.hash l @@ -2031,7 +2036,7 @@ module Global_annotation = struct | Dfun_or_pred(_, loc) | Daxiomatic(_, _, _, loc) | Dtype (_, loc) - | Dlemma(_, _, _, _, _, _, loc) + | Dlemma(_, _, _, _, _, loc) | Dinvariant(_, loc) | Dtype_annot(_, loc) -> loc | Dmodel_annot(_, loc) -> loc @@ -2043,7 +2048,7 @@ module Global_annotation = struct | Dfun_or_pred({ l_var_info = { lv_attr }}, _) -> lv_attr | Daxiomatic(_, _, attr, _) -> attr | Dtype ({lt_attr}, _) -> lt_attr - | Dlemma(_, _, _, _, _, attr, _) -> attr + | Dlemma(_, _, _, _, attr, _) -> attr | Dinvariant({ l_var_info = { lv_attr }}, _) -> lv_attr | Dtype_annot({ l_var_info = { lv_attr}}, _) -> lv_attr | Dmodel_annot({ mi_attr }, _) -> mi_attr diff --git a/src/kernel_services/ast_queries/cil_datatype.mli b/src/kernel_services/ast_queries/cil_datatype.mli index 3370462e56180d807ee10c44c8fc415b29a801eb..dd75d97434ba8e5b3813b764d75d236459b7417d 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -85,10 +85,15 @@ module Location: sig starting position. Compares normalized filenames, lines and columns, but no absolute character offsets. + @since Frama-C+dev + *) + val compare_start_semantic : location -> location -> int + + (** Equality using [compare_start_semantic]. + @since 22.0-Titanium *) val equal_start_semantic : location -> location -> bool - end module Localisation: Datatype.S with type t = localisation diff --git a/src/kernel_services/ast_queries/cil_state_builder.ml b/src/kernel_services/ast_queries/cil_state_builder.ml index 07ab7fbc7e1a84ce64a4b0d6a1408d2af39b7148..cce9d5f46a8f07a5eac39f8f88d268019d0bfcf7 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 7bc8e9cad3e1ace9022b381ae305b22c774ba942..b9d86cfce9d0573430a712c610f790bacf80b39c 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 bf305b358d728b3abdf4148586ccb989287efb7c..6cd0cc0cecf3212337ddc80ec4ea9b66baa0ffb8 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -36,9 +36,11 @@ let pretty_cpp_opt_kind fmt = type file = | NeedCPP of Filepath.Normalized.t (* filename of the [.c] to preprocess *) - * string (* Preprocessor command. - [filename.c -o tempfilname.i] will be appended at the - end.*) + * string (* Preprocessing command, as given by -cpp-command, or + the default value, but without extra arguments *) + * string list (* Extra arguments to be given to the preprocessing + command, as given by -cpp-extra-args-per-file or + a JSON Compilation Database. *) * cpp_opt_kind | NoCPP of Filepath.Normalized.t (** filename of a preprocessed [.c] *) | External of Filepath.Normalized.t * string @@ -51,7 +53,7 @@ module D = type t = file let name = "File" let reprs = - [ NeedCPP(Filepath.Normalized.unknown, "", Unknown); + [ NeedCPP(Filepath.Normalized.unknown, "", [], Unknown); NoCPP Filepath.Normalized.unknown; External(Filepath.Normalized.unknown, "") ] @@ -65,11 +67,12 @@ module D = | External (f,p) -> Format.fprintf fmt "@[File.External (%a,%S)@]" Filepath.Normalized.pretty f p - | NeedCPP (f,cmd,kind) -> + | NeedCPP (f,cmd,extra,kind) -> Format.fprintf - fmt "@[File.NeedCPP (%a,%S,%a)@]" + fmt "@[File.NeedCPP (%a,%S,%S,%a)@]" Filepath.Normalized.pretty f cmd + (String.concat " " extra) pretty_cpp_opt_kind kind in Type.par p_caller Type.Call fmt pp @@ -84,9 +87,8 @@ let get_suffixes () = check_suffixes [ ".c"; ".i"; ".h" ] -let get_name s = - let file = match s with NeedCPP (s,_,_) | NoCPP s | External (s,_) -> s in - Filepath.Normalized.to_pretty_string file +let get_filepath = function NeedCPP (s, _, _, _) | NoCPP s | External (s, _) -> s +let get_name s = Filepath.Normalized.to_pretty_string (get_filepath s) (* ************************************************************************* *) (** {2 Preprocessor command} *) @@ -99,6 +101,14 @@ let cpp_opt_kind () = if Kernel.CppGnuLike.get () then Gnu else Not_gnu else Unknown +let is_cpp_gnu_like () = + let open Fc_config in + let cpp_cmd = Kernel.CppCommand.get () in + match cpp_cmd = "", using_default_cpp, preprocessor_is_gnu_like with + | true, true, true -> Gnu + | true, true, false -> Not_gnu + | _, _, _ -> cpp_opt_kind () + (* the preprocessor command is: If the program has an explicit argument -cpp-command "XX -Y" (quotes are required by the shell) @@ -106,40 +116,27 @@ let cpp_opt_kind () = else use the command in [Fc_config.preprocessor].*) let get_preprocessor_command () = let cmdline = Kernel.CppCommand.get() in - if cmdline <> "" then begin - (cmdline, cpp_opt_kind ()) - end else begin - let gnu = - if Fc_config.using_default_cpp then - if Fc_config.preprocessor_is_gnu_like then Gnu else Not_gnu - else cpp_opt_kind () - in - Fc_config.preprocessor, gnu - end + if cmdline <> "" then cmdline else Fc_config.preprocessor let from_filename ?cpp f = - let cpp, is_gnu_like = - let cmdline = Kernel.CppCommand.get() in - if cmdline <> "" then - cmdline, cpp_opt_kind () - else - let extra_flags = - try Kernel.CppExtraArgsPerFile.find f - with Not_found -> "" - in - let jcdb_flags = Json_compilation_database.get_flags f in - if extra_flags <> "" && jcdb_flags <> [] then - Kernel.warning ~wkey:Kernel.wkey_jcdb - "found flags for file %a@ both in -cpp-extra-args-per-file and@ \ - in the json compilation database;@ the latter will be ignored" - Filepath.Normalized.pretty f; - let cpp, gnu = - match cpp with - | None -> get_preprocessor_command () - | Some cpp -> cpp, cpp_opt_kind () - in - let flags = if extra_flags <> "" then [extra_flags] else jcdb_flags in - (if flags = [] then cpp else cpp ^ " " ^ String.concat " " flags), gnu + let cpp = + let cpp_command = Kernel.CppCommand.get() in + if cpp_command <> "" then cpp_command + else if cpp = None then get_preprocessor_command () + else Option.get cpp + in + let extra = + let extra_by_file = + try Kernel.CppExtraArgsPerFile.find f + with Not_found -> "" + in + let jcdb_flags = Json_compilation_database.get_flags f in + if extra_by_file <> "" && jcdb_flags <> [] then + Kernel.warning ~wkey:Kernel.wkey_jcdb + "found flags for file %a@ both in -cpp-extra-args-per-file and@ \ + in the json compilation database;@ the latter will be ignored" + Filepath.Normalized.pretty f; + if extra_by_file <> "" then [extra_by_file] else jcdb_flags in if Filename.check_suffix (f:>string) ".i" then begin NoCPP f @@ -158,7 +155,7 @@ let from_filename ?cpp f = Kernel.warning ~once:true "Default pre-processor does not keep comments. Any ACSL annotation \ on non-pre-processed file will be discarded."; - NeedCPP (f, cpp, is_gnu_like) + NeedCPP (f, cpp, extra, is_cpp_gnu_like ()) end else Kernel.abort "No working pre-processor found. You can only analyze \ pre-processed .i files." @@ -409,6 +406,12 @@ let pretty_machdep ?fmt ?machdep () = (** {2 Initializations} *) (* ************************************************************************* *) +let create_temp_file ?debug name suffix = + let of_string = Filepath.Normalized.of_string in + try of_string (Extlib.temp_file_cleanup_at_exit ?debug name suffix) + with Extlib.Temp_file_error s -> + Kernel.abort "cannot create temporary file: %s" s + let safe_remove_file (f : Datatype.Filepath.t) = if not (Kernel.is_debug_key_enabled Kernel.dkey_parser) then Extlib.safe_remove (f :> string) @@ -433,9 +436,18 @@ let replace_in_cpp_cmd cmdl supp_args in_file out_file = with Not_found -> Format.sprintf "%s %s %s -o %s" cmdl supp_args in_file out_file +(* Note: using Pretty_utils.pp_list without forcing '~pre' and '~suf' to + be empty strings can lead to issues when the commands are too long and + Format's pretty-printer decides to insert newlines. + This concatenation function serves as a reminder to avoid using them. +*) +let concat_strs ?(pre="") ?(sep=" ") l = + if l = [] then "" + else pre ^ (String.concat sep l) + let build_cpp_cmd = function | NoCPP _ | External _ -> None - | NeedCPP (f, cmdl, is_gnu_like) -> + | NeedCPP (f, cmdl, extra, is_gnu_like) -> if not (Sys.file_exists (f :> string)) then Kernel.abort "source file %a does not exist" Filepath.Normalized.pretty f; @@ -455,14 +467,7 @@ let build_cpp_cmd = function opt; [opt] in - let ppf = - try - Datatype.Filepath.of_string - (Extlib.temp_file_cleanup_at_exit ~debug - (Filename.basename (f :> string)) ".i") - with Extlib.Temp_file_error s -> - Kernel.abort "cannot create temporary file: %s" s - in + let ppf = create_temp_file ~debug (Filename.basename (f :> string)) ".i" in (* Hypothesis: the preprocessor is POSIX compliant, hence understands -I and -D. *) let include_args = @@ -474,10 +479,6 @@ let build_cpp_cmd = function then [machdep_macro (Kernel.Machdep.get ())] else [] in - let extra_args = - if Kernel.FramaCStdLib.get() then add_if_gnu "-nostdinc" - else [] - in let define_args = "__FRAMAC__" :: define_args in (* Hypothesis: the preprocessor does support the arch-related options tested when 'configure' was run. *) @@ -490,45 +491,44 @@ let build_cpp_cmd = function if is_gnu_like = Unknown && not (Kernel.CppCommand.is_set ()) && unsupported_cpp_arch_args <> [] then Kernel.warning ~once:true - "your preprocessor is not known to handle option(s) `%a', \ + "your preprocessor is not known to handle option(s) `%s', \ considered necessary for machdep `%s'. To ensure compatibility \ between your preprocessor and the machdep, consider using \ -cpp-command with the appropriate flags. \ - Your preprocessor is known to support these flags: %a" - (Pretty_utils.pp_list ~sep:" " Format.pp_print_string) - unsupported_cpp_arch_args (Kernel.Machdep.get ()) - (Pretty_utils.pp_list ~sep:" " Format.pp_print_string) - Fc_config.preprocessor_supported_arch_options; - let extra_args = - if Kernel.ReadAnnot.get () then - if Kernel.PreprocessAnnot.is_set () then - if Kernel.PreprocessAnnot.get () then - "-dD" :: extra_args - else extra_args - else - let opt = add_if_gnu "-dD" in - opt @ extra_args - else extra_args + Your preprocessor is known to support these flags: %s" + (concat_strs unsupported_cpp_arch_args) (Kernel.Machdep.get ()) + (concat_strs Fc_config.preprocessor_supported_arch_options); + let nostdinc_arg = + if Kernel.FramaCStdLib.get() then add_if_gnu "-nostdinc" + else [] + in + let output_defines_arg = + let open Kernel in + match ReadAnnot.get (), PreprocessAnnot.is_set (), PreprocessAnnot.get () with + | true, true, true -> ["-dD"] (* keep '#defines' in preprocessed output *) + | true, true, false -> [] + | true, false, _ -> add_if_gnu "-dD" + | _, _, _ -> [] in - let pp_str = Format.pp_print_string in + let gnu_implicit_args = output_defines_arg @ nostdinc_arg in let string_of_supp_args extra includes defines = - Format.asprintf "%a%a%a" - (Pretty_utils.pp_list ~pre:" -I" ~sep:" -I" ~empty:"" pp_str) includes - (Pretty_utils.pp_list ~pre:" -D" ~sep:" -D" ~empty:"" pp_str) defines - (Pretty_utils.pp_list ~pre:" " ~sep:" " ~empty:"" pp_str) extra + Format.asprintf "%s%s%s" + (concat_strs ~pre:"-I" ~sep:" -I" includes) + (concat_strs ~pre:" -D" ~sep:" -D" defines) + (concat_strs ~pre:" " ~sep:" " extra) in let supp_args = string_of_supp_args - (Kernel.CppExtraArgs.get () @ extra_args @ supported_cpp_arch_args) + (Kernel.CppExtraArgs.get () @ gnu_implicit_args @ supported_cpp_arch_args @ extra) include_args define_args in let cpp_command = replace_in_cpp_cmd cmdl supp_args (f:>string) (ppf:>string) in Kernel.feedback ~dkey:Kernel.dkey_pp - "@{<i>preprocessing@} with \"%s\"" + "preprocessing with \"%s\"" cpp_command; - Some (cpp_command, ppf, supported_cpp_arch_args) + Some (cpp_command, ppf, supp_args) -let parse_cabs cpp_command_no_output = function +let parse_cabs cpp_command = function | NoCPP f -> if not (Sys.file_exists (f:>string)) then Kernel.abort "preprocessed file %a does not exist" @@ -536,8 +536,8 @@ let parse_cabs cpp_command_no_output = function Kernel.feedback "Parsing %a (no preprocessing)" Datatype.Filepath.pretty f; Frontc.parse f () - | NeedCPP (f, cmdl, is_gnu_like) -> - let cpp_command, ppf, supported_cpp_arch_args = Option.get cpp_command_no_output in + | NeedCPP (f, cmdl, _extra, is_gnu_like) -> + let cpp_command, ppf, supp_args = Option.get cpp_command in Kernel.feedback "Parsing %a (with preprocessing)" Datatype.Filepath.pretty f; if Sys.command cpp_command <> 0 then begin @@ -581,14 +581,9 @@ let parse_cabs cpp_command_no_output = function "trying to preprocess annotation with an unknown \ preprocessor."; true)) then begin - let pp_annot_supp_args = - Format.asprintf "-nostdinc %a" - (Pretty_utils.pp_list ~sep:" " Format.pp_print_string) - supported_cpp_arch_args - in let ppf' = try Logic_preprocess.file ".c" - (replace_in_cpp_cmd cmdl pp_annot_supp_args) + (replace_in_cpp_cmd cmdl supp_args) (ppf : Filepath.Normalized.t :> string) with Sys_error _ as e -> safe_remove_file ppf; @@ -640,7 +635,7 @@ let to_cil_cabs cpp_cmds_and_args f = let () = let handle f = let preprocess = - replace_in_cpp_cmd (fst (get_preprocessor_command ())) "-nostdinc" + replace_in_cpp_cmd (get_preprocessor_command ()) "-nostdinc" in let ppf = try Logic_preprocess.file ".c" preprocess f @@ -1608,19 +1603,160 @@ let init_cil () = Logic_env.Builtins.apply (); Logic_env.prepare_tables () +let re_included_file = Str.regexp "^[.]+ \\(.*\\)$" + +let file_hash file = + Digest.to_hex (Digest.file file) + +let add_source_if_new tbl (fp : Filepath.Normalized.t) = + if not (Hashtbl.mem tbl fp) then + Hashtbl.replace tbl fp (file_hash (fp:>string)) + +(* Inserts, into the hashtbl of (Filepath.Normalized.t, Digest.t), [tbl], + the included sources listed in [file], + which contains the output of 'gcc -H -MM'. *) +let add_included_sources tbl file = + let ic = open_in file in + try + while true; do + let line = input_line ic in + if Str.string_match re_included_file line 0 then + let f = Str.matched_group 1 line in + add_source_if_new tbl (Filepath.Normalized.of_string f) + done; + assert false + with End_of_file -> + close_in ic + +let print_all_sources out all_sources_tbl = + let elems = + Hashtbl.fold (fun f hash acc -> + (Filepath.Normalized.to_pretty_string f, hash) :: acc) + all_sources_tbl [] + in + let sorted_elems = + List.sort (fun (f1, _) (f2, _) -> Extlib.compare_ignore_case f1 f2) elems + in + if Filepath.Normalized.is_special_stdout out then begin + (* text format, to stdout *) + Kernel.feedback "Audit: all used sources, with md5 hashes:@\n%a" + (Pretty_utils.pp_list ~sep:"@\n" + (Pretty_utils.pp_pair ~sep:": " + Format.pp_print_string Format.pp_print_string)) sorted_elems + end else begin + (* json format, into file [out] *) + let json = + `Assoc + [("sources", + `Assoc (List.map (fun (f, hash) -> f, `String hash) sorted_elems) + )] + in + Json.merge_object out json + end + +let compute_sources_table cpp_commands = + let all_sources_tbl = Hashtbl.create 7 in + let process_file (file, cmd_opt) = + add_source_if_new all_sources_tbl (get_filepath file); + match cmd_opt with + | None -> () + | Some (cpp_cmd, _ppf, _sl) -> + let tmp_file = create_temp_file "audit_produce_sources" ".txt" in + let tmp_file = (tmp_file :> string) in + let cmd_for_sources = cpp_cmd ^ " -H -MM >/dev/null 2>" ^ tmp_file in + let exit_code = Sys.command cmd_for_sources in + if exit_code = 0 + then add_included_sources all_sources_tbl tmp_file + else + let cause_frama_c_compliant = + if Kernel.CppGnuLike.get () then "" else + Format.asprintf + "\nPlease ensure preprocessor is Frama-C compliant \ + (see option %s)" Kernel.CppGnuLike.option_name + in + Kernel.abort "error running command to obtain included sources \ + (exit code %d):@\n%s%s" + exit_code cmd_for_sources cause_frama_c_compliant; + in + List.iter process_file cpp_commands; + all_sources_tbl + +let source_hashes_of_json path = + try + let json = Json.from_file path in + let open Yojson.Basic.Util in + json |> member "sources" |> to_assoc |> + List.map (fun (k, h) -> k, to_string h) + with + | Yojson.Json_error msg -> + Kernel.abort "error reading %a: %s" + Filepath.Normalized.pretty path msg + | Yojson.Basic.Util.Type_error (msg, v) -> + Kernel.abort "error reading %a: %s - %s" + Filepath.Normalized.pretty path msg + (Yojson.Basic.pretty_to_string v) + +let check_source_hashes expected actual_table = + let checked, diffs = + Hashtbl.fold (fun fp hash (acc_checked, acc_diffs) -> + let fp = Filepath.Normalized.to_pretty_string fp in + let expected_hash = List.assoc_opt fp expected in + let checked = Datatype.String.Set.add fp acc_checked in + let diffs = + if Some hash = expected_hash then acc_diffs + else (fp, hash, expected_hash) :: acc_diffs + in + checked, diffs + ) actual_table (Datatype.String.Set.empty, []) + in + if diffs <> [] then begin + let diffs = + List.sort (fun (fp1, _, _) (fp2, _, _) -> + Extlib.compare_ignore_case fp1 fp2) diffs + in + List.iter (fun (fp, got, expected) -> + Kernel.warning ~wkey:Kernel.wkey_audit + "different hashes for %s: got %s, expected %s" + fp got (Option.value ~default:("<none> (not in list)") expected) + ) diffs + end; + let expected_names = List.map fst expected in + let missing = + List.filter (fun fp -> not (Datatype.String.Set.mem fp checked)) + expected_names + in + if missing <> [] then begin + let missing = List.sort Extlib.compare_ignore_case missing in + Kernel.warning ~wkey:Kernel.wkey_audit + "missing files:@\n%a" + (Pretty_utils.pp_list ~sep:"@\n" Format.pp_print_string) missing + end + +let print_and_exit cpp_commands = + let print_cpp_cmd (cpp_cmd, _ppf, _) = + Kernel.result "Preprocessing command:@.%s" cpp_cmd + in + List.iter (fun (_f, ocmd) -> Option.iter print_cpp_cmd ocmd) cpp_commands; + raise Cmdline.Exit + let prepare_from_c_files () = init_cil (); let files = Files.get () in (* Allow pre-registration of prolog files *) let cpp_commands = List.map (fun f -> (f, build_cpp_cmd f)) files in - if Kernel.PrintCppCommands.get () then begin - List.iter (fun (_f, opt_cpp_cmd) -> - match opt_cpp_cmd with - | None -> () - | Some (cpp_cmd, _ppf, _) -> - Kernel.result - "Preprocessing command:@.%s" cpp_cmd - ) cpp_commands; - raise Cmdline.Exit + if Kernel.PrintCppCommands.get () then print_and_exit cpp_commands; + let audit_check_path = Kernel.AuditCheck.get () in + if not (Filepath.Normalized.is_unknown audit_check_path) then begin + let all_sources_tbl = compute_sources_table cpp_commands in + let expected_hashes = source_hashes_of_json audit_check_path in + check_source_hashes expected_hashes all_sources_tbl + end; + let audit_path = Kernel.AuditPrepare.get () in + if not (Filepath.Normalized.is_unknown audit_path) then begin + let all_sources_tbl = compute_sources_table cpp_commands in + print_all_sources audit_path all_sources_tbl; + if not (Filepath.Normalized.is_special_stdout audit_path) then + Kernel.feedback "Audit: sources list written to: %a@." + Filepath.Normalized.pretty audit_path; end; let cil, cabs_files = files_to_cabs_cil files cpp_commands in prepare_cil_file cil; @@ -1766,8 +1902,7 @@ let create_rebuilt_project_from_visitor let name = "frama_c_project_" ^ prj_name ^ "_" in let ext = if preprocess then ".c" else ".i" in let debug = Kernel.Debug.get () > 0 in - let tmp_fname = Extlib.temp_file_cleanup_at_exit ~debug name ext in - Filepath.Normalized.of_string tmp_fname + create_temp_file ~debug name ext in let cout = open_out (f :> string) in let fmt = Format.formatter_of_out_channel cout in @@ -1779,7 +1914,7 @@ let create_rebuilt_project_from_visitor in Project.on prj redo (); prj - with Extlib.Temp_file_error s | Sys_error s -> + with Sys_error s -> Kernel.abort "cannot create temporary file: %s" s (* diff --git a/src/kernel_services/ast_queries/file.mli b/src/kernel_services/ast_queries/file.mli index 0498ef145a6f1abd70ada90149e8b6a92cfd1e54..642f1f036dcbbdf2644d7fce475b789fd3c50930 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -30,10 +30,14 @@ type cpp_opt_kind = Gnu | Not_gnu | Unknown Note: [string] is used here instead of [Filepath], to preserve names given on the command line, without normalization. *) type file = - | NeedCPP of Filepath.Normalized.t * string * cpp_opt_kind - (** The first string is the filename of the [.c] to preprocess. - The second one is the preprocessor command ([filename.c -o - tempfilname.i] will be appended at the end).*) + | NeedCPP of Filepath.Normalized.t * string * string list * cpp_opt_kind + (** File which needs preprocessing. + NeedCPP(filepath, cmd, extra, cpp_opt_kind): + - filepath: source file to be preprocessed; + - cmd: preprocessing command, before replacement of '%'-arguments; + - extra: list of extra arguments (e.g. from a JCDB); + - cpp_opt_kind: whether the preprocessor supports GNU options + such as -I/-D. *) | NoCPP of Filepath.Normalized.t (** Already pre-processed file [.i] *) | External of Filepath.Normalized.t * string @@ -142,8 +146,10 @@ val get_suffixes: unit -> string list val get_name: t -> string (** File name (not normalized). *) -val get_preprocessor_command: unit -> string * cpp_opt_kind -(** Return the preprocessor command to use. *) +val get_preprocessor_command: unit -> string +(** Return the preprocessor command to use. + @modify Frama-C+dev return type now contains only the command +*) val pre_register: t -> unit (** Register some file as source file before command-line files *) diff --git a/src/kernel_services/ast_queries/filecheck.ml b/src/kernel_services/ast_queries/filecheck.ml index d3d0c5d68d33eaa27461efbbbb0f5261d8c1ea6d..b8e8cae1f28b5a1714c302d37e24b493903d9d5e 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -1083,7 +1083,7 @@ module Base_checker = struct "field %s of type %a is not present in environment" mi.mi_name Printer.pp_typ mi.mi_base_type); Cil.DoChildren - | Dlemma(_,_,labels,_,_,_,_) -> + | Dlemma(_,labels,_,_,_,_) -> let old_labels = logic_labels in logic_labels <- labels @ logic_labels; Cil.DoChildrenPost (fun g -> logic_labels <- old_labels; g) diff --git a/src/kernel_services/ast_queries/filecheck.mli b/src/kernel_services/ast_queries/filecheck.mli index 0193ddf4de6671afd359a0124021b1156cc2ccbb..bc0fdc233f0274a715578a33a1410231a6ac0a24 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/ast_queries/json_compilation_database.ml b/src/kernel_services/ast_queries/json_compilation_database.ml index b887b1c358aebafc60096757824855a74850f76e..895e3e49c46f2d187dfa05300cd47e3dd1fb63a3 100644 --- a/src/kernel_services/ast_queries/json_compilation_database.ml +++ b/src/kernel_services/ast_queries/json_compilation_database.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -131,48 +131,14 @@ let split_command_args s = never need quotes. *) let quote_define_argument arg = Format.sprintf "%S" arg -let parse_entry jcdb_dir r = - let open Yojson.Basic.Util in - let filename = r |> member "file" |> to_string in - let dirname = r |> member "directory" |> to_string_option |> Option.value ~default:jcdb_dir in - let dirname = - if Filename.is_relative dirname then Filename.concat jcdb_dir dirname - else dirname - in - let dirname = Filepath.normalize dirname in - let path = Datatype.Filepath.of_string ~base_name:dirname filename in - - (* get the list of arguments, and a flag indicating if the arguments - were given via 'command' or 'arguments'; the latter require quoting *) - let string_option_list, requote = - (* Note: the JSON Compilation Databse specification specifies that - "either arguments or command is required", but does NOT specify what - happens when both are present. There is a LLVM commit from 2015 - (https://reviews.llvm.org/D10365) that mentions: - "Arguments and Command can now be in the same compilation database for - the same file. Arguments are preferred when both are present." - The code below follows this behavior. *) - try - let args = List.map to_string (r |> member "arguments" |> to_list) in - args, true - with _ -> - try - let s = r |> member "command" |> to_string in - split_command_args s, false - with _ -> - Kernel.abort "compilation database: expected 'arguments' or 'command'" - in - (* conversion for '-I' flags *) - let convert_path arg = - if Filename.is_relative arg then Filename.concat dirname arg - else arg - in +(* Filters and normalize useful flags: -I, -D, -U, ... *) +let filter_useful_flags ~requote option_list = let convert_define arg = if requote then quote_define_argument arg else arg in let process_prefix prefix suffix = match prefix with - | Path s -> s ^ convert_path suffix + | Path s -> s ^ suffix | Define s -> s ^ convert_define suffix | Undefine s -> s ^ suffix in @@ -208,24 +174,30 @@ let parse_entry jcdb_dir r = let new_arg = process_prefix prefix arg in (None, new_arg :: acc_res) end - ) (None, []) string_option_list + ) (None, []) option_list in - (* 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 replace them with the latest ones found, warning the - user if previous flags were different. *) - let flags = List.rev res in + List.rev res + +(* 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 replace them with the latest ones found, warning the + user if previous flags were different. *) +let update_flags_verbosely path flags = 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_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_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" @@ -239,6 +211,40 @@ let parse_entry jcdb_dir r = | Not_found -> Flags.add path flags +let parse_compilation_entry jcdb_dir r = + let open Yojson.Basic.Util in + let filename = r |> member "file" |> to_string in + let dirname = r |> member "directory" |> to_string_option |> Option.value ~default:jcdb_dir in + let dirname = + if Filename.is_relative dirname then Filename.concat jcdb_dir dirname + else dirname + in + let dirname = Filepath.normalize dirname in + let path = Datatype.Filepath.of_string ~base_name:dirname filename in + + (* get the list of arguments, and a flag indicating if the arguments + were given via 'command' or 'arguments'; the latter require quoting *) + let string_option_list, requote = + (* Note: the JSON Compilation Database specification specifies that + "either arguments or command is required", but does NOT specify what + happens when both are present. There is a LLVM commit from 2015 + (https://reviews.llvm.org/D10365) that mentions: + "Arguments and Command can now be in the same compilation database for + the same file. Arguments are preferred when both are present." + The code below follows this behavior. *) + try + let args = List.map to_string (r |> member "arguments" |> to_list) in + args, true + with _ -> + try + let s = r |> member "command" |> to_string in + split_command_args s, false + with _ -> + Kernel.abort "compilation database: expected 'arguments' or 'command'" + in + let flags = filter_useful_flags ~requote string_option_list in + update_flags_verbosely path flags + let compute_flags_from_file () = let database = (Kernel.JsonCompilationDatabase.get () :> string) in let jcdb_dir, jcdb_path = @@ -253,7 +259,7 @@ let compute_flags_from_file () = let r_list = Yojson.Basic.from_file jcdb_path |> Yojson.Basic.Util.to_list in - List.iter (parse_entry jcdb_dir) r_list; + List.iter (parse_compilation_entry jcdb_dir) r_list; with | Sys_error msg | Yojson.Json_error msg diff --git a/src/kernel_services/ast_queries/json_compilation_database.mli b/src/kernel_services/ast_queries/json_compilation_database.mli index 299d0ea5472228d1c37f1480c4755900bd649585..6c3688db865b424fae9a6d17de487e4213736c63 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/ast_queries/logic_const.ml b/src/kernel_services/ast_queries/logic_const.ml index 63f9e6486708d5aaddc2e997842e15127e610a8c..28623b64f5e98ada8da7101e9d014efaac3fac36 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 8db8710c818c7f5d9b7d774a72e1356a91a5e12c..59e164be484dd788a2a3e4543fc069926d475279 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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.ml b/src/kernel_services/ast_queries/logic_env.ml index fe1d9504c6a7956e5e1d269a7fb53ddb91191aea..556f8f7715b49f20fad13f8de9cd75a380aac00b 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 e3fcee6b3b750e8bce3929a37f690c21a3f17469..e1d369a1c87de2b76b0ad79ac3883ce166e3b355 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 250e409acf6a0d98e05f474c6cea24cec0d44f40..10e1c9714402301d3b9d452b19c3c6c9ab804a92 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) @@ -488,7 +488,7 @@ type typing_context = { anonCompFieldName : string; conditionalConversion : typ -> typ -> typ; find_macro : string -> lexpr; - find_var : ?label:string -> var:string -> logic_var; + find_var : ?label:string -> string -> logic_var; find_enum_tag : string -> exp * typ; find_comp_field: compinfo -> string -> offset; find_type : type_namespace -> string -> typ; @@ -670,7 +670,7 @@ module Make val anonCompFieldName : string val conditionalConversion : typ -> typ -> typ val find_macro : string -> lexpr - val find_var : ?label:string -> var:string -> logic_var + val find_var : ?label:string -> string -> logic_var val find_enum_tag : string -> exp * typ val find_comp_field: compinfo -> string -> offset val find_type : type_namespace -> string -> typ @@ -2615,7 +2615,7 @@ struct with Not_found -> try let label = Lenv.string_of_current_label env in - let info = ctxt.find_var ?label ~var:x in + let info = ctxt.find_var ?label x in (match info.lv_origin with | Some lv -> check_current_label loc env; @@ -4188,19 +4188,16 @@ struct C.error loc "Definition of %s is cyclic" s; my_info.lt_def <- tdef; Dtype (my_info,loc) - | LDlemma (x,is_axiom, labels, poly, {tp_kind = kind; tp_statement = e}) -> + | LDlemma (x,labels, poly, {tp_kind = kind; tp_statement = e}) -> if Logic_env.Lemmas.mem x then begin let old_def = Logic_env.Lemmas.find x in + let old_kind = match old_def with + | Dlemma(_,_,_,{tp_kind },_,_) -> tp_kind + | _ -> Assert in let old_loc = Cil_datatype.Global_annotation.loc old_def in - let is_axiom = - match old_def with - | Dlemma(_, is_axiom, _, _, _, _, _) -> is_axiom - | _ -> - Kernel.fatal ~current:true - "Logic_env.get_lemma must return Dlemma" - in - C.error loc "%s is already registered as %s (%a)" - x (if is_axiom then "axiom" else "lemma") + C.error loc "%a %s is already registered as %a (%a)" + Cil_printer.pp_lemma_kind kind x + Cil_printer.pp_lemma_kind old_kind Cil_datatype.Location.pretty old_loc end; let labels,env = annot_env loc labels poly in @@ -4209,7 +4206,7 @@ struct | None -> labels | Some lab -> [lab] in - let def = Dlemma (x,is_axiom, labels, poly, p, [], loc) in + let def = Dlemma (x,labels, poly, p, [], loc) in Logic_env.Lemmas.add x def; def | LDinvariant (s, e) -> diff --git a/src/kernel_services/ast_queries/logic_typing.mli b/src/kernel_services/ast_queries/logic_typing.mli index e1c613d9e297cac4e1fdc8a18ab8a31489934bf3..bd1fe2010f104e110c4271ea1d0471d192db5817 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) @@ -97,7 +97,7 @@ type typing_context = { anonCompFieldName : string; conditionalConversion : typ -> typ -> typ; find_macro : string -> Logic_ptree.lexpr; - find_var : ?label:string -> var:string -> logic_var; + find_var : ?label:string -> string -> logic_var; (** the label argument is a C label (obeying the restrictions of which label can be present in a \at). If present, the scope for searching local C variables is the one of the statement with @@ -262,7 +262,7 @@ module Make val anonCompFieldName : string val conditionalConversion : typ -> typ -> typ val find_macro : string -> Logic_ptree.lexpr - val find_var : ?label:string -> var:string -> logic_var + val find_var : ?label:string -> string -> logic_var (** see corresponding field in {!Logic_typing.typing_context}. *) val find_enum_tag : string -> exp * typ val find_type : type_namespace -> string -> typ diff --git a/src/kernel_services/ast_queries/logic_utils.ml b/src/kernel_services/ast_queries/logic_utils.ml index e6b2f808798a2dcc4640e9495d8c2f4afce22e7b..e568ddfc6aa1980f10b3d288ff3378fd865161f2 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) @@ -723,8 +723,8 @@ let rec add_attribute_glob_annot a g = Daxiomatic(n,List.map (add_attribute_glob_annot a) l, Cil.addAttribute a al,loc) | Dtype(ti,_) -> ti.lt_attr <- Cil.addAttribute a ti.lt_attr; g - | Dlemma(n,ax,labs,t,p,al,l) -> - Dlemma(n,ax,labs,t,p,Cil.addAttribute a al,l) + | Dlemma(n,labs,t,p,al,l) -> + Dlemma(n,labs,t,p,Cil.addAttribute a al,l) | Dmodel_annot (mi,_) -> mi.mi_attr <- Cil.addAttribute a mi.mi_attr; g | Dcustom_annot(c,n,al,l) -> Dcustom_annot(c,n,Cil.addAttribute a al, l) | Dextended (e,al,l) -> Dextended(e,Cil.addAttribute a al,l) @@ -1233,9 +1233,9 @@ let rec is_same_global_annotation ga1 ga2 = id1 = id2 && is_same_list is_same_global_annotation ga1 ga2 && is_same_attributes attr1 attr2 | Dtype (t1,_), Dtype (t2,_) -> is_same_logic_type_info t1 t2 - | Dlemma(n1,ax1,labs1,typs1,st1,attr1,_), - Dlemma(n2,ax2,labs2,typs2,st2,attr2,_) -> - is_same_string n1 n2 && ax1 = ax2 && + | Dlemma(n1,labs1,typs1,st1,attr1,_), + Dlemma(n2,labs2,typs2,st2,attr2,_) -> + is_same_string n1 n2 && is_same_list is_same_logic_label labs1 labs2 && is_same_list (=) typs1 typs2 && is_same_toplevel_predicate st1 st2 && is_same_attributes attr1 attr2 diff --git a/src/kernel_services/ast_queries/logic_utils.mli b/src/kernel_services/ast_queries/logic_utils.mli index 1e0ddf5ad4106ae99271c9e65edbeb9270fa57fb..5f184176743f52f7987b882be55368691472ea55 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 73b013be8fdda868723542cf52e485665fe9f498..ca4bce836e3c4c40b54dd19511c658de0c394e6a 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 0558cd86d19ef8a36a8c509518efd1c5fcac97d3..6a7dd4fcdd2776b2a63dd4307f8965e1610c979a 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 15ed737f258de617c9d4fed302381f640325299d..43304358b4c7d8754eeae30674ae4909ba0d4e3b 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 e41f394b6ead0e27c25cc3211698a586dc6e17ff..32f6582f29bfbd1c29e8b8db8687cc4050c2d756 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 5d6c4d4b1ffcaf0d283c5e605ed12468ff3cbf80..b8cddec6cc6684e6e760fab6b3bd58a6073618ad 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 76b07d0f610b2355971e0c931371fa67bff4dc83..41bb697323e77fed1eee5c48c12ecb703ff6dbc4 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 d630379cbaa65d69501c7f6ba6bfa0f8be2e4a92..4fb1fe39b1174c208bfbe293d73e1b50c95b1dad 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 d4a26b2eec6654a73ea790ce5faebf2b0fc1abb3..6cacdae7d1c66d930d5b20da80e1936de308956a 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 2db615f3fd6c3860a9179899283522c8747c0d7c..e3b4f91162884ed8c60721538f0894870123e7db 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 bcb7d623a060165d6966479ef607e82b7b42a020..8db902acf7274c650f8274fbb45c1ff9209aa7f6 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 15baba69030196db0626afc7a7010a1be4543947..dfced5b072b95c0b550126011ae0f93978ec30f8 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 fcbbd8921fd3e432681430403ec6050bb58b09c7..ff8abd7fc5ea12f444e91deb08ae9aedc39b7fba 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 456dae219a15c6f38969ed908b003ba67619ccc8..37a5571f35b249b349099d55055fa3e773da8616 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 b1360bc21d3727d51e469d5b3b4cbd09fc0aa4ee..94eb9f8ef022eb6fb9ef58e32c40ee8b765a3669 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 d72b00e501427c26a9ac0839577841468a24994d..f4ce284ef09a4f137820680f724dc74bd7445433 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 8941eec275878ca1c8a2910fbc536089dd161f2a..c7c05928ff1b048200c5a81bdcbd9224aec4b5b0 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 9cfb156d9eb8430845ad66801310859e0d9bafae..0401aad7f9c3943227191053ed1de88b1605eaec 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 581fe62fbf8756b730889f4167bb9310c834851d..9221f8263acb233f2ed62d4ca68f215292acce96 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 28fafe6d94b701c16f25e1b9cf7d4f0daa9bcc3f..0be0df53744d56a9ecff6f77846b22de93e68d5f 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 9dabbc955a66d5f78d7c6d26303f2c353da37193..e3c35f61facb2f144660b9b35cdf876f42cece9d 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) @@ -233,13 +233,12 @@ and decl_node = (** [LDinductive_def(name,labels,type_params, parameters, indcases)] represents an inductive definition of a new predicate. *) - | LDlemma of string * bool * string list * string list * toplevel_predicate - (** LDlemma(name,is_axiom,labels,type_params,property) represents - a lemma or an axiom [name]. - [is_axiom] is true for an axiom and false for a lemma. [labels] - is the list of label arguments and - [type_params] the list of type parameters. Last, [property] is the - statement of the lemma. + | LDlemma of string * string list * string list * toplevel_predicate + (** LDlemma(name,labels,type_params,property) represents axioms and + lemmas. Axioms and admit lemmas are fusionned. + [labels] is the list of label arguments and + [type_params] the list of type parameters. + Last, [property] is the statement of the lemma. *) | LDaxiomatic of string * decl list (** [LDaxiomatic(id,decls)] diff --git a/src/kernel_services/plugin_entry_points/db.ml b/src/kernel_services/plugin_entry_points/db.ml index 339744070b2ce9c7b7f58482accc4c2b03a2ca7b..d179e9ce4fc46b632a7f76c2579300b0e5156033 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 30c474f13e54fc9f343a44f0492a507f23476459..ee87e6e60202bbcaba1410a9f3e0266774b9c298 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 e28fc9157b68b3aeb01de7eb6f68de3dc6d0eed5..4f0f261cc0df7de4731f2b911a22d0b3c5cc7677 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/plugin_entry_points/dynamic.mli b/src/kernel_services/plugin_entry_points/dynamic.mli index ee97d92aed01c85ea6ad5c4185877eeac5c00917..c21d4b2e7afc2de254837478df1d0d03702696e5 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 abbdea466bd59ecc245fff7b4af5dcb296f22527..db76eb65cbf86def4d90b53ee4ec8e9c93a7e6a9 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 c3f30a88bc5bec315f82b5d91565a199c55d66ae..2540b0e092e482d6e6b91bd77b8aa158797cd1de 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 82363e74f33c0db44609cc9f077bc286b2e32a0a..33407609cbe7e191bb1723f8d946db5c42c60eb5 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 82d2b8d6529890d0d9baa8a23ece895a8fdee601..8d7f8e2b87b4ce43bd352ca302f8c6c766c51e54 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 5c30b36f614a0626ebb02eadf0d57c285e1bc164..e21274bd4b33a08bc8ebb31782b30d56a9ebff6d 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -86,6 +86,7 @@ let dkey_rmtmps = register_category "parser:rmtmps" let dkey_referenced = register_category "parser:referenced" let dkey_pp = register_category "pp" +let dkey_pp_logic = register_category "pp:logic" let dkey_compilation_db = register_category "pp:compilation-db" let dkey_print_bitfields = register_category "printer:bitfields" @@ -193,6 +194,9 @@ let wkey_acsl_extension = register_warn_category "acsl-extension" let wkey_cmdline = register_warn_category "cmdline" +let wkey_audit = register_warn_category "audit" +let () = set_warn_status wkey_audit Log.Werror + (* ************************************************************************* *) (** {2 Specialised functors for building kernel parameters} *) (* ************************************************************************* *) @@ -1039,6 +1043,41 @@ module PrintCppCommands = and exits." end) +let () = Parameter_customize.set_group parsing +let () = Parameter_customize.do_not_reset_on_copy () +module AuditPrepare = + P.Filepath + (struct + let option_name = "-audit-prepare" + let arg_name = "path" + let existence = Filepath.Indifferent + let file_kind = "json" + let help = "produces audit-related information, such as the list of all \ + source files used during parsing (including those in include \ + directives) with checksums. Some plug-ins may produce \ + additional audit-related information. \ + Prints the information as JSON to the specified file, or \ + if the file is '-', prints as text to the standard output. \ + Requires -cpp-frama-c-compliant." + end) + +let () = Parameter_customize.set_group parsing +let () = Parameter_customize.do_not_reset_on_copy () +module AuditCheck = + P.Filepath + (struct + let option_name = "-audit-check" + let arg_name = "path" + let existence = Filepath.Must_exist + let file_kind = "json" + let help = "reads an audit JSON file (produced by -audit-prepare) and \ + checks compliance w.r.t. it; e.g., if the source files \ + were declared and have the expected checksum. \ + Raises a warning (with warning key 'audit') in case of \ + failed checks. \ + Requires -cpp-frama-c-compliant." + end) + let () = Parameter_customize.set_group parsing let () = Parameter_customize.do_not_reset_on_copy () module FramaCStdLib = diff --git a/src/kernel_services/plugin_entry_points/kernel.mli b/src/kernel_services/plugin_entry_points/kernel.mli index 7bc32e34f8dab6d63026eb7f62aa7b3f4c49bf72..a6e7e409bca45d77489b1e2576724809180c2e6e 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -83,6 +83,8 @@ val dkey_parser: category val dkey_pp: category +val dkey_pp_logic: category + val dkey_print_attrs: category val dkey_print_bitfields: category @@ -184,6 +186,9 @@ val wkey_acsl_extension: warn_category val wkey_cmdline: warn_category (** Command-line related warning, e.g. for invalid options given by the user *) +val wkey_audit: warn_category +(** Warning related to options '-audit-*'. *) + (* ************************************************************************* *) (** {2 Functors for late option registration} *) (** Kernel_function-related options cannot be registered in this module: @@ -412,6 +417,12 @@ module CppGnuLike: Parameter_sig.Bool module PrintCppCommands: Parameter_sig.Bool (** Behavior of option "-print-cpp-commands" *) +module AuditPrepare: Parameter_sig.Filepath +(** Behavior of option "-audit-prepare" *) + +module AuditCheck: Parameter_sig.Filepath +(** Behavior of option "-audit-check" *) + module FramaCStdLib: Parameter_sig.Bool (** Behavior of option "-frama-c-stdlib" *) diff --git a/src/kernel_services/plugin_entry_points/log.ml b/src/kernel_services/plugin_entry_points/log.ml index 9c1c0bcf1af53ad6f303062c4e6140c7f332d773..5ee3aa274f0e919e46e5a200326b234e26d5d5bc 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 20ffa81b0f5f76cdb498477f32d8262fd9e2b966..0a07a3805f6ee3e42f18dc6e11040d886725fc6a 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/plugin_entry_points/plugin.ml b/src/kernel_services/plugin_entry_points/plugin.ml index 27a3b48fbf2adf47570dd02d043655ec241de3a3..caa286cf6bb75d83289d41748c72a141edbd1044 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/plugin_entry_points/plugin.mli b/src/kernel_services/plugin_entry_points/plugin.mli index 6cee5207ce189c7d2e2051c085226b264b121357..4fd6bf083a0f5e51bc3497d12e1ab68fa7cc5042 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/visitors/visitor.ml b/src/kernel_services/visitors/visitor.ml index dbda6a580bb29b8324390d9e9f2c99a5eef13238..1121a89660db3dbbbd7bdc5dd362fe2a866903b2 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 fc7803bc7e876e5217cb2259938b2f4aa2eb3bfb..8b0a5da0742fcd06701ae450615881024273629b 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/kernel_services/visitors/visitor_behavior.ml b/src/kernel_services/visitors/visitor_behavior.ml index 3b8cc057eae61061ba8188c6d4cf1e54f7528541..6e84cfe9e59a84a7b715e4f68f09a62478c429cb 100644 --- a/src/kernel_services/visitors/visitor_behavior.ml +++ b/src/kernel_services/visitors/visitor_behavior.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) diff --git a/src/kernel_services/visitors/visitor_behavior.mli b/src/kernel_services/visitors/visitor_behavior.mli index 3b86eccd541ccd15ffe7b1b69d501afc0c23993d..0b6a8f7f128add63d56a18563d1cd3aa724a972f 100644 --- a/src/kernel_services/visitors/visitor_behavior.mli +++ b/src/kernel_services/visitors/visitor_behavior.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) diff --git a/src/libraries/datatype/datatype.ml b/src/libraries/datatype/datatype.ml index 15f719230756dc77631aa9760feed0ebaac405e7..774bdb8c79216b030a31e7f4f69f65aa0eaa0a41 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/datatype/datatype.mli b/src/libraries/datatype/datatype.mli index f4717ef4eb03594985ed4672be70167f169b777b..d2e972ba30037d7a5bd5e1d58e93c29a03ef9695 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/datatype/descr.ml b/src/libraries/datatype/descr.ml index 78f74f198b2125fe3e824ea59e0be85ebf4642cb..c7195a3c07d5068b58df931808a8b46bdd316230 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/datatype/descr.mli b/src/libraries/datatype/descr.mli index 9ffc786bd22c0f98228d7599e0c4c48b6b91359c..53e712f149c0aef20260aa3ac3d973d3399bb0aa 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 0bf7b5b2d57406565ba7dd4d3777f679a34146f0..7e8c2f4e4ce58e2fc5ff4a0bb2131e3b919b0a52 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 799ce244b96d1f7d763dd69051286ca88c1c5dca..a68e964c68b059c43f1f36ff2f1c3b2f72ef7cb7 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/datatype/type.ml b/src/libraries/datatype/type.ml index 79a802edd04a68155108ee05e6e486c814c30cc5..54a9a0fb6156e6d628c22970b63bc4b344deff63 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/datatype/type.mli b/src/libraries/datatype/type.mli index c183d531bee41c4f131e74a40e8d80a13adc57b1..6f4c91a277be069eab9c66423a7925076683c067 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 a38fd24f2f819c0c793d4ded786a82cafe8e3aeb..b61768bedb3e4256e4ca05fe38eb8eb5af21e2f8 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 dc3a583fdfc185221b336ca69718a4b82ea3ea20..203d133b793eeadfba717ae51a58dccdd75e2534 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/project/project.ml b/src/libraries/project/project.ml index 9533032102a61b53259833f4be70c2f3f7e2f147..f68bcdc4bcac40f3e2341aa53322808397f3c22a 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/project/project.mli b/src/libraries/project/project.mli index 09f56a7279cd85f318f2243810ba29721f33baa6..544ca28b404b9289275dfdffcf16fa07a62139b4 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 13d122a5c8dbcf27e22c04e01262333c439a36e7..5dcaf22d2788ab8c0c3542b270137bd85566817f 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 dd6ea0a8c15d6eaa95bed3f5b20ed248d70e2e6d..bd3a8a394caefd3f2b36ab83a1ed9956c2fdc9fe 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/project/state.ml b/src/libraries/project/state.ml index c900314018a281b2f6f9427a1d38eeb19760de66..cb3d5a44e7ebba13e16404838f1c6b8ec4473cd3 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/project/state.mli b/src/libraries/project/state.mli index 9ac2d1b840002ac2c1f56733eb9d001ee0ad0a8a..bf32187eb629b249111064b736f13a3a35bbdca3 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 f5c160bdb196f52e71e19c80024fd5646b7b60bd..b60b0e2d543063e3e6a909c56dc8ef122f5b60e8 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 bf6838d29828c7fdc0882b70d10f23c031dff034..91ad1c1635c6ed274b68cb988a7311850f77188d 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 c1179a5673c4cc37f2557922e3c6a2cb3ee1e238..7f0eaf0abaf8a334cee47cdd2d3f6022d1dbdd61 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 b5540f2103c4304e17bc03fe63bbebb30bd9a3f0..6af18f0a7d3a1ae52fce5d2bcafd9d8057c726af 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 e05c025078a69f2ddea8754816028fef3dd7dc58..a3084868f0f422f049d54045911e5fc954d774b0 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 33e511079330422455f3f4a5043e6c2e1959df6e..18cb5eaa72947d7cdd9b9ba361af952b0ef3d32b 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/stdlib/FCHashtbl.ml b/src/libraries/stdlib/FCHashtbl.ml index c8a339057523a41e0b6d4e9661ee819cf6257e05..b5d6d58ccd548c7d09ab758703e991579f725c8d 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/stdlib/FCHashtbl.mli b/src/libraries/stdlib/FCHashtbl.mli index 998aab3dd926769674233ce33bf7ba5d049e2cdf..abe0525d113292aff8f0b65eb0483efd600b05f2 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/stdlib/extlib.ml b/src/libraries/stdlib/extlib.ml index 883895c10dad56d1c6ac93cce79477040ef52620..00adc72190a3f3aac6a4e38f49809dc067f9255f 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/stdlib/extlib.mli b/src/libraries/stdlib/extlib.mli index 5bed3af7537fc63e8ff0aca417886287c422070a..07eac0f544946cd46223d705d67f461e5b3d5a40 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/stdlib/integer.ml b/src/libraries/stdlib/integer.ml index 6b19a9518eb0d9c1bc8d0107be135bb31875cd2b..103b96f8acbe155e7f9a7d17cd17f17ca09ac5a7 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/stdlib/integer.mli b/src/libraries/stdlib/integer.mli index f262a9a7d6ffc2c6c60a14c349915ad01d477b26..5a3019d2b082c88a077a406e04772eaa4f147005 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/stdlib/transitioning.ml.in b/src/libraries/stdlib/transitioning.ml.in index 182bc40a8e1af00f6d1329952d449d0f2e6808e1..676dc9b6fa4483a8132c3939540f520efd3df9dc 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -19,3 +19,4 @@ (* for more details (enclosed in the file licenses/LGPLv2.1). *) (* *) (**************************************************************************) + diff --git a/src/libraries/stdlib/transitioning.mli b/src/libraries/stdlib/transitioning.mli index d882bcef8ac05f6e0783ad0bf76ed0dbfbebd9f5..415b987eba7c80bb120dcf25dc0d9a1687ade500 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/bag.ml b/src/libraries/utils/bag.ml index e93f093ba8b33521ee035b8e88fb429d8094831f..84ff205276ef5aabfc99039eb643f69e3ba40491 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/bag.mli b/src/libraries/utils/bag.mli index ef515cb71fc8ae1253177c104d43bd8c872a3cfc..d44fc6263cc4e10c300167608ba7e415b8ea3f79 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 b6b7583a594d97293422ef622b6e21f27d09cc60..944446cb1ebd505744e88b6176d8c3cf99c7517c 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 b72f2a50ced30d962bac2f3f4f3a48de51edb961..b0cd0098cedbf5cdc63745bea55bc7e6ad196502 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/bitvector.ml b/src/libraries/utils/bitvector.ml index 7aa34b0fa72987a7fbcf37a7695aded378d31f17..48b5ac70d0f26daf35dcfa36db18291a73a3ae07 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/bitvector.mli b/src/libraries/utils/bitvector.mli index 4ea4bc58dde39ccf55bb03698e01a83cfa36b0c5..58d4b876e08f3de1ba189d62d23c048be4682844 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 8ddedd9fc6adc6aab20499944334f2606b3ec914..784b98c5c7e8973094ea7b03e7d9135aa1a8cf87 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* */ diff --git a/src/libraries/utils/command.ml b/src/libraries/utils/command.ml index 6f832d3856bae523423ff0f8e9c1d192c200f97c..1849f05a63750f50e4b07fef62b26de35eaeb810 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/command.mli b/src/libraries/utils/command.mli index 676bccd9d2ba57bc27f4ac599d39c63632db72fe..5e264657ee026b9bc834dfe71067eddfc0793256 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/dotgraph.ml b/src/libraries/utils/dotgraph.ml index 3072dbf8b956913d6596465858dba437d97924f6..19edb01d4f876a6aa2973e4b527bcd476104c2b5 100644 --- a/src/libraries/utils/dotgraph.ml +++ b/src/libraries/utils/dotgraph.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/dotgraph.mli b/src/libraries/utils/dotgraph.mli index 12d7faeb84ebe9fe594f593779144cc7beac009a..a97758617b343e697bf1254dd3fcac3d215b16ae 100644 --- a/src/libraries/utils/dotgraph.mli +++ b/src/libraries/utils/dotgraph.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/filepath.ml b/src/libraries/utils/filepath.ml index 0d710ddc909c77e339fb4e96d2a97ac32e77a368..567261e3b48b51525b1a55d9ff5cf9b4b9b86c2e 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/filepath.mli b/src/libraries/utils/filepath.mli index 346e3c3fc15fc20dc03b08c8fb111141957f5820..72577230acf4a7e9924fda47ada63639a2d0fda3 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/floating_point.ml b/src/libraries/utils/floating_point.ml index e86a8df5f1b6cb8e8f746abd8f2ea87dcffac109..39461ef8d170fd2929bfe2abfb6647c32733dd9b 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 10c0f35d64c858568cc718b469bdca9c647fc544..3081f2936eab444b9ebab2bb38db611dbeff0e52 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/hook.ml b/src/libraries/utils/hook.ml index 0c12ef1cbc4c3c02d2397e9ab15b899aa50bb35e..50f42ee5a39f0758afdeef0abc9a3811c2cd6195 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/hook.mli b/src/libraries/utils/hook.mli index c840c663b6aa74cc1b63bb775e2a48854ef89bcc..c212b7882aa7d520b1a4c3e13e2516fda6eb7f3a 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/hptset.ml b/src/libraries/utils/hptset.ml index 260bf12b9a96ff8d92f84a7fbedaedbc817db5a5..14afb981d47d767ccf65f6eddc36ba168cb9ac09 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/hptset.mli b/src/libraries/utils/hptset.mli index 12926eb0c8e6b855b57befb80727acce4b1cb42a..ad71b75f4834ae4eeb2c2979e52d8c33b4bfc5fd 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/indexer.ml b/src/libraries/utils/indexer.ml index 82d8943ce41a059f89c837fbe01e084da8537558..7d710d4f917a616b7f740788c52f1f3ae762c8ab 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/indexer.mli b/src/libraries/utils/indexer.mli index 4c66f97ef26114f13ffc3c30a20d76b28c61d35e..5619ad34325afad748bd7a7fa0fd37bc590f6181 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/json.mli b/src/libraries/utils/json.mli index 80ffaf64513064f8ffcb5b9c9ae1d41f6343f2da..ebfa936330dcdcd93971e0a9d62d845b2e5f0968 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -150,15 +150,15 @@ exception CannotMerge of string [merge_object path json_obj] recursively merges the object [json_obj] into the JSON file [path]. If [path] does not exist, it is created. Merge consists in combining values with the same key, e.g. if [path] - already contains an object {"kernel": {"options": ["a"]}}, and - [json_obj] is {"kernel": {"options": ["b"]}}, the result will be - {"kernel": {"options": ["a", "b"]}}. Cannot merge heterogeneous + already contains an object [{"kernel": {"options": ["a"]}}], and + [json_obj] is [{"kernel": {"options": ["b"]}}], the result will be + [{"kernel": {"options": ["a", "b"]}}]. Cannot merge heterogeneous objects, i.e. in the previous example, if "options" were associated with a string in [path], trying to merge an array into it would - raise [JsonCannotMerge]. + raise [CannotMerge]. The merged object is updated in the memory cache. - @raise [CannotMerge] if the objects have conflicting types for + @raise CannotMerge if the objects have conflicting types for the same keys, or if the root JSON element is not an object. @since Frama-C+dev *) @@ -170,7 +170,7 @@ val merge_object : Filepath.Normalized.t -> Yojson.Basic.t -> unit Unlike objects, arrays are merged by simply concatenating their list of elements. - @raise [CannotMerge] if the root JSON element is not an array. + @raise CannotMerge if the root JSON element is not an array. @since Frama-C+dev *) val merge_array : Filepath.Normalized.t -> Yojson.Basic.t -> unit diff --git a/src/libraries/utils/json.mll b/src/libraries/utils/json.mll index 7368c65f3e4763bb9481816f3db45f43fd992596..8289f92d7231ea7634bc684478cc845585185938 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/markdown.ml b/src/libraries/utils/markdown.ml index 92153e7eb31cd0ecae9415f5855ecf31d5ef8725..4b0a960c9fd15a6e5fe611b310366a9900b3eb12 100644 --- a/src/libraries/utils/markdown.ml +++ b/src/libraries/utils/markdown.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/markdown.mli b/src/libraries/utils/markdown.mli index 08bbe4125414b1adbb252caf89c91b6dd259cb18..5a048ef01e3770e3d12261f2f8eaa5e6fbb82237 100644 --- a/src/libraries/utils/markdown.mli +++ b/src/libraries/utils/markdown.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/pretty_utils.ml b/src/libraries/utils/pretty_utils.ml index 88f0292af0f64bbc76f10ecc87c2086d67edbc6e..299b824e430c28870d64856534caa959f566bc77 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 2655e7f1db114724e97d1eecc0b11edf8b8ae889..10a7e607a22483b9c875977d204f40faed991729 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/qstack.ml b/src/libraries/utils/qstack.ml index d618a3e55f3e0dd4a948678a308060da5f85060a..7e91044f0d79f596517d09b6655e47c5970ef5e7 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/qstack.mli b/src/libraries/utils/qstack.mli index 9fb0ea9fff284890ee98633437214276118b5412..eb0ce8292c916f97416c9de5a82c5633857d7858 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/rgmap.ml b/src/libraries/utils/rgmap.ml index 4888dec36402ea59e368f93c678b15bdc2d865bd..b98860c47c15085966cbd4896cfb20ace3c33f7f 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/rgmap.mli b/src/libraries/utils/rgmap.mli index 3cddeac1481d17f397da54e11938bdb05af725d8..abefa483fd1a2ff4ca31f3f94bc6246e9907d62b 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 006995446ac7f96006debcb8247caac138c9fdf9..3cbde20d005871be331f06e9482fe2a7ec3fa368 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 1326ed8ca1a9ba0a4772257c23a53f51fda61b3e..016716791ae596437b3c4a707fd6c6802bd843b8 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/sanitizer.ml b/src/libraries/utils/sanitizer.ml index 3aa47eca7f5340a5e3c4e79705c79eb44c782be2..2ad2c0b679cdf831940c645c6e0aa1234f05e7bd 100644 --- a/src/libraries/utils/sanitizer.ml +++ b/src/libraries/utils/sanitizer.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/sanitizer.mli b/src/libraries/utils/sanitizer.mli index aa173ecc03132e38ed761f60b6af3bf345206f5d..583746bfce896061e18018a1468c0af110f10889 100644 --- a/src/libraries/utils/sanitizer.mli +++ b/src/libraries/utils/sanitizer.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/task.ml b/src/libraries/utils/task.ml index b3312aa812ac6a6f7871fff4ce9e21a350e25c8c..811f37de5bf631289c5b41c1208fb2b123575163 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/task.mli b/src/libraries/utils/task.mli index f65aa462d90feba6c9f05ac73bb04a1abd375cdb..b65ae71253e9d112660b758fd793d262eaa7da55 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/unicode.ml b/src/libraries/utils/unicode.ml index 7b827d298c55a57cf2dae50fe96d45be1307171b..2059af56dd97ae6e005abe85649b48af4d5bd8fc 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/unicode.mli b/src/libraries/utils/unicode.mli index 61b4e3047ba025d051ace041582bab2f44c065e2..7f9fb08a9c68c29e4193021b19d723956107a508 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 92f594e89998bdcfad518673c529275de25a26e6..487c903cac5aa6b61323feb0cdfc20b4d67d55e2 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 7b6ea13a0da7362607108c23d890ca96d5f34184..90a052281bcb25d281604e40943bf26618608c54 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 416e52dcd5946235b0c90c829f0623ab99e0fbfc..af703c3fe23fdb381252952937f5f40fb9a9d686 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/vector.mli b/src/libraries/utils/vector.mli index 35308387d2c65cae90c152697bedb2809c810bb0..69739a6ccceb5c237c627b7f6c212136c9bd1410 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/libraries/utils/wto.ml b/src/libraries/utils/wto.ml index ec3583f300351100430761003f5348622c2220e2..cf06bf76c7a83e39248d6b97b8f398c4254cac94 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -187,10 +187,9 @@ module Make(N:sig let element = Stack.pop state.stack in DFN.remove state.dfn element; if not (N.equal element vertex) then begin - let best_head = match pref with - (** the strict is important because we are conservative *) - | Some cmp when cmp best_head element < 0 -> element - | _ -> best_head + (** the strict is important because we are conservative *) + let best_head = + if pref best_head element < 0 then element else best_head in reset_SCC best_head end @@ -223,7 +222,7 @@ module Make(N:sig type pref = N.t -> N.t -> int - let partition ?pref ~init ~succs = + let partition ~pref ~init ~succs = let state = {dfn = DFN.create 17; num = 0; succs; stack = Stack.create () } in let loop,component = visit ~pref state init [] in diff --git a/src/libraries/utils/wto.mli b/src/libraries/utils/wto.mli index 004312ad709592fbdc8c8e98b139f2a098da10f1..39d14925d37fded66790169bd3b9b33455b73a77 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -53,11 +53,14 @@ module Make(Node:sig end):sig type pref = Node.t -> Node.t -> int - (** partial order of preference for the choice of the head of a loop *) + (** Partial order of preference for the choice of the head of a loop. + [pref current_head new_candidate] must return < 0 if [new_candidate] + is preferred to [current_head]. + Use "(fun _ _ -> 0)" for no specific preference. *) (** Implements Bourdoncle "Efficient chaotic iteration strategies with widenings" algorithm to compute a WTO. *) - val partition: ?pref:pref -> init:Node.t -> succs:(Node.t -> Node.t list) -> Node.t partition + val partition: pref:pref -> init:Node.t -> succs:(Node.t -> Node.t list) -> Node.t partition val pretty_partition: Format.formatter -> Node.t partition -> unit val pretty_component: Format.formatter -> Node.t component -> unit diff --git a/src/plugins/aorai/.gitignore b/src/plugins/aorai/.gitignore index dbc3d247b6627099a25ed2b34608c057d6120bfe..6e2440c7d5053e68723ce0ec0a462d751551dda1 100644 --- a/src/plugins/aorai/.gitignore +++ b/src/plugins/aorai/.gitignore @@ -1,4 +1,5 @@ /tests/ptests_config +/aorai_eva_analysis.ml /Makefile /ltllexer.ml /ltlparser.ml diff --git a/src/plugins/aorai/Aorai.mli b/src/plugins/aorai/Aorai.mli index a331e2048f2c8f7e38c1561b0d9e8d53a7b3fbc1..b4abc4b3932317ec110a5c3302fc9d90546835c5 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 c39a616ce7e5ea1bb53d8bbd826cdc308701d539..344b727bf9d50c2090c03c7338109c13dded8cae 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-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # INRIA (Institut National de Recherche en Informatique et en # @@ -41,6 +41,7 @@ PLUGIN_DIR ?=. PLUGIN_ENABLE:=@ENABLE_AORAI@ PLUGIN_NAME:=Aorai PLUGIN_GENERATED:= $(addprefix ${PLUGIN_DIR}/, \ + aorai_eva_analysis.ml \ promelalexer_withexps.ml promelaparser_withexps.ml \ promelaparser_withexps.mli \ promelalexer.ml promelaparser.ml promelaparser.mli \ @@ -67,13 +68,35 @@ PLUGIN_CMO:= bool3 \ promelalexer_withexps \ aorai_dataflow \ aorai_visitors \ + aorai_eva_analysis \ aorai_register PLUGIN_CMI:= ltlast promelaast PLUGIN_DISTRIBUTED:=$(PLUGIN_ENABLE) -PLUGIN_DISTRIB_EXTERNAL:= Makefile.in configure.ac configure +PLUGIN_DISTRIB_EXTERNAL:= \ + aorai_eva_analysis.enabled.ml aorai_eva_analysis.disabled.ml \ + Makefile.in configure.ac configure PLUGIN_HAS_EXT_DOC:=no # [JS 2010/07/28] was 'yes' # but prevent 'make src-distrib to work +PLUGIN_DEPENDENCIES:= + +# Dynamic dependencies + +ifneq "$(ENABLE_EVA)" "no" +PLUGIN_DEPENDENCIES+= Eva +AORAI_EVA_ANALYSIS:= $(PLUGIN_DIR)/aorai_eva_analysis.enabled.ml +else +AORAI_EVA_ANALYSIS:= $(PLUGIN_DIR)/aorai_eva_analysis.disabled.ml +endif + +$(PLUGIN_DIR)/aorai_eva_analysis.ml: $(AORAI_EVA_ANALYSIS) + $(PRINT_MAKING) $@ + $(CP) $(AORAI_EVA_ANALYSIS) $@ + $(CHMOD_RO) $@ + +$(PLUGIN_DIR)/aorai_eva_analysis.ml: $(PLUGIN_DIR)/Makefile share/Makefile.config + +# Tests # aorai_ya can always be run PLUGIN_TESTS_DIRS:=ya diff --git a/src/plugins/aorai/aorai_dataflow.ml b/src/plugins/aorai/aorai_dataflow.ml index 13bf13719f7650a0b0c82d1e37f6f30cdcc42a27..3cb48086ec7d282274a34d7b2c39a7e7dd0d3e21 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) @@ -70,6 +70,7 @@ let compose_range loc b r1 r2 = -> if Cil.isLogicZero b then Data_for_aorai.absolute_range loc (min1 + min2) else Unbounded (min1 + min2) + | Unknown, _ | _, Unknown -> Unknown let fail_on_both k elt1 elt2 = match elt1, elt2 with @@ -85,8 +86,7 @@ let compose_bindings map1 loc vals map = let vals = Cil_datatype.Term.Map.fold (fun base intv vals -> let vals' = - if Cil.isLogicZero base then - Cil_datatype.Term.Map.add base intv Cil_datatype.Term.Map.empty + if Cil.isLogicZero base then Cil_datatype.Term.Map.singleton base intv else try let orig_base = Cil_datatype.Term.Map.find base map1 in @@ -96,8 +96,7 @@ let compose_bindings map1 loc vals map = Cil_datatype.Term.Map.add base intv' map ) orig_base Cil_datatype.Term.Map.empty - with Not_found -> - Cil_datatype.Term.Map.add base intv Cil_datatype.Term.Map.empty + with Not_found -> Cil_datatype.Term.Map.singleton base intv in Cil_datatype.Term.Map.merge (Extlib.merge_opt (Data_for_aorai.merge_range loc)) vals' vals @@ -273,8 +272,9 @@ let make_start_transition ?(is_main=false) kf init_states = (fun trans kf -> Aorai_utils.isCrossable trans kf Promelaast.Call) in let treat_one_state state acc = - let my_trans = Path_analysis.get_transitions_of_state state auto in - let treat_one_trans acc trans = + if Data_for_aorai.isObservableFunction kf then begin + let my_trans = Path_analysis.get_transitions_of_state state auto in + let treat_one_trans acc trans = if is_crossable trans kf then begin let bindings = actions_to_range trans.actions in let fst_set = @@ -286,13 +286,23 @@ let make_start_transition ?(is_main=false) kf init_states = add_or_merge trans.stop (fst_set, last_set, bindings) acc end else acc - in - let possible_states = - List.fold_left - treat_one_trans Data_for_aorai.Aorai_state.Map.empty my_trans - in - if Data_for_aorai.Aorai_state.Map.is_empty possible_states then acc - else Data_for_aorai.Aorai_state.Map.add state possible_states acc + in + let possible_states = + List.fold_left + treat_one_trans Data_for_aorai.Aorai_state.Map.empty my_trans + in + if Data_for_aorai.Aorai_state.Map.is_empty possible_states then acc + else Data_for_aorai.Aorai_state.Map.add state possible_states acc + end else begin + (* function is not observed by automaton: this is as if there + were a single transition letting the state unchanged. *) + Data_for_aorai.Aorai_state.( + Map.add state + (Map.singleton state + (Set.singleton state, Set.singleton state, + Cil_datatype.Term.Map.empty)) + acc) + end in let res = Data_for_aorai.Aorai_state.Set.fold @@ -304,16 +314,28 @@ let make_return_transition kf state = set_return_state s state; let auto = Data_for_aorai.getGraph () in let treat_one_state state bindings acc = - let my_trans = Path_analysis.get_transitions_of_state state auto in - let last = Data_for_aorai.Aorai_state.Set.singleton state in - let treat_one_trans acc trans = - if Aorai_utils.isCrossable trans kf Promelaast.Return then begin - let my_bindings = actions_to_range trans.actions in - let new_bindings = compose_actions bindings (last, last, my_bindings) in - add_or_merge trans.stop new_bindings acc - end else acc - in - List.fold_left treat_one_trans acc my_trans + if Data_for_aorai.isObservableFunction kf then begin + let my_trans = Path_analysis.get_transitions_of_state state auto in + let last = Data_for_aorai.Aorai_state.Set.singleton state in + let treat_one_trans acc trans = + if Aorai_utils.isCrossable trans kf Promelaast.Return then begin + let my_bindings = actions_to_range trans.actions in + let new_bindings = + compose_actions bindings (last, last, my_bindings) + in + add_or_merge trans.stop new_bindings acc + end else acc + in + List.fold_left treat_one_trans acc my_trans + end else begin + (* non-observable function: its return does not change the state + of the automaton. *) + let last = Data_for_aorai.Aorai_state.Set.singleton state in + let new_bindings = + compose_actions bindings (last,last,Cil_datatype.Term.Map.empty) + in + add_or_merge state new_bindings acc + end in let treat_one_path start_state curr_state acc = let res = @@ -430,7 +452,7 @@ module Computer(I: Init) = struct let do_call s f args (state,loops as d) = let kf = Globals.Functions.get f in - if Data_for_aorai.isIgnoredFunction (Kernel_function.get_name kf) + if Data_for_aorai.isIgnoredFunction kf then d (* we simply skip ignored functions. *) else begin set_call_state s state; @@ -455,7 +477,13 @@ module Computer(I: Init) = struct let acc = Cil_datatype.Term.Map.add lv value acc in bind acc prms args in - let args = bind Cil_datatype.Term.Map.empty prms args in + let res = Logic_const.tresult (Kernel_function.get_return_type kf) in + let z = Logic_const.tinteger 0 in + (* invalidate bindings to \result of the callee. + TODO: generate global variable to store the result if needed? + *) + let map = Cil_datatype.Term.Map.(singleton res (singleton z Unknown)) in + let args = bind map prms args in let init_states = extract_current_states state in let init_trans = make_start_transition kf init_states in let end_state = !compute_func I.stack (Kstmt s) kf init_trans in @@ -532,7 +560,7 @@ module Computer(I: Init) = struct end let compute_func_aux stack call_site kf init_state = - if Data_for_aorai.isIgnoredFunction (Kernel_function.get_name kf) then + if Data_for_aorai.isIgnoredFunction kf then Aorai_option.fatal "compute_func on function %a which is ignored by Aorai" Kernel_function.pretty kf else if List.mem_assq kf stack then begin @@ -620,7 +648,7 @@ let () = compute_func := compute_func_aux let compute_forward () = let kf = Globals.Functions.find_by_name (Kernel.MainFunction.get()) in - if Data_for_aorai.isIgnoredFunction (Kernel_function.get_name kf) then + if Data_for_aorai.isIgnoredFunction kf then Aorai_option.abort "Main function %a is ignored by Aorai" Kernel_function.pretty kf; let (states,_) = Data_for_aorai.getGraph () in @@ -757,7 +785,7 @@ struct let do_call s f state = let kf = Globals.Functions.get f in - if Data_for_aorai.isIgnoredFunction (Kernel_function.get_name kf) + if Data_for_aorai.isIgnoredFunction kf then Dataflow2.Default (* we simply skip ignored functions. *) else begin try @@ -912,7 +940,7 @@ let filter_init_state restrict initial map acc = with Not_found -> acc let backward_analysis_aux stack kf ret_state = - if (Data_for_aorai.isIgnoredFunction (Kernel_function.get_name kf)) then + if Data_for_aorai.isIgnoredFunction kf then Aorai_option.fatal "Call backward analysis on ignored function %a" Kernel_function.pretty kf else if List.memq kf stack then begin @@ -1002,7 +1030,7 @@ let () = backward_analysis := backward_analysis_aux let compute_backward () = let kf = Globals.Functions.find_by_name (Kernel.MainFunction.get()) in - if Data_for_aorai.isIgnoredFunction (Kernel_function.get_name kf) then + if Data_for_aorai.isIgnoredFunction kf then Aorai_option.abort "Main function %a is ignored by Aorai" Kernel_function.pretty kf; let final_state = Data_for_aorai.get_kf_return_state kf in diff --git a/src/plugins/aorai/aorai_dataflow.mli b/src/plugins/aorai/aorai_dataflow.mli index 47dd8862031458a54e6077afdec2fbcb73118a9d..458982b4d833e16c789f534d401f907565c64a9e 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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_eva_analysis.disabled.ml b/src/plugins/aorai/aorai_eva_analysis.disabled.ml new file mode 100644 index 0000000000000000000000000000000000000000..39998c5cf0011414fd890ed206c8ae7d477d9f19 --- /dev/null +++ b/src/plugins/aorai/aorai_eva_analysis.disabled.ml @@ -0,0 +1,26 @@ +(**************************************************************************) +(* *) +(* This file is part of Aorai plug-in of Frama-C. *) +(* *) +(* Copyright (C) 2007-2021 *) +(* CEA (Commissariat à l'énergie atomique et aux énergies *) +(* alternatives) *) +(* INRIA (Institut National de Recherche en Informatique et en *) +(* Automatique) *) +(* INSA (Institut National des Sciences Appliquees) *) +(* *) +(* 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 setup () = () diff --git a/src/plugins/aorai/aorai_eva_analysis.enabled.ml b/src/plugins/aorai/aorai_eva_analysis.enabled.ml new file mode 100644 index 0000000000000000000000000000000000000000..518a8bf3d49c305391b7b1d7788e5aacce6f6a79 --- /dev/null +++ b/src/plugins/aorai/aorai_eva_analysis.enabled.ml @@ -0,0 +1,97 @@ +(**************************************************************************) +(* *) +(* This file is part of Aorai plug-in of Frama-C. *) +(* *) +(* Copyright (C) 2007-2021 *) +(* CEA (Commissariat à l'énergie atomique et aux énergies *) +(* alternatives) *) +(* INRIA (Institut National de Recherche en Informatique et en *) +(* Automatique) *) +(* INSA (Institut National des Sciences Appliquees) *) +(* *) +(* 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 show_aorai_variable state fmt var_name = + let vi = Data_for_aorai.(get_varinfo var_name) in + let cvalue = !Db.Value.eval_expr state (Cil.evar vi) in + try + let i = Ival.project_int (Cvalue.V.project_ival cvalue) in + let state_name = Data_for_aorai.getStateName (Integer.to_int i) in + Format.fprintf fmt "%s" state_name + with Cvalue.V.Not_based_on_null | Ival.Not_Singleton_Int | + Z.Overflow | Not_found -> + Format.fprintf fmt "?" + +let show_val fmt (expr, v, _) = + Format.fprintf fmt "%a in %a" + Printer.pp_exp expr + (Cvalue.V.pretty_typ (Some (Cil.typeOf expr))) v + +let show_aorai_state = "Frama_C_show_aorai_state" + +let builtin_show_aorai_state state args = + if not (Aorai_option.Deterministic.get()) then begin + Aorai_option.warning + ~current:true "%s can only display info for deterministic automata" + show_aorai_state + end else begin + let history = Data_for_aorai.(curState :: (whole_history ())) in + Aorai_option.result ~current:true "@[<hv>%a@]" + (Pretty_utils.pp_list ~sep:" <- " (show_aorai_variable state)) history; + if args <> [] then begin + Aorai_option.result ~current:true "@[<hv>%a@]" + (Pretty_utils.pp_list ~sep:"," show_val) args + end; + end; + (* Return value : returns nothing, changes nothing *) + { + Value_types.c_values = [None, state]; + c_clobbered = Base.SetLattice.bottom; + c_from = None; + c_cacheable = Value_types.Cacheable; + } + +let () = + Cil_builtins.add_custom_builtin + (fun () -> (show_aorai_state,Cil.voidType,[],true)) + +let () = + !Db.Value.register_builtin show_aorai_state builtin_show_aorai_state + +let add_slevel_annotation vi kind = + match kind with + | Aorai_visitors.Aux_funcs.(Pre _ | Post _) -> + let kf = Globals.Functions.get vi in + let stmt = Kernel_function.find_first_stmt kf + and loc = Kernel_function.get_location kf + and emitter = Aorai_option.emitter in + Eva.Eva_annotations.(add_slevel_annot ~emitter ~loc stmt SlevelFull) + | _ -> () + +let add_slevel_annotations () = + Aorai_visitors.Aux_funcs.iter add_slevel_annotation + +let add_partitioning varname = + match Data_for_aorai.get_varinfo_option varname with + | None -> () + | Some vi -> Eva.Value_parameters.use_global_value_partitioning vi + +let add_state_variables_partitioning () = + add_partitioning Data_for_aorai.curState; + List.iter add_partitioning (Data_for_aorai.whole_history ()) + +let setup () = + add_slevel_annotations (); + add_state_variables_partitioning () diff --git a/src/plugins/aorai/aorai_eva_analysis.mli b/src/plugins/aorai/aorai_eva_analysis.mli new file mode 100644 index 0000000000000000000000000000000000000000..cdd3a8ec23d6af2fd98f818d64ae36e5fdd4e9ec --- /dev/null +++ b/src/plugins/aorai/aorai_eva_analysis.mli @@ -0,0 +1,26 @@ +(**************************************************************************) +(* *) +(* This file is part of Aorai plug-in of Frama-C. *) +(* *) +(* Copyright (C) 2007-2021 *) +(* CEA (Commissariat à l'énergie atomique et aux énergies *) +(* alternatives) *) +(* INRIA (Institut National de Recherche en Informatique et en *) +(* Automatique) *) +(* INSA (Institut National des Sciences Appliquees) *) +(* *) +(* 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 setup : unit -> unit diff --git a/src/plugins/aorai/aorai_graph.ml b/src/plugins/aorai/aorai_graph.ml index 6f957dd83458f358f0927363a17e853b328e084e..f8e9ae8dd778777fb0debc1665053530ad4c170b 100644 --- a/src/plugins/aorai/aorai_graph.ml +++ b/src/plugins/aorai/aorai_graph.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Aorai plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* 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_graph.mli b/src/plugins/aorai/aorai_graph.mli index 8735c3cc1e7e89a420359612647f33a25d589f95..fc3370cf8489861878b14405b1907f2c173b0e1e 100644 --- a/src/plugins/aorai/aorai_graph.mli +++ b/src/plugins/aorai/aorai_graph.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Aorai plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* 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_metavariables.ml b/src/plugins/aorai/aorai_metavariables.ml index 2692a1658d3b28745a43c09b89bd225610c76e13..7fe2d7fbc92dc0f9fa227e991aebcb9956a8401b 100644 --- a/src/plugins/aorai/aorai_metavariables.ml +++ b/src/plugins/aorai/aorai_metavariables.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Aorai plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* 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_metavariables.mli b/src/plugins/aorai/aorai_metavariables.mli index 47c4a7a22bacdb49b1d1486d97ccc86f299ab2cc..66caa733b4af85854d560adeec0d9b20605022a6 100644 --- a/src/plugins/aorai/aorai_metavariables.mli +++ b/src/plugins/aorai/aorai_metavariables.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Aorai plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 1dfe1a0504a9c33546d943fe3705f79c97373bf9..02127aa546d10d2cbffa57589840ca4a46c0f47b 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) @@ -24,141 +24,149 @@ (**************************************************************************) include Plugin.Register - (struct - let name = "aorai" - let shortname = "aorai" - let help = "verification of behavioral properties (experimental)" - end) + (struct + let name = "aorai" + let shortname = "aorai" + let help = "verification of behavioral properties (experimental)" + end) module Ltl_File = Filepath (struct - let option_name = "-aorai-ltl" - let arg_name = "" - let file_kind = "ltl" - let existence = Fc_Filepath.Must_exist - let help = "specifies file name for LTL property" - end) + let option_name = "-aorai-ltl" + let arg_name = "" + let file_kind = "ltl" + let existence = Fc_Filepath.Must_exist + let help = "specifies file name for LTL property" + end) module To_Buchi = Filepath (struct - let option_name = "-aorai-to-buchi" - let arg_name = "f" - let file_kind = "Promela" - let existence = Fc_Filepath.Indifferent - let help = - "only generates the buchi automata (in Promela language) in file <s>" - end) + let option_name = "-aorai-to-buchi" + let arg_name = "f" + let file_kind = "Promela" + let existence = Fc_Filepath.Indifferent + let help = + "only generates the buchi automata (in Promela language) in file <s>" + end) module Buchi = Filepath (struct - let option_name = "-aorai-buchi" - let arg_name = "f" - let file_kind = "Promela" - let existence = Fc_Filepath.Must_exist - let help = "considers the property described by the buchi automata \ - (in Promela language) from file <f>." - end) + let option_name = "-aorai-buchi" + let arg_name = "f" + let file_kind = "Promela" + let existence = Fc_Filepath.Must_exist + let help = "considers the property described by the buchi automata \ + (in Promela language) from file <f>." + end) module Ya = Filepath (struct - let option_name = "-aorai-automata" - let arg_name = "f" - let file_kind = "Ya" - let existence = Fc_Filepath.Must_exist - let help = "considers the property described by the ya automata \ - (in Ya language) from file <f>." - end) - - -module Output_Spec = - False(struct - let option_name = "-aorai-show-op-spec" - let help = - "displays computed pre and post-condition of each operation" - end) - -module Output_C_File = - Filepath - (struct - let option_name = "-aorai-output-c-file" - let arg_name = "" - let file_kind = "annotated C" - let existence = Fc_Filepath.Indifferent - let help = "specifies generated file name for annotated C code" - end) + let option_name = "-aorai-automata" + let arg_name = "f" + let file_kind = "Ya" + let existence = Fc_Filepath.Must_exist + let help = "considers the property described by the ya automata \ + (in Ya language) from file <f>." + end) module Dot = False(struct - let option_name = "-aorai-dot" - let help = "generates a dot file of the Buchi automata" - end) + let option_name = "-aorai-dot" + let help = "generates a dot file of the Buchi automata" + end) module DotSeparatedLabels = False(struct - let option_name = "-aorai-dot-sep-labels" - let help = "tells dot to not output guards directly over the edges" - end) + let option_name = "-aorai-dot-sep-labels" + let help = "tells dot to not output guards directly over the edges" + end) module AbstractInterpretation = False(struct - let option_name = "-aorai-simple-AI" - let help = "use simple abstract interpretation" - end) + let option_name = "-aorai-simple-AI" + let help = "use simple abstract interpretation" + end) module AbstractInterpretationOff = False(struct - let option_name = "-aorai-AI-off" - let help = "does not use abstract interpretation" - end) + let option_name = "-aorai-AI-off" + let help = "does not use abstract interpretation" + end) let () = Parameter_customize.set_negative_option_name "-aorai-spec-off" module Axiomatization = True(struct - let option_name = "-aorai-spec-on" - let help = "if set, does not axiomatize automata" - end) + let option_name = "-aorai-spec-on" + let help = "if set, does not axiomatize automata" + end) + +module GenerateAnnotations = + True + (struct + let option_name = "-aorai-generate-annotations" + let help = "generate computed ACSL annotations for the program" + end) + +module GenerateDeterministicLemmas = + True + (struct + let option_name = "-aorai-generate-deterministic-lemmas" + let help = "generate lemmas to be proven in order to prove that an \ + automaton is indeed deterministic" + end) module ConsiderAcceptance = False(struct - let option_name = "-aorai-acceptance" - let help = "if set, considers acceptation states" - end) + let option_name = "-aorai-acceptance" + let help = "if set, considers acceptation states" + end) let () = Parameter_customize.set_negative_option_name "-aorai-raw-auto" module AutomataSimplification= True (struct - let option_name = "-aorai-simplified-auto" - let help = "If set, does not simplify automata" - end) - -module Test = - Zero(struct - let option_name = "-aorai-test" - let arg_name = "" - let help = "Testing mode (0 = no test)" - end) + let option_name = "-aorai-simplified-auto" + let help = "If set, does not simplify automata" + end) module AddingOperationNameAndStatusInSpecification = False (struct let option_name = "-aorai-add-oper" let help = "Adding current operation name (and statut) in pre/post \ -conditions" - end) + conditions" + end) module Deterministic= State_builder.Ref (Datatype.Bool) (struct - let name = "Aorai_option.Deterministic" - let dependencies = [] - let default () = false - end) + let name = "Aorai_option.Deterministic" + let dependencies = [] + let default () = false + end) + +module SmokeTests= + False + (struct + let option_name = "-aorai-smoke-tests" + let help = "Add assertion in the generated functions to ensure \ + that the automaton is always in at least one state" + end) + +module InstrumentationHistory = + Int + (struct + let option_name = "-aorai-instrumentation-history" + let arg_name = "N" + let help = "the instrumentation will keep an history of the N last states" + let default = 0 + end) + let is_on () = not (Ltl_File.is_default () && To_Buchi.is_default () && @@ -170,17 +178,21 @@ let promela_file () = let advance_abstract_interpretation () = not (AbstractInterpretationOff.get ()) && not (AbstractInterpretation.get ()) -let emitter = +let emitter = Emitter.create "Aorai" - [ Emitter.Code_annot; Emitter.Funspec; Emitter.Global_annot ] + [ Emitter.Code_annot; Emitter.Funspec; Emitter.Global_annot ] ~correctness: - [ Ltl_File.parameter; To_Buchi.parameter; Buchi.parameter; - Ya.parameter; Axiomatization.parameter; ConsiderAcceptance.parameter; - AutomataSimplification.parameter ] + [ Ltl_File.parameter; To_Buchi.parameter; Buchi.parameter; + Ya.parameter; Axiomatization.parameter; + ConsiderAcceptance.parameter; + AutomataSimplification.parameter ] ~tuning: - [ AbstractInterpretation.parameter; - AddingOperationNameAndStatusInSpecification.parameter ] + [ AbstractInterpretation.parameter; + AddingOperationNameAndStatusInSpecification.parameter; + InstrumentationHistory.parameter; + GenerateAnnotations.parameter ] + (* Local Variables: diff --git a/src/plugins/aorai/aorai_option.mli b/src/plugins/aorai/aorai_option.mli index 111cf0e74ea3f7ac344cb47ffd02be462f11734c..d34f59dba0f568ba283a5d3d2b5d9cf678961c0b 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) @@ -29,20 +29,28 @@ module Ltl_File: Parameter_sig.Filepath module To_Buchi: Parameter_sig.Filepath module Buchi: Parameter_sig.Filepath module Ya: Parameter_sig.Filepath -module Output_Spec: Parameter_sig.Bool -module Output_C_File: Parameter_sig.Filepath module Dot: Parameter_sig.Bool module DotSeparatedLabels: Parameter_sig.Bool module AbstractInterpretation: Parameter_sig.Bool module Axiomatization: Parameter_sig.Bool +module GenerateAnnotations: Parameter_sig.Bool +module GenerateDeterministicLemmas: Parameter_sig.Bool module ConsiderAcceptance: Parameter_sig.Bool module AutomataSimplification: Parameter_sig.Bool -module Test: Parameter_sig.Int module AddingOperationNameAndStatusInSpecification: Parameter_sig.Bool +(** if [true], adds assertion at the end of the generated function + to check that the automaton is not in the rejecting state (in + the deterministic case), or that at least one non-rejecting state + is active (in the non-deterministic state). +*) +module SmokeTests: Parameter_sig.Bool + (** [true] if the user declares that its ya automaton is deterministic. *) module Deterministic: State_builder.Ref with type data = bool +module InstrumentationHistory: Parameter_sig.Int + val is_on : unit -> bool val promela_file: unit -> Filepath.Normalized.t val advance_abstract_interpretation: unit -> bool diff --git a/src/plugins/aorai/aorai_register.ml b/src/plugins/aorai/aorai_register.ml index d60095bb840c41653edee18abf3f77432119d6c7..ec4f9e123cd8b6f1056b5e56e023becf30c9b68e 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) @@ -33,7 +33,6 @@ let output_c_file = ref Filepath.Normalized.unknown let ltl_tmp_file = ref Filepath.Normalized.unknown let ltl_file = ref Filepath.Normalized.unknown let dot_file = ref Filepath.Normalized.unknown -let generatesCFile = ref true let ltl2ba_params = " -l -p -o " let ltl_to_promela = Hashtbl.create 7 @@ -45,15 +44,15 @@ let set_ltl_correspondence h = let convert_ltl_exprs t = let rec convert_cond cond = match cond with - POr(c1,c2) -> POr (convert_cond c1, convert_cond c2) - | PAnd(c1,c2) -> PAnd(convert_cond c1, convert_cond c2) - | PNot c -> PNot (convert_cond c) - | PCall _ | PReturn _ | PTrue | PFalse -> cond - | PRel(Neq,PVar x,PCst _) -> - (try - let (rel,t1,t2) = Hashtbl.find ltl_to_promela x in PRel(rel,t1,t2) - with Not_found -> cond) - | PRel _ -> cond + POr(c1,c2) -> POr (convert_cond c1, convert_cond c2) + | PAnd(c1,c2) -> PAnd(convert_cond c1, convert_cond c2) + | PNot c -> PNot (convert_cond c) + | PCall _ | PReturn _ | PTrue | PFalse -> cond + | PRel(Neq,PVar x,PCst _) -> + (try + let (rel,t1,t2) = Hashtbl.find ltl_to_promela x in PRel(rel,t1,t2) + with Not_found -> cond) + | PRel _ -> cond in let rec convert_seq_elt e = { e with @@ -62,8 +61,8 @@ let convert_ltl_exprs t = and convert_seq s = List.map convert_seq_elt s in let convert_parsed c = match c with - Seq l -> Seq (convert_seq l) - | Otherwise -> Otherwise + Seq l -> Seq (convert_seq l) + | Otherwise -> Otherwise in let convert_trans t = { t with cross = convert_parsed t.cross } in List.map convert_trans t @@ -117,7 +116,7 @@ let load_ya_file filename = let channel = check_and_open_in filename "invalid Ya file" in let lexbuf = Lexing.from_channel channel in Lexing.(lexbuf.lex_curr_p <- - { lexbuf.lex_curr_p with pos_fname = (filename :> string) }); + { lexbuf.lex_curr_p with pos_fname = (filename :> string) }); try let automata = Yaparser.main Yalexer.token lexbuf in close_in channel; @@ -136,7 +135,7 @@ let load_promela_file f = let trans = convert_ltl_exprs auto.trans in close_in c; Data_for_aorai.setAutomata { auto with trans }; - with + with | Promelalexer.Error(loc,msg) -> syntax_error loc msg let load_promela_file_withexps f = @@ -145,18 +144,16 @@ let load_promela_file_withexps f = let automata = Promelalexer_withexps.parse c in close_in c; Data_for_aorai.setAutomata automata; - with + with | Promelalexer_withexps.Error(loc,msg) -> syntax_error loc msg let display_status () = if Aorai_option.verbose_atleast 2 then begin Aorai_option.feedback "\n" ; Aorai_option.feedback "C file: '%a'\n" Filepath.Normalized.pretty !c_file ; - Aorai_option.feedback "Entry point: '%a'\n" + Aorai_option.feedback "Entry point: '%a'\n" Kernel_function.pretty (fst (Globals.entry_point())) ; Aorai_option.feedback "LTL property: '%a'\n" Filepath.Normalized.pretty !ltl_file ; - Aorai_option.feedback "Files to generate: '%a' (Annotated code)\n" - (if !generatesCFile then Filepath.Normalized.pretty else (fun fmt _ -> Format.fprintf fmt "(none)")) !output_c_file; if Aorai_option.Dot.get () then Aorai_option.feedback "Dot file: '%a'\n" Filepath.Normalized.pretty !dot_file; Aorai_option.feedback "Tmp files: '%a' (Light LTL file)\n" @@ -167,15 +164,8 @@ let display_status () = end let init_file_names () = - (* Intermediate functions for error display or fresh name of file - generation *) - let err= ref false in - let dispErr mesg f = - Aorai_option.error "Error. File '%a' %s.\n" Filepath.Normalized.pretty f mesg; - err:=true - in let freshname ?opt_suf file suf = - let name = Filepath.Normalized.to_pretty_string file in + let name = (file:Filepath.Normalized.t:>string) in let pre = Filename.remove_extension name in let pre = match opt_suf with None -> pre | Some s -> pre ^ s in let rec fn p s n = @@ -185,30 +175,14 @@ let init_file_names () = let name = if not (Sys.file_exists (pre^suf)) then pre^suf else fn pre suf 0 - in Filepath.Normalized.of_string name + in + Filepath.Normalized.of_string name in - - (* c_file name is given and has to point out a valid file. *) - c_file := - (match Kernel.Files.get () with - | [] -> Filepath.Normalized.of_string "dummy.i" - | f :: _ -> f); - if (Filepath.Normalized.is_unknown !c_file) then dispErr ": invalid C file name" !c_file; - - (* The output C file has to be a valid file name if it is used. *) - output_c_file := Aorai_option.Output_C_File.get (); - if (Filepath.Normalized.is_unknown !output_c_file) then - output_c_file := freshname ~opt_suf:"_annot" !c_file ".c"; - (* else if Sys.file_exists !output_c_file then dispErr "already exists" !output_c_file; *) - - if Aorai_option.Dot.get () then - dot_file:= freshname !c_file ".dot"; - if Filepath.Normalized.is_unknown (Aorai_option.Ya.get ()) then if Filepath.Normalized.is_unknown (Aorai_option.Buchi.get ()) then begin (* ltl_file name is given and has to point out a valid file. *) ltl_file := Aorai_option.Ltl_File.get (); - + if Aorai_option.Dot.get() then dot_file := freshname !ltl_file ".dot"; (* The LTL file is always used. *) (* The promela file can be given or not. *) if not (Filepath.Normalized.is_unknown (Aorai_option.To_Buchi.get ())) then begin @@ -232,26 +206,25 @@ let init_file_names () = if not (Filepath.Normalized.is_unknown (Aorai_option.To_Buchi.get ())) && not (Filepath.Normalized.is_unknown (Aorai_option.Ltl_File.get ())) then begin - Aorai_option.error + Aorai_option.abort "Error. '-buchi' option is incompatible with '-to-buchi' and '-ltl' \ -options."; - err:=true + options." end; (* The promela file is used only if the process does not terminate after - LTL generation. *) + LTL generation. *) promela_file := Aorai_option.promela_file (); + if Aorai_option.Dot.get() then + dot_file := freshname !promela_file ".dot"; end else begin - let ya_file = Aorai_option.Ya.get () in - if (Filepath.Normalized.is_unknown ya_file) then dispErr ": invalid Ya file name" ya_file; + let ya_file = Aorai_option.Ya.get () in + if (Filepath.Normalized.is_unknown ya_file) then + Aorai_option.abort + "invalid Ya file name %a" Filepath.Normalized.pretty ya_file; + if Aorai_option.Dot.get() then + dot_file := freshname ya_file ".dot" end; - display_status (); - !err - -let init_test () = - match Aorai_option.Test.get () with - | 1 -> generatesCFile := false; - | _ -> generatesCFile := true + display_status () let printverb s = Aorai_option.feedback ~level:2 "%s" s @@ -263,26 +236,8 @@ let output () = (!dot_file:>string); printverb "Generating dot file : done\n" end; - - (* C file *) - if (not !generatesCFile) then - printverb "C file generation : skipped\n" - else - begin - let cout = open_out (!output_c_file:>string) in - let fmt = Format.formatter_of_out_channel cout in - Kernel.Unicode.without_unicode - (fun () -> - File.pretty_ast ~fmt (); - close_out cout; - printverb "C file generation : done\n"; - ) () - end; - - printverb "Finished.\n"; (* Some test traces. *) - Data_for_aorai.debug_computed_state (); - if !generatesCFile then Kernel.Files.set [ !output_c_file ] + Data_for_aorai.debug_computed_state () let work () = let file = Ast.get () in @@ -297,15 +252,15 @@ let work () = Filepath.Normalized.pretty !ltl_tmp_file Filepath.Normalized.pretty !promela_file in if Sys.command cmd <> 0 then - Aorai_option.abort "failed to run: %s" cmd ; + Aorai_option.abort "failed to run: %s" cmd ; printverb "LTL ~> Promela (ltl2ba): done\n" end; if not (Filepath.Normalized.is_unknown (Aorai_option.To_Buchi.get ())) then printverb ("Finished.\nGenerated file: '"^(Filepath.Normalized.to_pretty_string !promela_file)^"'\n") else begin - (* Step 3 : Loading promela_file and checking the consistency between informations from C code and LTL property *) - (* Such as functions name and global variables. *) + (* Step 3 : Loading promela_file and checking the consistency between informations from C code and LTL property *) + (* Such as functions name and global variables. *) if not (Filepath.Normalized.is_unknown (Aorai_option.Buchi.get ())) then load_promela_file_withexps !promela_file @@ -314,22 +269,23 @@ let work () = else load_promela_file !promela_file; printverb "Loading promela : done\n"; - (* Computing the list of ignored functions *) - (* Aorai_visitors.compute_ignored_functions file; *) + (* Computing the list of ignored functions *) + (* Aorai_visitors.compute_ignored_functions file; *) - (* Promelaoutput.print_raw_automata (Data_for_aorai.getAutomata()); *) - (* Data_for_aorai.debug_ltl_expressions (); *) + (* Promelaoutput.print_raw_automata (Data_for_aorai.getAutomata()); *) + (* Data_for_aorai.debug_ltl_expressions (); *) (*let _ = Path_analysis.test (Data_for_aorai.getAutomata())in*) let root = fst (Globals.entry_point ()) in - if (Aorai_option.Axiomatization.get()) then + let axiomatization = Aorai_option.Axiomatization.get() in + if axiomatization then begin - (* Step 5 : incrementing pre/post - conditions with states and transitions information *) + (* Step 5 : incrementing pre/post + conditions with states and transitions information *) printverb "Refining pre/post : \n"; Aorai_dataflow.compute (); - (* Step 6 : Removing transitions never crossed *) + (* Step 6 : Removing transitions never crossed *) let automaton_has_states = if (Aorai_option.AutomataSimplification.get()) then begin @@ -350,29 +306,31 @@ let work () = if automaton_has_states then begin (* Step 7 : Labeling abstract file *) (* Finally the information is added into the Cil automata. *) - Aorai_utils.initGlobals root (Aorai_option.Axiomatization.get()); + Aorai_utils.initGlobals root axiomatization; Aorai_visitors.add_sync_with_buch file; - Aorai_visitors.add_pre_post_from_buch file - (Aorai_option.advance_abstract_interpretation ()); + if Aorai_option.GenerateAnnotations.get () then + Aorai_visitors.add_pre_post_from_buch file + (Aorai_option.advance_abstract_interpretation ()); + Aorai_eva_analysis.setup (); printverb "Annotation of Cil : done\n"; end end else begin - (* Step 4': Computing the set of possible pre-states and post-states of each function *) - (* And so for pre/post transitions *) + (* Step 4': Computing the set of possible pre-states and post-states of each function *) + (* And so for pre/post transitions *) printverb "Abstracting pre/post : skipped\n"; - (* Step 5': incrementing pre/post conditions with states and transitions information *) + (* Step 5': incrementing pre/post conditions with states and transitions information *) printverb "Refining pre/post : skipped\n"; - (* Step 6 : Removing transitions never crossed *) + (* Step 6 : Removing transitions never crossed *) printverb "Removing unused trans : skipped\n"; - (* Step 7 : Labeling abstract file *) - (* Finally the information is added into the Cil automata. *) - Aorai_utils.initGlobals root (Aorai_option.Axiomatization.get()); + (* Step 7 : Labeling abstract file *) + (* Finally the information is added into the Cil automata. *) + Aorai_utils.initGlobals root axiomatization; Aorai_visitors.add_sync_with_buch file; printverb "Annotation of Cil : partial\n" end; @@ -380,38 +338,25 @@ let work () = (* Step 8 : clearing tables whose information has been invalidated by our transformations. *) + Ast.mark_as_changed(); Cfg.clearFileCFG ~clear_id:false file; Cfg.computeFileCFG file; Ast.clear_last_decl (); if Kernel.Check.get() then Filecheck.check_ast "aorai"; - let prj = - File.create_project_from_visitor "aorai" - (fun prj -> new Visitor.frama_c_copy prj) - in - Project.copy ~selection:(Parameter_state.get_selection ()) prj; - Project.on prj output () + output () end let run () = - Aorai_option.result "Welcome to the Aorai plugin@."; - init_test (); - (* Step 1 : Capture files names *) - let error_status = init_file_names () in - (* Treatment is done only if parameters are valid *) - if error_status then - Aorai_option.error "Generation stopped." - else - - (* Step 2 : Work in our own project, initialized by a copy of the main - one. *) - let work_prj = - File.create_project_from_visitor ~last:false "aorai_tmp" - (fun prj -> new Visitor.frama_c_copy prj) - in - Project.copy ~selection:(Parameter_state.get_selection ()) work_prj; - Project.on work_prj work (); - Project.remove ~project:work_prj () + init_file_names (); + (* Step 2 : Work in our own project, initialized by a copy of the main + one. *) + let work_prj = + File.create_project_from_visitor "aorai" + (fun prj -> new Visitor.frama_c_copy prj) + in + Project.copy ~selection:(Parameter_state.get_selection ()) work_prj; + Project.on work_prj work () (* Plugin registration *) @@ -428,9 +373,9 @@ let run, _ = "Aorai" (let module O = Aorai_option in [ O.Ltl_File.self; O.To_Buchi.self; O.Buchi.self; - O.Ya.self; O.Axiomatization.self; O.ConsiderAcceptance.self; - O.AutomataSimplification.self; O.AbstractInterpretation.self; - O.AddingOperationNameAndStatusInSpecification.self ]) + O.Ya.self; O.Axiomatization.self; O.ConsiderAcceptance.self; + O.AutomataSimplification.self; O.AbstractInterpretation.self; + O.AddingOperationNameAndStatusInSpecification.self ]) run let main () = if Aorai_option.is_on () then run () diff --git a/src/plugins/aorai/aorai_utils.ml b/src/plugins/aorai/aorai_utils.ml index 341fb420f6d0e2636d66fbbcc1c8204cd21bee7b..077cc38480e28e1258dddc52da8e8a90c8f34608 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) @@ -629,6 +629,16 @@ let crosscond_to_exp generated_kf curr_f curr_status loc cond res = (** Local copy of the file pointer *) let file = ref Cil.dummyFile +let initFunction kf = + let fname = Kernel_function.get_name kf in + List.iter + (fun vi -> set_paraminfo fname vi.vname vi) + (Kernel_function.get_formals kf); + match (Kernel_function.find_return kf).skind with + | Cil_types.Return (Some { enode = Lval (Var vi,NoOffset) },_) -> + set_returninfo fname vi (* Add the vi of return stmt *) + | exception Kernel_function.No_Statement | _ -> () (* function without returned value *) + (** Copy the file pointer locally in the class in order to ease globals management and initializes some tables. *) let initFile f = @@ -636,27 +646,7 @@ let initFile f = Data_for_aorai.setCData (); (* Adding C variables into our hashtable *) Globals.Vars.iter (fun vi _ -> set_varinfo vi.vname vi); - Globals.Functions.iter - (fun kf -> - let fname = Kernel_function.get_name kf in - List.iter - (fun vi -> set_paraminfo fname vi.vname vi) - (Kernel_function.get_formals kf); - if not (Data_for_aorai.isIgnoredFunction fname) then - begin - try - let ret = Kernel_function.find_return kf in - match ret.skind with - | Cil_types.Return (Some e,_) -> - (match e.enode with - | Lval (Var vi,NoOffset) -> - set_returninfo fname vi (* Add the vi of return stmt *) - | _ -> () (* function without returned value *)) - | _ -> () (* function without returned value *) - with Kernel_function.No_Statement -> - Aorai_option.fatal - "Don't know what to do with a function declaration" - end) + Globals.Functions.iter initFunction (** List of globals awaiting for adding into C file globals *) let globals_queue = ref [] @@ -684,46 +674,41 @@ let flush_globals () = Kernel_function.clear_sid_info (); globals_queue := [] -let mk_global glob = globals_queue := glob :: !globals_queue +let add_global glob = globals_queue := glob :: !globals_queue (* Utilities for global variables *) -let mk_global_c_initialized_vars name ty ini= - let vi = (Cil.makeGlobalVar name ty) in - vi.vghost<-true; - mk_global (GVar(vi,ini,vi.vdecl)); - Globals.Vars.add vi ini; - set_varinfo name vi - -let mk_global_var_init vi ini = - vi.vghost<-true; - mk_global (GVar(vi,ini,vi.vdecl)); - Globals.Vars.add vi ini; +let add_gvar ?init vi = + let initinfo = {Cil_types.init} in + vi.vghost <- true; + vi.vstorage <- NoStorage; + add_global (GVar(vi,initinfo,vi.vdecl)); + Globals.Vars.add vi initinfo; set_varinfo vi.vname vi -let mk_global_var vi = - let ini = - {Cil_types.init=Some(Cil.makeZeroInit ~loc:(CurrentLoc.get()) vi.vtype)} +let add_gvar_zeroinit vi = + add_gvar ~init:(Cil.makeZeroInit ~loc:(CurrentLoc.get()) vi.vtype) vi + +let mk_gvar ?init ~ty name = + (* See if the variable is already declared *) + let vi = + try + let ty' = typeAddAttributes [Attr ("ghost", [])] ty in + let vi = Globals.Vars.find_from_astinfo name VGlobal in + if not (Cil_datatype.Typ.equal vi.vtype ty') then + Aorai_option.abort "Global %s is declared with type %a instead of %a" + name Cil_printer.pp_typ vi.vtype Cil_printer.pp_typ ty'; + Globals.Vars.remove vi; + vi + with Not_found -> + Cil.makeGlobalVar name ty in - mk_global_var_init vi ini + add_gvar ?init vi -let mk_global_c_var_init name init = - let ty = Cil.typeOf init in - let vi = Cil.makeGlobalVar name ty in - vi.vghost <- true; - let ini = { Cil_types.init = Some(SingleInit init) } in - mk_global(GVar(vi,ini,vi.vdecl)); - Globals.Vars.add vi ini; - set_varinfo name vi - -let mk_int_const value = - new_exp - ~loc:(CurrentLoc.get()) - (Const( - CInt64( - Integer.of_int (value), - IInt, - Some(string_of_int(value)) - ))) +let mk_gvar_scalar ~init ?(ty = Cil.typeOf init) name = + mk_gvar ~init:(SingleInit init) ~ty name + +let mk_integer value = + Cil.integer ~loc:(CurrentLoc.get()) value (* Utilities for global enumerations *) let mk_global_c_enum_type_tagged name elements_l = @@ -740,14 +725,14 @@ let mk_global_c_enum_type_tagged name elements_l = (fun (e,i) -> { eiorig_name = e; einame = e; - eival = mk_int_const i; + eival = mk_integer i; eiloc = Location.unknown; eihost = einfo}) elements_l in einfo.eitems <- l; set_usedinfo name einfo; - mk_global (GEnumTag(einfo, Location.unknown)); + add_global (GEnumTag(einfo, Location.unknown)); einfo let mk_global_c_enum_type name elements = @@ -757,8 +742,9 @@ let mk_global_c_enum_type name elements = (* no need to rev the list, as the elements got their value already *) ignore (mk_global_c_enum_type_tagged name elements) -let mk_global_c_initialized_enum name name_enuminfo ini = - mk_global_c_initialized_vars name (TEnum(get_usedinfo name_enuminfo,[])) ini +let mk_gvar_enum ?init name name_enuminfo = + mk_gvar ?init ~ty:(TEnum(get_usedinfo name_enuminfo,[])) name + (* ************************************************************************* *) (** {b Terms management / computation} *) @@ -888,9 +874,27 @@ let is_out_of_state_exp state loc = (Cil.evar (Data_for_aorai.get_state_var state)) (mk_int_exp 0) +let assert_alive_automaton kf stmt = + let pred = + if Aorai_option.Deterministic.get() then + let reject_state = Data_for_aorai.get_reject_state() in + is_out_of_state_pred reject_state + else begin + let valid_states = + List.filter + (fun x -> not (Data_for_aorai.is_reject_state x)) + (fst (Data_for_aorai.getGraph ())) + in + let valid_preds = List.map is_state_pred valid_states in + Logic_const.pors valid_preds + end + in + let pred = { pred with pred_name = "aorai_smoke_test" :: pred.pred_name } in + Annotations.add_assert Aorai_option.emitter ~kf stmt pred + (* Utilities for other globals *) -let mk_global_comment txt = mk_global (GText (txt)) +let mk_global_comment txt = add_global (GText (txt)) (* ************************************************************************* *) (** {b Initialization management / computation} *) @@ -910,18 +914,9 @@ let mk_global_states_init root = in let init = SingleInit init in let var = Data_for_aorai.get_state_var state in - mk_global_var_init var { Cil_types.init = Some init}) + add_gvar ~init var) states -let func_to_init name = - {Cil_types.init= - Some(SingleInit( - new_exp ~loc:(CurrentLoc.get()) (Const(func_to_cenum (name)))))} - -let funcStatus_to_init st = - {Cil_types.init=Some(SingleInit(new_exp ~loc:(CurrentLoc.get()) - (Const(op_status_to_cenum (st)))))} - class visit_decl_loops_init () = object(self) inherit Visitor.frama_c_inplace @@ -1085,7 +1080,7 @@ let mk_deterministic_lemma () = let prop = Logic_const.toplevel_predicate ~kind:Check prop in let name = state.Promelaast.name ^ "_deterministic_trans" in let lemma = - Dlemma (name, false, [label],[],prop,[],Cil_datatype.Location.unknown) + Dlemma (name, [label],[],prop,[],Cil_datatype.Location.unknown) in Annotations.add_global Aorai_option.emitter lemma in @@ -1096,18 +1091,6 @@ let make_enum_states () = let state_list = List.map (fun x -> (x.Promelaast.name, x.Promelaast.nums)) state_list in - let state_list = - if not (Aorai_option.Deterministic.get ()) then state_list - else - (*[VP] Strictly speaking this is not needed, but Jessie tends - to consider that a value of enum type can only be one of the - tags, so that we must add this dummy state that is always a - possible value, even when a contract concludes that curState - is none of the others. Note that ISO C does not impose this - limitation to values of enum types. - *) - (get_fresh "aorai_reject_state", -2)::state_list - in let enum = mk_global_c_enum_type_tagged states state_list in let mapping = List.map @@ -1138,19 +1121,20 @@ let initGlobals root complete = mk_global_c_enum_type listOp (List.map - (fun e -> func_to_op_func e) - (getFunctions_from_c() @ getIgnoredFunctions())); - mk_global_c_initialized_enum curOp listOp - (func_to_init (Kernel_function.get_name root)); + (fun kf -> func_to_op_func (Kernel_function.get_name kf)) + (getObservablesFunctions() @ getIgnoredFunctions())); + mk_gvar_enum curOp listOp; mk_global_c_enum_type listStatus (callStatus::[termStatus]); - mk_global_c_initialized_enum - curOpStatus listStatus (funcStatus_to_init Promelaast.Call); + mk_gvar_enum curOpStatus listStatus; mk_global_comment "//* "; mk_global_comment "//* States and Trans Variables"; - if Aorai_option.Deterministic.get () then - mk_global_c_var_init curState (getInitialState()) - else + if Aorai_option.Deterministic.get () then begin + mk_gvar_scalar ~init:(getInitialState()) curState; + let init = getInitialState() (* TODO a distinct initial value for history *) + and history = Data_for_aorai.whole_history () in + List.iter (fun name -> mk_gvar_scalar ~init name) history + end else mk_global_states_init root; if complete then begin @@ -1163,16 +1147,17 @@ let initGlobals root complete = mk_global_comment "//****************** "; mk_global_comment "//* Auxiliary variables used in transition conditions"; mk_global_comment "//*"; - List.iter mk_global_var (Data_for_aorai.aux_variables()); + List.iter add_gvar_zeroinit (Data_for_aorai.aux_variables()); let auto = Data_for_aorai.getAutomata () in mk_global_comment "//* "; mk_global_comment "//****************** "; mk_global_comment "//* Metavariables"; mk_global_comment "//*"; - Datatype.String.Map.iter (fun _ -> mk_global_var) auto.metavariables; + Datatype.String.Map.iter (fun _ -> add_gvar_zeroinit) auto.metavariables; - if Aorai_option.Deterministic.get () then begin + if Aorai_option.Deterministic.get () && + Aorai_option.GenerateDeterministicLemmas.get () then begin (* must flush now previous globals which are used in the lemmas in order to be able to put these last ones in the right places in the AST. *) flush_globals (); @@ -1997,8 +1982,45 @@ let mk_transitions_stmt generated_kf loc f st res trans = trans ([],[],Cil_datatype.Varinfo.Set.empty, Cil.zero ~loc, []) +let mk_goto loc b = + let ghost = true in + match b.bstmts with + | [] -> Cil.mkBlock [] + | [ { skind = Instr i } ] -> + let s = mkStmtOneInstr ~ghost i in + Cil.mkBlock [s] + | [ { skind = Goto (s,_) }] -> + let s' = mkStmt ~ghost (Goto (ref !s,loc)) in + Cil.mkBlock [s'] + | s::_ -> + s.labels <- + (Label(Data_for_aorai.get_fresh "__aorai_label",loc,false)):: s.labels; + let s' = mkStmt ~ghost (Goto (ref s,loc)) in + Cil.mkBlock [s'] + +let normalize_condition loc cond block1 block2 = + let rec aux cond b1 b2 = + match cond.enode with + | UnOp(LNot,e,_) -> aux e b2 b1 + | BinOp(LAnd,e1,e2,_) -> + let b2' = mk_goto loc b2 in + let b1'= Cil.mkBlock [aux e2 b1 b2'] in + aux e1 b1' b2 + | BinOp(LOr,e1,e2,_) -> + let b1' = mk_goto loc b1 in + let b2' = Cil.mkBlock [aux e2 b1' b2] in + aux e1 b1 b2' + | _ -> + Cil.mkStmt ~ghost:true (If(cond,b1,b2,loc)) + in + aux cond block1 block2 + let mkIfStmt loc exp1 block1 block2 = - Cil.mkStmt ~ghost:true (If (exp1, block1, block2, loc)) + if Kernel.LogicalOperators.get() then + Cil.mkStmt ~ghost:true (If (exp1, block1, block2, loc)) + else + normalize_condition loc exp1 block1 block2 + let mk_deterministic_stmt generated_kf loc auto f fst status ret state @@ -2063,7 +2085,9 @@ let mk_deterministic_body generated_kf loc f st status res = List.fold_right (mk_deterministic_stmt generated_kf loc auto f st status res) states - ([], Cil_datatype.Varinfo.Set.empty, [],[]) + ([], Cil_datatype.Varinfo.Set.empty, [], + (* if all else fails, go to reject state. *) + [is_state_det_stmt (Data_for_aorai.get_reject_state()) loc]) in aux_funcs, aux_vars, aux_stmts @ trans_stmts @@ -2136,6 +2160,20 @@ let auto_func_block generated_kf loc f st status res = (Const (Data_for_aorai.func_to_cenum (Kernel_function.get_name f)))) loc ] + and stmt_history_update = + if Aorai_option.Deterministic.get () then + let history = Data_for_aorai.whole_history () + and cur_state = Data_for_aorai.(get_varinfo curState) in + let add_stmt (src,acc) dst_name = + let dst = Data_for_aorai.get_varinfo dst_name in + let stmt = equalsStmt (Cil.var dst) (Cil.evar ~loc src) loc in + dst, stmt :: acc + in + snd (List.fold_left add_stmt (cur_state,[]) history) + else if Aorai_option.InstrumentationHistory.get () > 0 then + Aorai_option.fatal "history is not implemented for non-deterministic \ + automaton" + else [] in let new_funcs, local_var, main_stmt = if Aorai_option.Deterministic.get() then @@ -2143,10 +2181,15 @@ let auto_func_block generated_kf loc f st status res = else mk_non_deterministic_body generated_kf loc f st status res in - let ret = [ Cil.mkStmt ~ghost:true (Cil_types.Return(None,loc)) ] in + let ret = + Cil.mkStmt ~ghost:true ~valid_sid:true (Cil_types.Return(None,loc)) + in + if Aorai_option.SmokeTests.get () then begin + assert_alive_automaton generated_kf ret; + end; let res_block = (Cil.mkBlock - ( stmt_begin_list @ main_stmt @ ret)) + ( stmt_begin_list @ stmt_history_update @ main_stmt @ [ret])) in res_block.blocals <- local_var; Aorai_option.debug ~dkey "Generated body is:@\n%a" @@ -2207,6 +2250,8 @@ let treat_val loc base range pred = let max = Logic_const.prel (Rle, loc, add max) in Logic_const.pand (min,max) | Unbounded min -> Logic_const.prel (Rle, add_cst min, loc) + | Unknown -> Logic_const.ptrue (* nothing is known: the loc can + take any value from then on. *) in Aorai_option.debug ~dkey:action_dkey "Action predicate: %a" Printer.pp_predicate res; diff --git a/src/plugins/aorai/aorai_utils.mli b/src/plugins/aorai/aorai_utils.mli index efb8b12df79c276e22688cf01d55f06fe5e1e61a..1c05af175751afc9bc41aa93d15e0834554b257c 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 f771e84066947d6ff88d6a21fa480a390b6aa254..93889b764fe0adc88286eb2ee0cb9cc4757fe69f 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) @@ -61,26 +61,37 @@ let get_call_name exp = match exp.enode with not be projectified. *) -(* the various kinds of auxiliary functions. *) -type func_auto_mode = - | Not_auto_func (* original C function. *) - | Aux_func of kernel_function - (* Checks whether we are in the corresponding behavior of the function. *) - | Pre_func of kernel_function - (* Pre_func f denotes a function updating the automaton when f is called. *) - | Post_func of kernel_function - (* Post_func f denotes a function updating the automaton - when returning from f. *) +module Aux_funcs = +struct + (* the various kinds of auxiliary functions. *) + type kind = + | Not_aux_func (* original C function. *) + | Aux of kernel_function + (* Checks whether we are in the corresponding behavior of the function. *) + | Pre of kernel_function + (* Pre_func f denotes a function updating the automaton when f is called. *) + | Post of kernel_function + (* Post_func f denotes a function updating the automaton + when returning from f. *) -(* table from auxiliary functions to the corresponding original one. *) -let func_orig_table = Cil_datatype.Varinfo.Hashtbl.create 17 + module Table = Cil_datatype.Varinfo.Hashtbl -let add_aux_bhv orig_kf vi = - Cil_datatype.Varinfo.Hashtbl.add func_orig_table vi (Aux_func orig_kf) + (* table from auxiliary functions to the corresponding original one. *) + let table = Table.create 17 + + let add vi kind = + Table.add table vi kind + + let add_aux kf vi = + add vi (Aux kf) + + let kind vi = + try Table.find table vi with Not_found -> Not_aux_func + + let iter f = + Table.iter f table +end -let kind_of_func vi = - try Cil_datatype.Varinfo.Hashtbl.find func_orig_table vi - with Not_found -> Not_auto_func (* The following functions will be used to generate C code for pre & post functions. *) @@ -105,6 +116,43 @@ let mk_post_fct_block kf_post kf res = (Data_for_aorai.get_kf_return_state kf) res +(* update from formals of original C function to one of the auxiliary + function (f_aux or f_pre) +*) +class change_formals old_kf new_kf = + let old_formals = Kernel_function.get_formals old_kf in + let new_formals = Kernel_function.get_formals new_kf in + let formals = List.combine old_formals new_formals in + object + inherit Visitor.frama_c_inplace + method! vlogic_var_use lv = + match lv.lv_origin with + | None -> SkipChildren + | Some vi -> + try + let vi'= List.assq vi formals in + ChangeTo (Cil.cvar_to_lvar vi') + with Not_found -> SkipChildren + + method! vvrbl vi = + try + let vi' = List.assq vi formals in + ChangeTo vi' + with Not_found -> SkipChildren + end + +(* update \result to param of f_post when it exists. Must not be called if + f_post has no parameter (original f returns void). *) +class change_result new_kf = + let v = List.hd (Kernel_function.get_formals new_kf) in + object + inherit Visitor.frama_c_inplace + method! vterm_lhost lh = + match lh with + TResult _ -> ChangeTo (TVar (Cil.cvar_to_lvar v)) + | _ -> DoChildren + end + (** This visitor adds an auxiliary function for each C function which takes care of setting the automaton in a correct state before calling the @@ -118,100 +166,107 @@ class visit_adding_code_for_synchronisation = val aux_post_table = Kernel_function.Hashtbl.create 17 + method do_fundec fundec loc = + let kf = Option.get self#current_kf in + let vi = Kernel_function.get_vi kf in + let vi_pre = Cil_const.copy_with_new_vid vi in + vi_pre.vname <- Data_for_aorai.get_fresh (vi_pre.vname ^ "_pre_func"); + vi_pre.vdefined <- true; + vi_pre.vghost <- true; + Aux_funcs.(add vi_pre (Pre kf)); + (* TODO: + - what about protos that have no specified args + (NB: cannot be identified here because of implem of Kernel_function). + - what about varargs? + *) + let (rettype,args,varargs,_) = Cil.splitFunctionTypeVI vi_pre in + Cil.update_var_type vi_pre (TFun(Cil.voidType, args, varargs,[])); + vi_pre.vattr <- []; + + (* in particular get rid of __no_return if set in vi*) + + let arg = + if Cil.isVoidType rettype + then [] + else ["res",rettype,[]] + in + let vi_post = + Cil.makeGlobalVar ~ghost:true + (Data_for_aorai.get_fresh (vi.vname ^ "_post_func")) + (TFun(voidType,Some arg,false,[])) + in + Kernel_function.Hashtbl.add aux_post_table kf vi_post; + Aux_funcs.(add vi_post (Post kf)); + let fun_dec_pre = Cil.emptyFunctionFromVI vi_pre in + let fun_dec_post = Cil.emptyFunctionFromVI vi_post in + (* For a future analysis of function arguments, + we have to update the function's formals. Search + for LBLsformals. *) + Cil.setFunctionTypeMakeFormals + fun_dec_pre (TFun(Cil.voidType, args, varargs,[])); + Cil.setFunctionTypeMakeFormals + fun_dec_post (TFun(voidType,Some arg,false,[])); + (* We will now fill the function with the result + of the automaton's analysis. *) + Globals.Functions.replace_by_definition + (Cil.empty_funspec()) fun_dec_pre loc; + Globals.Functions.replace_by_definition + (Cil.empty_funspec()) fun_dec_post loc; + let kf_pre = Globals.Functions.get vi_pre in + let kf_post = Globals.Functions.get vi_post in + let aux_func_pre, pre_block,pre_locals = mk_pre_fct_block kf_pre kf in + let aux_func_post, post_block,post_locals = + mk_post_fct_block + kf_post kf (Extlib.opt_of_list fun_dec_post.sformals) + in + let vis = new change_formals kf kf_pre in (* Replace original formals *) + fun_dec_pre.slocals <- pre_locals; + fun_dec_pre.sbody <- Visitor.visitFramacBlock vis pre_block; + fun_dec_pre.svar.vdefined <- true; + fun_dec_post.slocals <- post_locals; + fun_dec_post.sbody <- post_block; + fun_dec_post.svar.vdefined <- true; + let aux_funcs = + Cil_datatype.Varinfo.Set.union aux_func_pre aux_func_post + in + let globs = + Cil_datatype.Varinfo.Set.fold + (fun x acc -> + GFunDecl(Cil.empty_funspec(),x,loc) :: acc) aux_funcs + [ GFun(fun_dec_pre,loc); GFun(fun_dec_post,loc)] + in + Cil_datatype.Varinfo.Set.iter (Aux_funcs.add_aux kf) aux_funcs; + fundec.sbody.bstmts <- + Cil.mkStmtOneInstr ~ghost:true + (Call(None,Cil.evar ~loc vi_pre, + List.map (fun x -> Cil.evar ~loc x) + (Kernel_function.get_formals kf), + loc)) + :: fundec.sbody.bstmts; + (* Finally, we update the CFG for the new fundec *) + let keepSwitch = Kernel.KeepSwitch.get() in + Cfg.prepareCFG ~keepSwitch fun_dec_pre; + Cfg.cfgFun fun_dec_pre; + Cfg.prepareCFG ~keepSwitch fun_dec_post; + Cfg.cfgFun fun_dec_post; + globs + method! vglob_aux g = match g with | GFun (fundec,loc) -> - let kf = Option.get self#current_kf in - let vi = Kernel_function.get_vi kf in - let vi_pre = Cil_const.copy_with_new_vid vi in - vi_pre.vname <- Data_for_aorai.get_fresh (vi_pre.vname ^ "_pre_func"); - vi_pre.vdefined <- true; - vi_pre.vghost <- true; - Cil_datatype.Varinfo.Hashtbl.add func_orig_table vi_pre (Pre_func kf); - (* TODO: - - what about protos that have no specified args - (NB: cannot be identified here because of implem of Kernel_function). - - what about varargs? - *) - let (rettype,args,varargs,_) = Cil.splitFunctionTypeVI vi_pre in - Cil.update_var_type vi_pre (TFun(Cil.voidType, args, varargs,[])); - vi_pre.vattr <- []; - - (* in particular get rid of __no_return if set in vi*) - - let arg = - if Cil.isVoidType rettype - then [] - else ["res",rettype,[]] - in - let vi_post = - Cil.makeGlobalVar ~ghost:true - (Data_for_aorai.get_fresh (vi.vname ^ "_post_func")) - (TFun(voidType,Some arg,false,[])) - in - Kernel_function.Hashtbl.add aux_post_table kf vi_post; - Cil_datatype.Varinfo.Hashtbl.add func_orig_table vi_post (Post_func kf); - let fun_dec_pre = Cil.emptyFunctionFromVI vi_pre in - let fun_dec_post = Cil.emptyFunctionFromVI vi_post in - (* For a future analysis of function arguments, - we have to update the function's formals. Search - for LBLsformals. *) - Cil.setFunctionTypeMakeFormals - fun_dec_pre (TFun(Cil.voidType, args, varargs,[])); - Cil.setFunctionTypeMakeFormals - fun_dec_post (TFun(voidType,Some arg,false,[])); - (* We will now fill the function with the result - of the automaton's analysis. *) - Globals.Functions.replace_by_definition - (Cil.empty_funspec()) fun_dec_pre loc; - Globals.Functions.replace_by_definition - (Cil.empty_funspec()) fun_dec_post loc; - let kf_pre = Globals.Functions.get vi_pre in - let kf_post = Globals.Functions.get vi_post in - let aux_func_pre, pre_block,pre_locals = mk_pre_fct_block kf_pre kf in - let aux_func_post, post_block,post_locals = - mk_post_fct_block - kf_post kf (Extlib.opt_of_list fun_dec_post.sformals) - in - fun_dec_pre.slocals <- pre_locals; - fun_dec_pre.sbody <- pre_block; - fun_dec_pre.svar.vdefined <- true; - fun_dec_post.slocals <- post_locals; - fun_dec_post.sbody <- post_block; - fun_dec_post.svar.vdefined <- true; - let aux_funcs = - Cil_datatype.Varinfo.Set.union aux_func_pre aux_func_post - in - let globs = - Cil_datatype.Varinfo.Set.fold - (fun x acc -> - GFunDecl(Cil.empty_funspec(),x,loc) :: acc) aux_funcs - [ GFun(fun_dec_pre,loc); GFun(fun_dec_post,loc)] - in - Cil_datatype.Varinfo.Set.iter (add_aux_bhv kf) aux_funcs; - fundec.sbody.bstmts <- - Cil.mkStmtOneInstr ~ghost:true - (Call(None,Cil.evar ~loc vi_pre, - List.map (fun x -> Cil.evar ~loc x) - (Kernel_function.get_formals kf), - loc)) - :: fundec.sbody.bstmts; - (* Finally, we update the CFG for the new fundec *) - let keepSwitch = Kernel.KeepSwitch.get() in - Cfg.prepareCFG ~keepSwitch fun_dec_pre; - Cfg.cfgFun fun_dec_pre; - Cfg.prepareCFG ~keepSwitch fun_dec_post; - Cfg.cfgFun fun_dec_post; - ChangeDoChildrenPost([g], fun x -> globs @ x) + let kf = Globals.Functions.get fundec.svar in + if Data_for_aorai.isObservableFunction kf then + let globs = self#do_fundec fundec loc in + ChangeDoChildrenPost([g], fun x -> globs @ x) + else + DoChildren | _ -> DoChildren method! vstmt_aux stmt = match stmt.skind with | Return (res,loc) -> let kf = Option.get self#current_kf in - let vi = Kernel_function.get_vi kf in - let current_function = vi.vname in - if not (Data_for_aorai.isIgnoredFunction current_function) then begin + if Data_for_aorai.isObservableFunction kf then begin let args = match res with | None -> [] | Some exp -> [Cil.copy_exp exp] @@ -236,44 +291,10 @@ class visit_adding_code_for_synchronisation = end -(*********************************************************************) -(* update from formals of original C function to one of the auxiliary - function (f_aux or f_pre) -*) -class change_formals old_kf new_kf = - let old_formals = Kernel_function.get_formals old_kf in - let new_formals = Kernel_function.get_formals new_kf in - let formals = List.combine old_formals new_formals in - object - inherit Visitor.frama_c_inplace - method! vlogic_var_use lv = - match lv.lv_origin with - | None -> SkipChildren - | Some vi -> - try - let vi'= List.assq vi formals in - ChangeTo (Cil.cvar_to_lvar vi') - with Not_found -> SkipChildren +(*********************************************************************) - method! vvrbl vi = - try - let vi' = List.assq vi formals in - ChangeTo vi' - with Not_found -> SkipChildren - end -(* update \result to param of f_post when it exists. Must not be called if - f_post has no parameter (original f returns void). *) -class change_result new_kf = - let v = List.hd (Kernel_function.get_formals new_kf) in - object - inherit Visitor.frama_c_inplace - method! vterm_lhost lh = - match lh with - TResult _ -> ChangeTo (TVar (Cil.cvar_to_lvar v)) - | _ -> DoChildren - end let post_treatment_loops = Hashtbl.create 97 @@ -911,9 +932,9 @@ class visit_adding_pre_post_from_buch treatloops = let vi = Kernel_function.get_vi my_kf in let spec = Annotations.funspec my_kf in let loc = Kernel_function.get_location my_kf in - (match kind_of_func vi with - | Pre_func _ | Post_func _ | Aux_func _ -> () - | Not_auto_func -> (* Normal C function *) + (match Aux_funcs.kind vi with + | Aux_funcs.Pre _ | Post _ | Aux _ -> () + | Not_aux_func -> (* Normal C function *) let bhvs = mk_post my_kf in let my_state = Data_for_aorai.get_kf_init_state my_kf in let requires = needs_zero_one_choice my_state in @@ -939,13 +960,13 @@ class visit_adding_pre_post_from_buch treatloops = method! vglob_aux g = match g with - | GFun(f,_) -> + | GFun _ -> let my_kf = Option.get self#current_kf in (* don't use get_spec, as we'd generate default assigns, while we'll fill the spec just below. *) let vi = Kernel_function.get_vi my_kf in - (match kind_of_func vi with - | Pre_func kf -> + (match Aux_funcs.kind vi with + | Aux_funcs.Pre kf -> (* must advance the automaton according to current call. *) let bhvs = mk_pre_fct_spec kf in let vis = new change_formals kf my_kf in @@ -953,9 +974,8 @@ class visit_adding_pre_post_from_buch treatloops = Visitor.visitFramacBehaviors vis bhvs in Annotations.add_behaviors Aorai_option.emitter my_kf bhvs; - f.sbody <- Visitor.visitFramacBlock vis f.sbody; SkipChildren - | Post_func kf -> + | Post kf -> (* must advance the automaton according to return event. *) let (rt, _, _, _) = Cil.splitFunctionTypeVI (Kernel_function.get_vi kf) @@ -975,7 +995,7 @@ class visit_adding_pre_post_from_buch treatloops = in Annotations.add_behaviors Aorai_option.emitter my_kf bhvs; SkipChildren - | Aux_func _ | Not_auto_func -> + | Aux _ | Not_aux_func -> DoChildren (* they are not considered here. *)) | _ -> DoChildren; diff --git a/src/plugins/aorai/bool3.ml b/src/plugins/aorai/bool3.ml index 53d647ddb5927dfc028c28d71338e2c4e4d54ad3..dbf222ad84a962576e41ea8e27365e93e5c9d1b9 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 ceb7ceb07290e8b663643bcfca7ded9866cce352..9b0c76551727a4aa16fd66eaba17e59f87a58b4c 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 c371841e9e536732389f79a4632e83e1f0cc1eb9..33e05cc26d57780232d3f5c84ca529dcff1cb5e8 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-2020 # +# Copyright (C) 2007-2021 # # 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 ec4242b8b794db748713326beae4166d7c5ea4fa..d1593994ece0a17356bb4c6b96ae88912bcf9f22 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) @@ -73,6 +73,21 @@ module Aorai_typed_trans = let mem_project = Datatype.never_any_project end) +module Aorai_automaton = + Datatype.Make( + struct + include Datatype.Serializable_undefined + let name = "Aorai_automaton" + type t = Promelaast.typed_automaton + let structural_descr = Structural_descr.t_abstract + let reprs = [ { states = Aorai_state.reprs; + trans = Aorai_typed_trans.reprs; + metavariables = Datatype.String.Map.empty; + observables = Some Datatype.String.Set.empty; + }] + end + ) + module State_var = State_builder.Hashtbl (Aorai_state.Hashtbl) @@ -177,7 +192,13 @@ let loopInit = "aorai_Loop_Init" (* OK *) (* C variables *) let curState = "aorai_CurStates" (* OK *) -let curStateOld = "aorai_CurStates_old" (* OK *) +let history n = "aorai_StatesHistory_" ^ string_of_int n (* OK *) +let whole_history () = + let rec aux acc n = + if n > 0 then aux (history n :: acc) (n - 1) else acc + in + aux [] (Aorai_option.InstrumentationHistory.get ()) + let curTrans = "aorai_CurTrans" (* OK *) (*let curTransTmp = "aorai_CurTrans_tmp" (* OK *)*) let curOp = "aorai_CurOperation" (* OK *) @@ -206,21 +227,28 @@ let buch_sync = "Aorai_Sync" (* Deprecated ? *) (* ************************************************************************* *) (* Buchi automata as stored after parsing *) -let automata = ref None +module Automaton = + State_builder.Ref + (Datatype.Option(Aorai_automaton)) + (struct + let name = "Data_for_aorai.Automaton" + let dependencies = + [ Aorai_option.Ltl_File.self; Aorai_option.Buchi.self; + Aorai_option.Ya.self ] + let default () = None + end) (* Each transition with a parametrized cross condition (call param access or return value access) has its parametrized part stored in this array. *) let cond_of_parametrizedTransitions = ref (Array.make (1) [[]]) -(* List of variables name observed in the C file *) -let variables_from_c = ref [] -(* List of functions name observed in the C file *) -let functions_from_c = ref [] -(* List of functions call observed in the C file without declaration *) +(* List of functions defined in the C file *) +let defined_functions = ref [] +(* List of functions without declaration *) let ignored_functions = ref [] -(** Return the buchi automata as stored after parsing *) +(** Return the buchi automaton as stored after parsing *) let getAutomata () = - match !automata with + match Automaton.get() with | Some auto -> auto | None -> Aorai_option.fatal "The automaton has not been compiled yet" @@ -229,11 +257,11 @@ let getGraph () = let auto = getAutomata () in auto.states, auto.trans -(** Return the number of transitions of the automata *) +(** Return the number of transitions of the automaton *) let getNumberOfTransitions () = List.length (getAutomata ()).trans -(** Return the number of states of the automata *) +(** Return the number of states of the automaton *) let getNumberOfStates () = List.length (getAutomata ()).states @@ -669,7 +697,7 @@ struct let conditionalConversion = Cabs2cil.logicConditionalConversion let is_loop () = false let find_macro _ = raise Not_found - let find_var ?label:_ ~var:_ = raise Not_found + let find_var ?label:_ _ = raise Not_found let find_enum_tag _ = raise Not_found (*let find_comp_type ~kind:_ _ = raise Not_found*) let find_comp_field info s = @@ -956,7 +984,7 @@ module Reject_state = (struct let name = "Data_for_aorai.Reject_state" let dependencies = - [ Ast.self; Aorai_option.Ltl_File.self; Aorai_option.Buchi.self; + [ Aorai_option.Ltl_File.self; Aorai_option.Buchi.self; Aorai_option.Ya.self] end) @@ -964,6 +992,14 @@ let get_reject_state () = let create () = new_state "aorai_reject" in Reject_state.memo create +let is_reject_state state = + match Reject_state.get_option () with + None -> false + | Some state' -> Aorai_state.equal state state' + +let has_reject_state () = + match Reject_state.get_option () with None -> false | Some _ -> true + let add_if_needed states st = if List.for_all (fun x -> not (Aorai_state.equal x st)) states then st::states @@ -1512,10 +1548,16 @@ let type_cond_auto auto = | _ -> (i+1,{ t with cross = cond; numt = i } :: l)) (0,[]) trans in + let states = + if Aorai_option.Deterministic.get () then + add_if_needed states (get_reject_state()) + else states + in let _, states = List.fold_left (fun (i,l as acc) s -> if + is_reject_state s || List.exists (fun t -> t.start.nums = s.nums || t.stop.nums = s.nums) trans @@ -1543,16 +1585,43 @@ let checkMetavariableCompatibility auto = if has_metavariables && (not deterministic || uses_extended_guards) then Aorai_option.abort "The use of metavariables is incompatible with non-deterministic \ - automata, such as automa using extended transitions." - + automata, such as automata using extended transitions." + +let check_observables auto = + match auto.observables with + | None -> () (* No observable list set, everything is observable *) + | Some set -> + let is_relevant name = + try + let kf = Globals.Functions.find_by_name name in + if not (Kernel_function.is_definition kf) then + Aorai_option.warning + "Function %a is observable by the automaton but is not defined \ + in the C code. It will be ignored in the instrumentation" + Printer.pp_varname (Kernel_function.get_name kf) + with Not_found -> + Aorai_option.abort "Observable %s doesn't match any function" name + in + let rec check = function + | TAnd (c1,c2) | TOr (c1,c2) -> check c1; check c2 + | TNot (c) -> check c + | TRel _ | TTrue | TFalse -> () + | TCall (kf,_) | TReturn kf -> + let name = Kernel_function.get_name kf in + if not (Datatype.String.Set.mem name set) then + Aorai_option.abort "Function %s is not observable" name + in + Datatype.String.Set.iter is_relevant set; + List.iter (fun tr -> check tr.cross) auto.trans (** Stores the buchi automaton and its variables and functions as it is returned by the parsing *) let setAutomata auto = checkMetavariableCompatibility auto; let auto = type_cond_auto auto in - automata:=Some auto; - check_states "typed automata"; + Automaton.set (Some auto); + check_states "typed automaton"; + check_observables auto; if Aorai_option.debug_atleast 1 then Promelaoutput.Typed.output_dot_automata auto "aorai_debug_reduced.dot"; if (Array.length !cond_of_parametrizedTransitions) < @@ -1577,62 +1646,76 @@ let setCData () = let (f_decl,f_def) = Globals.Functions.fold (fun f (lf_decl,lf_def) -> - let name = (Kernel_function.get_name f) in match f.fundec with - | Definition _ -> (lf_decl,name::lf_def) - | Declaration _ -> (name::lf_decl,lf_def)) + | Definition _ -> (lf_decl, f :: lf_def) + | Declaration _ -> (f :: lf_decl, lf_def)) ([],[]) in - functions_from_c:=f_def; - ignored_functions:=f_decl; - variables_from_c:= - Globals.Vars.fold - (fun v _ lv -> - Format.asprintf "%a" Cil_datatype.Varinfo.pretty v :: lv) - [] + defined_functions := f_def; + ignored_functions := f_decl -(** Return the list of all function name observed in the C file, except ignored functions. *) -let getFunctions_from_c () = - (!functions_from_c) - -(** Return the list of all variables name observed in the C file. *) -let getVariables_from_c () = - (!variables_from_c) +(** Return true if and only if the given string fname denotes an ignored function. *) +let isIgnoredFunction kf = + List.exists (Kernel_function.equal kf) !ignored_functions -(** Return the list of names of all ignored functions. A function is ignored if it is used in C file and if its declaration is unavailable. *) -let getIgnoredFunctions () = - (!ignored_functions) +let isDeclaredObservable kf = + let auto = getAutomata () in + let fname = Kernel_function.get_name kf in + match auto.observables with + | None -> true + | Some set -> + Datatype.String.Set.mem fname set -(** Return the list of names of all ignored functions. A function is ignored if it is used in C file and if its declaration is unavailable. *) -let addIgnoredFunction fname = - ignored_functions:=fname::(!ignored_functions) +let isObservableFunction kf = + not (isIgnoredFunction kf) && isDeclaredObservable kf -(** Return true if and only if the given string fname denotes an ignored function. *) -let isIgnoredFunction fname = - List.exists - (fun s -> (String.compare fname s)=0) - (!ignored_functions) +(** Return the list of all function name observed in the C file, except ignored functions. *) +let getObservablesFunctions () = + List.filter isDeclaredObservable !defined_functions -let is_reject_state state = - match Reject_state.get_option () with - None -> false - | Some state' -> Aorai_state.equal state state' +(** Return the list of names of observable but ignored functions. A function is ignored if it is used in C file and if its declaration is unavailable. *) +let getIgnoredFunctions () = + List.filter isDeclaredObservable !ignored_functions (* ************************************************************************* *) (* Table giving the varinfo structure associated to a given variable name *) (* In practice it contains all variables (from promela and globals from C file) and only variables *) -let varinfos = Hashtbl.create 97 -let paraminfos = Hashtbl.create 97 + +module Aux_varinfos = + State_builder.Hashtbl(Datatype.String.Hashtbl)(Cil_datatype.Varinfo) + (struct + let name = "Data_for_aorai.Aux_varinfos" + let dependencies = + [ Ast.self; Aorai_option.Ya.self; Aorai_option.Ltl_File.self; + Aorai_option.To_Buchi.self; Aorai_option.Deterministic.self ] + let size = 13 + end) + +let () = Ast.add_linked_state Aux_varinfos.self + +module StringPair = + Datatype.Pair_with_collections + (Datatype.String)(Datatype.String) + (struct let module_name = "Data_for_aorai.StringPair" end) + +module Paraminfos = + State_builder.Hashtbl(StringPair.Hashtbl)(Cil_datatype.Varinfo) + (struct + let name = "Data_for_aorai.Paraminfos" + let dependencies = + [ Ast.self; Aorai_option.Ya.self; Aorai_option.Ltl_File.self; + Aorai_option.To_Buchi.self; Aorai_option.Deterministic.self ] + let size = 13 + end) (* Add a new variable into the association table name -> varinfo *) -let set_varinfo name vi = - Hashtbl.add varinfos name vi +let set_varinfo = Aux_varinfos.add (* Given a variable name, it returns its associated varinfo. If the variable is not found then an error message is print and an assert false is raised. *) let get_varinfo name = try - Hashtbl.find varinfos name + Aux_varinfos.find name with Not_found -> raise_error ("Variable not declared ("^name^")") let get_logic_var name = @@ -1642,20 +1725,20 @@ let get_logic_var name = Hence, if the variable is not found then None is return. *) let get_varinfo_option name = try - Some(Hashtbl.find varinfos name) + Some(Aux_varinfos.find name) with | Not_found -> None (* Add a new param into the association table (funcname,paramname) -> varinfo *) let set_paraminfo funcname paramname vi = (* Aorai_option.log "Adding %s(...,%s,...) " funcname paramname; *) - Hashtbl.add paraminfos (funcname,paramname) vi + Paraminfos.add (funcname,paramname) vi (* Given a function name and a param name, it returns the varinfo associated to the given param. If the variable is not found then an error message is print and an assert false is raised. *) let get_paraminfo funcname paramname = try - Hashtbl.find paraminfos (funcname,paramname) + Paraminfos.find (funcname,paramname) with Not_found -> raise_error ("Parameter '"^paramname^"' not declared for function '"^funcname^"'.") @@ -1663,13 +1746,13 @@ let get_paraminfo funcname paramname = (* Add a new param into the association table funcname -> varinfo *) let set_returninfo funcname vi = (* Aorai_option.log "Adding return %s(...) " funcname ; *) - Hashtbl.add paraminfos (funcname,"\\return") vi + Paraminfos.add (funcname,"\\return") vi (* Given a function name, it returns the varinfo associated to the given param. If the variable is not found then an error message is print and an assert false is raised. *) let get_returninfo funcname = try - Hashtbl.find paraminfos (funcname,"\\return") + Paraminfos.find (funcname,"\\return") with Not_found -> raise_error ("Return varinfo not declared for function '"^funcname^"'.") @@ -1681,6 +1764,7 @@ type range = *) | Unbounded of int (** only the lower bound is known, there is no upper bound *) + | Unknown (** completely unknown value. *) module Range = Datatype.Make_with_collections (struct @@ -1708,11 +1792,15 @@ module Range = Datatype.Make_with_collections | Bounded _, _ -> 1 | _, Bounded _ -> -1 | Unbounded c1, Unbounded c2 -> Datatype.Int.compare c1 c2 + | Unbounded _, _ -> 1 + | _, Unbounded _ -> -1 + | Unknown, Unknown -> 0 let hash = function | Fixed c1 -> 2 * c1 | Interval(c1,c2) -> 3 * (c1 + c2) | Bounded (c1,c2) -> 5 * (c1 + Cil_datatype.Term.hash c2) | Unbounded c1 -> 7 * c1 + | Unknown -> 11 let copy = function | Fixed c1 -> Fixed (Datatype.Int.copy c1) @@ -1721,6 +1809,7 @@ module Range = Datatype.Make_with_collections | Bounded(c1,c2) -> Bounded(Datatype.Int.copy c1, Cil_datatype.Term.copy c2) | Unbounded c1 -> Unbounded (Datatype.Int.copy c1) + | Unknown -> Unknown let internal_pretty_code _ = Datatype.from_pretty_code let pretty fmt = function | Fixed c1 -> Format.fprintf fmt "%d" c1 @@ -1730,6 +1819,7 @@ module Range = Datatype.Make_with_collections Format.fprintf fmt "@[<2>[%d..@;%a]@]" c1 Cil_datatype.Term.pretty c2 | Unbounded c1 -> Format.fprintf fmt "[%d..]" c1 + | Unknown -> Format.fprintf fmt "[..]" let varname _ = "r" let mem_project = Datatype.never_any_project end) @@ -1805,6 +1895,7 @@ let merge_range loc base r1 r2 = let min = if Datatype.Int.compare min2 min1 < 0 then min2 else min1 in Unbounded min + | Unknown, _ | _, Unknown -> Unknown let tlval lv = Logic_const.term (TLval lv) (Cil.typeOfTermLval lv) @@ -1826,6 +1917,8 @@ let included_range range1 range2 = | Bounded(l1,_), Unbounded l2 -> Datatype.Int.compare l1 l2 <= 0 | Unbounded l1, Unbounded l2 -> Datatype.Int.compare l1 l2 <= 0 | Unbounded _, (Fixed _ | Interval _ | Bounded _) -> false + | _, Unknown -> true + | Unknown, _ -> false let unchanged loc = Cil_datatype.Term.Map.add loc (Fixed 0) Cil_datatype.Term.Map.empty @@ -2086,6 +2179,12 @@ let removeUnusedTransitionsAndStates () = let reached_states = Loop_invariant_state.fold reached reached_states in if Aorai_state.Set.is_empty reached_states then raise Empty_automaton; + let reached_states = + if Aorai_option.Deterministic.get() then + (* keep the rejecting state anyways. *) + Aorai_state.Set.add (get_reject_state()) reached_states + else reached_states + in (* Step 2 : computation of translation tables *) let state_list = List.sort @@ -2118,8 +2217,8 @@ let removeUnusedTransitionsAndStates () = Reject_state.set new_reject with Not_found -> Reject_state.clear ()); (* Step 3 : rewriting stored information *) - automata := Some { auto with states =state_list; trans = trans_list }; - check_states "reduced automata"; + Automaton.set (Some { auto with states =state_list; trans = trans_list }); + check_states "reduced automaton"; let rewrite_state state = let rewrite_set set = diff --git a/src/plugins/aorai/data_for_aorai.mli b/src/plugins/aorai/data_for_aorai.mli index 8c7ed586075255f9c356a763d28debfe3859f17b..43040e122ef946a4b0f6712f6ddfbacf388c76d8 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) @@ -130,8 +130,9 @@ val curOpStatus : string (** Name of curState C generated variable (Table of states that can be synchronized with the program) *) val curState : string -(** Name of curStateOld C generated variable (Last value of curState) *) -val curStateOld : string +(** Name of the history variables (History of previous states) *) +val history : int -> string +val whole_history : unit -> string list (** Name of curTrans C generated variable (Last transitions that can be crossed) *) val curTrans : string @@ -218,20 +219,19 @@ val getNumberOfTransitions : unit -> int (** return the number of states of the automata *) val getNumberOfStates : unit -> int -(** Return the list of all function name observed in the C file. *) -val getFunctions_from_c : unit -> string list +(** Return the list of all function name observed in the C file, except ignored functions. *) +val getObservablesFunctions : unit -> Cil_types.kernel_function list -(** Return the list of all variables name observed in the C file. *) -val getVariables_from_c : unit -> string list - -(** Return the list of names of all ignored functions. A function is ignored if it is used in C file and if its declaration is unavailable. *) -val getIgnoredFunctions : unit -> string list - -(** Return the list of names of all ignored functions. A function is ignored if it is used in C file and if its declaration is unavailable. *) -val addIgnoredFunction : string -> unit +(** Return the list of names of observable but ignored functions. + A function is ignored if it is used in C file and if its declaration + is unavailable. *) +val getIgnoredFunctions : unit -> Cil_types.kernel_function list (** Return true if and only if the given string fname denotes an ignored function. *) -val isIgnoredFunction : string -> bool +val isIgnoredFunction : Cil_types.kernel_function -> bool + +(** Return true if and only if the given function can be observed *) +val isObservableFunction : Cil_types.kernel_function -> bool (** returns the state of given index. @since Nitrogen-20111001 @@ -244,6 +244,12 @@ val getStateName : int -> string sequences. *) val is_reject_state: state -> bool +(** [true] iff a rejecting state already exists. *) +val has_reject_state: unit -> bool + +(** return the rejecting state of the graph, creating it if needed. *) +val get_reject_state: unit -> state + (** returns the transition having the corresponding id. @raise Not_found if this is not the case. *) @@ -301,6 +307,7 @@ type range = (** range bounded by a logic term (depending on program parameter). *) | Unbounded of int (** only the lower bound is known, there is no upper bound *) + | Unknown (** completely unknown relation. *) module Range: Datatype.S_with_collections with type t = range diff --git a/src/plugins/aorai/logic_simplification.ml b/src/plugins/aorai/logic_simplification.ml index 9bf174dd1ae3a3f393116c1cce341f65c56c3a55..e9afa1fc738dff521b8ceee4646ed011d41db448 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 6c58727222ed78367613ef7d5c86fc6c43e1ccff..725be670273c2d43c4ee7367136981ce81452d74 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 348b31fd79fa2dc2dab7e4f22ea6a018914ee5b6..5f6d155c4c5c1778622d4f79486b210e65035fbe 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 95ed246a91cab00bfc181c0696a323d4800346eb..16c5c492c6cbb5dfb4a6303f83fdbe49419b1295 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 004470102931db54cf490ae92bcc1b174e506d54..344b9eb366617625941f32999827fe607b4ea737 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 90d243245ceda0979d26821dd1f65bda6a6a5d68..a217fb37e852c6fdb6ba58b234f5894b0929a7fc 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 7ad9ecf07dc67d42c4eae9526b950399b56e78ae..4d38a3b25d71980b4864c525360651538657b36a 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-2020 */ +/* Copyright (C) 2007-2021 */ /* 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 f66800f735c8306cae6d2473081848337c809c02..d9afc0d49c1dcbe7d464229e7313878727f3fdce 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 fe0bdcfe677bb92ffb947f99580bb7814134e60f..c2f539897fc53abb025862cffc9d21f94a266fb5 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* INRIA (Institut National de Recherche en Informatique et en *) @@ -142,6 +142,7 @@ type ('c,'a) automaton = { states: state list; trans: (('c,'a) trans) list; metavariables: Cil_types.varinfo Datatype.String.Map.t; + observables: Datatype.String.Set.t option; } type parsed_automaton = (guard, action) automaton diff --git a/src/plugins/aorai/promelalexer.mll b/src/plugins/aorai/promelalexer.mll index a870e4d5b603e8b3385c75204a4f5e872b602040..633d018dd49e2df4493dca2f1d0538433a2e1343 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 c04cc3164f4b9f7e8a185f2ebb2336c68aa97083..60a6eccee52b014b09a146a7fcc597f2620d66d3 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 cac471f43abbc85d4e75ee4aae2233a657a517af..c95abd00c50cd1413a029e09991ff67c7be146bc 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 3edf6aabb28b442fcab77c27aa9bd6a55265a5b7..ad8a7ea0e0f399b9d86f5f83268848c95b5d8c41 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 4bcac643722e16f76ec9c72423f3e4f44d030119..a964e81e5a38d346ec05a333e4b491e05b5e7f16 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* INRIA (Institut National de Recherche en Informatique et en */ @@ -77,7 +77,10 @@ promela st::l ) observed_states [] in - { states; trans = $3; metavariables = Datatype.String.Map.empty } + { states; trans = $3; + metavariables = Datatype.String.Map.empty; + observables = None; + } } | PROMELA_NEVER PROMELA_LBRACE states PROMELA_SEMICOLON PROMELA_RBRACE EOF { @@ -91,7 +94,11 @@ promela st::l ) observed_states [] in - { states; trans = $3; metavariables = Datatype.String.Map.empty } } + { states; trans = $3; + metavariables = Datatype.String.Map.empty; + observables = None; + } + } ; states diff --git a/src/plugins/aorai/promelaparser_withexps.mly b/src/plugins/aorai/promelaparser_withexps.mly index bf852a65f3747b7a4c976151a3b593b90fe4da18..1c9c4f710237c378f1516843a71dc2fca1859819 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* INRIA (Institut National de Recherche en Informatique et en */ @@ -88,7 +88,10 @@ promela st::l ) observed_states [] in - { states; trans = $3; metavariables = Datatype.String.Map.empty } + { states; trans = $3; + metavariables = Datatype.String.Map.empty; + observables = None; + } } | PROMELA_NEVER PROMELA_LBRACE states PROMELA_SEMICOLON PROMELA_RBRACE EOF { @@ -102,7 +105,11 @@ promela st::l ) observed_states [] in - { states; trans = $3; metavariables = Datatype.String.Map.empty } } + { states; trans = $3; + metavariables = Datatype.String.Map.empty; + observables = None; + } + } ; states diff --git a/src/plugins/aorai/tests/Aorai_test.ml b/src/plugins/aorai/tests/Aorai_test.ml index 54d04d63939431ae669439b4b29cb5a3c8bc9f32..5a1e9fb9bc0c7402697be6f1d92c3e6ad0155ca9 100644 --- a/src/plugins/aorai/tests/Aorai_test.ml +++ b/src/plugins/aorai/tests/Aorai_test.ml @@ -92,7 +92,9 @@ let extend () = in let chan = open_out tmpfile in let fmt = Format.formatter_of_out_channel chan in - File.pretty_ast ~prj:(Project.from_unique_name "aorai") ~fmt (); + let aorai_prj = Project.from_unique_name "aorai" in + Project.on aorai_prj Kernel.PrintLibc.on (); + File.pretty_ast ~prj:aorai_prj ~fmt (); close_out chan; let selection = State_selection.of_list [ InternalWpShare.self; ProveAuxSpec.self ] @@ -109,6 +111,8 @@ let extend () = if ProveAuxSpec.get () then begin if InternalWpShare.is_set() then Wp.Wp_parameters.Share.set (InternalWpShare.get()); + Wp.Wp_parameters.Split.on(); + Wp.Wp_parameters.SplitMax.set 32; Wp.Wp_parameters.Verbose.set 0; Globals.Functions.iter check_auto_func; end else begin diff --git a/src/plugins/aorai/tests/ltl/goto.c b/src/plugins/aorai/tests/ltl/goto.c index ccd31e28dbe2344aa5c4fee8254898945fcfa29c..8cbd56c0842494483bbbf423b8f28eeb7853a751 100644 --- a/src/plugins/aorai/tests/ltl/goto.c +++ b/src/plugins/aorai/tests/ltl/goto.c @@ -1,5 +1,5 @@ /* run.config* - OPT: -aorai-ltl @PTEST_DIR@/@PTEST_NAME@.ltl -aorai-test 1 -aorai-acceptance -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ + OPT: -aorai-ltl @PTEST_DIR@/@PTEST_NAME@.ltl -aorai-acceptance -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ */ int status=0; diff --git a/src/plugins/aorai/tests/ltl/oracle/goto.res.oracle b/src/plugins/aorai/tests/ltl/oracle/goto.res.oracle index c1554953000b5e332460b05a1a5bb6c832c1829c..e8fddab9facef7d0257db700af4d9007d123051f 100644 --- a/src/plugins/aorai/tests/ltl/oracle/goto.res.oracle +++ b/src/plugins/aorai/tests/ltl/oracle/goto.res.oracle @@ -1,5 +1,4 @@ [kernel] Parsing tests/ltl/goto.c (with preprocessing) -[aorai] Welcome to the Aorai plugin [aorai] tests/ltl/goto.c:28: Warning: Call to opc does not follow automaton's specification. This path is assumed to be dead [kernel] Parsing TMPDIR/aorai_goto_0.i (no preprocessing) @@ -18,8 +17,8 @@ int status = 0; int rr = 1; /*@ global invariant inv: 0 ≤ rr ≤ 5000; */ -/*@ ghost enum aorai_ListOper aorai_CurOperation = op_main; */ -/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus = aorai_Called; */ +/*@ ghost enum aorai_ListOper aorai_CurOperation; */ +/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus; */ /*@ ghost int accept_S2 = 0; */ /*@ ghost int accept_S3 = 0; */ /*@ ghost int accept_S4 = 0; */ @@ -72,6 +71,7 @@ int rr = 1; int accept_S6_tmp; int accept_all_tmp; int accept_init_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_opa; accept_S2_tmp = accept_S2; @@ -145,6 +145,7 @@ int rr = 1; int accept_S6_tmp; int accept_all_tmp; int accept_init_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_opa; accept_S2_tmp = accept_S2; @@ -241,6 +242,7 @@ void opa(void) int accept_S6_tmp; int accept_all_tmp; int accept_init_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_opb; accept_S2_tmp = accept_S2; @@ -314,6 +316,7 @@ void opa(void) int accept_S6_tmp; int accept_all_tmp; int accept_init_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_opb; accept_S2_tmp = accept_S2; @@ -398,6 +401,7 @@ void opb(void) int accept_S6_tmp; int accept_all_tmp; int accept_init_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_opc; accept_S2_tmp = accept_S2; @@ -463,6 +467,7 @@ void opb(void) int accept_S6_tmp; int accept_all_tmp; int accept_init_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_opc; accept_S2_tmp = accept_S2; @@ -567,6 +572,7 @@ void opc(void) int accept_S6_tmp; int accept_all_tmp; int accept_init_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_main; accept_S2_tmp = accept_S2; @@ -640,6 +646,7 @@ void opc(void) int accept_S6_tmp; int accept_all_tmp; int accept_init_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_main; accept_S2_tmp = accept_S2; diff --git a/src/plugins/aorai/tests/ltl/oracle/test_boucle.res.oracle b/src/plugins/aorai/tests/ltl/oracle/test_boucle.res.oracle index af9bc71a2b3a1adf94c0022438693926ffc17f6f..c73da4393f558e64393afa9a6454a8f4abfb7f73 100644 --- a/src/plugins/aorai/tests/ltl/oracle/test_boucle.res.oracle +++ b/src/plugins/aorai/tests/ltl/oracle/test_boucle.res.oracle @@ -1,7 +1,6 @@ [kernel] Parsing tests/ltl/test_boucle.c (with preprocessing) [kernel:typing:implicit-function-declaration] tests/ltl/test_boucle.c:16: Warning: Calling undeclared function call_to_an_undefined_function. Old style K&R code? -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_test_boucle_0.i (no preprocessing) /* Generated by Frama-C */ enum aorai_ListOper { @@ -16,8 +15,8 @@ enum aorai_OpStatusList { }; extern int call_to_an_undefined_function(void); -/*@ ghost enum aorai_ListOper aorai_CurOperation = op_main; */ -/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus = aorai_Called; */ +/*@ ghost enum aorai_ListOper aorai_CurOperation; */ +/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus; */ /*@ ghost int T0_S2 = 0; */ /*@ ghost int T0_init = 1; */ /*@ ghost int accept_S1 = 0; */ @@ -47,13 +46,15 @@ extern int call_to_an_undefined_function(void); int T0_S2_tmp; int T0_init_tmp; int accept_S1_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_a; T0_S2_tmp = T0_S2; T0_init_tmp = T0_init; accept_S1_tmp = accept_S1; - if (T0_S2 == 1 || accept_S1 == 1) accept_S1_tmp = 1; - else accept_S1_tmp = 0; + if (T0_S2 == 1) accept_S1_tmp = 1; + else + if (accept_S1 == 1) accept_S1_tmp = 1; else accept_S1_tmp = 0; T0_init_tmp = 0; T0_S2_tmp = 0; T0_S2 = T0_S2_tmp; @@ -90,6 +91,7 @@ extern int call_to_an_undefined_function(void); int T0_S2_tmp; int T0_init_tmp; int accept_S1_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_a; T0_S2_tmp = T0_S2; @@ -151,6 +153,7 @@ int a(void) int T0_S2_tmp; int T0_init_tmp; int accept_S1_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_b; T0_S2_tmp = T0_S2; @@ -158,7 +161,9 @@ int a(void) accept_S1_tmp = accept_S1; accept_S1_tmp = 0; T0_init_tmp = 0; - if (T0_S2 == 1 || accept_S1 == 1) T0_S2_tmp = 1; else T0_S2_tmp = 0; + if (T0_S2 == 1) T0_S2_tmp = 1; + else + if (accept_S1 == 1) T0_S2_tmp = 1; else T0_S2_tmp = 0; T0_S2 = T0_S2_tmp; T0_init = T0_init_tmp; accept_S1 = accept_S1_tmp; @@ -193,6 +198,7 @@ int a(void) int T0_S2_tmp; int T0_init_tmp; int accept_S1_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_b; T0_S2_tmp = T0_S2; @@ -255,6 +261,7 @@ int b(void) int T0_S2_tmp; int T0_init_tmp; int accept_S1_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_main; T0_S2_tmp = T0_S2; @@ -297,6 +304,7 @@ int b(void) int T0_S2_tmp; int T0_init_tmp; int accept_S1_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_main; T0_S2_tmp = T0_S2; diff --git a/src/plugins/aorai/tests/ltl/oracle/test_boucle1.res.oracle b/src/plugins/aorai/tests/ltl/oracle/test_boucle1.res.oracle index 9da27b6622ebd3fbb5ae7fefb8a0e694d48175d1..380098d2be6df47bfad67f24d8de850dee8dfae4 100644 --- a/src/plugins/aorai/tests/ltl/oracle/test_boucle1.res.oracle +++ b/src/plugins/aorai/tests/ltl/oracle/test_boucle1.res.oracle @@ -1,5 +1,4 @@ [kernel] Parsing tests/ltl/test_boucle1.c (with preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_test_boucle1_0.i (no preprocessing) /* Generated by Frama-C */ enum aorai_ListOper { @@ -17,8 +16,8 @@ int cpt = 3; int status = 0; /*@ global invariant inv_status: 0 ≤ status ≤ 1; */ -/*@ ghost enum aorai_ListOper aorai_CurOperation = op_main; */ -/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus = aorai_Called; */ +/*@ ghost enum aorai_ListOper aorai_CurOperation; */ +/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus; */ /*@ ghost int accept_S1 = 0; */ /*@ ghost int accept_S2 = 0; */ /*@ ghost int accept_S3 = 0; */ @@ -60,6 +59,7 @@ int status = 0; int accept_S3_tmp; int accept_S4_tmp; int accept_init_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_commit_trans; accept_S1_tmp = accept_S1; @@ -118,6 +118,7 @@ int status = 0; int accept_S3_tmp; int accept_S4_tmp; int accept_init_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_commit_trans; accept_S1_tmp = accept_S1; @@ -199,6 +200,7 @@ int commit_trans(void) int accept_S3_tmp; int accept_S4_tmp; int accept_init_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_init_trans; accept_S1_tmp = accept_S1; @@ -263,6 +265,7 @@ int commit_trans(void) int accept_S3_tmp; int accept_S4_tmp; int accept_init_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_init_trans; accept_S1_tmp = accept_S1; @@ -271,10 +274,12 @@ int commit_trans(void) accept_S4_tmp = accept_S4; accept_init_tmp = accept_init; accept_init_tmp = 0; - if (accept_S2 == 1 && status != 0) accept_S4_tmp = 1; + if (accept_S2 == 1) + if (status != 0) accept_S4_tmp = 1; else accept_S4_tmp = 0; else accept_S4_tmp = 0; accept_S3_tmp = 0; - if (accept_S2 == 1 && status == 0) accept_S2_tmp = 1; + if (accept_S2 == 1) + if (status == 0) accept_S2_tmp = 1; else accept_S2_tmp = 0; else accept_S2_tmp = 0; accept_S1_tmp = 0; accept_S1 = accept_S1_tmp; @@ -349,6 +354,7 @@ int init_trans(void) int accept_S3_tmp; int accept_S4_tmp; int accept_init_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_main; accept_S1_tmp = accept_S1; @@ -417,6 +423,7 @@ int init_trans(void) int accept_S3_tmp; int accept_S4_tmp; int accept_init_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_main; accept_S1_tmp = accept_S1; diff --git a/src/plugins/aorai/tests/ltl/oracle/test_boucle2.res.oracle b/src/plugins/aorai/tests/ltl/oracle/test_boucle2.res.oracle index 3b6f510bb856cc315fcedd97a9d0796d7bbf4d9a..53bd6b3751c7e1c995c8b53d2f12fa3a9776191e 100644 --- a/src/plugins/aorai/tests/ltl/oracle/test_boucle2.res.oracle +++ b/src/plugins/aorai/tests/ltl/oracle/test_boucle2.res.oracle @@ -1,5 +1,4 @@ [kernel] Parsing tests/ltl/test_boucle2.c (with preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_test_boucle2_0.i (no preprocessing) /* Generated by Frama-C */ enum aorai_ListOper { @@ -15,8 +14,8 @@ int status = 0; int rr = 1; /*@ global invariant inv: 0 ≤ rr ≤ 50; */ -/*@ ghost enum aorai_ListOper aorai_CurOperation = op_main; */ -/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus = aorai_Called; */ +/*@ ghost enum aorai_ListOper aorai_CurOperation; */ +/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus; */ /*@ ghost int T0_S2 = 0; */ /*@ ghost int T0_init = 1; */ /*@ ghost int accept_S3 = 0; */ @@ -63,6 +62,7 @@ int rr = 1; int accept_S4_tmp; int accept_S5_tmp; int accept_all_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_opa; T0_S2_tmp = T0_S2; @@ -133,6 +133,7 @@ int rr = 1; int accept_S4_tmp; int accept_S5_tmp; int accept_all_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_opa; T0_S2_tmp = T0_S2; @@ -144,7 +145,9 @@ int rr = 1; accept_all_tmp = 0; accept_S5_tmp = 0; accept_S4_tmp = 0; - if (T0_S2 == 1 && rr == 51) accept_S3_tmp = 1; else accept_S3_tmp = 0; + if (T0_S2 == 1) + if (rr == 51) accept_S3_tmp = 1; else accept_S3_tmp = 0; + else accept_S3_tmp = 0; T0_init_tmp = 0; if (T0_S2 == 1) T0_S2_tmp = 1; else T0_S2_tmp = 0; T0_S2 = T0_S2_tmp; @@ -223,6 +226,7 @@ void opa(void) int accept_S4_tmp; int accept_S5_tmp; int accept_all_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_opb; T0_S2_tmp = T0_S2; @@ -288,6 +292,7 @@ void opa(void) int accept_S4_tmp; int accept_S5_tmp; int accept_all_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_opb; T0_S2_tmp = T0_S2; @@ -371,6 +376,7 @@ void opb(void) int accept_S4_tmp; int accept_S5_tmp; int accept_all_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_main; T0_S2_tmp = T0_S2; @@ -436,6 +442,7 @@ void opb(void) int accept_S4_tmp; int accept_S5_tmp; int accept_all_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_main; T0_S2_tmp = T0_S2; diff --git a/src/plugins/aorai/tests/ltl/oracle/test_boucle3.res.oracle b/src/plugins/aorai/tests/ltl/oracle/test_boucle3.res.oracle index 0e2861364d6f1efef4a6191a0cd4ac2a817c7b23..3a2a6c4f72338186ea42486373370530ef384072 100644 --- a/src/plugins/aorai/tests/ltl/oracle/test_boucle3.res.oracle +++ b/src/plugins/aorai/tests/ltl/oracle/test_boucle3.res.oracle @@ -1,5 +1,4 @@ [kernel] Parsing tests/ltl/test_boucle3.c (with preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_test_boucle3_0.i (no preprocessing) /* Generated by Frama-C */ enum aorai_ListOper { @@ -15,8 +14,8 @@ int status = 0; int rr = 1; /*@ global invariant inv: 0 ≤ rr ≤ 50; */ -/*@ ghost enum aorai_ListOper aorai_CurOperation = op_main; */ -/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus = aorai_Called; */ +/*@ ghost enum aorai_ListOper aorai_CurOperation; */ +/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus; */ /*@ ghost int T0_S4 = 0; */ /*@ ghost int T0_init = 1; */ /*@ ghost int T1_S2 = 0; */ @@ -63,6 +62,7 @@ int rr = 1; int T1_S2_tmp; int accept_S3_tmp; int accept_all_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_opa; T0_S4_tmp = T0_S4; @@ -126,6 +126,7 @@ int rr = 1; int T1_S2_tmp; int accept_S3_tmp; int accept_all_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_opa; T0_S4_tmp = T0_S4; @@ -228,6 +229,7 @@ void opa(void) int T1_S2_tmp; int accept_S3_tmp; int accept_all_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_opb; T0_S4_tmp = T0_S4; @@ -236,7 +238,9 @@ void opa(void) accept_S3_tmp = accept_S3; accept_all_tmp = accept_all; accept_all_tmp = 0; - if (T1_S2 == 1 && rr == 51) accept_S3_tmp = 1; else accept_S3_tmp = 0; + if (T1_S2 == 1) + if (rr == 51) accept_S3_tmp = 1; else accept_S3_tmp = 0; + else accept_S3_tmp = 0; T1_S2_tmp = 0; T0_init_tmp = 0; T0_S4_tmp = 0; @@ -286,6 +290,7 @@ void opa(void) int T1_S2_tmp; int accept_S3_tmp; int accept_all_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_opb; T0_S4_tmp = T0_S4; @@ -363,6 +368,7 @@ void opb(void) int T1_S2_tmp; int accept_S3_tmp; int accept_all_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_main; T0_S4_tmp = T0_S4; @@ -426,6 +432,7 @@ void opb(void) int T1_S2_tmp; int accept_S3_tmp; int accept_all_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_main; T0_S4_tmp = T0_S4; diff --git a/src/plugins/aorai/tests/ltl/oracle/test_factorial.res.oracle b/src/plugins/aorai/tests/ltl/oracle/test_factorial.res.oracle index 76309462d15d0678365eb0f899d7dc1730f6ad87..12e9c8f60dc291511217340bc30fafb366f2f3fb 100644 --- a/src/plugins/aorai/tests/ltl/oracle/test_factorial.res.oracle +++ b/src/plugins/aorai/tests/ltl/oracle/test_factorial.res.oracle @@ -1,5 +1,4 @@ [kernel] Parsing tests/ltl/test_factorial.c (with preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_test_factorial_0.i (no preprocessing) /* Generated by Frama-C */ enum aorai_ListOper { @@ -11,8 +10,8 @@ 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 enum aorai_ListOper aorai_CurOperation; */ +/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus; */ /*@ ghost int accept_S1 = 0; */ /*@ ghost int accept_S2 = 0; */ /*@ ghost int accept_init = 1; */ @@ -42,6 +41,7 @@ enum aorai_OpStatusList { int accept_S1_tmp; int accept_S2_tmp; int accept_init_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_decode_int; accept_S1_tmp = accept_S1; @@ -89,6 +89,7 @@ enum aorai_OpStatusList { int accept_S1_tmp; int accept_S2_tmp; int accept_init_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_decode_int; accept_S1_tmp = accept_S1; @@ -211,14 +212,16 @@ int decode_int(char *s) int accept_S1_tmp; int accept_S2_tmp; int accept_init_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_factorial; accept_S1_tmp = accept_S1; accept_S2_tmp = accept_S2; accept_init_tmp = accept_init; accept_init_tmp = 0; - if (accept_S1 == 1 || accept_S2 == 1) accept_S2_tmp = 1; - else accept_S2_tmp = 0; + if (accept_S1 == 1) accept_S2_tmp = 1; + else + if (accept_S2 == 1) accept_S2_tmp = 1; else accept_S2_tmp = 0; accept_S1_tmp = 0; accept_S1 = accept_S1_tmp; accept_S2 = accept_S2_tmp; @@ -259,16 +262,19 @@ int decode_int(char *s) int accept_S1_tmp; int accept_S2_tmp; int accept_init_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_factorial; accept_S1_tmp = accept_S1; accept_S2_tmp = accept_S2; accept_init_tmp = accept_init; accept_init_tmp = 0; - if (accept_S1 == 1 || accept_S2 == 1) accept_S2_tmp = 1; - else accept_S2_tmp = 0; - if (accept_S1 == 1 || accept_S2 == 1) accept_S1_tmp = 1; - else accept_S1_tmp = 0; + if (accept_S1 == 1) accept_S2_tmp = 1; + else + if (accept_S2 == 1) accept_S2_tmp = 1; else accept_S2_tmp = 0; + if (accept_S1 == 1) accept_S1_tmp = 1; + else + if (accept_S2 == 1) accept_S1_tmp = 1; else accept_S1_tmp = 0; accept_S1 = accept_S1_tmp; accept_S2 = accept_S2_tmp; accept_init = accept_init_tmp; @@ -330,6 +336,7 @@ int factorial(int value) int accept_S1_tmp; int accept_S2_tmp; int accept_init_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_main; accept_S1_tmp = accept_S1; @@ -377,6 +384,7 @@ int factorial(int value) int accept_S1_tmp; int accept_S2_tmp; int accept_init_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_main; accept_S1_tmp = accept_S1; diff --git a/src/plugins/aorai/tests/ltl/oracle/test_recursion1.res.oracle b/src/plugins/aorai/tests/ltl/oracle/test_recursion1.res.oracle index c3757b98233f81226e3bf18a2a4fdf0ba0e6aba9..a377f6f727cf1145d02b2f0e5277e23d68f5c293 100644 --- a/src/plugins/aorai/tests/ltl/oracle/test_recursion1.res.oracle +++ b/src/plugins/aorai/tests/ltl/oracle/test_recursion1.res.oracle @@ -5,7 +5,6 @@ parsing obsolete ACSL construct '\valid_range(addr,min,max)'. '\valid(addr+(min..max))' should be used instead. [kernel] tests/ltl/test_recursion1.c:54: Warning: parsing obsolete ACSL construct '\valid_range(addr,min,max)'. '\valid(addr+(min..max))' should be used instead. -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_test_recursion1_0.i (no preprocessing) /* Generated by Frama-C */ enum aorai_ListOper { @@ -45,8 +44,8 @@ axiomatic string_len { predicate valid_string{L}(char *s) = \valid(s) ∧ \valid(s + (0 .. string_len(s))); */ -/*@ ghost enum aorai_ListOper aorai_CurOperation = op_main; */ -/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus = aorai_Called; */ +/*@ ghost enum aorai_ListOper aorai_CurOperation; */ +/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus; */ /*@ ghost int T0_S2 = 0; */ /*@ ghost int T0_init = 1; */ /*@ ghost int accept_S1 = 0; */ @@ -76,6 +75,7 @@ predicate valid_string{L}(char *s) = int T0_S2_tmp; int T0_init_tmp; int accept_S1_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_countOne; T0_S2_tmp = T0_S2; @@ -118,6 +118,7 @@ predicate valid_string{L}(char *s) = int T0_S2_tmp; int T0_init_tmp; int accept_S1_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_countOne; T0_S2_tmp = T0_S2; @@ -189,6 +190,7 @@ int countOne(char *argv) int T0_S2_tmp; int T0_init_tmp; int accept_S1_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_count; T0_S2_tmp = T0_S2; @@ -231,6 +233,7 @@ int countOne(char *argv) int T0_S2_tmp; int T0_init_tmp; int accept_S1_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_count; T0_S2_tmp = T0_S2; @@ -296,6 +299,7 @@ int count(int argc, char **argv) int T0_S2_tmp; int T0_init_tmp; int accept_S1_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_main; T0_S2_tmp = T0_S2; @@ -343,6 +347,7 @@ int count(int argc, char **argv) int T0_S2_tmp; int T0_init_tmp; int accept_S1_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_main; T0_S2_tmp = T0_S2; diff --git a/src/plugins/aorai/tests/ltl/oracle/test_recursion2.0.res.oracle b/src/plugins/aorai/tests/ltl/oracle/test_recursion2.0.res.oracle index fd43837e998528a1c7cfa61c0424d06e0c3d4508..472c3f9634c29c43ec8273961105b4c878899557 100644 --- a/src/plugins/aorai/tests/ltl/oracle/test_recursion2.0.res.oracle +++ b/src/plugins/aorai/tests/ltl/oracle/test_recursion2.0.res.oracle @@ -1,5 +1,4 @@ [kernel] Parsing tests/ltl/test_recursion2.c (with preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_test_recursion2_0.i (no preprocessing) /* Generated by Frama-C */ enum aorai_ListOper { @@ -60,8 +59,8 @@ axiomatic sum_tab { } */ int global_argc = 0; -/*@ ghost enum aorai_ListOper aorai_CurOperation = op_main; */ -/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus = aorai_Called; */ +/*@ ghost enum aorai_ListOper aorai_CurOperation; */ +/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus; */ /*@ ghost int S1 = 0; */ /*@ ghost int T0_init = 1; */ /*@ ghost int T1 = 0; */ @@ -97,6 +96,7 @@ int global_argc = 0; int T0_init_tmp; int T1_tmp; int accept_T2_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_count; S1_tmp = S1; @@ -106,7 +106,11 @@ int global_argc = 0; accept_T2_tmp = 0; T1_tmp = 0; T0_init_tmp = 0; - if (S1 == 1 || T1 == 1 && global_argc > 0) S1_tmp = 1; else S1_tmp = 0; + if (S1 == 1) S1_tmp = 1; + else + if (T1 == 1) + if (global_argc > 0) S1_tmp = 1; else S1_tmp = 0; + else S1_tmp = 0; S1 = S1_tmp; T0_init = T0_init_tmp; T1 = T1_tmp; @@ -146,6 +150,7 @@ int global_argc = 0; int T0_init_tmp; int T1_tmp; int accept_T2_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_count; S1_tmp = S1; @@ -223,6 +228,7 @@ int count(char *argv) int T0_init_tmp; int T1_tmp; int accept_T2_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_sumOne; S1_tmp = S1; @@ -272,6 +278,7 @@ int count(char *argv) int T0_init_tmp; int T1_tmp; int accept_T2_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_sumOne; S1_tmp = S1; @@ -355,6 +362,7 @@ int sumOne(char *t, int length) int T0_init_tmp; int T1_tmp; int accept_T2_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_main; S1_tmp = S1; @@ -409,6 +417,7 @@ int sumOne(char *t, int length) int T0_init_tmp; int T1_tmp; int accept_T2_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_main; S1_tmp = S1; diff --git a/src/plugins/aorai/tests/ltl/oracle/test_recursion2.1.res.oracle b/src/plugins/aorai/tests/ltl/oracle/test_recursion2.1.res.oracle index a40a3eae30459dfa081154ccd2b0eed95761f1b8..e2146d41412e9144e1265cbb91f6f41e68582095 100644 --- a/src/plugins/aorai/tests/ltl/oracle/test_recursion2.1.res.oracle +++ b/src/plugins/aorai/tests/ltl/oracle/test_recursion2.1.res.oracle @@ -1,5 +1,4 @@ [kernel] Parsing tests/ltl/test_recursion2.c (with preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_test_recursion2_1.i (no preprocessing) /* Generated by Frama-C */ enum aorai_ListOper { @@ -60,8 +59,8 @@ axiomatic sum_tab { } */ int global_argc = 0; -/*@ ghost enum aorai_ListOper aorai_CurOperation = op_main; */ -/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus = aorai_Called; */ +/*@ ghost enum aorai_ListOper aorai_CurOperation; */ +/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus; */ /*@ ghost int S1 = 0; */ /*@ ghost int T0_init = 1; */ /*@ ghost int T1 = 0; */ @@ -97,6 +96,7 @@ int global_argc = 0; int T0_init_tmp; int T1_tmp; int accept_T2_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_count; S1_tmp = S1; @@ -106,7 +106,11 @@ int global_argc = 0; accept_T2_tmp = 0; T1_tmp = 0; T0_init_tmp = 0; - if (S1 == 1 || T1 == 1 && global_argc > 0) S1_tmp = 1; else S1_tmp = 0; + if (S1 == 1) S1_tmp = 1; + else + if (T1 == 1) + if (global_argc > 0) S1_tmp = 1; else S1_tmp = 0; + else S1_tmp = 0; S1 = S1_tmp; T0_init = T0_init_tmp; T1 = T1_tmp; @@ -146,6 +150,7 @@ int global_argc = 0; int T0_init_tmp; int T1_tmp; int accept_T2_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_count; S1_tmp = S1; @@ -223,6 +228,7 @@ int count(char *argv) int T0_init_tmp; int T1_tmp; int accept_T2_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_sumOne; S1_tmp = S1; @@ -272,6 +278,7 @@ int count(char *argv) int T0_init_tmp; int T1_tmp; int accept_T2_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_sumOne; S1_tmp = S1; @@ -355,6 +362,7 @@ int sumOne(char *t, int length) int T0_init_tmp; int T1_tmp; int accept_T2_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_main; S1_tmp = S1; @@ -409,13 +417,16 @@ int sumOne(char *t, int length) int T0_init_tmp; int T1_tmp; int accept_T2_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_main; S1_tmp = S1; T0_init_tmp = T0_init; T1_tmp = T1; accept_T2_tmp = accept_T2; - if (T1 == 1 && res == 1) accept_T2_tmp = 1; else accept_T2_tmp = 0; + if (T1 == 1) + if (res == 1) accept_T2_tmp = 1; else accept_T2_tmp = 0; + else accept_T2_tmp = 0; if (T1 == 1) T1_tmp = 1; else T1_tmp = 0; T0_init_tmp = 0; S1_tmp = 0; diff --git a/src/plugins/aorai/tests/ltl/oracle/test_switch2.res.oracle b/src/plugins/aorai/tests/ltl/oracle/test_switch2.res.oracle index 2ceecc16fc151c2ddca917d597dc7114a5a58dd8..88e19cf5f590edfaa350bdeef336969f7cf3149b 100644 --- a/src/plugins/aorai/tests/ltl/oracle/test_switch2.res.oracle +++ b/src/plugins/aorai/tests/ltl/oracle/test_switch2.res.oracle @@ -1,5 +1,4 @@ [kernel] Parsing tests/ltl/test_switch2.c (with preprocessing) -[aorai] Welcome to the Aorai plugin [aorai] tests/ltl/test_switch2.c:34: Warning: Call to opc not conforming to automaton (post-cond). Assuming it is on a dead path [aorai] tests/ltl/test_switch2.c:23: Warning: @@ -20,8 +19,8 @@ int status = 0; int rr = 1; /*@ global invariant inv: 0 ≤ rr ≤ 50; */ -/*@ ghost enum aorai_ListOper aorai_CurOperation = op_main; */ -/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus = aorai_Called; */ +/*@ ghost enum aorai_ListOper aorai_CurOperation; */ +/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus; */ /*@ ghost int accept_S2 = 0; */ /*@ ghost int accept_S3 = 0; */ /*@ ghost int accept_S4 = 0; */ @@ -74,6 +73,7 @@ int rr = 1; int accept_S6_tmp; int accept_all_tmp; int accept_init_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_opa; accept_S2_tmp = accept_S2; @@ -147,6 +147,7 @@ int rr = 1; int accept_S6_tmp; int accept_all_tmp; int accept_init_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_opa; accept_S2_tmp = accept_S2; @@ -243,6 +244,7 @@ void opa(void) int accept_S6_tmp; int accept_all_tmp; int accept_init_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_opb; accept_S2_tmp = accept_S2; @@ -316,6 +318,7 @@ void opa(void) int accept_S6_tmp; int accept_all_tmp; int accept_init_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_opb; accept_S2_tmp = accept_S2; @@ -400,6 +403,7 @@ void opb(void) int accept_S6_tmp; int accept_all_tmp; int accept_init_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_opc; accept_S2_tmp = accept_S2; @@ -465,6 +469,7 @@ void opb(void) int accept_S6_tmp; int accept_all_tmp; int accept_init_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_opc; accept_S2_tmp = accept_S2; @@ -569,6 +574,7 @@ void opc(void) int accept_S6_tmp; int accept_all_tmp; int accept_init_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_main; accept_S2_tmp = accept_S2; @@ -642,6 +648,7 @@ void opc(void) int accept_S6_tmp; int accept_all_tmp; int accept_init_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_main; accept_S2_tmp = accept_S2; diff --git a/src/plugins/aorai/tests/ltl/oracle/test_switch3.res.oracle b/src/plugins/aorai/tests/ltl/oracle/test_switch3.res.oracle index d81509eb53661bace2a79e5e2babdface3e95275..5d44a348df90c22551cf1d62388fede7e482438b 100644 --- a/src/plugins/aorai/tests/ltl/oracle/test_switch3.res.oracle +++ b/src/plugins/aorai/tests/ltl/oracle/test_switch3.res.oracle @@ -1,5 +1,4 @@ [kernel] Parsing tests/ltl/test_switch3.c (with preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_test_switch3_0.i (no preprocessing) /* Generated by Frama-C */ enum aorai_ListOper { @@ -11,8 +10,8 @@ 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 enum aorai_ListOper aorai_CurOperation; */ +/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus; */ /*@ ghost int T0_S2 = 0; */ /*@ ghost int T0_init = 1; */ /*@ ghost int accept_S1 = 0; */ @@ -49,6 +48,7 @@ enum aorai_OpStatusList { int T0_init_tmp; int accept_S1_tmp; int accept_S2_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_countOne; T0_S2_tmp = T0_S2; @@ -58,7 +58,9 @@ enum aorai_OpStatusList { accept_S2_tmp = 0; accept_S1_tmp = 0; T0_init_tmp = 0; - if (T0_S2 == 1 || accept_S2 == 1) T0_S2_tmp = 1; else T0_S2_tmp = 0; + if (T0_S2 == 1) T0_S2_tmp = 1; + else + if (accept_S2 == 1) T0_S2_tmp = 1; else T0_S2_tmp = 0; T0_S2 = T0_S2_tmp; T0_init = T0_init_tmp; accept_S1 = accept_S1_tmp; @@ -99,6 +101,7 @@ enum aorai_OpStatusList { int T0_init_tmp; int accept_S1_tmp; int accept_S2_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_countOne; T0_S2_tmp = T0_S2; @@ -180,6 +183,7 @@ int countOne(char *argv) int T0_init_tmp; int accept_S1_tmp; int accept_S2_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_count; T0_S2_tmp = T0_S2; @@ -241,16 +245,21 @@ int countOne(char *argv) int T0_init_tmp; int accept_S1_tmp; int accept_S2_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_count; T0_S2_tmp = T0_S2; T0_init_tmp = T0_init; accept_S1_tmp = accept_S1; accept_S2_tmp = accept_S2; - if (T0_S2 == 1 || accept_S2 == 1) accept_S2_tmp = 1; - else accept_S2_tmp = 0; - if ((T0_S2 == 1 || accept_S1 == 1) || accept_S2 == 1) accept_S1_tmp = 1; - else accept_S1_tmp = 0; + if (T0_S2 == 1) accept_S2_tmp = 1; + else + if (accept_S2 == 1) accept_S2_tmp = 1; else accept_S2_tmp = 0; + if (T0_S2 == 1) accept_S1_tmp = 1; + else + if (accept_S1 == 1) accept_S1_tmp = 1; + else + if (accept_S2 == 1) accept_S1_tmp = 1; else accept_S1_tmp = 0; T0_init_tmp = 0; if (accept_S1 == 1) T0_S2_tmp = 1; else T0_S2_tmp = 0; T0_S2 = T0_S2_tmp; @@ -329,6 +338,7 @@ int count(int argc, char **argv) int T0_init_tmp; int accept_S1_tmp; int accept_S2_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_main; T0_S2_tmp = T0_S2; @@ -384,6 +394,7 @@ int count(int argc, char **argv) int T0_init_tmp; int accept_S1_tmp; int accept_S2_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_main; T0_S2_tmp = T0_S2; diff --git a/src/plugins/aorai/tests/ltl/oracle/test_switch3_et_recursion.res.oracle b/src/plugins/aorai/tests/ltl/oracle/test_switch3_et_recursion.res.oracle index e5154fb858165466a56370e5d91986cf92384539..94652a4ad7343682dfdb2329d514d27232c24ff6 100644 --- a/src/plugins/aorai/tests/ltl/oracle/test_switch3_et_recursion.res.oracle +++ b/src/plugins/aorai/tests/ltl/oracle/test_switch3_et_recursion.res.oracle @@ -1,5 +1,4 @@ [kernel] Parsing tests/ltl/test_switch3_et_recursion.c (with preprocessing) -[aorai] Welcome to the Aorai plugin [aorai] tests/ltl/test_switch3_et_recursion.c:26: Warning: Call to countOne does not follow automaton's specification. This path is assumed to be dead [kernel] Parsing TMPDIR/aorai_test_switch3_et_recursion_0.i (no preprocessing) @@ -13,8 +12,8 @@ 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 enum aorai_ListOper aorai_CurOperation; */ +/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus; */ /*@ ghost int T0_S2 = 0; */ /*@ ghost int T0_init = 1; */ /*@ ghost int accept_S1 = 0; */ @@ -44,6 +43,7 @@ enum aorai_OpStatusList { int T0_S2_tmp; int T0_init_tmp; int accept_S1_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_countOne; T0_S2_tmp = T0_S2; @@ -81,6 +81,7 @@ enum aorai_OpStatusList { int T0_S2_tmp; int T0_init_tmp; int accept_S1_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_countOne; T0_S2_tmp = T0_S2; @@ -149,6 +150,7 @@ int countOne(char *argv) int T0_S2_tmp; int T0_init_tmp; int accept_S1_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_count; T0_S2_tmp = T0_S2; @@ -191,6 +193,7 @@ int countOne(char *argv) int T0_S2_tmp; int T0_init_tmp; int accept_S1_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_count; T0_S2_tmp = T0_S2; @@ -258,6 +261,7 @@ int count(int argc, char **argv) int T0_S2_tmp; int T0_init_tmp; int accept_S1_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_main; T0_S2_tmp = T0_S2; @@ -305,6 +309,7 @@ int count(int argc, char **argv) int T0_S2_tmp; int T0_init_tmp; int accept_S1_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_main; T0_S2_tmp = T0_S2; diff --git a/src/plugins/aorai/tests/ltl/oracle/test_switch3_if.res.oracle b/src/plugins/aorai/tests/ltl/oracle/test_switch3_if.res.oracle index 5cc019fcad43e0cfacafa6eb123b8055daf1dda4..64fcb6cad31a3fd1d0edcfd1e41dc6472e8e270e 100644 --- a/src/plugins/aorai/tests/ltl/oracle/test_switch3_if.res.oracle +++ b/src/plugins/aorai/tests/ltl/oracle/test_switch3_if.res.oracle @@ -1,5 +1,4 @@ [kernel] Parsing tests/ltl/test_switch3_if.c (with preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_test_switch3_if_0.i (no preprocessing) /* Generated by Frama-C */ enum aorai_ListOper { @@ -11,8 +10,8 @@ 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 enum aorai_ListOper aorai_CurOperation; */ +/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus; */ /*@ ghost int T0_S2 = 0; */ /*@ ghost int T0_init = 1; */ /*@ ghost int accept_S1 = 0; */ @@ -49,6 +48,7 @@ enum aorai_OpStatusList { int T0_init_tmp; int accept_S1_tmp; int accept_S2_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_countOne; T0_S2_tmp = T0_S2; @@ -58,7 +58,9 @@ enum aorai_OpStatusList { accept_S2_tmp = 0; accept_S1_tmp = 0; T0_init_tmp = 0; - if (T0_S2 == 1 || accept_S2 == 1) T0_S2_tmp = 1; else T0_S2_tmp = 0; + if (T0_S2 == 1) T0_S2_tmp = 1; + else + if (accept_S2 == 1) T0_S2_tmp = 1; else T0_S2_tmp = 0; T0_S2 = T0_S2_tmp; T0_init = T0_init_tmp; accept_S1 = accept_S1_tmp; @@ -99,6 +101,7 @@ enum aorai_OpStatusList { int T0_init_tmp; int accept_S1_tmp; int accept_S2_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_countOne; T0_S2_tmp = T0_S2; @@ -178,6 +181,7 @@ int countOne(char *argv) int T0_init_tmp; int accept_S1_tmp; int accept_S2_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_count; T0_S2_tmp = T0_S2; @@ -239,16 +243,21 @@ int countOne(char *argv) int T0_init_tmp; int accept_S1_tmp; int accept_S2_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_count; T0_S2_tmp = T0_S2; T0_init_tmp = T0_init; accept_S1_tmp = accept_S1; accept_S2_tmp = accept_S2; - if (T0_S2 == 1 || accept_S2 == 1) accept_S2_tmp = 1; - else accept_S2_tmp = 0; - if ((T0_S2 == 1 || accept_S1 == 1) || accept_S2 == 1) accept_S1_tmp = 1; - else accept_S1_tmp = 0; + if (T0_S2 == 1) accept_S2_tmp = 1; + else + if (accept_S2 == 1) accept_S2_tmp = 1; else accept_S2_tmp = 0; + if (T0_S2 == 1) accept_S1_tmp = 1; + else + if (accept_S1 == 1) accept_S1_tmp = 1; + else + if (accept_S2 == 1) accept_S1_tmp = 1; else accept_S1_tmp = 0; T0_init_tmp = 0; if (accept_S1 == 1) T0_S2_tmp = 1; else T0_S2_tmp = 0; T0_S2 = T0_S2_tmp; @@ -327,6 +336,7 @@ int count(int argc, char **argv) int T0_init_tmp; int accept_S1_tmp; int accept_S2_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_main; T0_S2_tmp = T0_S2; @@ -382,6 +392,7 @@ int count(int argc, char **argv) int T0_init_tmp; int accept_S1_tmp; int accept_S2_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_main; T0_S2_tmp = T0_S2; diff --git a/src/plugins/aorai/tests/ltl/oracle/test_switch3_return.res.oracle b/src/plugins/aorai/tests/ltl/oracle/test_switch3_return.res.oracle index 0fb781bb7040975d8e51beef6328114ceb34a501..e3db4bca9bbca6c70ccb238ce9743beef46f94f4 100644 --- a/src/plugins/aorai/tests/ltl/oracle/test_switch3_return.res.oracle +++ b/src/plugins/aorai/tests/ltl/oracle/test_switch3_return.res.oracle @@ -1,5 +1,4 @@ [kernel] Parsing tests/ltl/test_switch3_return.c (with preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_test_switch3_return_0.i (no preprocessing) /* Generated by Frama-C */ enum aorai_ListOper { @@ -11,8 +10,8 @@ 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 enum aorai_ListOper aorai_CurOperation; */ +/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus; */ /*@ ghost int T0_S2 = 0; */ /*@ ghost int T0_init = 1; */ /*@ ghost int accept_S1 = 0; */ @@ -49,6 +48,7 @@ enum aorai_OpStatusList { int T0_init_tmp; int accept_S1_tmp; int accept_S2_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_countOne; T0_S2_tmp = T0_S2; @@ -58,7 +58,9 @@ enum aorai_OpStatusList { accept_S2_tmp = 0; accept_S1_tmp = 0; T0_init_tmp = 0; - if (T0_S2 == 1 || accept_S2 == 1) T0_S2_tmp = 1; else T0_S2_tmp = 0; + if (T0_S2 == 1) T0_S2_tmp = 1; + else + if (accept_S2 == 1) T0_S2_tmp = 1; else T0_S2_tmp = 0; T0_S2 = T0_S2_tmp; T0_init = T0_init_tmp; accept_S1 = accept_S1_tmp; @@ -99,6 +101,7 @@ enum aorai_OpStatusList { int T0_init_tmp; int accept_S1_tmp; int accept_S2_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_countOne; T0_S2_tmp = T0_S2; @@ -185,6 +188,7 @@ int countOne(char *argv) int T0_init_tmp; int accept_S1_tmp; int accept_S2_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_count; T0_S2_tmp = T0_S2; @@ -246,16 +250,21 @@ int countOne(char *argv) int T0_init_tmp; int accept_S1_tmp; int accept_S2_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_count; T0_S2_tmp = T0_S2; T0_init_tmp = T0_init; accept_S1_tmp = accept_S1; accept_S2_tmp = accept_S2; - if (T0_S2 == 1 || accept_S2 == 1) accept_S2_tmp = 1; - else accept_S2_tmp = 0; - if ((T0_S2 == 1 || accept_S1 == 1) || accept_S2 == 1) accept_S1_tmp = 1; - else accept_S1_tmp = 0; + if (T0_S2 == 1) accept_S2_tmp = 1; + else + if (accept_S2 == 1) accept_S2_tmp = 1; else accept_S2_tmp = 0; + if (T0_S2 == 1) accept_S1_tmp = 1; + else + if (accept_S1 == 1) accept_S1_tmp = 1; + else + if (accept_S2 == 1) accept_S1_tmp = 1; else accept_S1_tmp = 0; T0_init_tmp = 0; if (accept_S1 == 1) T0_S2_tmp = 1; else T0_S2_tmp = 0; T0_S2 = T0_S2_tmp; @@ -334,6 +343,7 @@ int count(int argc, char **argv) int T0_init_tmp; int accept_S1_tmp; int accept_S2_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_main; T0_S2_tmp = T0_S2; @@ -389,6 +399,7 @@ int count(int argc, char **argv) int T0_init_tmp; int accept_S1_tmp; int accept_S2_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_main; T0_S2_tmp = T0_S2; diff --git a/src/plugins/aorai/tests/ltl/oracle_prove/goto.res.oracle b/src/plugins/aorai/tests/ltl/oracle_prove/goto.res.oracle index a0b1d8ed006dcc5ea0ee140a4ffe963e975d0e90..8e07b35953f76a889c06c6b94390006f13565928 100644 --- a/src/plugins/aorai/tests/ltl/oracle_prove/goto.res.oracle +++ b/src/plugins/aorai/tests/ltl/oracle_prove/goto.res.oracle @@ -1,5 +1,4 @@ [kernel] Parsing tests/ltl/goto.c (with preprocessing) -[aorai] Welcome to the Aorai plugin [aorai] tests/ltl/goto.c:28: Warning: Call to opc does not follow automaton's specification. This path is assumed to be dead [kernel] Parsing TMPDIR/aorai_goto_0.i (no preprocessing) diff --git a/src/plugins/aorai/tests/ltl/oracle_prove/test_boucle.res.oracle b/src/plugins/aorai/tests/ltl/oracle_prove/test_boucle.res.oracle index 0cf6aa042e89216a12267f75a00f12f7900d45ec..db979fdb7c87c7b1d15c858c8fe51e570b729a72 100644 --- a/src/plugins/aorai/tests/ltl/oracle_prove/test_boucle.res.oracle +++ b/src/plugins/aorai/tests/ltl/oracle_prove/test_boucle.res.oracle @@ -1,8 +1,7 @@ [kernel] Parsing tests/ltl/test_boucle.c (with preprocessing) [kernel:typing:implicit-function-declaration] tests/ltl/test_boucle.c:16: Warning: Calling undeclared function call_to_an_undefined_function. Old style K&R code? -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_test_boucle_0.i (no preprocessing) [wp] Warning: Missing RTE guards -[kernel:annot:missing-spec] TMPDIR/aorai_test_boucle_0.i:85: Warning: +[kernel:annot:missing-spec] TMPDIR/aorai_test_boucle_0.i:87: Warning: Neither code nor specification for function call_to_an_undefined_function, generating default assigns from the prototype diff --git a/src/plugins/aorai/tests/ltl/oracle_prove/test_boucle1.res.oracle b/src/plugins/aorai/tests/ltl/oracle_prove/test_boucle1.res.oracle index 1569a5b398d4faf17bcd738ec5e59ba3470a7d8f..c7334dc7d0e47e4f03ab43e11ff87faab1c583af 100644 --- a/src/plugins/aorai/tests/ltl/oracle_prove/test_boucle1.res.oracle +++ b/src/plugins/aorai/tests/ltl/oracle_prove/test_boucle1.res.oracle @@ -1,5 +1,4 @@ [kernel] Parsing tests/ltl/test_boucle1.c (with preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_test_boucle1_0.i (no preprocessing) [wp] TMPDIR/aorai_test_boucle1_0.i:3: Warning: Global invariant not handled yet ('inv_cpt' ignored) diff --git a/src/plugins/aorai/tests/ltl/oracle_prove/test_boucle2.res.oracle b/src/plugins/aorai/tests/ltl/oracle_prove/test_boucle2.res.oracle index 6aff87fc8f04cb57fafbcfab6e1693e21a6112c8..1da39e22bb3f77b68bdfd9a967e3448f141d13e1 100644 --- a/src/plugins/aorai/tests/ltl/oracle_prove/test_boucle2.res.oracle +++ b/src/plugins/aorai/tests/ltl/oracle_prove/test_boucle2.res.oracle @@ -1,5 +1,4 @@ [kernel] Parsing tests/ltl/test_boucle2.c (with preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_test_boucle2_0.i (no preprocessing) [wp] TMPDIR/aorai_test_boucle2_0.i:4: Warning: Global invariant not handled yet ('inv' ignored) diff --git a/src/plugins/aorai/tests/ltl/oracle_prove/test_boucle3.res.oracle b/src/plugins/aorai/tests/ltl/oracle_prove/test_boucle3.res.oracle index d42c00524da292d300baf6eb1c8465fca0a1de88..8f6717a1e318e6976e9ba28deca3fd2c64bc2cdd 100644 --- a/src/plugins/aorai/tests/ltl/oracle_prove/test_boucle3.res.oracle +++ b/src/plugins/aorai/tests/ltl/oracle_prove/test_boucle3.res.oracle @@ -1,5 +1,4 @@ [kernel] Parsing tests/ltl/test_boucle3.c (with preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_test_boucle3_0.i (no preprocessing) [wp] TMPDIR/aorai_test_boucle3_0.i:4: Warning: Global invariant not handled yet ('inv' ignored) diff --git a/src/plugins/aorai/tests/ltl/oracle_prove/test_factorial.res.oracle b/src/plugins/aorai/tests/ltl/oracle_prove/test_factorial.res.oracle index 6e1e98b96475e950de103887600795bebb7f75c7..0a52966e046dc1fb9d3add5f07e55b9c93b13ab2 100644 --- a/src/plugins/aorai/tests/ltl/oracle_prove/test_factorial.res.oracle +++ b/src/plugins/aorai/tests/ltl/oracle_prove/test_factorial.res.oracle @@ -1,4 +1,3 @@ [kernel] Parsing tests/ltl/test_factorial.c (with preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_test_factorial_0.i (no preprocessing) [wp] Warning: Missing RTE guards diff --git a/src/plugins/aorai/tests/ltl/oracle_prove/test_recursion1.res.oracle b/src/plugins/aorai/tests/ltl/oracle_prove/test_recursion1.res.oracle index b41e5fc1a018d973abfb9b98ecb0739dc439b879..b5e9aba20ed217ff7340c60ba5f738a388ba80e9 100644 --- a/src/plugins/aorai/tests/ltl/oracle_prove/test_recursion1.res.oracle +++ b/src/plugins/aorai/tests/ltl/oracle_prove/test_recursion1.res.oracle @@ -5,7 +5,6 @@ parsing obsolete ACSL construct '\valid_range(addr,min,max)'. '\valid(addr+(min..max))' should be used instead. [kernel] tests/ltl/test_recursion1.c:54: Warning: parsing obsolete ACSL construct '\valid_range(addr,min,max)'. '\valid(addr+(min..max))' should be used instead. -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_test_recursion1_0.i (no preprocessing) [wp] Warning: No definition for 'string_len' interpreted as reads nothing [wp] Warning: Missing RTE guards diff --git a/src/plugins/aorai/tests/ltl/oracle_prove/test_recursion2.0.res.oracle b/src/plugins/aorai/tests/ltl/oracle_prove/test_recursion2.0.res.oracle index ccdb613ba7df3a6e4cf3d433a986b71f550e4501..9891c035100b93d2c7f9dfda512688613a83d126 100644 --- a/src/plugins/aorai/tests/ltl/oracle_prove/test_recursion2.0.res.oracle +++ b/src/plugins/aorai/tests/ltl/oracle_prove/test_recursion2.0.res.oracle @@ -1,5 +1,4 @@ [kernel] Parsing tests/ltl/test_recursion2.c (with preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_test_recursion2_0.i (no preprocessing) [wp] Warning: No definition for 'string_len' interpreted as reads nothing [wp] Warning: No definition for 'sum_tab' interpreted as reads nothing diff --git a/src/plugins/aorai/tests/ltl/oracle_prove/test_recursion2.1.res.oracle b/src/plugins/aorai/tests/ltl/oracle_prove/test_recursion2.1.res.oracle index 8e71caf0debca2dc610c47ca48fbce0d3983eb82..904f906300cd765dbc82900fc04a8f861e28e484 100644 --- a/src/plugins/aorai/tests/ltl/oracle_prove/test_recursion2.1.res.oracle +++ b/src/plugins/aorai/tests/ltl/oracle_prove/test_recursion2.1.res.oracle @@ -1,5 +1,4 @@ [kernel] Parsing tests/ltl/test_recursion2.c (with preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_test_recursion2_1.i (no preprocessing) [wp] Warning: No definition for 'string_len' interpreted as reads nothing [wp] Warning: No definition for 'sum_tab' interpreted as reads nothing diff --git a/src/plugins/aorai/tests/ltl/oracle_prove/test_switch2.res.oracle b/src/plugins/aorai/tests/ltl/oracle_prove/test_switch2.res.oracle index 9964a15c39c0df3664931de857618178351c0552..5e6c56778cf99c15ab7fd72ef63105540588b23c 100644 --- a/src/plugins/aorai/tests/ltl/oracle_prove/test_switch2.res.oracle +++ b/src/plugins/aorai/tests/ltl/oracle_prove/test_switch2.res.oracle @@ -1,5 +1,4 @@ [kernel] Parsing tests/ltl/test_switch2.c (with preprocessing) -[aorai] Welcome to the Aorai plugin [aorai] tests/ltl/test_switch2.c:34: Warning: Call to opc not conforming to automaton (post-cond). Assuming it is on a dead path [aorai] tests/ltl/test_switch2.c:23: Warning: diff --git a/src/plugins/aorai/tests/ltl/oracle_prove/test_switch3.res.oracle b/src/plugins/aorai/tests/ltl/oracle_prove/test_switch3.res.oracle index bfe46c01065891f3dc5d9c074dfc8a316e494409..1370ce59a991ba6eb4b392edde15f855451b98c5 100644 --- a/src/plugins/aorai/tests/ltl/oracle_prove/test_switch3.res.oracle +++ b/src/plugins/aorai/tests/ltl/oracle_prove/test_switch3.res.oracle @@ -1,4 +1,3 @@ [kernel] Parsing tests/ltl/test_switch3.c (with preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_test_switch3_0.i (no preprocessing) [wp] Warning: Missing RTE guards diff --git a/src/plugins/aorai/tests/ltl/oracle_prove/test_switch3_et_recursion.res.oracle b/src/plugins/aorai/tests/ltl/oracle_prove/test_switch3_et_recursion.res.oracle index f13072d1a65cb42361f1cb18532fbc21dba5c80a..0c3127bafe547fb808d547145daf183e709e4f3a 100644 --- a/src/plugins/aorai/tests/ltl/oracle_prove/test_switch3_et_recursion.res.oracle +++ b/src/plugins/aorai/tests/ltl/oracle_prove/test_switch3_et_recursion.res.oracle @@ -1,5 +1,4 @@ [kernel] Parsing tests/ltl/test_switch3_et_recursion.c (with preprocessing) -[aorai] Welcome to the Aorai plugin [aorai] tests/ltl/test_switch3_et_recursion.c:26: Warning: Call to countOne does not follow automaton's specification. This path is assumed to be dead [kernel] Parsing TMPDIR/aorai_test_switch3_et_recursion_0.i (no preprocessing) diff --git a/src/plugins/aorai/tests/ltl/oracle_prove/test_switch3_if.res.oracle b/src/plugins/aorai/tests/ltl/oracle_prove/test_switch3_if.res.oracle index 68de03d1b30d2be55649d7e8c0139bd9668a380e..bf53ddf15baf64391dbcc15a5a67b6dd579f9445 100644 --- a/src/plugins/aorai/tests/ltl/oracle_prove/test_switch3_if.res.oracle +++ b/src/plugins/aorai/tests/ltl/oracle_prove/test_switch3_if.res.oracle @@ -1,4 +1,3 @@ [kernel] Parsing tests/ltl/test_switch3_if.c (with preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_test_switch3_if_0.i (no preprocessing) [wp] Warning: Missing RTE guards diff --git a/src/plugins/aorai/tests/ltl/oracle_prove/test_switch3_return.res.oracle b/src/plugins/aorai/tests/ltl/oracle_prove/test_switch3_return.res.oracle index 2bfc5074656abd0609d096003396b2d396dbdce4..eb8fb8e27b51954dd4935997e25b24735c7302b3 100644 --- a/src/plugins/aorai/tests/ltl/oracle_prove/test_switch3_return.res.oracle +++ b/src/plugins/aorai/tests/ltl/oracle_prove/test_switch3_return.res.oracle @@ -1,4 +1,3 @@ [kernel] Parsing tests/ltl/test_switch3_return.c (with preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_test_switch3_return_0.i (no preprocessing) [wp] Warning: Missing RTE guards diff --git a/src/plugins/aorai/tests/ltl/test_boucle.c b/src/plugins/aorai/tests/ltl/test_boucle.c index 72cf5e78ac931fa05a5a21be18a1777112e6e8e2..db2f6bc0c3f18408ea163acbdaacffdaaeac8ac3 100644 --- a/src/plugins/aorai/tests/ltl/test_boucle.c +++ b/src/plugins/aorai/tests/ltl/test_boucle.c @@ -1,5 +1,5 @@ /* run.config* - OPT: -aorai-ltl @PTEST_DIR@/@PTEST_NAME@.ltl -aorai-test 1 -aorai-acceptance -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ + OPT: -aorai-ltl @PTEST_DIR@/@PTEST_NAME@.ltl -aorai-acceptance -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ */ /*@ requires \true; diff --git a/src/plugins/aorai/tests/ltl/test_boucle1.c b/src/plugins/aorai/tests/ltl/test_boucle1.c index 0245ffedcfdfe67aad9a8d9610159c9a3313b0e8..7b091c51b7614a411c3afdb521561a4785ffcf16 100644 --- a/src/plugins/aorai/tests/ltl/test_boucle1.c +++ b/src/plugins/aorai/tests/ltl/test_boucle1.c @@ -1,5 +1,5 @@ /* run.config* - OPT: -aorai-ltl @PTEST_DIR@/@PTEST_NAME@.ltl -aorai-test 1 -aorai-acceptance -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ + OPT: -aorai-ltl @PTEST_DIR@/@PTEST_NAME@.ltl -aorai-acceptance -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ */ int cpt=3; diff --git a/src/plugins/aorai/tests/ltl/test_boucle2.c b/src/plugins/aorai/tests/ltl/test_boucle2.c index 9d4cf3a9aff3c018e3739a253578cdcfb92eea5e..8aa77e6f8b0589e2f53869d76fb00adba6abd76a 100644 --- a/src/plugins/aorai/tests/ltl/test_boucle2.c +++ b/src/plugins/aorai/tests/ltl/test_boucle2.c @@ -1,5 +1,5 @@ /* run.config* - OPT: -aorai-ltl @PTEST_DIR@/@PTEST_NAME@.ltl -aorai-test 1 -aorai-acceptance -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ + OPT: -aorai-ltl @PTEST_DIR@/@PTEST_NAME@.ltl -aorai-acceptance -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ */ int status=0; diff --git a/src/plugins/aorai/tests/ltl/test_boucle3.c b/src/plugins/aorai/tests/ltl/test_boucle3.c index 6c93a4202649a24dff714ef33906252a84b74704..6da17de07b287db5befa2b3bcd350672f128f03d 100644 --- a/src/plugins/aorai/tests/ltl/test_boucle3.c +++ b/src/plugins/aorai/tests/ltl/test_boucle3.c @@ -1,5 +1,5 @@ /* run.config* - OPT: -aorai-ltl @PTEST_DIR@/@PTEST_NAME@.ltl -aorai-test 1 -aorai-acceptance -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ + OPT: -aorai-ltl @PTEST_DIR@/@PTEST_NAME@.ltl -aorai-acceptance -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ */ diff --git a/src/plugins/aorai/tests/ltl/test_factorial.c b/src/plugins/aorai/tests/ltl/test_factorial.c index 6a429a55e31de0a06be227ffd9ca72d1fb4770ea..0ad6476002658f8a1bedc42146f14f3229b42427 100644 --- a/src/plugins/aorai/tests/ltl/test_factorial.c +++ b/src/plugins/aorai/tests/ltl/test_factorial.c @@ -1,5 +1,5 @@ /* run.config* - OPT: -aorai-ltl @PTEST_DIR@/@PTEST_NAME@.ltl -aorai-test 1 -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ + OPT: -aorai-ltl @PTEST_DIR@/@PTEST_NAME@.ltl -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ */ diff --git a/src/plugins/aorai/tests/ltl/test_recursion1.c b/src/plugins/aorai/tests/ltl/test_recursion1.c index ee0968101b1a776f5b232d5740d4ae4e2c568f7e..14be685a47bcdfbaf534712834e6a69acc2de9fb 100644 --- a/src/plugins/aorai/tests/ltl/test_recursion1.c +++ b/src/plugins/aorai/tests/ltl/test_recursion1.c @@ -1,5 +1,5 @@ /* run.config* - OPT: -aorai-ltl @PTEST_DIR@/@PTEST_NAME@.ltl -aorai-test 1 -aorai-acceptance -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ + OPT: -aorai-ltl @PTEST_DIR@/@PTEST_NAME@.ltl -aorai-acceptance -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ */ diff --git a/src/plugins/aorai/tests/ltl/test_recursion2.c b/src/plugins/aorai/tests/ltl/test_recursion2.c index a13c39b9f887df7af32c52fa0f2a142e992478cd..7d93ab3fa3a3e28e205517b56bc795ad2b427ebf 100644 --- a/src/plugins/aorai/tests/ltl/test_recursion2.c +++ b/src/plugins/aorai/tests/ltl/test_recursion2.c @@ -1,6 +1,6 @@ /* run.config* - OPT: -aorai-buchi @PTEST_DIR@/@PTEST_NAME@.promela -aorai-test 1 -aorai-acceptance -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ - OPT: -aorai-buchi @PTEST_DIR@/test_recursion3.promela -aorai-test 1 -aorai-acceptance -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ + OPT: -aorai-buchi @PTEST_DIR@/@PTEST_NAME@.promela -aorai-acceptance -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ + OPT: -aorai-buchi @PTEST_DIR@/test_recursion3.promela -aorai-acceptance -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ */ /* Calcul de la longueur cumulee des chaines de caracteres prises en parametre */ diff --git a/src/plugins/aorai/tests/ltl/test_switch2.c b/src/plugins/aorai/tests/ltl/test_switch2.c index f411cec23dcd459cbfe1bdb5d3d33b05ad6e3ee2..2bb7284fbbd78e3c7d6455efbceaac54213338b6 100644 --- a/src/plugins/aorai/tests/ltl/test_switch2.c +++ b/src/plugins/aorai/tests/ltl/test_switch2.c @@ -1,5 +1,5 @@ /* run.config* - OPT: -aorai-ltl @PTEST_DIR@/@PTEST_NAME@.ltl -aorai-test 1 -aorai-acceptance -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ + OPT: -aorai-ltl @PTEST_DIR@/@PTEST_NAME@.ltl -aorai-acceptance -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ */ int status=0; diff --git a/src/plugins/aorai/tests/ltl/test_switch3.c b/src/plugins/aorai/tests/ltl/test_switch3.c index 42e5fc6ba9aebb0bf7be62ec776e3a969f250d4a..5d9e8582f493e3d9d10f5343e8eeff8e4897b048 100644 --- a/src/plugins/aorai/tests/ltl/test_switch3.c +++ b/src/plugins/aorai/tests/ltl/test_switch3.c @@ -1,5 +1,5 @@ /* run.config* - OPT: -aorai-ltl @PTEST_DIR@/@PTEST_NAME@.ltl -aorai-test 1 -aorai-acceptance -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ + OPT: -aorai-ltl @PTEST_DIR@/@PTEST_NAME@.ltl -aorai-acceptance -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ */ /* Calcul de la longueur cumulee des chaines de caracteres prises en parametre */ diff --git a/src/plugins/aorai/tests/ltl/test_switch3_et_recursion.c b/src/plugins/aorai/tests/ltl/test_switch3_et_recursion.c index 00caa9826bb96e63a099b54204d1e1d5e9c3aeab..352725ef98403e943292dd701851020dd9450331 100644 --- a/src/plugins/aorai/tests/ltl/test_switch3_et_recursion.c +++ b/src/plugins/aorai/tests/ltl/test_switch3_et_recursion.c @@ -1,5 +1,5 @@ /* run.config* - OPT: -aorai-ltl @PTEST_DIR@/@PTEST_NAME@.ltl -aorai-test 1 -aorai-acceptance -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ + OPT: -aorai-ltl @PTEST_DIR@/@PTEST_NAME@.ltl -aorai-acceptance -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ */ /* Calcul de la longueur cumulee des chaines de caracteres prises en parametre */ diff --git a/src/plugins/aorai/tests/ltl/test_switch3_if.c b/src/plugins/aorai/tests/ltl/test_switch3_if.c index f6375d4d859a018e4349cbcbdca037d48298de40..93dd122636eb69e79de4ed04781fa4528a261027 100644 --- a/src/plugins/aorai/tests/ltl/test_switch3_if.c +++ b/src/plugins/aorai/tests/ltl/test_switch3_if.c @@ -1,5 +1,5 @@ /* run.config* - OPT: -aorai-ltl @PTEST_DIR@/test_switch3.ltl -aorai-test 1 -aorai-acceptance -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ + OPT: -aorai-ltl @PTEST_DIR@/test_switch3.ltl -aorai-acceptance -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ */ /* Calcul de la longueur cumulee des chaines de caracteres prises en parametre */ diff --git a/src/plugins/aorai/tests/ltl/test_switch3_return.c b/src/plugins/aorai/tests/ltl/test_switch3_return.c index a105540b9829ff3d2cdb2a7c12b4f7b056c8ece2..8df70979968ab549179cf70011105ac4083f0001 100644 --- a/src/plugins/aorai/tests/ltl/test_switch3_return.c +++ b/src/plugins/aorai/tests/ltl/test_switch3_return.c @@ -1,5 +1,5 @@ /* run.config* - OPT: -aorai-ltl @PTEST_DIR@/test_switch3.ltl -aorai-test 1 -aorai-acceptance -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ + OPT: -aorai-ltl @PTEST_DIR@/test_switch3.ltl -aorai-acceptance -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ */ /* Calcul de la longueur cumulee des chaines de caracteres prises en parametre */ diff --git a/src/plugins/aorai/tests/ya/aorai_ptr_field.i b/src/plugins/aorai/tests/ya/aorai_ptr_field.i index 9f1316be55c1e7c25305f22bdbed66a594434bb9..24c8ffc30a7231b26a8e6febc12d553b1c2a39f3 100644 --- a/src/plugins/aorai/tests/ya/aorai_ptr_field.i +++ b/src/plugins/aorai/tests/ya/aorai_ptr_field.i @@ -1,5 +1,5 @@ /* run.config* - OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -aorai-test 1 -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ + OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ */ struct S { int x; }; diff --git a/src/plugins/aorai/tests/ya/assigns.c b/src/plugins/aorai/tests/ya/assigns.c index ce6fe159678db8d14bddb1119d020f3b6362b14b..c760aa1537ec7d120bb213e1eeab4c0df7da9ef0 100644 --- a/src/plugins/aorai/tests/ya/assigns.c +++ b/src/plugins/aorai/tests/ya/assigns.c @@ -1,8 +1,8 @@ /* run.config* - OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -aorai-test 1 -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ - OPT: -aorai-automata @PTEST_DIR@/assigns_det.ya -aorai-test 1 -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ + OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ + OPT: -aorai-automata @PTEST_DIR@/assigns_det.ya -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ MODULE: @PTEST_DIR@/name_projects.cmxs - OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -aorai-test 1 -then -print + OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -then -print */ int X; diff --git a/src/plugins/aorai/tests/ya/bts1289.i b/src/plugins/aorai/tests/ya/bts1289.i index 2c6c8f9aa59097ab9cd9f8dd9aa63d1ffcf62900..93cf50233c6de580a502d09ec0ebb9e0710a3fd4 100644 --- a/src/plugins/aorai/tests/ya/bts1289.i +++ b/src/plugins/aorai/tests/ya/bts1289.i @@ -1,6 +1,6 @@ /* run.config* - OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -load-module tests/Aorai_test.cmxs -aorai-test 1 -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ - OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@-2.ya -load-module tests/Aorai_test.cmxs -aorai-test 1 -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ + OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ + OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@-2.ya -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ */ void a(void) {} diff --git a/src/plugins/aorai/tests/ya/declared_function.i b/src/plugins/aorai/tests/ya/declared_function.i index 53bcdfd71ad5fdf29b39d44acc444dd4a29d5c79..12f50538eb389c40452004dcae442b80e72800c5 100644 --- a/src/plugins/aorai/tests/ya/declared_function.i +++ b/src/plugins/aorai/tests/ya/declared_function.i @@ -1,5 +1,5 @@ /* run.config* -OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -aorai-test 1 -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ +OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ */ int f(void); diff --git a/src/plugins/aorai/tests/ya/deterministic.i b/src/plugins/aorai/tests/ya/deterministic.i index b92271127e264c85e2578be4fbdc86a1e7ac8a9e..d892d8913785cf908250be51ee907aea92bd59fe 100644 --- a/src/plugins/aorai/tests/ya/deterministic.i +++ b/src/plugins/aorai/tests/ya/deterministic.i @@ -1,5 +1,5 @@ /* run.config* - OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -aorai-test 1 -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ + OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ */ int X; diff --git a/src/plugins/aorai/tests/ya/formals.i b/src/plugins/aorai/tests/ya/formals.i index 4a32df49b67be992c14ceb88e3541d05c638992d..a463e4f7d372e66081bacb8a83c6c1fbc799a62e 100644 --- a/src/plugins/aorai/tests/ya/formals.i +++ b/src/plugins/aorai/tests/ya/formals.i @@ -1,5 +1,5 @@ /* run.config* -OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -aorai-test 1 -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ +OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ */ int f(int x) { return x; } diff --git a/src/plugins/aorai/tests/ya/generate_assigns_bts1290.i b/src/plugins/aorai/tests/ya/generate_assigns_bts1290.i index 2e92796ec0655d2ae0977566205fc1072e275a60..d9333d415f6a9e4a266b9b4e4ee0fffb0157aeec 100644 --- a/src/plugins/aorai/tests/ya/generate_assigns_bts1290.i +++ b/src/plugins/aorai/tests/ya/generate_assigns_bts1290.i @@ -1,5 +1,5 @@ /* run.config* - OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -load-module tests/Aorai_test.cmxs -aorai-test 1 -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ + OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ */ void main(void) { diff --git a/src/plugins/aorai/tests/ya/hoare_seq.i b/src/plugins/aorai/tests/ya/hoare_seq.i index cc7e148477430589b00c142325c5a4baf3a32531..b60ae6082da68af639a7419bd7b8fcc06c1dbfcc 100644 --- a/src/plugins/aorai/tests/ya/hoare_seq.i +++ b/src/plugins/aorai/tests/ya/hoare_seq.i @@ -1,5 +1,5 @@ /* run.config* -OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -aorai-test 1 -aorai-acceptance -load-module tests/Aorai_test -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ +OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -aorai-acceptance -load-module tests/Aorai_test -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ */ void f(void) { } diff --git a/src/plugins/aorai/tests/ya/incorrect.i b/src/plugins/aorai/tests/ya/incorrect.i index fae082d3120aa4fd80c2354bcc318c71e43a689d..01f702808601302f85949d38f64b69b4f79c8ab7 100644 --- a/src/plugins/aorai/tests/ya/incorrect.i +++ b/src/plugins/aorai/tests/ya/incorrect.i @@ -1,5 +1,5 @@ /* run.config* - OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -aorai-test 1 -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ + OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ */ int f(void); diff --git a/src/plugins/aorai/tests/ya/logical_operators.i b/src/plugins/aorai/tests/ya/logical_operators.i new file mode 100644 index 0000000000000000000000000000000000000000..1dcbba59346f608a433691d0d549058a6d6a22f8 --- /dev/null +++ b/src/plugins/aorai/tests/ya/logical_operators.i @@ -0,0 +1,9 @@ +/* run.config* + OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ +*/ + +void f(int x) {} + +void main(int x) { + f(x); +} diff --git a/src/plugins/aorai/tests/ya/logical_operators.ya b/src/plugins/aorai/tests/ya/logical_operators.ya new file mode 100644 index 0000000000000000000000000000000000000000..5baf089d910caa355d0abaecda90f3ea3fd1410e --- /dev/null +++ b/src/plugins/aorai/tests/ya/logical_operators.ya @@ -0,0 +1,3 @@ +%init : I; + +I: { f().x == 1 } -> I | other -> I; diff --git a/src/plugins/aorai/tests/ya/loop_bts1050.i b/src/plugins/aorai/tests/ya/loop_bts1050.i index fdec741b7b32ef14be4756afd8847a9ac21ccb27..86fe369e9f793b991fd0e3f4510b1ea5111b1c55 100644 --- a/src/plugins/aorai/tests/ya/loop_bts1050.i +++ b/src/plugins/aorai/tests/ya/loop_bts1050.i @@ -1,5 +1,5 @@ /* run.config* - OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -aorai-test 1 -load-module tests/Aorai_test.cmxs -aorai-acceptance -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ + OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -load-module tests/Aorai_test.cmxs -aorai-acceptance -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ */ void f(){}; diff --git a/src/plugins/aorai/tests/ya/metavariables-incompatible.i b/src/plugins/aorai/tests/ya/metavariables-incompatible.i index 26744167705ea93e49e38818c96dcb32d17b623b..a32cefe9e95a077a549e747e0231200ad48c4a5b 100644 --- a/src/plugins/aorai/tests/ya/metavariables-incompatible.i +++ b/src/plugins/aorai/tests/ya/metavariables-incompatible.i @@ -1,5 +1,5 @@ /* run.config* - OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -aorai-test 1 -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ + OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ */ void main(void) {} diff --git a/src/plugins/aorai/tests/ya/metavariables-right.i b/src/plugins/aorai/tests/ya/metavariables-right.i index cff3994c1017f532d1d44db092abb5be27d1dcb8..9d88e67323f1579b8cb9ff96e0713ab2652fbb67 100644 --- a/src/plugins/aorai/tests/ya/metavariables-right.i +++ b/src/plugins/aorai/tests/ya/metavariables-right.i @@ -1,5 +1,5 @@ /* run.config* - OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -aorai-test 1 -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ + OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ */ void f(int x) {} diff --git a/src/plugins/aorai/tests/ya/metavariables-wrong.i b/src/plugins/aorai/tests/ya/metavariables-wrong.i index 09ea4b6c4bcfc15e83ef2c2a676be84c00ca294b..a0542d200213bae00dd447ca74e59ef7a0c15f08 100644 --- a/src/plugins/aorai/tests/ya/metavariables-wrong.i +++ b/src/plugins/aorai/tests/ya/metavariables-wrong.i @@ -1,5 +1,5 @@ /* run.config* - OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -aorai-test 1 -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ + OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ */ void f(int x) {} diff --git a/src/plugins/aorai/tests/ya/monostate.i b/src/plugins/aorai/tests/ya/monostate.i index 9dade69c092b118f482686eaa918ee2e878a692c..0d72d9a431caaf166b2bcdbf4cdbceca3e231244 100644 --- a/src/plugins/aorai/tests/ya/monostate.i +++ b/src/plugins/aorai/tests/ya/monostate.i @@ -1,5 +1,5 @@ /* run.config -OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -aorai-test 1 -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ +OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ */ void f(void) {} diff --git a/src/plugins/aorai/tests/ya/not_prm.i b/src/plugins/aorai/tests/ya/not_prm.i index d96e123d6e6a367565597f0cce0df942b23a2ba5..8b5c4281608d86fbed207d2f056fcb22f6513953 100644 --- a/src/plugins/aorai/tests/ya/not_prm.i +++ b/src/plugins/aorai/tests/ya/not_prm.i @@ -1,5 +1,5 @@ /* run.config* - OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -aorai-test 1 -aorai-acceptance -load-module tests/Aorai_test -main f -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ + OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -aorai-acceptance -load-module tests/Aorai_test -main f -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ */ int f(int x) { diff --git a/src/plugins/aorai/tests/ya/oracle/aorai_ptr_field.res.oracle b/src/plugins/aorai/tests/ya/oracle/aorai_ptr_field.res.oracle index b9750505021bd05f5fc1a55c85159b8c653a0ff2..1c1744e5f85a9dd5177e9d97d6bab2884fdbce64 100644 --- a/src/plugins/aorai/tests/ya/oracle/aorai_ptr_field.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle/aorai_ptr_field.res.oracle @@ -1,5 +1,4 @@ [kernel] Parsing tests/ya/aorai_ptr_field.i (no preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_aorai_ptr_field_0.i (no preprocessing) /* Generated by Frama-C */ struct S { @@ -12,8 +11,8 @@ 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 enum aorai_ListOper aorai_CurOperation; */ +/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus; */ /*@ ghost int S0 = 1; */ /*@ ghost int S1 = 0; */ /*@ ghost @@ -38,12 +37,20 @@ enum aorai_OpStatusList { { int S0_tmp; int S1_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_main; S0_tmp = S0; S1_tmp = S1; - if (S0 == 1 && s->x >= 0 || S0 == 1 && s->x < 0) S1_tmp = 1; - else S1_tmp = 0; + if (S0 == 1) { + if (s->x >= 0) S1_tmp = 1; else goto __aorai_label; + } + else { + __aorai_label: ; + if (S0 == 1) + if (s->x < 0) S1_tmp = 1; else S1_tmp = 0; + else S1_tmp = 0; + } S0_tmp = 0; S0 = S0_tmp; S1 = S1_tmp; @@ -73,6 +80,7 @@ enum aorai_OpStatusList { { int S0_tmp; int S1_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_main; S0_tmp = S0; diff --git a/src/plugins/aorai/tests/ya/oracle/assigns.0.res.oracle b/src/plugins/aorai/tests/ya/oracle/assigns.0.res.oracle index 09b37de9a73706afe84ec0fa380d5be28c09a3a8..a0d1e8e9805cb518ef7dd64fe057fdc454603cd6 100644 --- a/src/plugins/aorai/tests/ya/oracle/assigns.0.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle/assigns.0.res.oracle @@ -1,5 +1,4 @@ [kernel] Parsing tests/ya/assigns.c (with preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_assigns_0.i (no preprocessing) /* Generated by Frama-C */ enum aorai_ListOper { @@ -11,8 +10,8 @@ enum aorai_OpStatusList { aorai_Called = 0 }; int X; -/*@ ghost enum aorai_ListOper aorai_CurOperation = op_main; */ -/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus = aorai_Called; */ +/*@ ghost enum aorai_ListOper aorai_CurOperation; */ +/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus; */ /*@ ghost int S1 = 1; */ /*@ ghost int S2 = 0; */ /*@ ghost int S_in_f = 0; */ @@ -53,6 +52,7 @@ int X; int S_in_f_tmp; int Sf_tmp; int in_main_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_f; S1_tmp = S1; @@ -110,6 +110,7 @@ int X; int S_in_f_tmp; int Sf_tmp; int in_main_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_f; S1_tmp = S1; @@ -182,6 +183,7 @@ void f(void) int S_in_f_tmp; int Sf_tmp; int in_main_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_main; S1_tmp = S1; @@ -239,6 +241,7 @@ void f(void) int S_in_f_tmp; int Sf_tmp; int in_main_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_main; S1_tmp = S1; diff --git a/src/plugins/aorai/tests/ya/oracle/assigns.1.res.oracle b/src/plugins/aorai/tests/ya/oracle/assigns.1.res.oracle index fd7526444df55abd2c128af76809b32c0a411955..5b81ca1fbe6f2c2ac6b2c327455daeb0f91c696e 100644 --- a/src/plugins/aorai/tests/ya/oracle/assigns.1.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle/assigns.1.res.oracle @@ -1,14 +1,13 @@ [kernel] Parsing tests/ya/assigns.c (with preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_assigns_1.i (no preprocessing) /* Generated by Frama-C */ enum aorai_States { - aorai_reject_state = -2, S1 = 0, S2 = 1, S_in_f = 2, Sf = 3, - in_main = 4 + aorai_reject = 4, + in_main = 5 }; enum aorai_ListOper { op_f = 1, @@ -20,6 +19,8 @@ enum aorai_OpStatusList { }; /*@ check lemma in_main_deterministic_trans{L}: \true; */ +/*@ check lemma aorai_reject_deterministic_trans{L}: \true; + */ /*@ check lemma Sf_deterministic_trans{L}: \true; */ /*@ check lemma S_in_f_deterministic_trans{L}: \true; @@ -29,8 +30,8 @@ enum aorai_OpStatusList { /*@ check lemma S1_deterministic_trans{L}: \true; */ int X; -/*@ ghost enum aorai_ListOper aorai_CurOperation = op_main; */ -/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus = aorai_Called; */ +/*@ ghost enum aorai_ListOper aorai_CurOperation; */ +/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus; */ /*@ ghost int aorai_CurStates = S1; */ /*@ ghost /@ requires aorai_CurStates ≡ Sf; @@ -55,14 +56,19 @@ int X; behavior buch_state_Sf_out: ensures aorai_CurStates ≢ Sf; + behavior buch_state_aorai_reject_out: + ensures aorai_CurStates ≢ aorai_reject; + behavior buch_state_in_main_out: ensures aorai_CurStates ≢ in_main; @/ void f_pre_func(void) { + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_f; if (3 == aorai_CurStates) aorai_CurStates = S_in_f; + else aorai_CurStates = aorai_reject; return; } @@ -86,6 +92,9 @@ int X; behavior buch_state_Sf_out: ensures aorai_CurStates ≢ Sf; + behavior buch_state_aorai_reject_out: + ensures aorai_CurStates ≢ aorai_reject; + behavior buch_state_in_main_in: assumes aorai_CurStates ≡ S_in_f; ensures aorai_CurStates ≡ in_main; @@ -96,9 +105,11 @@ int X; @/ void f_post_func(void) { + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_f; if (2 == aorai_CurStates) aorai_CurStates = in_main; + else aorai_CurStates = aorai_reject; return; } @@ -140,14 +151,19 @@ void f(void) assumes aorai_CurStates ≢ S1; ensures aorai_CurStates ≢ Sf; + behavior buch_state_aorai_reject_out: + ensures aorai_CurStates ≢ aorai_reject; + behavior buch_state_in_main_out: ensures aorai_CurStates ≢ in_main; @/ void main_pre_func(void) { + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_main; if (0 == aorai_CurStates) aorai_CurStates = Sf; + else aorai_CurStates = aorai_reject; return; } @@ -176,14 +192,19 @@ void f(void) behavior buch_state_Sf_out: ensures aorai_CurStates ≢ Sf; + behavior buch_state_aorai_reject_out: + ensures aorai_CurStates ≢ aorai_reject; + behavior buch_state_in_main_out: ensures aorai_CurStates ≢ in_main; @/ void main_post_func(int res) { + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_main; - if (4 == aorai_CurStates) aorai_CurStates = S2; + if (5 == aorai_CurStates) aorai_CurStates = S2; + else aorai_CurStates = aorai_reject; return; } diff --git a/src/plugins/aorai/tests/ya/oracle/assigns.2.res.oracle b/src/plugins/aorai/tests/ya/oracle/assigns.2.res.oracle index f5a60a3aac12f9e6f74b645b97c97125445d9996..5a761e8ca86775a91718ded77e107d61a8a15aa6 100644 --- a/src/plugins/aorai/tests/ya/oracle/assigns.2.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle/assigns.2.res.oracle @@ -1,5 +1,4 @@ [kernel] Parsing tests/ya/assigns.c (with preprocessing) -[aorai] Welcome to the Aorai plugin /* Generated by Frama-C */ int X; void f(void) diff --git a/src/plugins/aorai/tests/ya/oracle/bts1289.0.res.oracle b/src/plugins/aorai/tests/ya/oracle/bts1289.0.res.oracle index 74d55944211b288cd559e0c0f19e44b01dbcbbc6..15f90358d6d80d076d3bbc1d5037100798bf47c2 100644 --- a/src/plugins/aorai/tests/ya/oracle/bts1289.0.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle/bts1289.0.res.oracle @@ -1,5 +1,4 @@ [kernel] Parsing tests/ya/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 [kernel] Parsing TMPDIR/aorai_bts1289_0.i (no preprocessing) /* Generated by Frama-C */ @@ -11,8 +10,8 @@ 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 enum aorai_ListOper aorai_CurOperation; */ +/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus; */ /*@ ghost int S = 0; */ /*@ ghost /@ requires \false; @@ -26,6 +25,7 @@ enum aorai_OpStatusList { void a_pre_func(void) { int S_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_a; S_tmp = S; @@ -48,6 +48,7 @@ enum aorai_OpStatusList { void a_post_func(void) { int S_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_a; S_tmp = S; @@ -81,6 +82,7 @@ void a(void) void main_pre_func(void) { int S_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_main; S_tmp = S; @@ -103,6 +105,7 @@ void a(void) void main_post_func(void) { int S_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_main; S_tmp = S; diff --git a/src/plugins/aorai/tests/ya/oracle/bts1289.1.res.oracle b/src/plugins/aorai/tests/ya/oracle/bts1289.1.res.oracle index adebb6ca55ae7558e8d58bd9d45d024806c68784..6fb3035c21ae0f523e25c9b83807cdce7675ee74 100644 --- a/src/plugins/aorai/tests/ya/oracle/bts1289.1.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle/bts1289.1.res.oracle @@ -1,5 +1,4 @@ [kernel] Parsing tests/ya/bts1289.i (no preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_bts1289_1.i (no preprocessing) /* Generated by Frama-C */ enum aorai_ListOper { @@ -10,8 +9,8 @@ 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 enum aorai_ListOper aorai_CurOperation; */ +/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus; */ /*@ ghost int S = 0; */ /*@ ghost int T = 0; */ /*@ ghost int aorai_intermediate_state = 0; */ @@ -58,6 +57,7 @@ enum aorai_OpStatusList { int aorai_intermediate_state_tmp; int aorai_intermediate_state_0_tmp; int init_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_a; S_tmp = S; @@ -123,6 +123,7 @@ enum aorai_OpStatusList { int aorai_intermediate_state_tmp; int aorai_intermediate_state_0_tmp; int init_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_a; S_tmp = S; @@ -219,6 +220,7 @@ void a(void) int aorai_intermediate_state_tmp; int aorai_intermediate_state_0_tmp; int init_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_main; S_tmp = S; @@ -277,6 +279,7 @@ void a(void) int aorai_intermediate_state_tmp; int aorai_intermediate_state_0_tmp; int init_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_main; S_tmp = S; diff --git a/src/plugins/aorai/tests/ya/oracle/declared_function.res.oracle b/src/plugins/aorai/tests/ya/oracle/declared_function.res.oracle index 7141a6e19585342e2f1f9571efaa71e68c2ba704..0b0ae22a40090a44b7c3bceaba53c7d1d945881e 100644 --- a/src/plugins/aorai/tests/ya/oracle/declared_function.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle/declared_function.res.oracle @@ -1,10 +1,9 @@ [kernel] Parsing tests/ya/declared_function.i (no preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_declared_function_0.i (no preprocessing) /* Generated by Frama-C */ enum aorai_States { - aorai_reject_state = -2, - I = 0 + I = 0, + aorai_reject = 1 }; enum aorai_ListOper { op_f = 1, @@ -14,10 +13,12 @@ enum aorai_OpStatusList { aorai_Terminated = 1, aorai_Called = 0 }; +/*@ check lemma aorai_reject_deterministic_trans{L}: \true; + */ int f(void); -/*@ ghost enum aorai_ListOper aorai_CurOperation = op_main; */ -/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus = aorai_Called; */ +/*@ ghost enum aorai_ListOper aorai_CurOperation; */ +/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus; */ /*@ check lemma I_deterministic_trans{L}: (∀ int __retres_f; @@ -58,12 +59,17 @@ check lemma I_deterministic_trans{L}: behavior buch_state_I_out: assumes aorai_CurStates ≢ I; ensures aorai_CurStates ≢ I; + + behavior buch_state_aorai_reject_out: + ensures aorai_CurStates ≢ aorai_reject; @/ void main_pre_func(void) { + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_main; if (0 == aorai_CurStates) aorai_CurStates = I; + else aorai_CurStates = aorai_reject; return; } @@ -82,12 +88,17 @@ check lemma I_deterministic_trans{L}: behavior buch_state_I_out: assumes aorai_CurStates ≢ I; ensures aorai_CurStates ≢ I; + + behavior buch_state_aorai_reject_out: + ensures aorai_CurStates ≢ aorai_reject; @/ void main_post_func(void) { + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_main; if (0 == aorai_CurStates) aorai_CurStates = I; + else aorai_CurStates = aorai_reject; return; } diff --git a/src/plugins/aorai/tests/ya/oracle/deterministic.res.oracle b/src/plugins/aorai/tests/ya/oracle/deterministic.res.oracle index 6b9c9095bc9917c070ddd1dbf2ec9d73de8d75c4..a48b55abef97f7cbdafffbffb7101d900aa056e5 100644 --- a/src/plugins/aorai/tests/ya/oracle/deterministic.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle/deterministic.res.oracle @@ -1,9 +1,7 @@ [kernel] Parsing tests/ya/deterministic.i (no preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_deterministic_0.i (no preprocessing) /* Generated by Frama-C */ enum aorai_States { - aorai_reject_state = -2, S0 = 0, S1 = 1, S2 = 2, @@ -11,7 +9,8 @@ enum aorai_States { S4 = 4, S5 = 5, Sf = 6, - Si = 7 + Si = 7, + aorai_reject = 8 }; enum aorai_ListOper { op_f = 3, @@ -23,6 +22,8 @@ enum aorai_OpStatusList { aorai_Terminated = 1, aorai_Called = 0 }; +/*@ check lemma aorai_reject_deterministic_trans{L}: \true; + */ /*@ check lemma Si_deterministic_trans{L}: \true; */ /*@ check lemma Sf_deterministic_trans{L}: \true; @@ -35,8 +36,8 @@ enum aorai_OpStatusList { */ int X; int Y; -/*@ ghost enum aorai_ListOper aorai_CurOperation = op_main; */ -/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus = aorai_Called; */ +/*@ ghost enum aorai_ListOper aorai_CurOperation; */ +/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus; */ /*@ check lemma S3_deterministic_trans{L}: ∀ int x; @@ -102,14 +103,25 @@ check lemma S0_deterministic_trans{L}: behavior buch_state_Si_out: ensures aorai_CurStates ≢ Si; + + behavior buch_state_aorai_reject_out: + ensures aorai_CurStates ≢ aorai_reject; @/ void g_pre_func(int x) { + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_g; - if (3 == aorai_CurStates && x == 4) aorai_CurStates = S4; - else - if (3 == aorai_CurStates && x == 5) aorai_CurStates = S5; + if (3 == aorai_CurStates) { + if (x == 4) aorai_CurStates = S4; else goto __aorai_label; + } + else { + __aorai_label: ; + if (3 == aorai_CurStates) + if (x == 5) aorai_CurStates = S5; + else aorai_CurStates = aorai_reject; + else aorai_CurStates = aorai_reject; + } return; } @@ -154,14 +166,19 @@ check lemma S0_deterministic_trans{L}: behavior buch_state_Si_out: ensures aorai_CurStates ≢ Si; + + behavior buch_state_aorai_reject_out: + ensures aorai_CurStates ≢ aorai_reject; @/ void g_post_func(void) { + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_g; if (5 == aorai_CurStates) aorai_CurStates = S1; else if (4 == aorai_CurStates) aorai_CurStates = S3; + else aorai_CurStates = aorai_reject; return; } @@ -221,12 +238,18 @@ void g(int x) behavior buch_state_Si_out: ensures aorai_CurStates ≢ Si; + + behavior buch_state_aorai_reject_out: + ensures aorai_CurStates ≢ aorai_reject; @/ void f_pre_func(int x) { + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_f; - if (1 == aorai_CurStates && x == 4) aorai_CurStates = S3; + if (1 == aorai_CurStates) + if (x == 4) aorai_CurStates = S3; else aorai_CurStates = aorai_reject; + else aorai_CurStates = aorai_reject; return; } @@ -267,12 +290,21 @@ void g(int x) behavior buch_state_Si_out: ensures aorai_CurStates ≢ Si; + + behavior buch_state_aorai_reject_out: + ensures aorai_CurStates ≢ aorai_reject; @/ void f_post_func(int res) { + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_f; - if (1 == aorai_CurStates && (res == 0 && X == 5)) aorai_CurStates = S2; + if (1 == aorai_CurStates) + if (res == 0) + if (X == 5) aorai_CurStates = S2; + else aorai_CurStates = aorai_reject; + else aorai_CurStates = aorai_reject; + else aorai_CurStates = aorai_reject; return; } @@ -338,14 +370,25 @@ int f(int x) behavior buch_state_Si_out: ensures aorai_CurStates ≢ Si; + + behavior buch_state_aorai_reject_out: + ensures aorai_CurStates ≢ aorai_reject; @/ void real_main_pre_func(int c) { + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_real_main; - if (0 == aorai_CurStates && c != 0) aorai_CurStates = S1; - else - if (0 == aorai_CurStates && c == 0) aorai_CurStates = S2; + if (0 == aorai_CurStates) { + if (c != 0) aorai_CurStates = S1; else goto __aorai_label_0; + } + else { + __aorai_label_0: ; + if (0 == aorai_CurStates) + if (c == 0) aorai_CurStates = S2; + else aorai_CurStates = aorai_reject; + else aorai_CurStates = aorai_reject; + } return; } @@ -385,12 +428,17 @@ int f(int x) behavior buch_state_Si_out: ensures aorai_CurStates ≢ Si; + + behavior buch_state_aorai_reject_out: + ensures aorai_CurStates ≢ aorai_reject; @/ void real_main_post_func(int res) { + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_real_main; if (2 == aorai_CurStates) aorai_CurStates = Sf; + else aorai_CurStates = aorai_reject; return; } @@ -446,12 +494,17 @@ int real_main(int c) behavior buch_state_Si_out: ensures aorai_CurStates ≢ Si; + + behavior buch_state_aorai_reject_out: + ensures aorai_CurStates ≢ aorai_reject; @/ void main_pre_func(int c) { + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_main; if (7 == aorai_CurStates) aorai_CurStates = S0; + else aorai_CurStates = aorai_reject; return; } @@ -491,12 +544,17 @@ int real_main(int c) behavior buch_state_Si_out: ensures aorai_CurStates ≢ Si; + + behavior buch_state_aorai_reject_out: + ensures aorai_CurStates ≢ aorai_reject; @/ void main_post_func(int res) { + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_main; if (6 == aorai_CurStates) aorai_CurStates = Sf; + else aorai_CurStates = aorai_reject; return; } diff --git a/src/plugins/aorai/tests/ya/oracle/formals.res.oracle b/src/plugins/aorai/tests/ya/oracle/formals.res.oracle index 52323f131b74b603bc960c19408f6ea80930453f..7e1393cfc29594234a1d203fb323b5cdd1906330 100644 --- a/src/plugins/aorai/tests/ya/oracle/formals.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle/formals.res.oracle @@ -1,9 +1,7 @@ [kernel] Parsing tests/ya/formals.i (no preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_formals_0.i (no preprocessing) /* Generated by Frama-C */ enum aorai_States { - aorai_reject_state = -2, OK = 0, aorai_intermediate_state = 1, aorai_intermediate_state_0 = 2, @@ -28,8 +26,8 @@ enum aorai_OpStatusList { */ /*@ check lemma OK_deterministic_trans{L}: \true; */ -/*@ ghost enum aorai_ListOper aorai_CurOperation = op_main; */ -/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus = aorai_Called; */ +/*@ ghost enum aorai_ListOper aorai_CurOperation; */ +/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus; */ /*@ check lemma main_0_deterministic_trans{L}: ∀ int x; @@ -130,17 +128,26 @@ check lemma aorai_intermediate_state_deterministic_trans{L}: @/ void f_pre_func(int x) { + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_f; - if (7 == aorai_CurStates && x == 1) { - aorai_CurStates = aorai_intermediate_state; - aorai_x = x; - } - else - if (7 == aorai_CurStates && x == 3) { - aorai_CurStates = aorai_intermediate_state_2; - aorai_x_0 = x; + if (7 == aorai_CurStates) { + if (x == 1) { + aorai_CurStates = aorai_intermediate_state; + aorai_x = x; } + else goto __aorai_label; + } + else { + __aorai_label: ; + if (7 == aorai_CurStates) + if (x == 3) { + aorai_CurStates = aorai_intermediate_state_2; + aorai_x_0 = x; + } + else aorai_CurStates = aorai_reject; + else aorai_CurStates = aorai_reject; + } return; } @@ -211,15 +218,33 @@ check lemma aorai_intermediate_state_deterministic_trans{L}: @/ void f_post_func(int res) { + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_f; - if (4 == aorai_CurStates && aorai_x_0 == 3) aorai_CurStates = OK; - else - if (1 == aorai_CurStates && aorai_x == 1) aorai_CurStates = aorai_intermediate_state_0; - else - if (4 == aorai_CurStates && aorai_x_0 != 3) aorai_CurStates = aorai_reject; - else - if (1 == aorai_CurStates && aorai_x != 1) aorai_CurStates = aorai_reject; + if (4 == aorai_CurStates) { + if (aorai_x_0 == 3) aorai_CurStates = OK; else goto __aorai_label_2; + } + else { + __aorai_label_2: ; + if (1 == aorai_CurStates) { + if (aorai_x == 1) aorai_CurStates = aorai_intermediate_state_0; + else goto __aorai_label_1; + } + else { + __aorai_label_1: ; + if (4 == aorai_CurStates) { + if (aorai_x_0 != 3) aorai_CurStates = aorai_reject; + else goto __aorai_label_0; + } + else { + __aorai_label_0: ; + if (1 == aorai_CurStates) + if (aorai_x != 1) aorai_CurStates = aorai_reject; + else aorai_CurStates = aorai_reject; + else aorai_CurStates = aorai_reject; + } + } + } return; } @@ -343,6 +368,7 @@ int f(int x) @/ void g_pre_func(int y) { + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_g; if (0 == aorai_CurStates) aorai_CurStates = OK; @@ -353,6 +379,7 @@ int f(int x) } else if (5 == aorai_CurStates) aorai_CurStates = aorai_reject; + else aorai_CurStates = aorai_reject; return; } @@ -415,15 +442,23 @@ int f(int x) @/ void g_post_func(int res) { + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_g; - if (3 == aorai_CurStates && aorai_y == 2) aorai_CurStates = OK; - else + if (3 == aorai_CurStates) { + if (aorai_y == 2) aorai_CurStates = OK; else goto __aorai_label_3; + } + else { + __aorai_label_3: ; if (0 == aorai_CurStates) aorai_CurStates = OK; else if (5 == aorai_CurStates) aorai_CurStates = aorai_reject; else - if (3 == aorai_CurStates && aorai_y != 2) aorai_CurStates = aorai_reject; + if (3 == aorai_CurStates) + if (aorai_y != 2) aorai_CurStates = aorai_reject; + else aorai_CurStates = aorai_reject; + else aorai_CurStates = aorai_reject; + } return; } @@ -502,9 +537,11 @@ int g(int y) @/ void main_pre_func(void) { + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_main; if (6 == aorai_CurStates) aorai_CurStates = main_0; + else aorai_CurStates = aorai_reject; return; } @@ -552,11 +589,13 @@ int g(int y) @/ void main_post_func(int res) { + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_main; if (0 == aorai_CurStates) aorai_CurStates = OK; else if (5 == aorai_CurStates) aorai_CurStates = aorai_reject; + else aorai_CurStates = aorai_reject; return; } diff --git a/src/plugins/aorai/tests/ya/oracle/generate_assigns_bts1290.res.oracle b/src/plugins/aorai/tests/ya/oracle/generate_assigns_bts1290.res.oracle index 6d8dc5b0067777a8f5ab853f8611e02a22d4925e..6dba7900323402dcd732a3b81604b6ece4b4f1cb 100644 --- a/src/plugins/aorai/tests/ya/oracle/generate_assigns_bts1290.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle/generate_assigns_bts1290.res.oracle @@ -1,5 +1,4 @@ [kernel] Parsing tests/ya/generate_assigns_bts1290.i (no preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_generate_assigns_bts1290_0.i (no preprocessing) /* Generated by Frama-C */ enum aorai_ListOper { @@ -9,8 +8,8 @@ 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 enum aorai_ListOper aorai_CurOperation; */ +/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus; */ /*@ ghost int S = 1; */ /*@ ghost /@ requires 1 ≡ S; @@ -29,6 +28,7 @@ enum aorai_OpStatusList { void main_pre_func(void) { int S_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_main; S_tmp = S; @@ -56,6 +56,7 @@ enum aorai_OpStatusList { void main_post_func(void) { int S_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_main; S_tmp = S; diff --git a/src/plugins/aorai/tests/ya/oracle/hoare_seq.res.oracle b/src/plugins/aorai/tests/ya/oracle/hoare_seq.res.oracle index ea603b7e865bbc3a1982b4512166a5ed8cf48eb7..e12c959752873c4d604e10d17aab160fa76caab2 100644 --- a/src/plugins/aorai/tests/ya/oracle/hoare_seq.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle/hoare_seq.res.oracle @@ -1,5 +1,4 @@ [kernel] Parsing tests/ya/hoare_seq.i (no preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_hoare_seq_0.i (no preprocessing) /* Generated by Frama-C */ enum aorai_ListOper { @@ -10,8 +9,8 @@ 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 enum aorai_ListOper aorai_CurOperation; */ +/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus; */ /*@ ghost int S0 = 1; */ /*@ ghost int Sf = 0; */ /*@ ghost int aorai_intermediate_state = 0; */ @@ -71,6 +70,7 @@ enum aorai_OpStatusList { int aorai_intermediate_state_1_tmp; int aorai_intermediate_state_2_tmp; int aorai_reject_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_f; S0_tmp = S0; @@ -153,6 +153,7 @@ enum aorai_OpStatusList { int aorai_intermediate_state_1_tmp; int aorai_intermediate_state_2_tmp; int aorai_reject_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_f; S0_tmp = S0; @@ -303,6 +304,7 @@ int main_bhv_bhv(int c); */ int aorai_intermediate_state_1_tmp; int aorai_intermediate_state_2_tmp; int aorai_reject_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_main; S0_tmp = S0; @@ -315,10 +317,14 @@ int main_bhv_bhv(int c); */ aorai_reject_tmp = 0; aorai_intermediate_state_2_tmp = 0; aorai_intermediate_state_1_tmp = 0; - if (S0 == 1 && c <= 0) aorai_intermediate_state_0_tmp = 1; + if (S0 == 1) + if (c <= 0) aorai_intermediate_state_0_tmp = 1; + else aorai_intermediate_state_0_tmp = 0; else aorai_intermediate_state_0_tmp = 0; bhv_aux = main_bhv_bhv(c); - if (S0 == 1 && bhv_aux) aorai_intermediate_state_tmp = 1; + if (S0 == 1) + if (bhv_aux) aorai_intermediate_state_tmp = 1; + else aorai_intermediate_state_tmp = 0; else aorai_intermediate_state_tmp = 0; Sf_tmp = 0; S0_tmp = 0; @@ -397,6 +403,7 @@ int main_bhv_bhv(int c); */ int aorai_intermediate_state_1_tmp; int aorai_intermediate_state_2_tmp; int aorai_reject_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_main; S0_tmp = S0; @@ -406,17 +413,25 @@ int main_bhv_bhv(int c); */ aorai_intermediate_state_1_tmp = aorai_intermediate_state_1; aorai_intermediate_state_2_tmp = aorai_intermediate_state_2; aorai_reject_tmp = aorai_reject; - if ((aorai_intermediate_state_0 == 1 || aorai_intermediate_state_2 == 1 && - res != 0) || aorai_reject == 1) - aorai_reject_tmp = 1; - else aorai_reject_tmp = 0; + if (aorai_intermediate_state_0 == 1) aorai_reject_tmp = 1; + else + if (aorai_intermediate_state_2 == 1) { + if (res != 0) aorai_reject_tmp = 1; else goto __aorai_label; + } + else { + __aorai_label: ; + if (aorai_reject == 1) aorai_reject_tmp = 1; + else aorai_reject_tmp = 0; + } aorai_intermediate_state_2_tmp = 0; aorai_intermediate_state_1_tmp = 0; aorai_intermediate_state_0_tmp = 0; aorai_intermediate_state_tmp = 0; - if (aorai_intermediate_state == 1 || aorai_intermediate_state_2 == 1 && - res == 0) Sf_tmp = 1; - else Sf_tmp = 0; + if (aorai_intermediate_state == 1) Sf_tmp = 1; + else + if (aorai_intermediate_state_2 == 1) + if (res == 0) Sf_tmp = 1; else Sf_tmp = 0; + else Sf_tmp = 0; S0_tmp = 0; S0 = S0_tmp; Sf = Sf_tmp; diff --git a/src/plugins/aorai/tests/ya/oracle/incorrect.res.oracle b/src/plugins/aorai/tests/ya/oracle/incorrect.res.oracle index ccfb249eba5eb4f3b759bba09f44a869117caa21..7c674204cb3013c0438b059705c8952bbd3c3998 100644 --- a/src/plugins/aorai/tests/ya/oracle/incorrect.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle/incorrect.res.oracle @@ -1,11 +1,10 @@ [kernel] Parsing tests/ya/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 [kernel] Parsing TMPDIR/aorai_incorrect_0.i (no preprocessing) /* Generated by Frama-C */ enum aorai_States { - aorai_reject_state = -2, - s0 = 0 + aorai_reject = 0, + s0 = 1 }; enum aorai_ListOper { op_f = 1, @@ -17,10 +16,12 @@ enum aorai_OpStatusList { }; /*@ check lemma s0_deterministic_trans{L}: \true; */ +/*@ check lemma aorai_reject_deterministic_trans{L}: \true; + */ int f(void); -/*@ ghost enum aorai_ListOper aorai_CurOperation = op_main; */ -/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus = aorai_Called; */ +/*@ ghost enum aorai_ListOper aorai_CurOperation; */ +/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus; */ /*@ ghost int aorai_CurStates = s0; */ /*@ ghost /@ requires \false; @@ -28,13 +29,18 @@ int f(void); ensures aorai_CurOperation ≡ op_main; assigns aorai_CurOpStatus, aorai_CurOperation, aorai_CurStates; + behavior buch_state_aorai_reject_out: + ensures aorai_CurStates ≢ aorai_reject; + behavior buch_state_s0_out: ensures aorai_CurStates ≢ s0; @/ void main_pre_func(void) { + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_main; + aorai_CurStates = aorai_reject; return; } @@ -46,13 +52,18 @@ int f(void); ensures aorai_CurOperation ≡ op_main; assigns aorai_CurOpStatus, aorai_CurOperation, aorai_CurStates; + behavior buch_state_aorai_reject_out: + ensures aorai_CurStates ≢ aorai_reject; + behavior buch_state_s0_out: ensures aorai_CurStates ≢ s0; @/ void main_post_func(int res) { + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_main; + aorai_CurStates = aorai_reject; return; } diff --git a/src/plugins/aorai/tests/ya/oracle/logical_operators.res.oracle b/src/plugins/aorai/tests/ya/oracle/logical_operators.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..ceb4a227b1d51c000271a29f18529f2f427b3e0b --- /dev/null +++ b/src/plugins/aorai/tests/ya/oracle/logical_operators.res.oracle @@ -0,0 +1,164 @@ +[kernel] Parsing tests/ya/logical_operators.i (no preprocessing) +[kernel] Parsing TMPDIR/aorai_logical_operators_0.i (no preprocessing) +/* Generated by Frama-C */ +enum aorai_ListOper { + op_f = 1, + op_main = 0 +}; +enum aorai_OpStatusList { + aorai_Terminated = 1, + aorai_Called = 0 +}; +/*@ ghost enum aorai_ListOper aorai_CurOperation; */ +/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus; */ +/*@ ghost int I = 1; */ +/*@ ghost + /@ requires 1 ≡ I; + requires 1 ≡ I ⇒ x ≡ 1 ∨ x ≢ 1; + ensures aorai_CurOpStatus ≡ aorai_Called; + ensures aorai_CurOperation ≡ op_f; + assigns aorai_CurOpStatus, aorai_CurOperation, I; + + behavior buch_state_I_in: + assumes 1 ≡ I ∧ (x ≡ 1 ∨ x ≢ 1); + ensures 1 ≡ I; + + behavior buch_state_I_out: + assumes 0 ≡ I ∨ (¬(x ≡ 1) ∧ ¬(x ≢ 1)); + ensures 0 ≡ I; + @/ + void f_pre_func(int x) + { + int I_tmp; + /@ slevel full; @/ + aorai_CurOpStatus = aorai_Called; + aorai_CurOperation = op_f; + I_tmp = I; + if (I == 1) { + if (x != 1) I_tmp = 1; else goto __aorai_label; + } + else { + __aorai_label: ; + if (I == 1) + if (x == 1) I_tmp = 1; else I_tmp = 0; + else I_tmp = 0; + } + I = I_tmp; + return; + } + +*/ + +/*@ ghost + /@ requires 1 ≡ I; + ensures aorai_CurOpStatus ≡ aorai_Terminated; + ensures aorai_CurOperation ≡ op_f; + assigns aorai_CurOpStatus, aorai_CurOperation, I; + + behavior buch_state_I_in: + assumes 1 ≡ I; + ensures 1 ≡ I; + + behavior buch_state_I_out: + assumes 0 ≡ I; + ensures 0 ≡ I; + @/ + void f_post_func(void) + { + int I_tmp; + /@ slevel full; @/ + aorai_CurOpStatus = aorai_Terminated; + aorai_CurOperation = op_f; + I_tmp = I; + if (I == 1) I_tmp = 1; else I_tmp = 0; + I = I_tmp; + return; + } + +*/ + +/*@ requires 1 ≡ I; + requires 1 ≡ I ⇒ x ≡ 1 ∨ x ≢ 1; + + behavior Buchi_property_behavior: + ensures \true; + ensures 1 ≡ I; + */ +void f(int x) +{ + /*@ ghost f_pre_func(x); */ + /*@ ghost f_post_func(); */ + return; +} + +/*@ ghost + /@ requires 1 ≡ I; + ensures aorai_CurOpStatus ≡ aorai_Called; + ensures aorai_CurOperation ≡ op_main; + assigns aorai_CurOpStatus, aorai_CurOperation, I; + + behavior buch_state_I_in: + assumes 1 ≡ I; + ensures 1 ≡ I; + + behavior buch_state_I_out: + assumes 0 ≡ I; + ensures 0 ≡ I; + @/ + void main_pre_func(int x) + { + int I_tmp; + /@ slevel full; @/ + aorai_CurOpStatus = aorai_Called; + aorai_CurOperation = op_main; + I_tmp = I; + if (I == 1) I_tmp = 1; else I_tmp = 0; + I = I_tmp; + return; + } + +*/ + +/*@ ghost + /@ requires 1 ≡ I; + ensures aorai_CurOpStatus ≡ aorai_Terminated; + ensures aorai_CurOperation ≡ op_main; + assigns aorai_CurOpStatus, aorai_CurOperation, I; + + behavior buch_state_I_in: + assumes 1 ≡ I; + ensures 1 ≡ I; + + behavior buch_state_I_out: + assumes 0 ≡ I; + ensures 0 ≡ I; + @/ + void main_post_func(void) + { + int I_tmp; + /@ slevel full; @/ + aorai_CurOpStatus = aorai_Terminated; + aorai_CurOperation = op_main; + I_tmp = I; + if (I == 1) I_tmp = 1; else I_tmp = 0; + I = I_tmp; + return; + } + +*/ + +/*@ requires 1 ≡ I; + + behavior Buchi_property_behavior: + ensures \true; + ensures 1 ≡ I; + */ +void main(int x) +{ + /*@ ghost main_pre_func(x); */ + f(x); + /*@ ghost main_post_func(); */ + return; +} + + diff --git a/src/plugins/aorai/tests/ya/oracle/loop_bts1050.res.oracle b/src/plugins/aorai/tests/ya/oracle/loop_bts1050.res.oracle index ccc98a41d83d4339cb70a182bed8396973f9d901..a841b2ae6cb354b8356ef6085aed341366e607fb 100644 --- a/src/plugins/aorai/tests/ya/oracle/loop_bts1050.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle/loop_bts1050.res.oracle @@ -1,5 +1,4 @@ [kernel] Parsing tests/ya/loop_bts1050.i (no preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_loop_bts1050_0.i (no preprocessing) /* Generated by Frama-C */ enum aorai_ListOper { @@ -11,8 +10,8 @@ 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 enum aorai_ListOper aorai_CurOperation; */ +/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus; */ /*@ ghost int S0 = 1; */ /*@ ghost int Sf = 0; */ /*@ ghost int aorai_intermediate_state = 0; */ @@ -84,6 +83,7 @@ enum aorai_OpStatusList { int aorai_intermediate_state_1_tmp; int aorai_intermediate_state_2_tmp; int aorai_intermediate_state_3_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_f; S0_tmp = S0; @@ -95,10 +95,14 @@ enum aorai_OpStatusList { aorai_intermediate_state_3_tmp = aorai_intermediate_state_3; aorai_intermediate_state_3_tmp = 0; aorai_intermediate_state_2_tmp = 0; - if (aorai_intermediate_state == 1 || aorai_intermediate_state_0 == 1 && - aorai_counter < 5) aorai_intermediate_state_1_tmp = 1; - else aorai_intermediate_state_1_tmp = 0; - if (aorai_intermediate_state_0 == 1 && aorai_counter < 5) aorai_counter ++; + if (aorai_intermediate_state == 1) aorai_intermediate_state_1_tmp = 1; + else + if (aorai_intermediate_state_0 == 1) + if (aorai_counter < 5) aorai_intermediate_state_1_tmp = 1; + else aorai_intermediate_state_1_tmp = 0; + else aorai_intermediate_state_1_tmp = 0; + if (aorai_intermediate_state_0 == 1) + if (aorai_counter < 5) aorai_counter ++; if (aorai_intermediate_state == 1) aorai_counter = 1; aorai_intermediate_state_0_tmp = 0; aorai_intermediate_state_tmp = 0; @@ -164,6 +168,7 @@ enum aorai_OpStatusList { int aorai_intermediate_state_1_tmp; int aorai_intermediate_state_2_tmp; int aorai_intermediate_state_3_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_f; S0_tmp = S0; @@ -274,6 +279,7 @@ void f(void) int aorai_intermediate_state_1_tmp; int aorai_intermediate_state_2_tmp; int aorai_intermediate_state_3_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_g; S0_tmp = S0; @@ -351,6 +357,7 @@ void f(void) int aorai_intermediate_state_1_tmp; int aorai_intermediate_state_2_tmp; int aorai_intermediate_state_3_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_g; S0_tmp = S0; @@ -447,6 +454,7 @@ void g(void) int aorai_intermediate_state_1_tmp; int aorai_intermediate_state_2_tmp; int aorai_intermediate_state_3_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_main; S0_tmp = S0; @@ -525,6 +533,7 @@ void g(void) int aorai_intermediate_state_1_tmp; int aorai_intermediate_state_2_tmp; int aorai_intermediate_state_3_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_main; S0_tmp = S0; @@ -539,9 +548,9 @@ void g(void) aorai_intermediate_state_1_tmp = 0; aorai_intermediate_state_0_tmp = 0; aorai_intermediate_state_tmp = 0; - if (aorai_intermediate_state == 1 || aorai_intermediate_state_0 == 1) - Sf_tmp = 1; - else Sf_tmp = 0; + if (aorai_intermediate_state == 1) Sf_tmp = 1; + else + if (aorai_intermediate_state_0 == 1) Sf_tmp = 1; else Sf_tmp = 0; S0_tmp = 0; S0 = S0_tmp; Sf = Sf_tmp; diff --git a/src/plugins/aorai/tests/ya/oracle/metavariables-incompatible.res.oracle b/src/plugins/aorai/tests/ya/oracle/metavariables-incompatible.res.oracle index 57c2d7eed1ca61046277d1cbf5d005a9fde10a52..a682bee8a270311ec22d7a3b33999a452ac306bf 100644 --- a/src/plugins/aorai/tests/ya/oracle/metavariables-incompatible.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle/metavariables-incompatible.res.oracle @@ -1,4 +1,3 @@ [kernel] Parsing tests/ya/metavariables-incompatible.i (no preprocessing) -[aorai] Welcome to the Aorai plugin -[aorai] User Error: The use of metavariables is incompatible with non-deterministic automata, such as automa using extended transitions. +[aorai] User Error: The use of metavariables is incompatible with non-deterministic automata, such as automata using extended transitions. [kernel] Plug-in aorai aborted: invalid user input. diff --git a/src/plugins/aorai/tests/ya/oracle/metavariables-right.res.oracle b/src/plugins/aorai/tests/ya/oracle/metavariables-right.res.oracle index 39843d1a28ef389cbcc34ab6095bff3f80d0ec8a..e0f52649ef1a85e9ed3156cee2d3546c0a0834b6 100644 --- a/src/plugins/aorai/tests/ya/oracle/metavariables-right.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle/metavariables-right.res.oracle @@ -1,18 +1,17 @@ [kernel] Parsing tests/ya/metavariables-right.i (no preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_metavariables-right_0.i (no preprocessing) /* Generated by Frama-C */ enum aorai_States { - aorai_reject_state = -2, a = 0, - b = 1, - c = 2, - d = 3, - e = 4, - f_0 = 5, - g_0 = 6, - h_0 = 7, - i_0 = 8 + aorai_reject = 1, + b = 2, + c = 3, + d = 4, + e = 5, + f_0 = 6, + g_0 = 7, + h_0 = 8, + i_0 = 9 }; enum aorai_ListOper { op_f = 4, @@ -37,10 +36,12 @@ enum aorai_OpStatusList { */ /*@ check lemma c_deterministic_trans{L}: \true; */ +/*@ check lemma aorai_reject_deterministic_trans{L}: \true; + */ /*@ check lemma a_deterministic_trans{L}: \true; */ -/*@ ghost enum aorai_ListOper aorai_CurOperation = op_main; */ -/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus = aorai_Called; */ +/*@ ghost enum aorai_ListOper aorai_CurOperation; */ +/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus; */ /*@ check lemma b_deterministic_trans{L}: ¬(\at(aorai_CurOperation,L) ≡ op_g ∧ @@ -68,6 +69,9 @@ check lemma e_deterministic_trans{L}: behavior buch_state_a_out: ensures aorai_CurStates ≢ a; + behavior buch_state_aorai_reject_out: + ensures aorai_CurStates ≢ aorai_reject; + behavior buch_state_b_out: ensures aorai_CurStates ≢ b; @@ -109,13 +113,15 @@ check lemma e_deterministic_trans{L}: @/ void f_pre_func(int x) { + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_f; - if (1 == aorai_CurStates) { + if (2 == aorai_CurStates) { aorai_CurStates = c; aorai_x = x; aorai_y = aorai_x; } + else aorai_CurStates = aorai_reject; return; } @@ -130,6 +136,9 @@ check lemma e_deterministic_trans{L}: behavior buch_state_a_out: ensures aorai_CurStates ≢ a; + behavior buch_state_aorai_reject_out: + ensures aorai_CurStates ≢ aorai_reject; + behavior buch_state_b_out: ensures aorai_CurStates ≢ b; @@ -161,9 +170,11 @@ check lemma e_deterministic_trans{L}: @/ void f_post_func(void) { + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_f; - if (2 == aorai_CurStates) aorai_CurStates = e; + if (3 == aorai_CurStates) aorai_CurStates = e; + else aorai_CurStates = aorai_reject; return; } @@ -196,6 +207,9 @@ void f(int x) behavior buch_state_a_out: ensures aorai_CurStates ≢ a; + behavior buch_state_aorai_reject_out: + ensures aorai_CurStates ≢ aorai_reject; + behavior buch_state_b_out: ensures aorai_CurStates ≢ b; @@ -227,9 +241,11 @@ void f(int x) @/ void g_pre_func(void) { + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_g; - if (1 == aorai_CurStates) aorai_CurStates = d; + if (2 == aorai_CurStates) aorai_CurStates = d; + else aorai_CurStates = aorai_reject; return; } @@ -244,6 +260,9 @@ void f(int x) behavior buch_state_a_out: ensures aorai_CurStates ≢ a; + behavior buch_state_aorai_reject_out: + ensures aorai_CurStates ≢ aorai_reject; + behavior buch_state_b_out: ensures aorai_CurStates ≢ b; @@ -275,9 +294,11 @@ void f(int x) @/ void g_post_func(void) { + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_g; - if (3 == aorai_CurStates) aorai_CurStates = g_0; + if (4 == aorai_CurStates) aorai_CurStates = g_0; + else aorai_CurStates = aorai_reject; return; } @@ -305,6 +326,9 @@ void g(void) behavior buch_state_a_out: ensures aorai_CurStates ≢ a; + behavior buch_state_aorai_reject_out: + ensures aorai_CurStates ≢ aorai_reject; + behavior buch_state_b_out: ensures aorai_CurStates ≢ b; @@ -336,9 +360,13 @@ void g(void) @/ void h_pre_func(int x) { + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_h; - if (4 == aorai_CurStates && aorai_x > 0) aorai_CurStates = f_0; + if (5 == aorai_CurStates) + if (aorai_x > 0) aorai_CurStates = f_0; + else aorai_CurStates = aorai_reject; + else aorai_CurStates = aorai_reject; return; } @@ -353,6 +381,9 @@ void g(void) behavior buch_state_a_out: ensures aorai_CurStates ≢ a; + behavior buch_state_aorai_reject_out: + ensures aorai_CurStates ≢ aorai_reject; + behavior buch_state_b_out: ensures aorai_CurStates ≢ b; @@ -384,9 +415,11 @@ void g(void) @/ void h_post_func(void) { + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_h; - if (5 == aorai_CurStates) aorai_CurStates = g_0; + if (6 == aorai_CurStates) aorai_CurStates = g_0; + else aorai_CurStates = aorai_reject; return; } @@ -414,6 +447,9 @@ void h(int x) behavior buch_state_a_out: ensures aorai_CurStates ≢ a; + behavior buch_state_aorai_reject_out: + ensures aorai_CurStates ≢ aorai_reject; + behavior buch_state_b_out: ensures aorai_CurStates ≢ b; @@ -445,9 +481,11 @@ void h(int x) @/ void i_pre_func(void) { + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_i; - if (6 == aorai_CurStates) aorai_CurStates = h_0; + if (7 == aorai_CurStates) aorai_CurStates = h_0; + else aorai_CurStates = aorai_reject; return; } @@ -463,6 +501,9 @@ void h(int x) behavior buch_state_a_out: ensures aorai_CurStates ≢ a; + behavior buch_state_aorai_reject_out: + ensures aorai_CurStates ≢ aorai_reject; + behavior buch_state_b_out: ensures aorai_CurStates ≢ b; @@ -504,13 +545,15 @@ void h(int x) @/ void i_post_func(void) { + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_i; - if (7 == aorai_CurStates) { + if (8 == aorai_CurStates) { aorai_CurStates = e; aorai_y = 0; aorai_x = 1; } + else aorai_CurStates = aorai_reject; return; } @@ -543,6 +586,9 @@ void i(void) behavior buch_state_a_out: ensures aorai_CurStates ≢ a; + behavior buch_state_aorai_reject_out: + ensures aorai_CurStates ≢ aorai_reject; + behavior buch_state_b_in: assumes aorai_CurStates ≡ a; ensures aorai_CurStates ≡ b; @@ -574,9 +620,11 @@ void i(void) @/ void main_pre_func(int t) { + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_main; if (0 == aorai_CurStates) aorai_CurStates = b; + else aorai_CurStates = aorai_reject; return; } @@ -591,6 +639,9 @@ void i(void) behavior buch_state_a_out: ensures aorai_CurStates ≢ a; + behavior buch_state_aorai_reject_out: + ensures aorai_CurStates ≢ aorai_reject; + behavior buch_state_b_out: ensures aorai_CurStates ≢ b; @@ -622,9 +673,11 @@ void i(void) @/ void main_post_func(void) { + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_main; - if (4 == aorai_CurStates) aorai_CurStates = i_0; + if (5 == aorai_CurStates) aorai_CurStates = i_0; + else aorai_CurStates = aorai_reject; return; } @@ -654,6 +707,7 @@ void main(int t) /*@ ghost aorai_Loop_Init_15 = 1; */ aorai_loop_15: /*@ loop invariant Aorai: aorai_CurStates ≢ a; + loop invariant Aorai: aorai_CurStates ≢ aorai_reject; loop invariant Aorai: aorai_CurStates ≢ b; loop invariant Aorai: aorai_CurStates ≢ c; loop invariant Aorai: aorai_CurStates ≢ d; diff --git a/src/plugins/aorai/tests/ya/oracle/metavariables-wrong.res.oracle b/src/plugins/aorai/tests/ya/oracle/metavariables-wrong.res.oracle index 44c1487fcf7693e627a38f17cea95e7cd8e7b492..7aca51a51b2a805049c34693029c51f4dbd8a369 100644 --- a/src/plugins/aorai/tests/ya/oracle/metavariables-wrong.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle/metavariables-wrong.res.oracle @@ -1,5 +1,4 @@ [kernel] Parsing tests/ya/metavariables-wrong.i (no preprocessing) -[aorai] Welcome to the Aorai plugin [aorai] User Error: The metavariables aorai_x may not be initialized before the transition from e to f_0: { (Call(h)) and ((aorai_x) > (0)) } [kernel] Plug-in aorai aborted: invalid user input. diff --git a/src/plugins/aorai/tests/ya/oracle/monostate.res.oracle b/src/plugins/aorai/tests/ya/oracle/monostate.res.oracle index 86ceb3e991278c964faf62706c167f6710087817..9ee345cafbfbc284e6862d953d00e7412e1773f6 100644 --- a/src/plugins/aorai/tests/ya/oracle/monostate.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle/monostate.res.oracle @@ -1,12 +1,10 @@ [kernel] Parsing tests/ya/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/ya/monostate.i:8: Warning: Call to main not conforming to automaton (pre-cond). Assuming it is on a dead path [kernel] Parsing TMPDIR/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 @@ -21,8 +19,8 @@ enum aorai_OpStatusList { }; /*@ check lemma aorai_reject_deterministic_trans{L}: \true; */ -/*@ ghost enum aorai_ListOper aorai_CurOperation = op_main; */ -/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus = aorai_Called; */ +/*@ ghost enum aorai_ListOper aorai_CurOperation; */ +/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus; */ /*@ check lemma aorai_intermediate_state_deterministic_trans{L}: ¬(\at(aorai_CurOperation,L) ≡ op_main ∧ @@ -64,11 +62,13 @@ check lemma Init_deterministic_trans{L}: @/ void f_pre_func(void) { + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_f; if (2 == aorai_CurStates) aorai_CurStates = aorai_reject; else if (1 == aorai_CurStates) aorai_CurStates = aorai_reject; + else aorai_CurStates = aorai_reject; return; } @@ -96,9 +96,11 @@ check lemma Init_deterministic_trans{L}: @/ void f_post_func(void) { + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_f; if (2 == aorai_CurStates) aorai_CurStates = aorai_reject; + else aorai_CurStates = aorai_reject; return; } @@ -139,8 +141,10 @@ void f(void) @/ void main_pre_func(void) { + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_main; + aorai_CurStates = aorai_reject; return; } @@ -163,8 +167,10 @@ void f(void) @/ void main_post_func(void) { + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_main; + aorai_CurStates = aorai_reject; return; } diff --git a/src/plugins/aorai/tests/ya/oracle/not_prm.res.oracle b/src/plugins/aorai/tests/ya/oracle/not_prm.res.oracle index 1d964840b06fc2869b27dc1f9ff1115c052861fc..e730bc38477b677a248a6e25f010b818ccb37633 100644 --- a/src/plugins/aorai/tests/ya/oracle/not_prm.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle/not_prm.res.oracle @@ -1,5 +1,4 @@ [kernel] Parsing tests/ya/not_prm.i (no preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_not_prm_0.i (no preprocessing) /* Generated by Frama-C */ enum aorai_ListOper { @@ -9,8 +8,8 @@ enum aorai_OpStatusList { aorai_Terminated = 1, aorai_Called = 0 }; -/*@ ghost enum aorai_ListOper aorai_CurOperation = op_f; */ -/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus = aorai_Called; */ +/*@ ghost enum aorai_ListOper aorai_CurOperation; */ +/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus; */ /*@ ghost int S0 = 1; */ /*@ ghost int Sf = 0; */ /*@ ghost @@ -35,11 +34,14 @@ enum aorai_OpStatusList { { int S0_tmp; int Sf_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_f; S0_tmp = S0; Sf_tmp = Sf; - if (S0 == 1 && x >= 4) Sf_tmp = 1; else Sf_tmp = 0; + if (S0 == 1) + if (x >= 4) Sf_tmp = 1; else Sf_tmp = 0; + else Sf_tmp = 0; S0_tmp = 0; S0 = S0_tmp; Sf = Sf_tmp; @@ -69,6 +71,7 @@ enum aorai_OpStatusList { { int S0_tmp; int Sf_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_f; S0_tmp = S0; diff --git a/src/plugins/aorai/tests/ya/oracle/other.res.oracle b/src/plugins/aorai/tests/ya/oracle/other.res.oracle index 8f230ecadb224c890456d0ef3ef0415fa9db4e9a..2e3147482222b4e9f67b5b2e832507fa156434cc 100644 --- a/src/plugins/aorai/tests/ya/oracle/other.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle/other.res.oracle @@ -1,5 +1,4 @@ [kernel] Parsing tests/ya/other.c (with preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_other_0.i (no preprocessing) /* Generated by Frama-C */ enum aorai_ListOper { @@ -12,8 +11,8 @@ enum aorai_OpStatusList { aorai_Called = 0 }; int x = 0; -/*@ ghost enum aorai_ListOper aorai_CurOperation = op_main; */ -/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus = aorai_Called; */ +/*@ ghost enum aorai_ListOper aorai_CurOperation; */ +/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus; */ /*@ ghost int init = 1; */ /*@ ghost int last = 0; */ /*@ ghost int step1 = 0; */ @@ -60,18 +59,48 @@ int x = 0; int init_tmp; int last_tmp; int step1_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_f; init_tmp = init; last_tmp = last; step1_tmp = step1; - if ((init == 1 && x == 3 || last == 1 && x == 3) || step1 == 1 && x != 4) - step1_tmp = 1; - else step1_tmp = 0; - if (last == 1 && (x != 4 && x != 3) || step1 == 1 && x == 4) last_tmp = 1; - else last_tmp = 0; - if (init == 1 && x != 3 || last == 1 && x == 4) init_tmp = 1; - else init_tmp = 0; + if (init == 1) { + if (x == 3) step1_tmp = 1; else goto __aorai_label_2; + } + else { + __aorai_label_2: ; + if (last == 1) { + if (x == 3) step1_tmp = 1; else goto __aorai_label_1; + } + else { + __aorai_label_1: ; + if (step1 == 1) + if (x != 4) step1_tmp = 1; else step1_tmp = 0; + else step1_tmp = 0; + } + } + if (last == 1) { + if (x != 4) { + if (x != 3) last_tmp = 1; else goto __aorai_label_0; + } + else goto __aorai_label_0; + } + else { + __aorai_label_0: ; + if (step1 == 1) + if (x == 4) last_tmp = 1; else last_tmp = 0; + else last_tmp = 0; + } + if (init == 1) { + if (x != 3) init_tmp = 1; else goto __aorai_label; + } + else { + __aorai_label: ; + if (last == 1) + if (x == 4) init_tmp = 1; else init_tmp = 0; + else init_tmp = 0; + } init = init_tmp; last = last_tmp; step1 = step1_tmp; @@ -123,18 +152,48 @@ int x = 0; int init_tmp; int last_tmp; int step1_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_f; init_tmp = init; last_tmp = last; step1_tmp = step1; - if ((init == 1 && x == 3 || last == 1 && x == 3) || step1 == 1 && x != 4) - step1_tmp = 1; - else step1_tmp = 0; - if (last == 1 && (x != 4 && x != 3) || step1 == 1 && x == 4) last_tmp = 1; - else last_tmp = 0; - if (init == 1 && x != 3 || last == 1 && x == 4) init_tmp = 1; - else init_tmp = 0; + if (init == 1) { + if (x == 3) step1_tmp = 1; else goto __aorai_label_6; + } + else { + __aorai_label_6: ; + if (last == 1) { + if (x == 3) step1_tmp = 1; else goto __aorai_label_5; + } + else { + __aorai_label_5: ; + if (step1 == 1) + if (x != 4) step1_tmp = 1; else step1_tmp = 0; + else step1_tmp = 0; + } + } + if (last == 1) { + if (x != 4) { + if (x != 3) last_tmp = 1; else goto __aorai_label_4; + } + else goto __aorai_label_4; + } + else { + __aorai_label_4: ; + if (step1 == 1) + if (x == 4) last_tmp = 1; else last_tmp = 0; + else last_tmp = 0; + } + if (init == 1) { + if (x != 3) init_tmp = 1; else goto __aorai_label_3; + } + else { + __aorai_label_3: ; + if (last == 1) + if (x == 4) init_tmp = 1; else init_tmp = 0; + else init_tmp = 0; + } init = init_tmp; last = last_tmp; step1 = step1_tmp; @@ -250,18 +309,48 @@ void f(void) int init_tmp; int last_tmp; int step1_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_g; init_tmp = init; last_tmp = last; step1_tmp = step1; - if ((init == 1 && x == 3 || last == 1 && x == 3) || step1 == 1 && x != 4) - step1_tmp = 1; - else step1_tmp = 0; - if (last == 1 && (x != 4 && x != 3) || step1 == 1 && x == 4) last_tmp = 1; - else last_tmp = 0; - if (init == 1 && x != 3 || last == 1 && x == 4) init_tmp = 1; - else init_tmp = 0; + if (init == 1) { + if (x == 3) step1_tmp = 1; else goto __aorai_label_10; + } + else { + __aorai_label_10: ; + if (last == 1) { + if (x == 3) step1_tmp = 1; else goto __aorai_label_9; + } + else { + __aorai_label_9: ; + if (step1 == 1) + if (x != 4) step1_tmp = 1; else step1_tmp = 0; + else step1_tmp = 0; + } + } + if (last == 1) { + if (x != 4) { + if (x != 3) last_tmp = 1; else goto __aorai_label_8; + } + else goto __aorai_label_8; + } + else { + __aorai_label_8: ; + if (step1 == 1) + if (x == 4) last_tmp = 1; else last_tmp = 0; + else last_tmp = 0; + } + if (init == 1) { + if (x != 3) init_tmp = 1; else goto __aorai_label_7; + } + else { + __aorai_label_7: ; + if (last == 1) + if (x == 4) init_tmp = 1; else init_tmp = 0; + else init_tmp = 0; + } init = init_tmp; last = last_tmp; step1 = step1_tmp; @@ -313,18 +402,48 @@ void f(void) int init_tmp; int last_tmp; int step1_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_g; init_tmp = init; last_tmp = last; step1_tmp = step1; - if ((init == 1 && x == 3 || last == 1 && x == 3) || step1 == 1 && x != 4) - step1_tmp = 1; - else step1_tmp = 0; - if (last == 1 && (x != 4 && x != 3) || step1 == 1 && x == 4) last_tmp = 1; - else last_tmp = 0; - if (init == 1 && x != 3 || last == 1 && x == 4) init_tmp = 1; - else init_tmp = 0; + if (init == 1) { + if (x == 3) step1_tmp = 1; else goto __aorai_label_14; + } + else { + __aorai_label_14: ; + if (last == 1) { + if (x == 3) step1_tmp = 1; else goto __aorai_label_13; + } + else { + __aorai_label_13: ; + if (step1 == 1) + if (x != 4) step1_tmp = 1; else step1_tmp = 0; + else step1_tmp = 0; + } + } + if (last == 1) { + if (x != 4) { + if (x != 3) last_tmp = 1; else goto __aorai_label_12; + } + else goto __aorai_label_12; + } + else { + __aorai_label_12: ; + if (step1 == 1) + if (x == 4) last_tmp = 1; else last_tmp = 0; + else last_tmp = 0; + } + if (init == 1) { + if (x != 3) init_tmp = 1; else goto __aorai_label_11; + } + else { + __aorai_label_11: ; + if (last == 1) + if (x == 4) init_tmp = 1; else init_tmp = 0; + else init_tmp = 0; + } init = init_tmp; last = last_tmp; step1 = step1_tmp; @@ -427,14 +546,19 @@ void g(void) int init_tmp; int last_tmp; int step1_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_main; init_tmp = init; last_tmp = last; step1_tmp = step1; - if (init == 1 && x == 3) step1_tmp = 1; else step1_tmp = 0; + if (init == 1) + if (x == 3) step1_tmp = 1; else step1_tmp = 0; + else step1_tmp = 0; last_tmp = 0; - if (init == 1 && x != 3) init_tmp = 1; else init_tmp = 0; + if (init == 1) + if (x != 3) init_tmp = 1; else init_tmp = 0; + else init_tmp = 0; init = init_tmp; last = last_tmp; step1 = step1_tmp; @@ -486,18 +610,48 @@ void g(void) int init_tmp; int last_tmp; int step1_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_main; init_tmp = init; last_tmp = last; step1_tmp = step1; - if ((init == 1 && x == 3 || last == 1 && x == 3) || step1 == 1 && x != 4) - step1_tmp = 1; - else step1_tmp = 0; - if (last == 1 && (x != 4 && x != 3) || step1 == 1 && x == 4) last_tmp = 1; - else last_tmp = 0; - if (init == 1 && x != 3 || last == 1 && x == 4) init_tmp = 1; - else init_tmp = 0; + if (init == 1) { + if (x == 3) step1_tmp = 1; else goto __aorai_label_18; + } + else { + __aorai_label_18: ; + if (last == 1) { + if (x == 3) step1_tmp = 1; else goto __aorai_label_17; + } + else { + __aorai_label_17: ; + if (step1 == 1) + if (x != 4) step1_tmp = 1; else step1_tmp = 0; + else step1_tmp = 0; + } + } + if (last == 1) { + if (x != 4) { + if (x != 3) last_tmp = 1; else goto __aorai_label_16; + } + else goto __aorai_label_16; + } + else { + __aorai_label_16: ; + if (step1 == 1) + if (x == 4) last_tmp = 1; else last_tmp = 0; + else last_tmp = 0; + } + if (init == 1) { + if (x != 3) init_tmp = 1; else goto __aorai_label_15; + } + else { + __aorai_label_15: ; + if (last == 1) + if (x == 4) init_tmp = 1; else init_tmp = 0; + else init_tmp = 0; + } init = init_tmp; last = last_tmp; step1 = step1_tmp; diff --git a/src/plugins/aorai/tests/ya/oracle/saveload.res.0.log b/src/plugins/aorai/tests/ya/oracle/saveload.res.0.log new file mode 100644 index 0000000000000000000000000000000000000000..ecf6196e2f117c7fcb530834c3366a917c0c8109 --- /dev/null +++ b/src/plugins/aorai/tests/ya/oracle/saveload.res.0.log @@ -0,0 +1 @@ +[kernel] Parsing tests/ya/saveload.i (no preprocessing) diff --git a/src/plugins/aorai/tests/ya/oracle/saveload.res.1.log b/src/plugins/aorai/tests/ya/oracle/saveload.res.1.log new file mode 100644 index 0000000000000000000000000000000000000000..8c7beb3ffd181c92a0cebea295fe4cc7db971e47 --- /dev/null +++ b/src/plugins/aorai/tests/ya/oracle/saveload.res.1.log @@ -0,0 +1,53 @@ +[kernel:annot:missing-spec] tests/ya/saveload.i:12: Warning: + Neither code nor specification for function Frama_C_show_aorai_state, generating default assigns from the prototype +[eva] Analyzing a complete application starting at main +[eva] Computing initial state +[eva] Initial state computed +[eva:initial-state] Values of globals at initialization + aorai_CurOperation ∈ {0} + aorai_CurOpStatus ∈ {0} + aorai_CurStates ∈ {2} +[aorai] tests/ya/saveload.i:14: accept +[eva] done for function main +[eva] ====== VALUES COMPUTED ====== +[eva:final-states] Values at end of function f_post_func: + aorai_CurOperation ∈ {1} + aorai_CurOpStatus ∈ {1} + aorai_CurStates ∈ {0} +[eva:final-states] Values at end of function f_pre_func: + aorai_CurOperation ∈ {1} + aorai_CurOpStatus ∈ {0} + aorai_CurStates ∈ {0} +[eva:final-states] Values at end of function f: + aorai_CurOperation ∈ {1} + aorai_CurOpStatus ∈ {1} + aorai_CurStates ∈ {0} +[eva:final-states] Values at end of function main_post_func: + aorai_CurOperation ∈ {0} + aorai_CurOpStatus ∈ {1} + aorai_CurStates ∈ {0} +[eva:final-states] Values at end of function main_pre_func: + aorai_CurOperation ∈ {0} + aorai_CurOpStatus ∈ {0} + aorai_CurStates ∈ {0} +[eva:final-states] Values at end of function main: + __retres ∈ {0} + aorai_CurOperation ∈ {0} + aorai_CurOpStatus ∈ {1} + aorai_CurStates ∈ {0} +[eva:summary] ====== ANALYSIS SUMMARY ====== + ---------------------------------------------------------------------------- + 6 functions analyzed (out of 6): 100% coverage. + In these functions, 31 statements reached (out of 35): 88% coverage. + ---------------------------------------------------------------------------- + Some errors and warnings have been raised during the analysis: + by the Eva analyzer: 0 errors 0 warnings + by the Frama-C kernel: 0 errors 1 warning + ---------------------------------------------------------------------------- + 0 alarms generated by the analysis. + ---------------------------------------------------------------------------- + Evaluation of the logical properties reached by the analysis: + Assertions 0 valid 0 unknown 0 invalid 0 total + Preconditions 5 valid 0 unknown 0 invalid 5 total + 100% of the logical properties reached have been proven. + ---------------------------------------------------------------------------- diff --git a/src/plugins/aorai/tests/ya/oracle/seq.res.oracle b/src/plugins/aorai/tests/ya/oracle/seq.res.oracle index 506dca121a3f23b957ced47740eee807cff752ec..f138130a17043ef5c0dfc68304ce9c0e1c1a03ba 100644 --- a/src/plugins/aorai/tests/ya/oracle/seq.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle/seq.res.oracle @@ -1,5 +1,4 @@ [kernel] Parsing tests/ya/seq.i (no preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_seq_0.i (no preprocessing) /* Generated by Frama-C */ enum aorai_ListOper { @@ -11,8 +10,8 @@ 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 enum aorai_ListOper aorai_CurOperation; */ +/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus; */ /*@ ghost int S0 = 1; */ /*@ ghost int Sf = 0; */ /*@ ghost int aorai_intermediate_state = 0; */ @@ -69,6 +68,7 @@ enum aorai_OpStatusList { int aorai_intermediate_state_1_tmp; int aorai_intermediate_state_2_tmp; int aorai_intermediate_state_3_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_f; S0_tmp = S0; @@ -146,6 +146,7 @@ enum aorai_OpStatusList { int aorai_intermediate_state_1_tmp; int aorai_intermediate_state_2_tmp; int aorai_intermediate_state_3_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_f; S0_tmp = S0; @@ -269,6 +270,7 @@ void f(void) int aorai_intermediate_state_1_tmp; int aorai_intermediate_state_2_tmp; int aorai_intermediate_state_3_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_g; S0_tmp = S0; @@ -278,10 +280,16 @@ void f(void) aorai_intermediate_state_1_tmp = aorai_intermediate_state_1; aorai_intermediate_state_2_tmp = aorai_intermediate_state_2; aorai_intermediate_state_3_tmp = aorai_intermediate_state_3; - if ((aorai_intermediate_state == 1 || aorai_intermediate_state_0 == 1) || - aorai_intermediate_state_2 == 1 && aorai_counter < 2) aorai_intermediate_state_3_tmp = 1; - else aorai_intermediate_state_3_tmp = 0; - if (aorai_intermediate_state_2 == 1 && aorai_counter < 2) aorai_counter ++; + if (aorai_intermediate_state == 1) aorai_intermediate_state_3_tmp = 1; + else + if (aorai_intermediate_state_0 == 1) aorai_intermediate_state_3_tmp = 1; + else + if (aorai_intermediate_state_2 == 1) + if (aorai_counter < 2) aorai_intermediate_state_3_tmp = 1; + else aorai_intermediate_state_3_tmp = 0; + else aorai_intermediate_state_3_tmp = 0; + if (aorai_intermediate_state_2 == 1) + if (aorai_counter < 2) aorai_counter ++; if (aorai_intermediate_state_0 == 1) aorai_counter = 1; if (aorai_intermediate_state == 1) aorai_counter = 1; aorai_intermediate_state_2_tmp = 0; @@ -350,6 +358,7 @@ void f(void) int aorai_intermediate_state_1_tmp; int aorai_intermediate_state_2_tmp; int aorai_intermediate_state_3_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_g; S0_tmp = S0; @@ -470,6 +479,7 @@ void g(void) int aorai_intermediate_state_1_tmp; int aorai_intermediate_state_2_tmp; int aorai_intermediate_state_3_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_main; S0_tmp = S0; @@ -548,6 +558,7 @@ void g(void) int aorai_intermediate_state_1_tmp; int aorai_intermediate_state_2_tmp; int aorai_intermediate_state_3_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_main; S0_tmp = S0; @@ -562,7 +573,8 @@ void g(void) aorai_intermediate_state_1_tmp = 0; aorai_intermediate_state_0_tmp = 0; aorai_intermediate_state_tmp = 0; - if (aorai_intermediate_state_2 == 1 && 1 <= aorai_counter) Sf_tmp = 1; + if (aorai_intermediate_state_2 == 1) + if (1 <= aorai_counter) Sf_tmp = 1; else Sf_tmp = 0; else Sf_tmp = 0; S0_tmp = 0; S0 = S0_tmp; diff --git a/src/plugins/aorai/tests/ya/oracle/seq_loop.res.oracle b/src/plugins/aorai/tests/ya/oracle/seq_loop.res.oracle index 91097fdf88b9aa56ad5e7d32f14521e41cb9cbd8..eca76ebee16395bc7760001c98e2c849a29754b6 100644 --- a/src/plugins/aorai/tests/ya/oracle/seq_loop.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle/seq_loop.res.oracle @@ -1,5 +1,4 @@ [kernel] Parsing tests/ya/seq_loop.i (no preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_seq_loop_0.i (no preprocessing) /* Generated by Frama-C */ enum aorai_ListOper { @@ -11,8 +10,8 @@ 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 enum aorai_ListOper aorai_CurOperation; */ +/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus; */ /*@ ghost int S0 = 1; */ /*@ ghost int Sf = 0; */ /*@ ghost int aorai_intermediate_state = 0; */ @@ -84,6 +83,7 @@ enum aorai_OpStatusList { int aorai_intermediate_state_1_tmp; int aorai_intermediate_state_2_tmp; int aorai_intermediate_state_3_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_f; S0_tmp = S0; @@ -95,10 +95,14 @@ enum aorai_OpStatusList { aorai_intermediate_state_3_tmp = aorai_intermediate_state_3; aorai_intermediate_state_3_tmp = 0; aorai_intermediate_state_2_tmp = 0; - if (aorai_intermediate_state == 1 || aorai_intermediate_state_0 == 1 && - aorai_counter < 5) aorai_intermediate_state_1_tmp = 1; - else aorai_intermediate_state_1_tmp = 0; - if (aorai_intermediate_state_0 == 1 && aorai_counter < 5) aorai_counter ++; + if (aorai_intermediate_state == 1) aorai_intermediate_state_1_tmp = 1; + else + if (aorai_intermediate_state_0 == 1) + if (aorai_counter < 5) aorai_intermediate_state_1_tmp = 1; + else aorai_intermediate_state_1_tmp = 0; + else aorai_intermediate_state_1_tmp = 0; + if (aorai_intermediate_state_0 == 1) + if (aorai_counter < 5) aorai_counter ++; if (aorai_intermediate_state == 1) aorai_counter = 1; aorai_intermediate_state_0_tmp = 0; aorai_intermediate_state_tmp = 0; @@ -164,6 +168,7 @@ enum aorai_OpStatusList { int aorai_intermediate_state_1_tmp; int aorai_intermediate_state_2_tmp; int aorai_intermediate_state_3_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_f; S0_tmp = S0; @@ -274,6 +279,7 @@ void f(void) int aorai_intermediate_state_1_tmp; int aorai_intermediate_state_2_tmp; int aorai_intermediate_state_3_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_g; S0_tmp = S0; @@ -351,6 +357,7 @@ void f(void) int aorai_intermediate_state_1_tmp; int aorai_intermediate_state_2_tmp; int aorai_intermediate_state_3_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_g; S0_tmp = S0; @@ -447,6 +454,7 @@ void g(void) int aorai_intermediate_state_1_tmp; int aorai_intermediate_state_2_tmp; int aorai_intermediate_state_3_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_main; S0_tmp = S0; @@ -525,6 +533,7 @@ void g(void) int aorai_intermediate_state_1_tmp; int aorai_intermediate_state_2_tmp; int aorai_intermediate_state_3_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_main; S0_tmp = S0; @@ -539,9 +548,9 @@ void g(void) aorai_intermediate_state_1_tmp = 0; aorai_intermediate_state_0_tmp = 0; aorai_intermediate_state_tmp = 0; - if (aorai_intermediate_state == 1 || aorai_intermediate_state_0 == 1) - Sf_tmp = 1; - else Sf_tmp = 0; + if (aorai_intermediate_state == 1) Sf_tmp = 1; + else + if (aorai_intermediate_state_0 == 1) Sf_tmp = 1; else Sf_tmp = 0; S0_tmp = 0; S0 = S0_tmp; Sf = Sf_tmp; diff --git a/src/plugins/aorai/tests/ya/oracle/serial.res.oracle b/src/plugins/aorai/tests/ya/oracle/serial.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..8d2600bdb03f86874f050d4b8a2b1d5dc568afbd --- /dev/null +++ b/src/plugins/aorai/tests/ya/oracle/serial.res.oracle @@ -0,0 +1,1030 @@ +[kernel] Parsing tests/ya/serial.c (with preprocessing) +[kernel:annot:missing-spec] tests/ya/serial.c:56: Warning: + Neither code nor specification for function Frama_C_show_aorai_state, generating default assigns from the prototype +[eva] Analyzing a complete application starting at main +[eva] Computing initial state +[eva] Initial state computed +[eva:initial-state] Values of globals at initialization + indefinitely ∈ [--..--] + buffer[0..4] ∈ {0} + n ∈ {0} + aorai_x1 ∈ {0} + aorai_x2 ∈ {0} + aorai_y1 ∈ {0} + aorai_y2 ∈ {0} + aorai_CurOperation ∈ {0} + aorai_CurOpStatus ∈ {0} + aorai_CurStates ∈ {19} + aorai_StatesHistory_1 ∈ {19} + aorai_StatesHistory_2 ∈ {19} +[eva] using specification for function Frama_C_interval +[eva] tests/ya/serial.c:58: starting to merge loop iterations +[eva] tests/ya/serial.c:63: Trace partitioning superposing up to 100 states +[eva] tests/ya/serial.c:63: Trace partitioning superposing up to 300 states +[eva:alarm] tests/ya/serial.c:33: Warning: + assertion 'Aorai,aorai_smoke_test' got status invalid (stopping propagation). +[aorai] tests/ya/serial.c:92: Wait1 <- Wait1 <- Complete +[aorai] tests/ya/serial.c:92: n in {5},x in [0..16383],y in [8192..16383] +[aorai] tests/ya/serial.c:92: Wait1 <- Wait1 <- Complete +[aorai] tests/ya/serial.c:92: n in {5},x in [0..16383],y in [0..8191] +[eva] tests/ya/serial.c:63: Trace partitioning superposing up to 500 states +[eva] tests/ya/serial.c:63: Trace partitioning superposing up to 700 states +[eva] tests/ya/serial.c:63: Trace partitioning superposing up to 900 states +[eva] tests/ya/serial.c:63: Trace partitioning superposing up to 1200 states +[eva] tests/ya/serial.c:63: Trace partitioning superposing up to 1400 states +[eva] tests/ya/serial.c:63: Trace partitioning superposing up to 1500 states +[eva] tests/ya/serial.c:63: Trace partitioning superposing up to 1600 states +[eva] tests/ya/serial.c:63: Trace partitioning superposing up to 1700 states +[eva] done for function main +[eva] ====== VALUES COMPUTED ====== +[eva:final-states] Values at end of function input_data_post_func: + aorai_x1 ∈ + {0; 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; 17; 18; + 19; 20; 21; 22; 23; 24; 25; 26; 27; 28; 29; 30; 31; 32; 33; 34; + 35; 36; 37; 38; 39; 40; 41; 42; 43; 44; 45; 46; 47; 48; 49; 50; + 51; 52; 53; 54; 55; 56; 57; 58; 59; 60; 61; 62; 63; 64; 65; 66; + 67; 68; 69; 70; 71; 72; 73; 74; 75; 76; 77; 78; 79; 80; 81; 82; + 83; 84; 85; 86; 87; 88; 89; 90; 91; 92; 93; 94; 95; 96; 97; 98; + 99; 100; 101; 102; 103; 104; 105; 106; 107; 108; 109; 110; 111; + 112; 113; 114; 115; 116; 117; 118; 119; 120; 121; 122; 123; 124; + 125; 126; 127} + aorai_x2 ∈ + {0; 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; 17; 18; + 19; 20; 21; 22; 23; 24; 25; 26; 27; 28; 29; 30; 31; 32; 33; 34; + 35; 36; 37; 38; 39; 40; 41; 42; 43; 44; 45; 46; 47; 48; 49; 50; + 51; 52; 53; 54; 55; 56; 57; 58; 59; 60; 61; 62; 63; 64; 65; 66; + 67; 68; 69; 70; 71; 72; 73; 74; 75; 76; 77; 78; 79; 80; 81; 82; + 83; 84; 85; 86; 87; 88; 89; 90; 91; 92; 93; 94; 95; 96; 97; 98; + 99; 100; 101; 102; 103; 104; 105; 106; 107; 108; 109; 110; 111; + 112; 113; 114; 115; 116; 117; 118; 119; 120; 121; 122; 123; 124; + 125; 126; 127} + aorai_y1 ∈ + {0; 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; 17; 18; + 19; 20; 21; 22; 23; 24; 25; 26; 27; 28; 29; 30; 31; 32; 33; 34; + 35; 36; 37; 38; 39; 40; 41; 42; 43; 44; 45; 46; 47; 48; 49; 50; + 51; 52; 53; 54; 55; 56; 57; 58; 59; 60; 61; 62; 63; 64; 65; 66; + 67; 68; 69; 70; 71; 72; 73; 74; 75; 76; 77; 78; 79; 80; 81; 82; + 83; 84; 85; 86; 87; 88; 89; 90; 91; 92; 93; 94; 95; 96; 97; 98; + 99; 100; 101; 102; 103; 104; 105; 106; 107; 108; 109; 110; 111; + 112; 113; 114; 115; 116; 117; 118; 119; 120; 121; 122; 123; 124; + 125; 126; 127} + aorai_y2 ∈ [0..2147483647] + aorai_CurOperation ∈ {2} + aorai_CurOpStatus ∈ {1} + aorai_CurStates ∈ {0; 19; 20; 21; 22; 23} + aorai_StatesHistory_1 ∈ {1; 2; 3; 4; 5; 6} + aorai_StatesHistory_2 ∈ {8; 9; 10; 11; 12; 13} +[eva:final-states] Values at end of function input_data_pre_func: + aorai_CurOperation ∈ {2} + aorai_CurOpStatus ∈ {0} + aorai_CurStates ∈ {1; 2; 3; 4; 5; 6} + aorai_StatesHistory_1 ∈ {8; 9; 10; 11; 12; 13} + aorai_StatesHistory_2 ∈ {14; 15; 16; 17; 18} +[eva:final-states] Values at end of function input_data: + Frama_C_entropy_source ∈ [--..--] + aorai_x1 ∈ + {0; 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; 17; 18; + 19; 20; 21; 22; 23; 24; 25; 26; 27; 28; 29; 30; 31; 32; 33; 34; + 35; 36; 37; 38; 39; 40; 41; 42; 43; 44; 45; 46; 47; 48; 49; 50; + 51; 52; 53; 54; 55; 56; 57; 58; 59; 60; 61; 62; 63; 64; 65; 66; + 67; 68; 69; 70; 71; 72; 73; 74; 75; 76; 77; 78; 79; 80; 81; 82; + 83; 84; 85; 86; 87; 88; 89; 90; 91; 92; 93; 94; 95; 96; 97; 98; + 99; 100; 101; 102; 103; 104; 105; 106; 107; 108; 109; 110; 111; + 112; 113; 114; 115; 116; 117; 118; 119; 120; 121; 122; 123; 124; + 125; 126; 127} + aorai_x2 ∈ + {0; 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; 17; 18; + 19; 20; 21; 22; 23; 24; 25; 26; 27; 28; 29; 30; 31; 32; 33; 34; + 35; 36; 37; 38; 39; 40; 41; 42; 43; 44; 45; 46; 47; 48; 49; 50; + 51; 52; 53; 54; 55; 56; 57; 58; 59; 60; 61; 62; 63; 64; 65; 66; + 67; 68; 69; 70; 71; 72; 73; 74; 75; 76; 77; 78; 79; 80; 81; 82; + 83; 84; 85; 86; 87; 88; 89; 90; 91; 92; 93; 94; 95; 96; 97; 98; + 99; 100; 101; 102; 103; 104; 105; 106; 107; 108; 109; 110; 111; + 112; 113; 114; 115; 116; 117; 118; 119; 120; 121; 122; 123; 124; + 125; 126; 127} + aorai_y1 ∈ + {0; 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; 17; 18; + 19; 20; 21; 22; 23; 24; 25; 26; 27; 28; 29; 30; 31; 32; 33; 34; + 35; 36; 37; 38; 39; 40; 41; 42; 43; 44; 45; 46; 47; 48; 49; 50; + 51; 52; 53; 54; 55; 56; 57; 58; 59; 60; 61; 62; 63; 64; 65; 66; + 67; 68; 69; 70; 71; 72; 73; 74; 75; 76; 77; 78; 79; 80; 81; 82; + 83; 84; 85; 86; 87; 88; 89; 90; 91; 92; 93; 94; 95; 96; 97; 98; + 99; 100; 101; 102; 103; 104; 105; 106; 107; 108; 109; 110; 111; + 112; 113; 114; 115; 116; 117; 118; 119; 120; 121; 122; 123; 124; + 125; 126; 127} + aorai_y2 ∈ [0..2147483647] + aorai_CurOperation ∈ {2} + aorai_CurOpStatus ∈ {1} + aorai_CurStates ∈ {0; 19; 20; 21; 22; 23} + aorai_StatesHistory_1 ∈ {1; 2; 3; 4; 5; 6} + aorai_StatesHistory_2 ∈ {8; 9; 10; 11; 12; 13} +[eva:final-states] Values at end of function input_status_post_func: + aorai_CurOperation ∈ {1} + aorai_CurOpStatus ∈ {1} + aorai_CurStates ∈ {8; 9; 10; 11; 12; 13; 19; 20; 21; 22; 23} + aorai_StatesHistory_1 ∈ {14; 15; 16; 17; 18} + aorai_StatesHistory_2 ∈ {0; 19; 20; 21; 22; 23} +[eva:final-states] Values at end of function input_status_pre_func: + aorai_CurOperation ∈ {1} + aorai_CurOpStatus ∈ {0} + aorai_CurStates ∈ {14; 15; 16; 17; 18} + aorai_StatesHistory_1 ∈ {0; 19; 20; 21; 22; 23} + aorai_StatesHistory_2 ∈ {1; 2; 3; 4; 5; 6; 14; 15; 16; 17; 18; 19} +[eva:final-states] Values at end of function input_status: + Frama_C_entropy_source ∈ [--..--] + aorai_CurOperation ∈ {1} + aorai_CurOpStatus ∈ {1} + aorai_CurStates ∈ {8; 9; 10; 11; 12; 13; 19; 20; 21; 22; 23} + aorai_StatesHistory_1 ∈ {14; 15; 16; 17; 18} + aorai_StatesHistory_2 ∈ {0; 19; 20; 21; 22; 23} +[eva:final-states] Values at end of function output_post_func: + aorai_CurOperation ∈ {0} + aorai_CurOpStatus ∈ {1} + aorai_CurStates ∈ {19; 24} + aorai_StatesHistory_1 ∈ {7; 19} + aorai_StatesHistory_2 ∈ {0} +[eva:final-states] Values at end of function output_pre_func: + aorai_CurOperation ∈ {0} + aorai_CurOpStatus ∈ {0} + aorai_CurStates ∈ {7; 19; 24} + aorai_StatesHistory_1 ∈ {0} + aorai_StatesHistory_2 ∈ {5} +[eva:final-states] Values at end of function output: + aorai_CurOperation ∈ {0} + aorai_CurOpStatus ∈ {1} + aorai_CurStates ∈ {19} + aorai_StatesHistory_1 ∈ {19} + aorai_StatesHistory_2 ∈ {0} +[eva:final-states] Values at end of function read: + Frama_C_entropy_source ∈ [--..--] + s ∈ + {0; 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; 17; 18; 19; 20; + 21; 22; 23; 24; 25; 26; 27; 28; 29; 30; 31; 32; 33; 34; 35; 36; 37; 38; + 39; 40; 41; 42; 43; 44; 45; 46; 47; 48; 49; 50; 51; 52; 53; 54; 55; 56; + 57; 58; 59; 60; 61; 62; 63; 64; 65; 66; 67; 68; 69; 70; 71; 72; 73; 74; + 75; 76; 77; 78; 79; 80; 81; 82; 83; 84; 85; 86; 87; 88; 89; 90; 91; 92; + 93; 94; 95; 96; 97; 98; 99; 100; 101; 102; 103; 104; 105; 106; 107; 108; + 109; 110; 111; 112; 113; 114; 115; 116; 117; 118; 119; 120; 121; 122; + 123; 124; 125; 126; 127; 128; 129; 130; 131; 132; 133; 134; 135; 136; + 137; 138; 139; 140; 141; 142; 143; 144; 145; 146; 147; 148; 149; 150; + 151; 152; 153; 154; 155; 156; 157; 158; 159; 160; 161; 162; 163; 164; + 165; 166; 167; 168; 169; 170; 171; 172; 173; 174; 175; 176; 177; 178; + 179; 180; 181; 182; 183; 184; 185; 186; 187; 188; 189; 190; 191; 192; + 193; 194; 195; 196; 197; 198; 199; 200; 201; 202; 203; 204; 205; 206; + 207; 208; 209; 210; 211; 212; 213; 214; 215; 216; 217; 218; 219; 220; + 221; 222; 223; 224; 225; 226; 227; 228; 229; 230; 231; 232; 233; 234; + 235; 236; 237; 238; 239; 240; 241; 242; 243; 244; 245; 246; 247; 248; + 249; 250; 251; 252; 253; 254; 255} + status ∈ {0; 2; 4; 6; 8; 10; 12; 14} or UNINITIALIZED + __retres ∈ [-1..255] + aorai_x1 ∈ + {0; 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; 17; 18; + 19; 20; 21; 22; 23; 24; 25; 26; 27; 28; 29; 30; 31; 32; 33; 34; + 35; 36; 37; 38; 39; 40; 41; 42; 43; 44; 45; 46; 47; 48; 49; 50; + 51; 52; 53; 54; 55; 56; 57; 58; 59; 60; 61; 62; 63; 64; 65; 66; + 67; 68; 69; 70; 71; 72; 73; 74; 75; 76; 77; 78; 79; 80; 81; 82; + 83; 84; 85; 86; 87; 88; 89; 90; 91; 92; 93; 94; 95; 96; 97; 98; + 99; 100; 101; 102; 103; 104; 105; 106; 107; 108; 109; 110; 111; + 112; 113; 114; 115; 116; 117; 118; 119; 120; 121; 122; 123; 124; + 125; 126; 127} + aorai_x2 ∈ + {0; 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; 17; 18; + 19; 20; 21; 22; 23; 24; 25; 26; 27; 28; 29; 30; 31; 32; 33; 34; + 35; 36; 37; 38; 39; 40; 41; 42; 43; 44; 45; 46; 47; 48; 49; 50; + 51; 52; 53; 54; 55; 56; 57; 58; 59; 60; 61; 62; 63; 64; 65; 66; + 67; 68; 69; 70; 71; 72; 73; 74; 75; 76; 77; 78; 79; 80; 81; 82; + 83; 84; 85; 86; 87; 88; 89; 90; 91; 92; 93; 94; 95; 96; 97; 98; + 99; 100; 101; 102; 103; 104; 105; 106; 107; 108; 109; 110; 111; + 112; 113; 114; 115; 116; 117; 118; 119; 120; 121; 122; 123; 124; + 125; 126; 127} + aorai_y1 ∈ + {0; 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; 17; 18; + 19; 20; 21; 22; 23; 24; 25; 26; 27; 28; 29; 30; 31; 32; 33; 34; + 35; 36; 37; 38; 39; 40; 41; 42; 43; 44; 45; 46; 47; 48; 49; 50; + 51; 52; 53; 54; 55; 56; 57; 58; 59; 60; 61; 62; 63; 64; 65; 66; + 67; 68; 69; 70; 71; 72; 73; 74; 75; 76; 77; 78; 79; 80; 81; 82; + 83; 84; 85; 86; 87; 88; 89; 90; 91; 92; 93; 94; 95; 96; 97; 98; + 99; 100; 101; 102; 103; 104; 105; 106; 107; 108; 109; 110; 111; + 112; 113; 114; 115; 116; 117; 118; 119; 120; 121; 122; 123; 124; + 125; 126; 127} + aorai_y2 ∈ [0..2147483647] + aorai_CurOperation ∈ {1; 2} + aorai_CurOpStatus ∈ {1} + aorai_CurStates ∈ {0; 19; 20; 21; 22; 23} + aorai_StatesHistory_1 ∈ {1; 2; 3; 4; 5; 6; 14; 15; 16; 17; 18} + aorai_StatesHistory_2 ∈ {0; 8; 9; 10; 11; 12; 13; 19; 20; 21; 22; 23} +[eva:final-states] Values at end of function main: + Frama_C_entropy_source ∈ [--..--] + buffer[0] ∈ + {0; 128; 129; 130; 131; 132; 133; 134; 135; 136; 137; 138; 139; 140; + 141; 142; 143; 144; 145; 146; 147; 148; 149; 150; 151; 152; 153; + 154; 155; 156; 157; 158; 159; 160; 161; 162; 163; 164; 165; 166; + 167; 168; 169; 170; 171; 172; 173; 174; 175; 176; 177; 178; 179; + 180; 181; 182; 183; 184; 185; 186; 187; 188; 189; 190; 191; 192; + 193; 194; 195; 196; 197; 198; 199; 200; 201; 202; 203; 204; 205; + 206; 207; 208; 209; 210; 211; 212; 213; 214; 215; 216; 217; 218; + 219; 220; 221; 222; 223; 224; 225; 226; 227; 228; 229; 230; 231; + 232; 233; 234; 235; 236; 237; 238; 239; 240; 241; 242; 243; 244; + 245; 246; 247; 248; 249; 250; 251; 252; 253; 254; 255} + [1..2] ∈ + {0; 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; 17; 18; + 19; 20; 21; 22; 23; 24; 25; 26; 27; 28; 29; 30; 31; 32; 33; 34; 35; + 36; 37; 38; 39; 40; 41; 42; 43; 44; 45; 46; 47; 48; 49; 50; 51; 52; + 53; 54; 55; 56; 57; 58; 59; 60; 61; 62; 63; 64; 65; 66; 67; 68; 69; + 70; 71; 72; 73; 74; 75; 76; 77; 78; 79; 80; 81; 82; 83; 84; 85; 86; + 87; 88; 89; 90; 91; 92; 93; 94; 95; 96; 97; 98; 99; 100; 101; 102; + 103; 104; 105; 106; 107; 108; 109; 110; 111; 112; 113; 114; 115; + 116; 117; 118; 119; 120; 121; 122; 123; 124; 125; 126; 127} + [3..4] ∈ [0..2147483647] + n ∈ {0; 1; 2; 3; 4} + aorai_x1 ∈ + {0; 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; 17; 18; + 19; 20; 21; 22; 23; 24; 25; 26; 27; 28; 29; 30; 31; 32; 33; 34; + 35; 36; 37; 38; 39; 40; 41; 42; 43; 44; 45; 46; 47; 48; 49; 50; + 51; 52; 53; 54; 55; 56; 57; 58; 59; 60; 61; 62; 63; 64; 65; 66; + 67; 68; 69; 70; 71; 72; 73; 74; 75; 76; 77; 78; 79; 80; 81; 82; + 83; 84; 85; 86; 87; 88; 89; 90; 91; 92; 93; 94; 95; 96; 97; 98; + 99; 100; 101; 102; 103; 104; 105; 106; 107; 108; 109; 110; 111; + 112; 113; 114; 115; 116; 117; 118; 119; 120; 121; 122; 123; 124; + 125; 126; 127} + aorai_x2 ∈ + {0; 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; 17; 18; + 19; 20; 21; 22; 23; 24; 25; 26; 27; 28; 29; 30; 31; 32; 33; 34; + 35; 36; 37; 38; 39; 40; 41; 42; 43; 44; 45; 46; 47; 48; 49; 50; + 51; 52; 53; 54; 55; 56; 57; 58; 59; 60; 61; 62; 63; 64; 65; 66; + 67; 68; 69; 70; 71; 72; 73; 74; 75; 76; 77; 78; 79; 80; 81; 82; + 83; 84; 85; 86; 87; 88; 89; 90; 91; 92; 93; 94; 95; 96; 97; 98; + 99; 100; 101; 102; 103; 104; 105; 106; 107; 108; 109; 110; 111; + 112; 113; 114; 115; 116; 117; 118; 119; 120; 121; 122; 123; 124; + 125; 126; 127} + aorai_y1 ∈ + {0; 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; 17; 18; + 19; 20; 21; 22; 23; 24; 25; 26; 27; 28; 29; 30; 31; 32; 33; 34; + 35; 36; 37; 38; 39; 40; 41; 42; 43; 44; 45; 46; 47; 48; 49; 50; + 51; 52; 53; 54; 55; 56; 57; 58; 59; 60; 61; 62; 63; 64; 65; 66; + 67; 68; 69; 70; 71; 72; 73; 74; 75; 76; 77; 78; 79; 80; 81; 82; + 83; 84; 85; 86; 87; 88; 89; 90; 91; 92; 93; 94; 95; 96; 97; 98; + 99; 100; 101; 102; 103; 104; 105; 106; 107; 108; 109; 110; 111; + 112; 113; 114; 115; 116; 117; 118; 119; 120; 121; 122; 123; 124; + 125; 126; 127} + aorai_y2 ∈ [0..2147483647] + aorai_CurOperation ∈ {0; 1; 2} + aorai_CurOpStatus ∈ {0; 1} + aorai_CurStates ∈ {0; 19; 20; 21; 22; 23} + aorai_StatesHistory_1 ∈ {1; 2; 3; 4; 5; 6; 14; 15; 16; 17; 18; 19} + aorai_StatesHistory_2 ∈ {0; 8; 9; 10; 11; 12; 13; 19; 20; 21; 22; 23} +[eva:summary] ====== ANALYSIS SUMMARY ====== + ---------------------------------------------------------------------------- + 11 functions analyzed (out of 11): 100% coverage. + In these functions, 273 statements reached (out of 339): 80% coverage. + ---------------------------------------------------------------------------- + Some errors and warnings have been raised during the analysis: + by the Eva analyzer: 0 errors 0 warnings + by the Frama-C kernel: 0 errors 1 warning + ---------------------------------------------------------------------------- + 0 alarms generated by the analysis. + ---------------------------------------------------------------------------- + Evaluation of the logical properties reached by the analysis: + Assertions 4 valid 2 unknown 0 invalid 6 total + Preconditions 2 valid 0 unknown 0 invalid 2 total + 75% of the logical properties reached have been proven. + ---------------------------------------------------------------------------- +[kernel] Parsing TMPDIR/aorai_serial_0.i (no preprocessing) +/* Generated by Frama-C */ +typedef unsigned long size_t; +enum aorai_States { + Complete = 0, + DataReq1 = 1, + DataReq2 = 2, + DataReq3 = 3, + DataReq4 = 4, + DataReq5 = 5, + DataReqE = 6, + Error = 7, + StatusError = 8, + StatusOk1 = 9, + StatusOk2 = 10, + StatusOk3 = 11, + StatusOk4 = 12, + StatusOk5 = 13, + StatusReq1 = 14, + StatusReq2 = 15, + StatusReq3 = 16, + StatusReq4 = 17, + StatusReq5 = 18, + Wait1 = 19, + Wait2 = 20, + Wait3 = 21, + Wait4 = 22, + Wait5 = 23, + aorai_reject = 24 +}; +enum aorai_ListOper { + op_input_data = 2, + op_input_status = 1, + op_output = 0 +}; +enum aorai_OpStatusList { + aorai_Terminated = 1, + aorai_Called = 0 +}; +/* compiler builtin: + void Frama_C_show_aorai_state(...); */ +extern int volatile Frama_C_entropy_source __attribute__((__unused__)); + +/*@ requires valid_p: \valid(p + (0 .. l - 1)); + ensures initialization: \initialized(\old(p) + (0 .. \old(l) - 1)); + assigns *(p + (0 .. l - 1)), Frama_C_entropy_source; + assigns *(p + (0 .. l - 1)) \from Frama_C_entropy_source; + assigns Frama_C_entropy_source \from Frama_C_entropy_source; + */ +extern void Frama_C_make_unknown(char *p, size_t l); + +/*@ ensures result_a_or_b: \result ≡ \old(a) ∨ \result ≡ \old(b); + assigns \result, Frama_C_entropy_source; + assigns \result \from a, b, Frama_C_entropy_source; + assigns Frama_C_entropy_source \from Frama_C_entropy_source; + */ +extern int Frama_C_nondet(int a, int b); + +/*@ ensures result_a_or_b: \result ≡ \old(a) ∨ \result ≡ \old(b); + assigns \result, Frama_C_entropy_source; + assigns \result \from a, b, Frama_C_entropy_source; + assigns Frama_C_entropy_source \from Frama_C_entropy_source; + */ +extern void *Frama_C_nondet_ptr(void *a, void *b); + +/*@ requires order: min ≤ max; + ensures result_bounded: \old(min) ≤ \result ≤ \old(max); + assigns \result, Frama_C_entropy_source; + assigns \result \from min, max, Frama_C_entropy_source; + assigns Frama_C_entropy_source \from Frama_C_entropy_source; + */ +extern int Frama_C_interval(int min, int max); + +/*@ requires order: min ≤ max; + ensures result_bounded: \old(min) ≤ \result ≤ \old(max); + assigns \result, Frama_C_entropy_source; + assigns \result \from min, max, Frama_C_entropy_source; + assigns Frama_C_entropy_source \from Frama_C_entropy_source; + */ +extern int Frama_C_interval_split(int min, int max); + +/*@ requires order: min ≤ max; + ensures result_bounded: \old(min) ≤ \result ≤ \old(max); + assigns \result, Frama_C_entropy_source; + assigns \result \from min, max, Frama_C_entropy_source; + assigns Frama_C_entropy_source \from Frama_C_entropy_source; + */ +extern unsigned char Frama_C_unsigned_char_interval(unsigned char min, + unsigned char max); + +/*@ requires order: min ≤ max; + ensures result_bounded: \old(min) ≤ \result ≤ \old(max); + assigns \result, Frama_C_entropy_source; + assigns \result \from min, max, Frama_C_entropy_source; + assigns Frama_C_entropy_source \from Frama_C_entropy_source; + */ +extern char Frama_C_char_interval(char min, char max); + +/*@ requires order: min ≤ max; + ensures result_bounded: \old(min) ≤ \result ≤ \old(max); + assigns \result, Frama_C_entropy_source; + assigns \result \from min, max, Frama_C_entropy_source; + assigns Frama_C_entropy_source \from Frama_C_entropy_source; + */ +extern unsigned short Frama_C_unsigned_short_interval(unsigned short min, + unsigned short max); + +/*@ requires order: min ≤ max; + ensures result_bounded: \old(min) ≤ \result ≤ \old(max); + assigns \result, Frama_C_entropy_source; + assigns \result \from min, max, Frama_C_entropy_source; + assigns Frama_C_entropy_source \from Frama_C_entropy_source; + */ +extern short Frama_C_short_interval(short min, short max); + +/*@ requires order: min ≤ max; + ensures result_bounded: \old(min) ≤ \result ≤ \old(max); + assigns \result, Frama_C_entropy_source; + assigns \result \from min, max, Frama_C_entropy_source; + assigns Frama_C_entropy_source \from Frama_C_entropy_source; + */ +extern unsigned int Frama_C_unsigned_int_interval(unsigned int min, + unsigned int max); + +/*@ requires order: min ≤ max; + ensures result_bounded: \old(min) ≤ \result ≤ \old(max); + assigns \result, Frama_C_entropy_source; + assigns \result \from min, max, Frama_C_entropy_source; + assigns Frama_C_entropy_source \from Frama_C_entropy_source; + */ +extern int Frama_C_int_interval(int min, int max); + +/*@ requires order: min ≤ max; + ensures result_bounded: \old(min) ≤ \result ≤ \old(max); + assigns \result, Frama_C_entropy_source; + assigns \result \from min, max, Frama_C_entropy_source; + assigns Frama_C_entropy_source \from Frama_C_entropy_source; + */ +extern unsigned long Frama_C_unsigned_long_interval(unsigned long min, + unsigned long max); + +/*@ requires order: min ≤ max; + ensures result_bounded: \old(min) ≤ \result ≤ \old(max); + assigns \result, Frama_C_entropy_source; + assigns \result \from min, max, Frama_C_entropy_source; + assigns Frama_C_entropy_source \from Frama_C_entropy_source; + */ +extern long Frama_C_long_interval(long min, long max); + +/*@ requires order: min ≤ max; + ensures result_bounded: \old(min) ≤ \result ≤ \old(max); + assigns \result, Frama_C_entropy_source; + assigns \result \from min, max, Frama_C_entropy_source; + assigns Frama_C_entropy_source \from Frama_C_entropy_source; + */ +extern unsigned long long Frama_C_unsigned_long_long_interval(unsigned long long min, + unsigned long long max); + +/*@ requires order: min ≤ max; + ensures result_bounded: \old(min) ≤ \result ≤ \old(max); + assigns \result, Frama_C_entropy_source; + assigns \result \from min, max, Frama_C_entropy_source; + assigns Frama_C_entropy_source \from Frama_C_entropy_source; + */ +extern long long Frama_C_long_long_interval(long long min, long long max); + +/*@ requires order: min ≤ max; + ensures result_bounded: \old(min) ≤ \result ≤ \old(max); + assigns \result, Frama_C_entropy_source; + assigns \result \from min, max, Frama_C_entropy_source; + assigns Frama_C_entropy_source \from Frama_C_entropy_source; + */ +extern size_t Frama_C_size_t_interval(size_t min, size_t max); + +/*@ requires finite: \is_finite(min) ∧ \is_finite(max); + requires order: min ≤ max; + ensures + result_bounded: + \is_finite(\result) ∧ \old(min) ≤ \result ≤ \old(max); + assigns \result, Frama_C_entropy_source; + assigns \result \from min, max, Frama_C_entropy_source; + assigns Frama_C_entropy_source \from Frama_C_entropy_source; + */ +extern float Frama_C_float_interval(float min, float max); + +/*@ requires finite: \is_finite(min) ∧ \is_finite(max); + requires order: min ≤ max; + ensures + result_bounded: + \is_finite(\result) ∧ \old(min) ≤ \result ≤ \old(max); + assigns \result, Frama_C_entropy_source; + assigns \result \from min, max, Frama_C_entropy_source; + assigns Frama_C_entropy_source \from Frama_C_entropy_source; + */ +extern double Frama_C_double_interval(double min, double max); + +/*@ requires finite: \is_finite(min) ∧ \is_finite(max); + requires order: min ≤ max; + ensures + result_bounded: + \is_finite(\result) ∧ \old(min) ≤ \result ≤ \old(max); + assigns \result, Frama_C_entropy_source; + assigns \result \from min, max, Frama_C_entropy_source; + assigns Frama_C_entropy_source \from Frama_C_entropy_source; + */ +extern double Frama_C_real_interval_as_double(double min, double max); + +/*@ terminates \false; + ensures never_terminates: \false; + assigns \nothing; */ +extern __attribute__((__noreturn__)) void Frama_C_abort(void); + +/*@ assigns \result; + assigns \result \from p; */ +extern size_t Frama_C_offset(void const *p); + +/*@ assigns \result; + assigns \result \from i; */ +extern long long Frama_C_abstract_cardinal(long long i); + +/*@ assigns \result; + assigns \result \from i; */ +extern long long Frama_C_abstract_max(long long i); + +/*@ assigns \result; + assigns \result \from i; */ +extern long long Frama_C_abstract_min(long long i); + +int volatile indefinitely; +int buffer[5]; +int n = 0; +/*@ ghost enum aorai_ListOper aorai_CurOperation; */ +/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus; */ +/*@ ghost int aorai_CurStates = Wait1; */ +/*@ ghost int aorai_StatesHistory_1 = Wait1; */ +/*@ ghost int aorai_StatesHistory_2 = Wait1; */ +/*@ ghost int aorai_x1 = 0; */ +/*@ ghost int aorai_x2 = 0; */ +/*@ ghost int aorai_y1 = 0; */ +/*@ ghost int aorai_y2 = 0; */ +/*@ ghost + void input_status_pre_func(void) + { + /@ slevel full; @/ + aorai_CurOpStatus = aorai_Called; + aorai_CurOperation = op_input_status; + aorai_StatesHistory_2 = aorai_StatesHistory_1; + aorai_StatesHistory_1 = aorai_CurStates; + if (19 == aorai_CurStates) aorai_CurStates = StatusReq1; + else + if (9 == aorai_CurStates) aorai_CurStates = StatusReq1; + else + if (8 == aorai_CurStates) aorai_CurStates = StatusReq1; + else + if (0 == aorai_CurStates) aorai_CurStates = StatusReq1; + else + if (20 == aorai_CurStates) aorai_CurStates = StatusReq2; + else + if (10 == aorai_CurStates) aorai_CurStates = StatusReq2; + else + if (21 == aorai_CurStates) aorai_CurStates = StatusReq3; + else + if (11 == aorai_CurStates) aorai_CurStates = StatusReq3; + else + if (22 == aorai_CurStates) aorai_CurStates = StatusReq4; + else + if (12 == aorai_CurStates) aorai_CurStates = StatusReq4; + else + if (23 == aorai_CurStates) aorai_CurStates = StatusReq5; + else + if (13 == aorai_CurStates) aorai_CurStates = StatusReq5; + else aorai_CurStates = aorai_reject; + /@ assert Aorai: aorai_smoke_test: aorai_CurStates ≢ aorai_reject; @/ + ; + return; + } + +*/ + +/*@ ghost + void input_status_post_func(int res) + { + /@ slevel full; @/ + aorai_CurOpStatus = aorai_Terminated; + aorai_CurOperation = op_input_status; + aorai_StatesHistory_2 = aorai_StatesHistory_1; + aorai_StatesHistory_1 = aorai_CurStates; + if (18 == aorai_CurStates) { + if ((res & 15) != 1) { + if ((res & 1) != 0) aorai_CurStates = StatusError; + else goto __aorai_label_12; + } + else goto __aorai_label_12; + } + else { + __aorai_label_12: ; + if (17 == aorai_CurStates) { + if ((res & 15) != 1) { + if ((res & 1) != 0) aorai_CurStates = StatusError; + else goto __aorai_label_11; + } + else goto __aorai_label_11; + } + else { + __aorai_label_11: ; + if (16 == aorai_CurStates) { + if ((res & 15) != 1) { + if ((res & 1) != 0) aorai_CurStates = StatusError; + else goto __aorai_label_10; + } + else goto __aorai_label_10; + } + else { + __aorai_label_10: ; + if (15 == aorai_CurStates) { + if ((res & 15) != 1) { + if ((res & 1) != 0) aorai_CurStates = StatusError; + else goto __aorai_label_9; + } + else goto __aorai_label_9; + } + else { + __aorai_label_9: ; + if (14 == aorai_CurStates) { + if ((res & 15) != 1) { + if ((res & 1) != 0) aorai_CurStates = StatusError; + else goto __aorai_label_8; + } + else goto __aorai_label_8; + } + else { + __aorai_label_8: ; + if (14 == aorai_CurStates) { + if ((res & 15) == 1) aorai_CurStates = StatusOk1; + else goto __aorai_label_7; + } + else { + __aorai_label_7: ; + if (15 == aorai_CurStates) { + if ((res & 15) == 1) aorai_CurStates = StatusOk2; + else goto __aorai_label_6; + } + else { + __aorai_label_6: ; + if (16 == aorai_CurStates) { + if ((res & 15) == 1) aorai_CurStates = StatusOk3; + else goto __aorai_label_5; + } + else { + __aorai_label_5: ; + if (17 == aorai_CurStates) { + if ((res & 15) == 1) aorai_CurStates = StatusOk4; + else goto __aorai_label_4; + } + else { + __aorai_label_4: ; + if (18 == aorai_CurStates) { + if ((res & 15) == 1) aorai_CurStates = StatusOk5; + else goto __aorai_label_3; + } + else { + __aorai_label_3: ; + if (14 == aorai_CurStates) { + if ((res & 1) == 0) aorai_CurStates = Wait1; + else goto __aorai_label_2; + } + else { + __aorai_label_2: ; + if (15 == aorai_CurStates) { + if ((res & 1) == 0) aorai_CurStates = Wait2; + else goto __aorai_label_1; + } + else { + __aorai_label_1: ; + if (16 == aorai_CurStates) { + if ((res & 1) == 0) aorai_CurStates = Wait3; + else goto __aorai_label_0; + } + else { + __aorai_label_0: ; + if (17 == aorai_CurStates) { + if ((res & 1) == 0) aorai_CurStates = Wait4; + else goto __aorai_label; + } + else { + __aorai_label: ; + if (18 == aorai_CurStates) + if ((res & 1) == 0) aorai_CurStates = Wait5; + else aorai_CurStates = aorai_reject; + else aorai_CurStates = aorai_reject; + } + } + } + } + } + } + } + } + } + } + } + } + } + } + /@ assert Aorai: aorai_smoke_test: aorai_CurStates ≢ aorai_reject; @/ + ; + return; + } + +*/ + +/*@ ensures 0 ≤ \result < 0x100; + assigns \result, Frama_C_entropy_source; + assigns \result \from Frama_C_entropy_source; + assigns Frama_C_entropy_source \from Frama_C_entropy_source; + */ +int input_status(void) +{ + int tmp; + /*@ ghost input_status_pre_func(); */ + tmp = Frama_C_interval(0x00,0xff); + /*@ ghost input_status_post_func(tmp); */ + return tmp; +} + +/*@ ghost + void input_data_pre_func(void) + { + /@ slevel full; @/ + aorai_CurOpStatus = aorai_Called; + aorai_CurOperation = op_input_data; + aorai_StatesHistory_2 = aorai_StatesHistory_1; + aorai_StatesHistory_1 = aorai_CurStates; + if (9 == aorai_CurStates) aorai_CurStates = DataReq1; + else + if (10 == aorai_CurStates) aorai_CurStates = DataReq2; + else + if (11 == aorai_CurStates) aorai_CurStates = DataReq3; + else + if (12 == aorai_CurStates) aorai_CurStates = DataReq4; + else + if (13 == aorai_CurStates) aorai_CurStates = DataReq5; + else + if (8 == aorai_CurStates) aorai_CurStates = DataReqE; + else + if (23 == aorai_CurStates) aorai_CurStates = Error; + else + if (22 == aorai_CurStates) aorai_CurStates = Error; + else + if (21 == aorai_CurStates) aorai_CurStates = Error; + else + if (20 == aorai_CurStates) aorai_CurStates = Error; + else + if (19 == aorai_CurStates) aorai_CurStates = Error; + else aorai_CurStates = aorai_reject; + /@ assert Aorai: aorai_smoke_test: aorai_CurStates ≢ aorai_reject; @/ + ; + return; + } + +*/ + +/*@ ghost + void input_data_post_func(int res) + { + /@ slevel full; @/ + aorai_CurOpStatus = aorai_Terminated; + aorai_CurOperation = op_input_data; + aorai_StatesHistory_2 = aorai_StatesHistory_1; + aorai_StatesHistory_1 = aorai_CurStates; + if (5 == aorai_CurStates) { + if ((res & 128) == 0) { + aorai_CurStates = Complete; + aorai_y2 = res; + } + else goto __aorai_label_26; + } + else + __aorai_label_26: + if (6 == aorai_CurStates) aorai_CurStates = Wait1; + else + if (5 == aorai_CurStates) { + if ((res & 192) == 192) aorai_CurStates = Wait1; + else goto __aorai_label_25; + } + else { + __aorai_label_25: ; + if (4 == aorai_CurStates) { + if ((res & 192) == 192) aorai_CurStates = Wait1; + else goto __aorai_label_24; + } + else { + __aorai_label_24: ; + if (3 == aorai_CurStates) { + if ((res & 192) == 192) aorai_CurStates = Wait1; + else goto __aorai_label_23; + } + else { + __aorai_label_23: ; + if (2 == aorai_CurStates) { + if ((res & 192) == 192) aorai_CurStates = Wait1; + else goto __aorai_label_22; + } + else { + __aorai_label_22: ; + if (1 == aorai_CurStates) { + if ((res & 128) == 0) aorai_CurStates = Wait1; + else goto __aorai_label_21; + } + else { + __aorai_label_21: ; + if (1 == aorai_CurStates) { + if ((res & 192) == 192) aorai_CurStates = Wait1; + else goto __aorai_label_20; + } + else { + __aorai_label_20: ; + if (5 == aorai_CurStates) { + if ((res & 192) == 128) aorai_CurStates = Wait2; + else goto __aorai_label_19; + } + else { + __aorai_label_19: ; + if (4 == aorai_CurStates) { + if ((res & 192) == 128) aorai_CurStates = Wait2; + else goto __aorai_label_18; + } + else { + __aorai_label_18: ; + if (3 == aorai_CurStates) { + if ((res & 192) == 128) aorai_CurStates = Wait2; + else goto __aorai_label_17; + } + else { + __aorai_label_17: ; + if (2 == aorai_CurStates) { + if ((res & 192) == 128) aorai_CurStates = Wait2; + else goto __aorai_label_16; + } + else { + __aorai_label_16: ; + if (1 == aorai_CurStates) { + if ((res & 192) == 128) aorai_CurStates = Wait2; + else goto __aorai_label_15; + } + else { + __aorai_label_15: ; + if (2 == aorai_CurStates) { + if ((res & 128) == 0) { + aorai_CurStates = Wait3; + aorai_x1 = res; + } + else goto __aorai_label_14; + } + else { + __aorai_label_14: ; + if (3 == aorai_CurStates) { + if ((res & 128) == 0) { + aorai_CurStates = Wait4; + aorai_x2 = res; + } + else goto __aorai_label_13; + } + else { + __aorai_label_13: ; + if (4 == aorai_CurStates) + if ((res & 128) == 0) { + aorai_CurStates = Wait5; + aorai_y1 = res; + } + else aorai_CurStates = aorai_reject; + else aorai_CurStates = aorai_reject; + } + } + } + } + } + } + } + } + } + } + } + } + } + /@ assert Aorai: aorai_smoke_test: aorai_CurStates ≢ aorai_reject; @/ + ; + return; + } + +*/ + +/*@ ensures 0 ≤ \result < 0x100; + assigns \result, Frama_C_entropy_source; + assigns \result \from Frama_C_entropy_source; + assigns Frama_C_entropy_source \from Frama_C_entropy_source; + */ +int input_data(void) +{ + int tmp; + /*@ ghost input_data_pre_func(); */ + tmp = Frama_C_interval(0x00,0xff); + /*@ ghost input_data_post_func(tmp); */ + return tmp; +} + +/*@ ghost + void output_pre_func(int x, int y) + { + /@ slevel full; @/ + aorai_CurOpStatus = aorai_Called; + aorai_CurOperation = op_output; + aorai_StatesHistory_2 = aorai_StatesHistory_1; + aorai_StatesHistory_1 = aorai_CurStates; + if (23 == aorai_CurStates) aorai_CurStates = Error; + else + if (22 == aorai_CurStates) aorai_CurStates = Error; + else + if (21 == aorai_CurStates) aorai_CurStates = Error; + else + if (20 == aorai_CurStates) aorai_CurStates = Error; + else + if (19 == aorai_CurStates) aorai_CurStates = Error; + else + if (13 == aorai_CurStates) aorai_CurStates = Error; + else + if (12 == aorai_CurStates) aorai_CurStates = Error; + else + if (11 == aorai_CurStates) aorai_CurStates = Error; + else + if (10 == aorai_CurStates) aorai_CurStates = Error; + else + if (9 == aorai_CurStates) aorai_CurStates = Error; + else + if (8 == aorai_CurStates) aorai_CurStates = Error; + else + if (0 == aorai_CurStates) { + if (y != aorai_y1 + 128 * aorai_y2) aorai_CurStates = Error; + else + if (x != aorai_x1 + 128 * aorai_x2) aorai_CurStates = Error; + else goto __aorai_label_27; + } + else { + __aorai_label_27: ; + if (0 == aorai_CurStates) + if (x == aorai_x1 + 128 * aorai_x2) + if (y == aorai_y1 + 128 * aorai_y2) aorai_CurStates = Wait1; + else aorai_CurStates = aorai_reject; + else aorai_CurStates = aorai_reject; + else aorai_CurStates = aorai_reject; + } + /@ assert Aorai: aorai_smoke_test: aorai_CurStates ≢ aorai_reject; @/ + ; + return; + } + +*/ + +/*@ ghost + void output_post_func(void) + { + /@ slevel full; @/ + aorai_CurOpStatus = aorai_Terminated; + aorai_CurOperation = op_output; + aorai_StatesHistory_2 = aorai_StatesHistory_1; + aorai_StatesHistory_1 = aorai_CurStates; + if (19 == aorai_CurStates) aorai_CurStates = Wait1; + else aorai_CurStates = aorai_reject; + /@ assert Aorai: aorai_smoke_test: aorai_CurStates ≢ aorai_reject; @/ + ; + return; + } + +*/ + +/*@ assigns \nothing; */ +void output(int x, int y) +{ + /*@ ghost output_pre_func(x,y); */ + /*@ ghost output_post_func(); */ + return; +} + +int read(int *status) +{ + int __retres; + int s = input_status(); + if (s & 0x01) { + int tmp_0; + *status = s & 0x0e; + tmp_0 = input_data(); + __retres = tmp_0; + goto return_label; + } + __retres = -1; + return_label: ; + return __retres; +} + +void main(void) +{ + /*@ ghost int aorai_Loop_Init_18; */ + while (indefinitely) { + int status; + int data = read(& status); + if (data != -1) { + int tmp_0; + if (status != 0) { + n = 0; + continue; + } + if (data & 0x80) { + if (n != 0) { + n = 0; + continue; + } + } + else { + /*@ split data & 0x40; */ ; + if (n == 0) continue; + } + tmp_0 = n; + n ++; + buffer[tmp_0] = data; + if (n == 5) { + if ((buffer[0] & 0x40) == 0) { + int x = buffer[1] + 0x80 * buffer[2]; + int y = buffer[3] + 0x80 * buffer[4]; + output(x,y); + Frama_C_show_aorai_state(n,x,y); + } + n = 0; + } + } + } + return; +} + + diff --git a/src/plugins/aorai/tests/ya/oracle/single_call.res.oracle b/src/plugins/aorai/tests/ya/oracle/single_call.res.oracle index ee4213fd46c5d23bbeacb123d8f1409c65f5ef1a..6264eea6c56d38291d3d6007ccec7b1702a4c7df 100644 --- a/src/plugins/aorai/tests/ya/oracle/single_call.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle/single_call.res.oracle @@ -1,5 +1,4 @@ [kernel] Parsing tests/ya/single_call.i (no preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_single_call_0.i (no preprocessing) /* Generated by Frama-C */ enum aorai_ListOper { @@ -9,8 +8,8 @@ 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 enum aorai_ListOper aorai_CurOperation; */ +/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus; */ /*@ ghost int S0 = 1; */ /*@ ghost int Sf = 0; */ /*@ ghost int aorai_intermediate_state = 0; */ @@ -40,6 +39,7 @@ enum aorai_OpStatusList { int S0_tmp; int Sf_tmp; int aorai_intermediate_state_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_main; S0_tmp = S0; @@ -83,6 +83,7 @@ enum aorai_OpStatusList { int S0_tmp; int Sf_tmp; int aorai_intermediate_state_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_main; S0_tmp = S0; diff --git a/src/plugins/aorai/tests/ya/oracle/singleassignment-right.res.oracle b/src/plugins/aorai/tests/ya/oracle/singleassignment-right.res.oracle index 47bd37cf3ee9430554f51b2119e5f95c25f49990..067d521b9343014601ca3fe534174c42e4c083eb 100644 --- a/src/plugins/aorai/tests/ya/oracle/singleassignment-right.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle/singleassignment-right.res.oracle @@ -1,12 +1,11 @@ [kernel] Parsing tests/ya/singleassignment-right.i (no preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_singleassignment-right_0.i (no preprocessing) /* Generated by Frama-C */ enum aorai_States { - aorai_reject_state = -2, a = 0, - b = 1, - c = 2 + aorai_reject = 1, + b = 2, + c = 3 }; enum aorai_ListOper { op_main = 0 @@ -19,10 +18,12 @@ enum aorai_OpStatusList { */ /*@ check lemma b_deterministic_trans{L}: \true; */ +/*@ check lemma aorai_reject_deterministic_trans{L}: \true; + */ /*@ check lemma a_deterministic_trans{L}: \true; */ -/*@ ghost enum aorai_ListOper aorai_CurOperation = op_main; */ -/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus = aorai_Called; */ +/*@ ghost enum aorai_ListOper aorai_CurOperation; */ +/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus; */ /*@ ghost int aorai_CurStates = a; */ /*@ ghost int aorai_x = 0; */ /*@ ghost int aorai_y = 0; */ @@ -36,6 +37,9 @@ enum aorai_OpStatusList { behavior buch_state_a_out: ensures aorai_CurStates ≢ a; + behavior buch_state_aorai_reject_out: + ensures aorai_CurStates ≢ aorai_reject; + behavior buch_state_b_in_0: assumes aorai_CurStates ≡ a; ensures aorai_CurStates ≡ b; @@ -59,6 +63,7 @@ enum aorai_OpStatusList { @/ void main_pre_func(int *x, int *y) { + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_main; if (0 == aorai_CurStates) { @@ -66,6 +71,7 @@ enum aorai_OpStatusList { aorai_x = *x; aorai_y = *y; } + else aorai_CurStates = aorai_reject; return; } @@ -81,6 +87,9 @@ enum aorai_OpStatusList { behavior buch_state_a_out: ensures aorai_CurStates ≢ a; + behavior buch_state_aorai_reject_out: + ensures aorai_CurStates ≢ aorai_reject; + behavior buch_state_b_out: ensures aorai_CurStates ≢ b; @@ -104,13 +113,15 @@ enum aorai_OpStatusList { @/ void main_post_func(void) { + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_main; - if (1 == aorai_CurStates) { + if (2 == aorai_CurStates) { aorai_CurStates = c; aorai_x = aorai_y; aorai_y = aorai_x; } + else aorai_CurStates = aorai_reject; return; } diff --git a/src/plugins/aorai/tests/ya/oracle/singleassignment-wrong.res.oracle b/src/plugins/aorai/tests/ya/oracle/singleassignment-wrong.res.oracle index a24943fca9867c96902f607deaafe3a12f1a2e71..9eca9305b90905e2fe0c03ebb470b6b321956636 100644 --- a/src/plugins/aorai/tests/ya/oracle/singleassignment-wrong.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle/singleassignment-wrong.res.oracle @@ -1,5 +1,4 @@ [kernel] Parsing tests/ya/singleassignment-wrong.i (no preprocessing) -[aorai] Welcome to the Aorai plugin [aorai] User Error: The metavariable aorai_x is assigned several times during the transition from a to b: { Call(main) } aorai_x <- x aorai_x <- aorai_x + 1 diff --git a/src/plugins/aorai/tests/ya/oracle/stack.res.oracle b/src/plugins/aorai/tests/ya/oracle/stack.res.oracle index 6ca094fa00c5447876ad01b5e9f2b6297b9ecbcd..07be92bb84c1e913883720f6526540093c92c847 100644 --- a/src/plugins/aorai/tests/ya/oracle/stack.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle/stack.res.oracle @@ -1,15 +1,14 @@ [kernel] Parsing tests/ya/stack.i (no preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_stack_0.i (no preprocessing) /* Generated by Frama-C */ enum aorai_States { - aorai_reject_state = -2, accept = 0, - empty_stack = 1, - emptying_stack = 2, - filled_stack = 3, - filling_stack = 4, - init = 5 + aorai_reject = 1, + empty_stack = 2, + emptying_stack = 3, + filled_stack = 4, + filling_stack = 5, + init = 6 }; enum aorai_ListOper { op_main = 2, @@ -24,11 +23,13 @@ enum aorai_OpStatusList { */ /*@ check lemma filling_stack_deterministic_trans{L}: \true; */ +/*@ check lemma aorai_reject_deterministic_trans{L}: \true; + */ /*@ check lemma accept_deterministic_trans{L}: \true; */ int g = 0; -/*@ ghost enum aorai_ListOper aorai_CurOperation = op_main; */ -/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus = aorai_Called; */ +/*@ ghost enum aorai_ListOper aorai_CurOperation; */ +/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus; */ /*@ check lemma empty_stack_deterministic_trans{L}: ¬(\at(aorai_CurOperation,L) ≡ op_push ∧ @@ -62,6 +63,9 @@ check lemma emptying_stack_deterministic_trans{L}: behavior buch_state_accept_out: ensures aorai_CurStates ≢ accept; + behavior buch_state_aorai_reject_out: + ensures aorai_CurStates ≢ aorai_reject; + behavior buch_state_empty_stack_out: ensures aorai_CurStates ≢ empty_stack; @@ -86,11 +90,13 @@ check lemma emptying_stack_deterministic_trans{L}: @/ void push_pre_func(void) { + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_push; - if (3 == aorai_CurStates) aorai_CurStates = filling_stack; + if (4 == aorai_CurStates) aorai_CurStates = filling_stack; else - if (1 == aorai_CurStates) aorai_CurStates = filling_stack; + if (2 == aorai_CurStates) aorai_CurStates = filling_stack; + else aorai_CurStates = aorai_reject; return; } @@ -105,6 +111,9 @@ check lemma emptying_stack_deterministic_trans{L}: behavior buch_state_accept_out: ensures aorai_CurStates ≢ accept; + behavior buch_state_aorai_reject_out: + ensures aorai_CurStates ≢ aorai_reject; + behavior buch_state_empty_stack_out: ensures aorai_CurStates ≢ empty_stack; @@ -133,12 +142,14 @@ check lemma emptying_stack_deterministic_trans{L}: @/ void push_post_func(void) { + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_push; - if (4 == aorai_CurStates) { + if (5 == aorai_CurStates) { aorai_CurStates = filled_stack; aorai_n ++; } + else aorai_CurStates = aorai_reject; return; } @@ -180,6 +191,9 @@ void push(void) behavior buch_state_accept_out: ensures aorai_CurStates ≢ accept; + behavior buch_state_aorai_reject_out: + ensures aorai_CurStates ≢ aorai_reject; + behavior buch_state_empty_stack_out: ensures aorai_CurStates ≢ empty_stack; @@ -202,9 +216,13 @@ void push(void) @/ void pop_pre_func(void) { + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_pop; - if (3 == aorai_CurStates && aorai_n > 0) aorai_CurStates = emptying_stack; + if (4 == aorai_CurStates) + if (aorai_n > 0) aorai_CurStates = emptying_stack; + else aorai_CurStates = aorai_reject; + else aorai_CurStates = aorai_reject; return; } @@ -221,6 +239,9 @@ void push(void) behavior buch_state_accept_out: ensures aorai_CurStates ≢ accept; + behavior buch_state_aorai_reject_out: + ensures aorai_CurStates ≢ aorai_reject; + behavior buch_state_empty_stack_in_0: assumes aorai_CurStates ≡ emptying_stack ∧ aorai_n ≡ 1; ensures aorai_CurStates ≡ empty_stack; @@ -255,17 +276,26 @@ void push(void) @/ void pop_post_func(void) { + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_pop; - if (2 == aorai_CurStates && aorai_n == 1) { - aorai_CurStates = empty_stack; - aorai_n --; - } - else - if (2 == aorai_CurStates && aorai_n > 1) { - aorai_CurStates = filled_stack; + if (3 == aorai_CurStates) { + if (aorai_n == 1) { + aorai_CurStates = empty_stack; aorai_n --; } + else goto __aorai_label; + } + else { + __aorai_label: ; + if (3 == aorai_CurStates) + if (aorai_n > 1) { + aorai_CurStates = filled_stack; + aorai_n --; + } + else aorai_CurStates = aorai_reject; + else aorai_CurStates = aorai_reject; + } return; } @@ -307,6 +337,9 @@ void pop(void) behavior buch_state_accept_out: ensures aorai_CurStates ≢ accept; + behavior buch_state_aorai_reject_out: + ensures aorai_CurStates ≢ aorai_reject; + behavior buch_state_empty_stack_in_0: assumes aorai_CurStates ≡ init; ensures aorai_CurStates ≡ empty_stack; @@ -334,12 +367,14 @@ void pop(void) @/ void main_pre_func(void) { + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_main; - if (5 == aorai_CurStates) { + if (6 == aorai_CurStates) { aorai_CurStates = empty_stack; aorai_n = 0; } + else aorai_CurStates = aorai_reject; return; } @@ -359,6 +394,9 @@ void pop(void) assumes aorai_CurStates ≢ empty_stack; ensures aorai_CurStates ≢ accept; + behavior buch_state_aorai_reject_out: + ensures aorai_CurStates ≢ aorai_reject; + behavior buch_state_empty_stack_out: ensures aorai_CurStates ≢ empty_stack; @@ -376,9 +414,11 @@ void pop(void) @/ void main_post_func(void) { + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_main; - if (1 == aorai_CurStates) aorai_CurStates = accept; + if (2 == aorai_CurStates) aorai_CurStates = accept; + else aorai_CurStates = aorai_reject; return; } diff --git a/src/plugins/aorai/tests/ya/oracle/test_acces_params.res.oracle b/src/plugins/aorai/tests/ya/oracle/test_acces_params.res.oracle index 89553036d1a684d71bccedc4dc525fe7dbcb2ed1..612b29ad3f47dd7c69c00b06d430c8e92ce23b48 100644 --- a/src/plugins/aorai/tests/ya/oracle/test_acces_params.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle/test_acces_params.res.oracle @@ -1,5 +1,4 @@ [kernel] Parsing tests/ya/test_acces_params.c (with preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_test_acces_params_0.i (no preprocessing) /* Generated by Frama-C */ enum aorai_ListOper { @@ -15,8 +14,8 @@ int status = 0; int rr = 1; /*@ global invariant inv: 0 ≤ rr ≤ 5000; */ -/*@ ghost enum aorai_ListOper aorai_CurOperation = op_main; */ -/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus = aorai_Called; */ +/*@ ghost enum aorai_ListOper aorai_CurOperation; */ +/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus; */ /*@ ghost int S1 = 0; */ /*@ ghost int S2 = 0; */ /*@ ghost int S3 = 0; */ @@ -64,6 +63,7 @@ int rr = 1; int S4_tmp; int SF_tmp; int mainst_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_opa; S1_tmp = S1; @@ -76,7 +76,9 @@ int rr = 1; SF_tmp = 0; S4_tmp = 0; S3_tmp = 0; - if (S1 == 1 && i >= 0) S2_tmp = 1; else S2_tmp = 0; + if (S1 == 1) + if (i >= 0) S2_tmp = 1; else S2_tmp = 0; + else S2_tmp = 0; S1_tmp = 0; S1 = S1_tmp; S2 = S2_tmp; @@ -129,6 +131,7 @@ int rr = 1; int S4_tmp; int SF_tmp; int mainst_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_opa; S1_tmp = S1; @@ -216,6 +219,7 @@ void opa(int i, int j) int S4_tmp; int SF_tmp; int mainst_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_opb; S1_tmp = S1; @@ -282,6 +286,7 @@ void opa(int i, int j) int S4_tmp; int SF_tmp; int mainst_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_opb; S1_tmp = S1; @@ -291,7 +296,9 @@ void opa(int i, int j) SF_tmp = SF; mainst_tmp = mainst; mainst_tmp = 0; - if (S4 == 1 && res > 0) SF_tmp = 1; else SF_tmp = 0; + if (S4 == 1) + if (res > 0) SF_tmp = 1; else SF_tmp = 0; + else SF_tmp = 0; S4_tmp = 0; S3_tmp = 0; S2_tmp = 0; @@ -367,6 +374,7 @@ int opb(void) int S4_tmp; int SF_tmp; int mainst_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_main; S1_tmp = S1; @@ -432,6 +440,7 @@ int opb(void) int S4_tmp; int SF_tmp; int mainst_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_main; S1_tmp = S1; diff --git a/src/plugins/aorai/tests/ya/oracle/test_acces_params2.res.oracle b/src/plugins/aorai/tests/ya/oracle/test_acces_params2.res.oracle index 16997723976399ec7e581375b99d0be6dc37e33e..af3a83362234cacdf672489228e7892abb9b8502 100644 --- a/src/plugins/aorai/tests/ya/oracle/test_acces_params2.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle/test_acces_params2.res.oracle @@ -1,5 +1,4 @@ [kernel] Parsing tests/ya/test_acces_params2.c (with preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_test_acces_params2_0.i (no preprocessing) /* Generated by Frama-C */ enum aorai_ListOper { @@ -15,8 +14,8 @@ enum aorai_OpStatusList { int rr = 1; /*@ global invariant inv: 0 ≤ rr ≤ 5000; */ -/*@ ghost enum aorai_ListOper aorai_CurOperation = op_main; */ -/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus = aorai_Called; */ +/*@ ghost enum aorai_ListOper aorai_CurOperation; */ +/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus; */ /*@ ghost int S1 = 1; */ /*@ ghost int S2 = 0; */ /*@ ghost int S3 = 0; */ @@ -69,6 +68,7 @@ int rr = 1; int S5_tmp; int S6_tmp; int S7_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_opa; S1_tmp = S1; @@ -82,7 +82,9 @@ int rr = 1; S6_tmp = 0; S5_tmp = 0; S4_tmp = 0; - if (S2 == 1 && r >= 0) S3_tmp = 1; else S3_tmp = 0; + if (S2 == 1) + if (r >= 0) S3_tmp = 1; else S3_tmp = 0; + else S3_tmp = 0; S2_tmp = 0; S1_tmp = 0; S1 = S1_tmp; @@ -142,6 +144,7 @@ int rr = 1; int S5_tmp; int S6_tmp; int S7_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_opa; S1_tmp = S1; @@ -154,7 +157,9 @@ int rr = 1; S7_tmp = 0; S6_tmp = 0; S5_tmp = 0; - if (S3 == 1 && res <= 5000) S4_tmp = 1; else S4_tmp = 0; + if (S3 == 1) + if (res <= 5000) S4_tmp = 1; else S4_tmp = 0; + else S4_tmp = 0; S3_tmp = 0; S2_tmp = 0; S1_tmp = 0; @@ -239,6 +244,7 @@ int opa(int r) int S5_tmp; int S6_tmp; int S7_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_opb; S1_tmp = S1; @@ -311,6 +317,7 @@ int opa(int r) int S5_tmp; int S6_tmp; int S7_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_opb; S1_tmp = S1; @@ -398,6 +405,7 @@ void opb(void) int S5_tmp; int S6_tmp; int S7_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_opc; S1_tmp = S1; @@ -463,6 +471,7 @@ void opb(void) int S5_tmp; int S6_tmp; int S7_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_opc; S1_tmp = S1; @@ -569,6 +578,7 @@ void opc(void) int S5_tmp; int S6_tmp; int S7_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_main; S1_tmp = S1; @@ -641,6 +651,7 @@ void opc(void) int S5_tmp; int S6_tmp; int S7_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_main; S1_tmp = S1; diff --git a/src/plugins/aorai/tests/ya/oracle/test_boucle_rechercheTableau.res.oracle b/src/plugins/aorai/tests/ya/oracle/test_boucle_rechercheTableau.res.oracle index 6bd1a0b39b8010458503b8e83ae36ac33f416ecf..028e81110750d6e5129071ba1589b3f81fc73a1c 100644 --- a/src/plugins/aorai/tests/ya/oracle/test_boucle_rechercheTableau.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle/test_boucle_rechercheTableau.res.oracle @@ -3,7 +3,6 @@ parsing obsolete ACSL construct '\valid_range(addr,min,max)'. '\valid(addr+(min..max))' should be used instead. [kernel] tests/ya/test_boucle_rechercheTableau.c:7: Warning: parsing obsolete ACSL construct '\valid_range(addr,min,max)'. '\valid(addr+(min..max))' should be used instead. -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_test_boucle_rechercheTableau_0.i (no preprocessing) /* Generated by Frama-C */ enum aorai_ListOper { @@ -15,8 +14,8 @@ 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 enum aorai_ListOper aorai_CurOperation; */ +/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus; */ /*@ ghost int End = 0; */ /*@ ghost int Idle = 1; */ /*@ ghost int WillDoFoo = 0; */ @@ -45,6 +44,7 @@ enum aorai_OpStatusList { int End_tmp; int Idle_tmp; int WillDoFoo_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_isPresent; End_tmp = End; @@ -92,14 +92,19 @@ enum aorai_OpStatusList { int End_tmp; int Idle_tmp; int WillDoFoo_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_isPresent; End_tmp = End; Idle_tmp = Idle; WillDoFoo_tmp = WillDoFoo; - if (Idle == 1 && res == -1) WillDoFoo_tmp = 1; else WillDoFoo_tmp = 0; + if (Idle == 1) + if (res == -1) WillDoFoo_tmp = 1; else WillDoFoo_tmp = 0; + else WillDoFoo_tmp = 0; Idle_tmp = 0; - if (Idle == 1 && res != -1) End_tmp = 1; else End_tmp = 0; + if (Idle == 1) + if (res != -1) End_tmp = 1; else End_tmp = 0; + else End_tmp = 0; End = End_tmp; Idle = Idle_tmp; WillDoFoo = WillDoFoo_tmp; @@ -189,6 +194,7 @@ int isPresent(int *t, int max, int val) int End_tmp; int Idle_tmp; int WillDoFoo_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_foo; End_tmp = End; @@ -230,6 +236,7 @@ int isPresent(int *t, int max, int val) int End_tmp; int Idle_tmp; int WillDoFoo_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_foo; End_tmp = End; @@ -284,6 +291,7 @@ void foo(void) int End_tmp; int Idle_tmp; int WillDoFoo_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_main; End_tmp = End; @@ -325,6 +333,7 @@ void foo(void) int End_tmp; int Idle_tmp; int WillDoFoo_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_main; End_tmp = End; diff --git a/src/plugins/aorai/tests/ya/oracle/test_factorial.res.oracle b/src/plugins/aorai/tests/ya/oracle/test_factorial.res.oracle index 009f14f70dd4771f190e1b6b609515a3a8316b8a..b174e49f3f32ad748fe314886ba421d842fcdaaa 100644 --- a/src/plugins/aorai/tests/ya/oracle/test_factorial.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle/test_factorial.res.oracle @@ -1,5 +1,4 @@ [kernel] Parsing tests/ya/test_factorial.c (with preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_test_factorial_0.i (no preprocessing) /* Generated by Frama-C */ enum aorai_ListOper { @@ -11,8 +10,8 @@ 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 enum aorai_ListOper aorai_CurOperation; */ +/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus; */ /*@ ghost int S1 = 0; */ /*@ ghost int S2 = 0; */ /*@ ghost int main_0 = 1; */ @@ -41,6 +40,7 @@ enum aorai_OpStatusList { int S1_tmp; int S2_tmp; int main_0_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_decode_int; S1_tmp = S1; @@ -87,6 +87,7 @@ enum aorai_OpStatusList { int S1_tmp; int S2_tmp; int main_0_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_decode_int; S1_tmp = S1; @@ -208,13 +209,16 @@ int decode_int(char *s) int S1_tmp; int S2_tmp; int main_0_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_factorial; S1_tmp = S1; S2_tmp = S2; main_0_tmp = main_0; main_0_tmp = 0; - if (S1 == 1 || S2 == 1) S2_tmp = 1; else S2_tmp = 0; + if (S1 == 1) S2_tmp = 1; + else + if (S2 == 1) S2_tmp = 1; else S2_tmp = 0; S1_tmp = 0; S1 = S1_tmp; S2 = S2_tmp; @@ -254,14 +258,19 @@ int decode_int(char *s) int S1_tmp; int S2_tmp; int main_0_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_factorial; S1_tmp = S1; S2_tmp = S2; main_0_tmp = main_0; main_0_tmp = 0; - if (S1 == 1 || S2 == 1) S2_tmp = 1; else S2_tmp = 0; - if (S1 == 1 || S2 == 1) S1_tmp = 1; else S1_tmp = 0; + if (S1 == 1) S2_tmp = 1; + else + if (S2 == 1) S2_tmp = 1; else S2_tmp = 0; + if (S1 == 1) S1_tmp = 1; + else + if (S2 == 1) S1_tmp = 1; else S1_tmp = 0; S1 = S1_tmp; S2 = S2_tmp; main_0 = main_0_tmp; @@ -322,6 +331,7 @@ int factorial(int value) int S1_tmp; int S2_tmp; int main_0_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_main; S1_tmp = S1; @@ -368,6 +378,7 @@ int factorial(int value) int S1_tmp; int S2_tmp; int main_0_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_main; S1_tmp = S1; diff --git a/src/plugins/aorai/tests/ya/oracle/test_recursion4.res.oracle b/src/plugins/aorai/tests/ya/oracle/test_recursion4.res.oracle index cdfe4aba74bff1e589436adad382f28f9967766a..650a1625271f495e71a3d1411bb69d151e7a8410 100644 --- a/src/plugins/aorai/tests/ya/oracle/test_recursion4.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle/test_recursion4.res.oracle @@ -1,5 +1,4 @@ [kernel] Parsing tests/ya/test_recursion4.c (with preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_test_recursion4_0.i (no preprocessing) /* Generated by Frama-C */ enum aorai_ListOper { @@ -12,8 +11,8 @@ enum aorai_OpStatusList { aorai_Called = 0 }; #pragma JessieIntegerModel(math) -/*@ ghost enum aorai_ListOper aorai_CurOperation = op_main; */ -/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus = aorai_Called; */ +/*@ ghost enum aorai_ListOper aorai_CurOperation; */ +/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus; */ /*@ ghost int End = 0; */ /*@ ghost int Idle = 1; */ /*@ ghost int WillDoFoo = 0; */ @@ -42,6 +41,7 @@ enum aorai_OpStatusList { int End_tmp; int Idle_tmp; int WillDoFoo_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_isPresent; End_tmp = End; @@ -95,16 +95,31 @@ enum aorai_OpStatusList { int End_tmp; int Idle_tmp; int WillDoFoo_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_isPresent; End_tmp = End; Idle_tmp = Idle; WillDoFoo_tmp = WillDoFoo; - if (Idle == 1 && res == -1 || WillDoFoo == 1 && res == -1) WillDoFoo_tmp = 1; - else WillDoFoo_tmp = 0; + if (Idle == 1) { + if (res == -1) WillDoFoo_tmp = 1; else goto __aorai_label_0; + } + else { + __aorai_label_0: ; + if (WillDoFoo == 1) + if (res == -1) WillDoFoo_tmp = 1; else WillDoFoo_tmp = 0; + else WillDoFoo_tmp = 0; + } Idle_tmp = 0; - if (End == 1 && res != -1 || Idle == 1 && res != -1) End_tmp = 1; - else End_tmp = 0; + if (End == 1) { + if (res != -1) End_tmp = 1; else goto __aorai_label; + } + else { + __aorai_label: ; + if (Idle == 1) + if (res != -1) End_tmp = 1; else End_tmp = 0; + else End_tmp = 0; + } End = End_tmp; Idle = Idle_tmp; WillDoFoo = WillDoFoo_tmp; @@ -185,6 +200,7 @@ int isPresent(int *t, int size, int val) int End_tmp; int Idle_tmp; int WillDoFoo_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_foo; End_tmp = End; @@ -226,6 +242,7 @@ int isPresent(int *t, int size, int val) int End_tmp; int Idle_tmp; int WillDoFoo_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_foo; End_tmp = End; @@ -280,6 +297,7 @@ void foo(void) int End_tmp; int Idle_tmp; int WillDoFoo_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_main; End_tmp = End; @@ -321,6 +339,7 @@ void foo(void) int End_tmp; int Idle_tmp; int WillDoFoo_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_main; End_tmp = End; diff --git a/src/plugins/aorai/tests/ya/oracle/test_recursion5.res.oracle b/src/plugins/aorai/tests/ya/oracle/test_recursion5.res.oracle index bc9334eec11d7af2e8fcb00eb21f5fb24d1a832f..c4af634f2defb5bcdfac58923933c684aba9f991 100644 --- a/src/plugins/aorai/tests/ya/oracle/test_recursion5.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle/test_recursion5.res.oracle @@ -3,7 +3,6 @@ parsing obsolete ACSL construct '\valid_range(addr,min,max)'. '\valid(addr+(min..max))' should be used instead. [kernel] tests/ya/test_recursion5.c:28: Warning: parsing obsolete ACSL construct '\valid_range(addr,min,max)'. '\valid(addr+(min..max))' should be used instead. -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_test_recursion5_0.i (no preprocessing) /* Generated by Frama-C */ enum aorai_ListOper { @@ -16,8 +15,8 @@ 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 enum aorai_ListOper aorai_CurOperation; */ +/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus; */ /*@ ghost int End = 0; */ /*@ ghost int Idle = 1; */ /*@ ghost int IgnoreFoo = 0; */ @@ -53,6 +52,7 @@ enum aorai_OpStatusList { int Idle_tmp; int IgnoreFoo_tmp; int WillDoFoo_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_isPresentRec; End_tmp = End; @@ -117,16 +117,31 @@ enum aorai_OpStatusList { int Idle_tmp; int IgnoreFoo_tmp; int WillDoFoo_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_isPresentRec; End_tmp = End; Idle_tmp = Idle; IgnoreFoo_tmp = IgnoreFoo; WillDoFoo_tmp = WillDoFoo; - if (Idle == 1 && res == -1 || WillDoFoo == 1 && res == -1) WillDoFoo_tmp = 1; - else WillDoFoo_tmp = 0; - if (Idle == 1 && res != -1 || IgnoreFoo == 1 && res != -1) IgnoreFoo_tmp = 1; - else IgnoreFoo_tmp = 0; + if (Idle == 1) { + if (res == -1) WillDoFoo_tmp = 1; else goto __aorai_label_0; + } + else { + __aorai_label_0: ; + if (WillDoFoo == 1) + if (res == -1) WillDoFoo_tmp = 1; else WillDoFoo_tmp = 0; + else WillDoFoo_tmp = 0; + } + if (Idle == 1) { + if (res != -1) IgnoreFoo_tmp = 1; else goto __aorai_label; + } + else { + __aorai_label: ; + if (IgnoreFoo == 1) + if (res != -1) IgnoreFoo_tmp = 1; else IgnoreFoo_tmp = 0; + else IgnoreFoo_tmp = 0; + } Idle_tmp = 0; End_tmp = 0; End = End_tmp; @@ -215,6 +230,7 @@ int isPresentRec(int *t, int i, int max, int val) int Idle_tmp; int IgnoreFoo_tmp; int WillDoFoo_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_isPresent; End_tmp = End; @@ -272,17 +288,21 @@ int isPresentRec(int *t, int i, int max, int val) int Idle_tmp; int IgnoreFoo_tmp; int WillDoFoo_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_isPresent; End_tmp = End; Idle_tmp = Idle; IgnoreFoo_tmp = IgnoreFoo; WillDoFoo_tmp = WillDoFoo; - if (WillDoFoo == 1 && res == -1) WillDoFoo_tmp = 1; + if (WillDoFoo == 1) + if (res == -1) WillDoFoo_tmp = 1; else WillDoFoo_tmp = 0; else WillDoFoo_tmp = 0; IgnoreFoo_tmp = 0; Idle_tmp = 0; - if (IgnoreFoo == 1 && res != -1) End_tmp = 1; else End_tmp = 0; + if (IgnoreFoo == 1) + if (res != -1) End_tmp = 1; else End_tmp = 0; + else End_tmp = 0; End = End_tmp; Idle = Idle_tmp; IgnoreFoo = IgnoreFoo_tmp; @@ -352,6 +372,7 @@ int isPresent(int *t, int max, int val) int Idle_tmp; int IgnoreFoo_tmp; int WillDoFoo_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_foo; End_tmp = End; @@ -402,6 +423,7 @@ int isPresent(int *t, int max, int val) int Idle_tmp; int IgnoreFoo_tmp; int WillDoFoo_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_foo; End_tmp = End; @@ -466,6 +488,7 @@ void foo(void) int Idle_tmp; int IgnoreFoo_tmp; int WillDoFoo_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_main; End_tmp = End; @@ -516,6 +539,7 @@ void foo(void) int Idle_tmp; int IgnoreFoo_tmp; int WillDoFoo_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_main; End_tmp = End; diff --git a/src/plugins/aorai/tests/ya/oracle/test_struct.res.oracle b/src/plugins/aorai/tests/ya/oracle/test_struct.res.oracle index 0e102ceda9633ce37d9262207c569e610ce0a69b..3ba01477c274e77bf5488bd24ffe34cfe08e8fb4 100644 --- a/src/plugins/aorai/tests/ya/oracle/test_struct.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle/test_struct.res.oracle @@ -1,5 +1,4 @@ [kernel] Parsing tests/ya/test_struct.c (with preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_test_struct_0.i (no preprocessing) /* Generated by Frama-C */ struct People { @@ -16,8 +15,8 @@ enum aorai_OpStatusList { }; struct People nobody; int myAge = 0; -/*@ ghost enum aorai_ListOper aorai_CurOperation = op_main; */ -/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus = aorai_Called; */ +/*@ ghost enum aorai_ListOper aorai_CurOperation; */ +/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus; */ /*@ ghost int S1 = 0; */ /*@ ghost int main_0 = 1; */ /*@ ghost @@ -42,12 +41,15 @@ int myAge = 0; { int S1_tmp; int main_0_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_increment; S1_tmp = S1; main_0_tmp = main_0; main_0_tmp = 0; - if (S1 == 1 && nobody.Age == 1) S1_tmp = 1; else S1_tmp = 0; + if (S1 == 1) + if (nobody.Age == 1) S1_tmp = 1; else S1_tmp = 0; + else S1_tmp = 0; S1 = S1_tmp; main_0 = main_0_tmp; return; @@ -77,12 +79,15 @@ int myAge = 0; { int S1_tmp; int main_0_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_increment; S1_tmp = S1; main_0_tmp = main_0; main_0_tmp = 0; - if (S1 == 1 && nobody.Age == 1) S1_tmp = 1; else S1_tmp = 0; + if (S1 == 1) + if (nobody.Age == 1) S1_tmp = 1; else S1_tmp = 0; + else S1_tmp = 0; S1 = S1_tmp; main_0 = main_0_tmp; return; @@ -129,12 +134,15 @@ void increment(void) { int S1_tmp; int main_0_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_main; S1_tmp = S1; main_0_tmp = main_0; main_0_tmp = 0; - if (main_0 == 1 && nobody.Age == 0) S1_tmp = 1; else S1_tmp = 0; + if (main_0 == 1) + if (nobody.Age == 0) S1_tmp = 1; else S1_tmp = 0; + else S1_tmp = 0; S1 = S1_tmp; main_0 = main_0_tmp; return; @@ -164,12 +172,15 @@ void increment(void) { int S1_tmp; int main_0_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_main; S1_tmp = S1; main_0_tmp = main_0; main_0_tmp = 0; - if (S1 == 1 && nobody.Age == 1) S1_tmp = 1; else S1_tmp = 0; + if (S1 == 1) + if (nobody.Age == 1) S1_tmp = 1; else S1_tmp = 0; + else S1_tmp = 0; S1 = S1_tmp; main_0 = main_0_tmp; return; diff --git a/src/plugins/aorai/tests/ya/oracle_prove/aorai_ptr_field.res.oracle b/src/plugins/aorai/tests/ya/oracle_prove/aorai_ptr_field.res.oracle index 5d9a38bc1e4b760ac98152b2e6c6958812759e8d..45a91772ac37c0a8a776a8b3f720ea67c19b56ee 100644 --- a/src/plugins/aorai/tests/ya/oracle_prove/aorai_ptr_field.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle_prove/aorai_ptr_field.res.oracle @@ -1,4 +1,3 @@ [kernel] Parsing tests/ya/aorai_ptr_field.i (no preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_aorai_ptr_field_0.i (no preprocessing) [wp] Warning: Missing RTE guards diff --git a/src/plugins/aorai/tests/ya/oracle_prove/assigns.0.res.oracle b/src/plugins/aorai/tests/ya/oracle_prove/assigns.0.res.oracle index 6e42468e3ad6fb56d5cfecda01abf90d858bcfe2..982103df2daf7ea1a089a36951f686d4c9a1ad59 100644 --- a/src/plugins/aorai/tests/ya/oracle_prove/assigns.0.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle_prove/assigns.0.res.oracle @@ -1,4 +1,3 @@ [kernel] Parsing tests/ya/assigns.c (with preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_assigns_0.i (no preprocessing) [wp] Warning: Missing RTE guards diff --git a/src/plugins/aorai/tests/ya/oracle_prove/assigns.1.res.oracle b/src/plugins/aorai/tests/ya/oracle_prove/assigns.1.res.oracle index bfa57eb1f306974f472def9cf44e9cb20c224eb2..19922b414f8a559fe85fd825037f7154ba64f231 100644 --- a/src/plugins/aorai/tests/ya/oracle_prove/assigns.1.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle_prove/assigns.1.res.oracle @@ -1,4 +1,3 @@ [kernel] Parsing tests/ya/assigns.c (with preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_assigns_1.i (no preprocessing) [wp] Warning: Missing RTE guards diff --git a/src/plugins/aorai/tests/ya/oracle_prove/assigns.2.res.oracle b/src/plugins/aorai/tests/ya/oracle_prove/assigns.2.res.oracle index f5a60a3aac12f9e6f74b645b97c97125445d9996..5a761e8ca86775a91718ded77e107d61a8a15aa6 100644 --- a/src/plugins/aorai/tests/ya/oracle_prove/assigns.2.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle_prove/assigns.2.res.oracle @@ -1,5 +1,4 @@ [kernel] Parsing tests/ya/assigns.c (with preprocessing) -[aorai] Welcome to the Aorai plugin /* Generated by Frama-C */ int X; void f(void) diff --git a/src/plugins/aorai/tests/ya/oracle_prove/bts1289.0.res.oracle b/src/plugins/aorai/tests/ya/oracle_prove/bts1289.0.res.oracle index 8a21ce6dc7cc4ae686a93943b42b1a52a4ecf689..9e49047ac776ff21695ad39cf63803a0e8c0aa67 100644 --- a/src/plugins/aorai/tests/ya/oracle_prove/bts1289.0.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle_prove/bts1289.0.res.oracle @@ -1,5 +1,4 @@ [kernel] Parsing tests/ya/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 [kernel] Parsing TMPDIR/aorai_bts1289_0.i (no preprocessing) [wp] Warning: Missing RTE guards diff --git a/src/plugins/aorai/tests/ya/oracle_prove/bts1289.1.res.oracle b/src/plugins/aorai/tests/ya/oracle_prove/bts1289.1.res.oracle index 7455ed9f29ad0d766b44878cabe2cf61ab7e0a98..09d835e87402e3767aef3dca97a0ef21ea085a87 100644 --- a/src/plugins/aorai/tests/ya/oracle_prove/bts1289.1.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle_prove/bts1289.1.res.oracle @@ -1,4 +1,3 @@ [kernel] Parsing tests/ya/bts1289.i (no preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_bts1289_1.i (no preprocessing) [wp] Warning: Missing RTE guards diff --git a/src/plugins/aorai/tests/ya/oracle_prove/declared_function.res.oracle b/src/plugins/aorai/tests/ya/oracle_prove/declared_function.res.oracle index e961cfa00b2c702983e5a54ba2f3c9f44d55d313..500161bb9b87f344c719102b69b2fca48fd92521 100644 --- a/src/plugins/aorai/tests/ya/oracle_prove/declared_function.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle_prove/declared_function.res.oracle @@ -1,6 +1,5 @@ [kernel] Parsing tests/ya/declared_function.i (no preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_declared_function_0.i (no preprocessing) -[kernel:annot:missing-spec] TMPDIR/aorai_declared_function_0.i:48: Warning: +[kernel:annot:missing-spec] TMPDIR/aorai_declared_function_0.i:50: Warning: Neither code nor specification for function f, generating default assigns from the prototype [wp] Warning: Missing RTE guards diff --git a/src/plugins/aorai/tests/ya/oracle_prove/deterministic.res.oracle b/src/plugins/aorai/tests/ya/oracle_prove/deterministic.res.oracle index da8094d3368a5686310a2aff3d01b936866ceb30..8b53a748afa1149d700e7f74203ad0bb37c35a04 100644 --- a/src/plugins/aorai/tests/ya/oracle_prove/deterministic.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle_prove/deterministic.res.oracle @@ -1,4 +1,3 @@ [kernel] Parsing tests/ya/deterministic.i (no preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_deterministic_0.i (no preprocessing) [wp] Warning: Missing RTE guards diff --git a/src/plugins/aorai/tests/ya/oracle_prove/formals.res.oracle b/src/plugins/aorai/tests/ya/oracle_prove/formals.res.oracle index 203e6f02f62136e70e652d204f160ecb34450cde..fbd3997a5e7e5d298aefcc9b3f03b2bbbd2b00ca 100644 --- a/src/plugins/aorai/tests/ya/oracle_prove/formals.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle_prove/formals.res.oracle @@ -1,4 +1,3 @@ [kernel] Parsing tests/ya/formals.i (no preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_formals_0.i (no preprocessing) [wp] Warning: Missing RTE guards diff --git a/src/plugins/aorai/tests/ya/oracle_prove/generate_assigns_bts1290.res.oracle b/src/plugins/aorai/tests/ya/oracle_prove/generate_assigns_bts1290.res.oracle index 8c689f78567e5268a9ff9b5e916b7ee948bb47ab..55b4a9433c8e88bcb17b22bb5bb7485f7747e270 100644 --- a/src/plugins/aorai/tests/ya/oracle_prove/generate_assigns_bts1290.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle_prove/generate_assigns_bts1290.res.oracle @@ -1,4 +1,3 @@ [kernel] Parsing tests/ya/generate_assigns_bts1290.i (no preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_generate_assigns_bts1290_0.i (no preprocessing) [wp] Warning: Missing RTE guards diff --git a/src/plugins/aorai/tests/ya/oracle_prove/hoare_seq.res.oracle b/src/plugins/aorai/tests/ya/oracle_prove/hoare_seq.res.oracle index 25f11ffa4fd49a20ff9441ac586602ccffb8bfa8..5f917f2df5c7f9b6bb104d8d8afc525bce69d14e 100644 --- a/src/plugins/aorai/tests/ya/oracle_prove/hoare_seq.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle_prove/hoare_seq.res.oracle @@ -1,4 +1,3 @@ [kernel] Parsing tests/ya/hoare_seq.i (no preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_hoare_seq_0.i (no preprocessing) [wp] Warning: Missing RTE guards diff --git a/src/plugins/aorai/tests/ya/oracle_prove/incorrect.res.oracle b/src/plugins/aorai/tests/ya/oracle_prove/incorrect.res.oracle index e5437b11cf441f0122b9d89b3ba1147984506890..30ba0541d811ba71dc98cdebc6793c7e0d12e87e 100644 --- a/src/plugins/aorai/tests/ya/oracle_prove/incorrect.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle_prove/incorrect.res.oracle @@ -1,7 +1,6 @@ [kernel] Parsing tests/ya/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 [kernel] Parsing TMPDIR/aorai_incorrect_0.i (no preprocessing) [wp] Warning: Missing RTE guards -[kernel:annot:missing-spec] TMPDIR/aorai_incorrect_0.i:62: Warning: +[kernel:annot:missing-spec] TMPDIR/aorai_incorrect_0.i:69: Warning: Neither code nor specification for function f, generating default assigns from the prototype diff --git a/src/plugins/aorai/tests/ya/oracle_prove/logical_operators.res.oracle b/src/plugins/aorai/tests/ya/oracle_prove/logical_operators.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..6168c618fe79e2e0da7ebe5b8b2167825f84ce8d --- /dev/null +++ b/src/plugins/aorai/tests/ya/oracle_prove/logical_operators.res.oracle @@ -0,0 +1,3 @@ +[kernel] Parsing tests/ya/logical_operators.i (no preprocessing) +[kernel] Parsing TMPDIR/aorai_logical_operators_0.i (no preprocessing) +[wp] Warning: Missing RTE guards diff --git a/src/plugins/aorai/tests/ya/oracle_prove/loop_bts1050.res.oracle b/src/plugins/aorai/tests/ya/oracle_prove/loop_bts1050.res.oracle index 8830b5bd606bd9d84295fe6287d86194126227e3..49b40bd6a118b65a30760349ede69b4d669ee30e 100644 --- a/src/plugins/aorai/tests/ya/oracle_prove/loop_bts1050.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle_prove/loop_bts1050.res.oracle @@ -1,4 +1,3 @@ [kernel] Parsing tests/ya/loop_bts1050.i (no preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_loop_bts1050_0.i (no preprocessing) [wp] Warning: Missing RTE guards diff --git a/src/plugins/aorai/tests/ya/oracle_prove/metavariables-incompatible.res.oracle b/src/plugins/aorai/tests/ya/oracle_prove/metavariables-incompatible.res.oracle index 57c2d7eed1ca61046277d1cbf5d005a9fde10a52..a682bee8a270311ec22d7a3b33999a452ac306bf 100644 --- a/src/plugins/aorai/tests/ya/oracle_prove/metavariables-incompatible.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle_prove/metavariables-incompatible.res.oracle @@ -1,4 +1,3 @@ [kernel] Parsing tests/ya/metavariables-incompatible.i (no preprocessing) -[aorai] Welcome to the Aorai plugin -[aorai] User Error: The use of metavariables is incompatible with non-deterministic automata, such as automa using extended transitions. +[aorai] User Error: The use of metavariables is incompatible with non-deterministic automata, such as automata using extended transitions. [kernel] Plug-in aorai aborted: invalid user input. diff --git a/src/plugins/aorai/tests/ya/oracle_prove/metavariables-right.res.oracle b/src/plugins/aorai/tests/ya/oracle_prove/metavariables-right.res.oracle index 6803c149a7b942ab01ffcff164c2ae40bf6aca0d..54e1691625c95c6428570c38d5f776886b469f60 100644 --- a/src/plugins/aorai/tests/ya/oracle_prove/metavariables-right.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle_prove/metavariables-right.res.oracle @@ -1,4 +1,3 @@ [kernel] Parsing tests/ya/metavariables-right.i (no preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_metavariables-right_0.i (no preprocessing) [wp] Warning: Missing RTE guards diff --git a/src/plugins/aorai/tests/ya/oracle_prove/metavariables-wrong.res.oracle b/src/plugins/aorai/tests/ya/oracle_prove/metavariables-wrong.res.oracle index 44c1487fcf7693e627a38f17cea95e7cd8e7b492..7aca51a51b2a805049c34693029c51f4dbd8a369 100644 --- a/src/plugins/aorai/tests/ya/oracle_prove/metavariables-wrong.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle_prove/metavariables-wrong.res.oracle @@ -1,5 +1,4 @@ [kernel] Parsing tests/ya/metavariables-wrong.i (no preprocessing) -[aorai] Welcome to the Aorai plugin [aorai] User Error: The metavariables aorai_x may not be initialized before the transition from e to f_0: { (Call(h)) and ((aorai_x) > (0)) } [kernel] Plug-in aorai aborted: invalid user input. diff --git a/src/plugins/aorai/tests/ya/oracle_prove/not_prm.res.oracle b/src/plugins/aorai/tests/ya/oracle_prove/not_prm.res.oracle index fd02e38e18a3bbf64d83f462bb12b7d3f1b5bc04..9921e92ae87197c4147f52ecfbff12b30d2fea70 100644 --- a/src/plugins/aorai/tests/ya/oracle_prove/not_prm.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle_prove/not_prm.res.oracle @@ -1,4 +1,3 @@ [kernel] Parsing tests/ya/not_prm.i (no preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_not_prm_0.i (no preprocessing) [wp] Warning: Missing RTE guards diff --git a/src/plugins/aorai/tests/ya/oracle_prove/other.res.oracle b/src/plugins/aorai/tests/ya/oracle_prove/other.res.oracle index 470d9d475b7189d3ad2178ee95013cc97bdc81f5..67ad5163c35ce47843920767d47f50ca90c19b6f 100644 --- a/src/plugins/aorai/tests/ya/oracle_prove/other.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle_prove/other.res.oracle @@ -1,4 +1,3 @@ [kernel] Parsing tests/ya/other.c (with preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_other_0.i (no preprocessing) [wp] Warning: Missing RTE guards diff --git a/src/plugins/aorai/tests/ya/oracle_prove/seq.res.oracle b/src/plugins/aorai/tests/ya/oracle_prove/seq.res.oracle index 750146c1ae60528b0c2e8ad46caf226758da9106..7c0f0ef38ef39f16d8dd3704f753bea8042bf337 100644 --- a/src/plugins/aorai/tests/ya/oracle_prove/seq.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle_prove/seq.res.oracle @@ -1,4 +1,3 @@ [kernel] Parsing tests/ya/seq.i (no preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_seq_0.i (no preprocessing) [wp] Warning: Missing RTE guards diff --git a/src/plugins/aorai/tests/ya/oracle_prove/seq_loop.res.oracle b/src/plugins/aorai/tests/ya/oracle_prove/seq_loop.res.oracle index 37849cdec351ef0d0ac0a23bd999d16c95507974..aaa9705b556710ed07a4fa154c06b82d02874836 100644 --- a/src/plugins/aorai/tests/ya/oracle_prove/seq_loop.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle_prove/seq_loop.res.oracle @@ -1,4 +1,3 @@ [kernel] Parsing tests/ya/seq_loop.i (no preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_seq_loop_0.i (no preprocessing) [wp] Warning: Missing RTE guards diff --git a/src/plugins/aorai/tests/ya/oracle_prove/serial.res.oracle b/src/plugins/aorai/tests/ya/oracle_prove/serial.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..2dd3de37879294166ef9a7e0f933bf3cc88c7339 --- /dev/null +++ b/src/plugins/aorai/tests/ya/oracle_prove/serial.res.oracle @@ -0,0 +1,5 @@ +[kernel] Parsing tests/ya/serial.c (with preprocessing) +[kernel] Parsing TMPDIR/aorai_serial_0.i (no preprocessing) +[kernel:annot:missing-spec] TMPDIR/aorai_serial_0.i:738: Warning: + Neither code nor specification for function Frama_C_show_aorai_state, generating default assigns from the prototype +[wp] Warning: Missing RTE guards diff --git a/src/plugins/aorai/tests/ya/oracle_prove/single_call.res.oracle b/src/plugins/aorai/tests/ya/oracle_prove/single_call.res.oracle index dbd60dc8fb54dbf01fb849c02ef8a49365e03b57..ecbefc2abff8eb03290a35b61fc23cd191fe0e48 100644 --- a/src/plugins/aorai/tests/ya/oracle_prove/single_call.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle_prove/single_call.res.oracle @@ -1,4 +1,3 @@ [kernel] Parsing tests/ya/single_call.i (no preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_single_call_0.i (no preprocessing) [wp] Warning: Missing RTE guards diff --git a/src/plugins/aorai/tests/ya/oracle_prove/singleassignment-right.res.oracle b/src/plugins/aorai/tests/ya/oracle_prove/singleassignment-right.res.oracle index 79c1ae490e64e6a010e1842eec97bd6062a2cf0d..46c7832cef04833d9e3c5c2c7b367a8c4bf70d0c 100644 --- a/src/plugins/aorai/tests/ya/oracle_prove/singleassignment-right.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle_prove/singleassignment-right.res.oracle @@ -1,4 +1,3 @@ [kernel] Parsing tests/ya/singleassignment-right.i (no preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_singleassignment-right_0.i (no preprocessing) [wp] Warning: Missing RTE guards diff --git a/src/plugins/aorai/tests/ya/oracle_prove/singleassignment-wrong.res.oracle b/src/plugins/aorai/tests/ya/oracle_prove/singleassignment-wrong.res.oracle index a24943fca9867c96902f607deaafe3a12f1a2e71..9eca9305b90905e2fe0c03ebb470b6b321956636 100644 --- a/src/plugins/aorai/tests/ya/oracle_prove/singleassignment-wrong.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle_prove/singleassignment-wrong.res.oracle @@ -1,5 +1,4 @@ [kernel] Parsing tests/ya/singleassignment-wrong.i (no preprocessing) -[aorai] Welcome to the Aorai plugin [aorai] User Error: The metavariable aorai_x is assigned several times during the transition from a to b: { Call(main) } aorai_x <- x aorai_x <- aorai_x + 1 diff --git a/src/plugins/aorai/tests/ya/oracle_prove/stack.res.oracle b/src/plugins/aorai/tests/ya/oracle_prove/stack.res.oracle index ad8ddcef2ca5c41625a8a4dec207a6a71cdf6be6..e56f27fc2b989aca361e326f8f48dbf18daef36b 100644 --- a/src/plugins/aorai/tests/ya/oracle_prove/stack.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle_prove/stack.res.oracle @@ -1,4 +1,3 @@ [kernel] Parsing tests/ya/stack.i (no preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_stack_0.i (no preprocessing) [wp] Warning: Missing RTE guards diff --git a/src/plugins/aorai/tests/ya/oracle_prove/test_acces_params.res.oracle b/src/plugins/aorai/tests/ya/oracle_prove/test_acces_params.res.oracle index a20fbf3e28dfbe78c2e6e38549ae116e82d50117..0bf1b088bf5ade07b4cd849c3aec445cb17b41ef 100644 --- a/src/plugins/aorai/tests/ya/oracle_prove/test_acces_params.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle_prove/test_acces_params.res.oracle @@ -1,5 +1,4 @@ [kernel] Parsing tests/ya/test_acces_params.c (with preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_test_acces_params_0.i (no preprocessing) [wp] TMPDIR/aorai_test_acces_params_0.i:4: Warning: Global invariant not handled yet ('inv' ignored) diff --git a/src/plugins/aorai/tests/ya/oracle_prove/test_acces_params2.res.oracle b/src/plugins/aorai/tests/ya/oracle_prove/test_acces_params2.res.oracle index c45f6f03706d1f2f3f8b0c0ea9771e9bca8aa970..82a83a9128b6065cf9c1cddf718442da4c93d7d1 100644 --- a/src/plugins/aorai/tests/ya/oracle_prove/test_acces_params2.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle_prove/test_acces_params2.res.oracle @@ -1,5 +1,4 @@ [kernel] Parsing tests/ya/test_acces_params2.c (with preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_test_acces_params2_0.i (no preprocessing) [wp] TMPDIR/aorai_test_acces_params2_0.i:3: Warning: Global invariant not handled yet ('inv' ignored) diff --git a/src/plugins/aorai/tests/ya/oracle_prove/test_boucle_rechercheTableau.res.oracle b/src/plugins/aorai/tests/ya/oracle_prove/test_boucle_rechercheTableau.res.oracle index d303821150962269a00d47dd2e504fcea9944db9..8cab8fa7b812e4fb8decee97420467e6fd790c5b 100644 --- a/src/plugins/aorai/tests/ya/oracle_prove/test_boucle_rechercheTableau.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle_prove/test_boucle_rechercheTableau.res.oracle @@ -3,6 +3,5 @@ parsing obsolete ACSL construct '\valid_range(addr,min,max)'. '\valid(addr+(min..max))' should be used instead. [kernel] tests/ya/test_boucle_rechercheTableau.c:7: Warning: parsing obsolete ACSL construct '\valid_range(addr,min,max)'. '\valid(addr+(min..max))' should be used instead. -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_test_boucle_rechercheTableau_0.i (no preprocessing) [wp] Warning: Missing RTE guards diff --git a/src/plugins/aorai/tests/ya/oracle_prove/test_factorial.res.oracle b/src/plugins/aorai/tests/ya/oracle_prove/test_factorial.res.oracle index 533a909e627c6e37bef7e29d3cf59dfd1a159e28..0a55ec0fe94f5ad8b0d702a2202938a4b848c915 100644 --- a/src/plugins/aorai/tests/ya/oracle_prove/test_factorial.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle_prove/test_factorial.res.oracle @@ -1,4 +1,3 @@ [kernel] Parsing tests/ya/test_factorial.c (with preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_test_factorial_0.i (no preprocessing) [wp] Warning: Missing RTE guards diff --git a/src/plugins/aorai/tests/ya/oracle_prove/test_recursion4.res.oracle b/src/plugins/aorai/tests/ya/oracle_prove/test_recursion4.res.oracle index 5ca3ac392fdd4b832d8ddadfb0116c1e1e74530b..c87a3ebe4e904d75261e70724144576db3cd5b96 100644 --- a/src/plugins/aorai/tests/ya/oracle_prove/test_recursion4.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle_prove/test_recursion4.res.oracle @@ -1,4 +1,3 @@ [kernel] Parsing tests/ya/test_recursion4.c (with preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_test_recursion4_0.i (no preprocessing) [wp] Warning: Missing RTE guards diff --git a/src/plugins/aorai/tests/ya/oracle_prove/test_recursion5.res.oracle b/src/plugins/aorai/tests/ya/oracle_prove/test_recursion5.res.oracle index 6d11db5117d25a5e722e0f3d7601bd33b5908fe3..2cc98760865bd5e4cdda8a2f355a993384137333 100644 --- a/src/plugins/aorai/tests/ya/oracle_prove/test_recursion5.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle_prove/test_recursion5.res.oracle @@ -3,6 +3,5 @@ parsing obsolete ACSL construct '\valid_range(addr,min,max)'. '\valid(addr+(min..max))' should be used instead. [kernel] tests/ya/test_recursion5.c:28: Warning: parsing obsolete ACSL construct '\valid_range(addr,min,max)'. '\valid(addr+(min..max))' should be used instead. -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_test_recursion5_0.i (no preprocessing) [wp] Warning: Missing RTE guards diff --git a/src/plugins/aorai/tests/ya/oracle_prove/test_struct.res.oracle b/src/plugins/aorai/tests/ya/oracle_prove/test_struct.res.oracle index fe4190800bde83f284a0788579d355d2a84ed468..4c72fb29ede0839691a5f3174338e5fc10fa2bb6 100644 --- a/src/plugins/aorai/tests/ya/oracle_prove/test_struct.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle_prove/test_struct.res.oracle @@ -1,4 +1,3 @@ [kernel] Parsing tests/ya/test_struct.c (with preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_test_struct_0.i (no preprocessing) [wp] Warning: Missing RTE guards diff --git a/src/plugins/aorai/tests/ya/other.c b/src/plugins/aorai/tests/ya/other.c index 4e13872dbf2b5ae2c6f44bb887577bfa91d3402e..c4977e2a37d1bd55cf58ded7ffe03019fe0d6f5e 100644 --- a/src/plugins/aorai/tests/ya/other.c +++ b/src/plugins/aorai/tests/ya/other.c @@ -1,5 +1,5 @@ /* run.config* - OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -aorai-test 1 -aorai-acceptance -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ + OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -aorai-acceptance -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ */ int x=0; diff --git a/src/plugins/aorai/tests/ya/saveload.i b/src/plugins/aorai/tests/ya/saveload.i new file mode 100644 index 0000000000000000000000000000000000000000..24fb0c24fecadc7208148311d896180e2eb04a72 --- /dev/null +++ b/src/plugins/aorai/tests/ya/saveload.i @@ -0,0 +1,16 @@ +/* run.config +NOFRAMAC: +EXECNOW: LOG @PTEST_NAME@.res.0.log BIN @PTEST_NAME@.sav @frama-c@ -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya @PTEST_FILE@ -save @PTEST_DIR@/result/@PTEST_NAME@.sav > @PTEST_DIR@/result/@PTEST_NAME@.res.0.log +EXECNOW: LOG @PTEST_NAME@.res.1.log @frama-c@ -load @PTEST_DIR@/result/@PTEST_NAME@.sav -then-on aorai -eva > @PTEST_DIR@/result/@PTEST_NAME@.res.1.log +*/ +/* run.config_prove +DONTRUN: +*/ + +void f () { } + +int main () { +f(); +Frama_C_show_aorai_state(); +return 0; +} diff --git a/src/plugins/aorai/tests/ya/saveload.ya b/src/plugins/aorai/tests/ya/saveload.ya new file mode 100644 index 0000000000000000000000000000000000000000..cb6e45d39cd57a0fffb13e72e281322b8857f579 --- /dev/null +++ b/src/plugins/aorai/tests/ya/saveload.ya @@ -0,0 +1,6 @@ +%init: init; +%deterministic; +%accept: accept; + +init: -> accept; +accept: -> accept; diff --git a/src/plugins/aorai/tests/ya/seq.i b/src/plugins/aorai/tests/ya/seq.i index f573a5491b319de72d6072634e78f3ebc33d5381..1ba54569e1265a39feb5116465e75c7547c1fb61 100644 --- a/src/plugins/aorai/tests/ya/seq.i +++ b/src/plugins/aorai/tests/ya/seq.i @@ -1,5 +1,5 @@ /* run.config* - OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -aorai-test 1 -load-module tests/Aorai_test.cmxs -aorai-acceptance -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ + OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -load-module tests/Aorai_test.cmxs -aorai-acceptance -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ */ void f() { } diff --git a/src/plugins/aorai/tests/ya/seq_loop.i b/src/plugins/aorai/tests/ya/seq_loop.i index 07cc7cf2a9b9593684429bbd6d0a1950f97818c1..bee4d37d3cf6133cb65ca4bb52f1beb98e427bbb 100644 --- a/src/plugins/aorai/tests/ya/seq_loop.i +++ b/src/plugins/aorai/tests/ya/seq_loop.i @@ -1,5 +1,5 @@ /* run.config* - OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -aorai-test 1 -load-module tests/Aorai_test.cmxs -aorai-acceptance -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ + OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -load-module tests/Aorai_test.cmxs -aorai-acceptance -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ */ void f() {} diff --git a/src/plugins/aorai/tests/ya/serial.c b/src/plugins/aorai/tests/ya/serial.c new file mode 100644 index 0000000000000000000000000000000000000000..9efe13a270bb6d0f69b7ec73c1522c4daf3c465e --- /dev/null +++ b/src/plugins/aorai/tests/ya/serial.c @@ -0,0 +1,99 @@ +/* run.config + OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -load-module tests/Aorai_test.cmxs -aorai-smoke-tests -aorai-test-number @PTEST_NUMBER@ -aorai-no-acceptance -aorai-instrumentation-history 2 -aorai-no-generate-annotations -aorai-no-generate-deterministic-lemmas -then-last -eva -eva-partition-value n -eva-ilevel 256 +*/ +/* run.config_prove +OPT: -cpp-extra-args="-DFOR_WP" -aorai-automata @PTEST_DIR@/@PTEST_NAME@_wp.ya -load-module tests/Aorai_test.cmxs -aorai-smoke-tests -aorai-test-number @PTEST_NUMBER@ -aorai-no-acceptance @PROVE_OPTIONS@ +*/ + +#include "__fc_builtin.h" + +#ifndef FOR_WP +#define BW_AND & +#define BW_AND2 & +#define BW_AND3 & +#else +#define BW_AND == +#define BW_AND2 >= +#define BW_AND3 <= +#endif + +/*@ assigns \result,Frama_C_entropy_source \from Frama_C_entropy_source; + ensures 0 <= \result < 0x100; */ +int input_status(void) { + return Frama_C_interval(0x00, 0xff); +} + +/*@ assigns \result,Frama_C_entropy_source \from Frama_C_entropy_source; + ensures 0 <= \result < 0x100; */ +int input_data(void) { + return Frama_C_interval(0x00, 0xff); +} + +/*@ assigns \nothing; */ +void output(int x, int y) { + // do nothing +} + + +int read(int *status) +{ + int s = input_status(); + + if (s BW_AND2 0x01) { + *status = s BW_AND 0x0e; + return input_data(); + } + + return -1; +} + + +volatile int indefinitely; + +int buffer[5]; // buffer to store bytes +int n = 0; // number of bytes received + +void main(void) +{ + while (indefinitely) + { + int status; + int data = read(&status); + + if (data != -1) { // data is present + + if (status != 0) { // read issue + n = 0; + continue; + } + if (data BW_AND3 0x80) { // status received + if (n != 0) { // but data was expected + n = 0; + continue; + } + //@ split data & 0x40; + } + else { // data receieved + if (n == 0) { // but status was expected} + continue; + } + } + + buffer[n++] = data; + + if (n == 5) { // the packet is completely read + if ((buffer[0] BW_AND 0x40) == 0) // it is a release action + { + int x = buffer[1] + 0x80 * buffer[2]; + int y = buffer[3] + 0x80 * buffer[4]; + output(x, y); + /* "Error" state should show up as, for now, it is hard to prove + the metavariable équation in the input automaton */ + Frama_C_show_aorai_state(n,x,y); + } + + n = 0; + } + } + } +} diff --git a/src/plugins/aorai/tests/ya/serial.ya b/src/plugins/aorai/tests/ya/serial.ya new file mode 100644 index 0000000000000000000000000000000000000000..6e893819100f43bfb1a18da1cd6e2ecdfdf44bc7 --- /dev/null +++ b/src/plugins/aorai/tests/ya/serial.ya @@ -0,0 +1,160 @@ +%init : Wait1; +%deterministic; +%observables: input_status, input_data, output; + +$x1 : int; +$x2 : int; +$y1 : int; +$y2 : int; + +Error : { 0 == 1 } -> Error; + +Wait1 : + { CALL(input_status) } -> StatusReq1 +| { CALL(input_data) } -> Error +| { CALL(output) } -> Error +| other -> Wait1 +; + +Wait2 : + { CALL(input_status) } -> StatusReq2 +| { CALL(input_data) } -> Error +| { CALL(output) } -> Error +| other -> Wait2 +; + +Wait3 : + { CALL(input_status) } -> StatusReq3 +| { CALL(input_data) } -> Error +| { CALL(output) } -> Error +| other -> Wait3 +; + +Wait4 : + { CALL(input_status) } -> StatusReq4 +| { CALL(input_data) } -> Error +| { CALL(output) } -> Error +| other -> Wait4 +; + +Wait5 : + { CALL(input_status) } -> StatusReq5 +| { CALL(input_data) } -> Error +| { CALL(output) } -> Error +| other -> Wait5 +; + +StatusReq1 : + { input_status().\result & 1 == 0 } -> Wait1 +| { input_status().\result & 15 == 1 } -> StatusOk1 +| other -> StatusError +; + +StatusReq2 : + { input_status().\result & 1 == 0 } -> Wait2 +| { input_status().\result & 15 == 1 } -> StatusOk2 +| other -> StatusError +; + +StatusReq3 : + { input_status().\result & 1 == 0 } -> Wait3 +| { input_status().\result & 15 == 1 } -> StatusOk3 +| other -> StatusError +; + +StatusReq4 : + { input_status().\result & 1 == 0 } -> Wait4 +| { input_status().\result & 15 == 1 } -> StatusOk4 +| other -> StatusError +; + +StatusReq5 : + { input_status().\result & 1 == 0 } -> Wait5 +| { input_status().\result & 15 == 1 } -> StatusOk5 +| other -> StatusError +; + +StatusError : + { CALL(input_status) } -> StatusReq1 +| { CALL(input_data) } -> DataReqE +| { CALL(output) } -> Error +| other -> StatusError +; + +StatusOk1 : + { CALL(input_status) } -> StatusReq1 +| { CALL(input_data) } -> DataReq1 +| { CALL(output) } -> Error +| other -> StatusOk1 +; + +StatusOk2 : + { CALL(input_status) } -> StatusReq2 +| { CALL(input_data) } -> DataReq2 +| { CALL(output) } -> Error +| other -> StatusOk2 +; + +StatusOk3 : + { CALL(input_status) } -> StatusReq3 +| { CALL(input_data) } -> DataReq3 +| { CALL(output) } -> Error +| other -> StatusOk3 +; + +StatusOk4 : + { CALL(input_status) } -> StatusReq4 +| { CALL(input_data) } -> DataReq4 +| { CALL(output) } -> Error +| other -> StatusOk4 +; + +StatusOk5 : + { CALL(input_status) } -> StatusReq5 +| { CALL(input_data) } -> DataReq5 +| { CALL(output) } -> Error +| other -> StatusOk5 +; + +DataReqE : + { RETURN(input_data) } -> Wait1 +; + +DataReq1 : + { input_data().\result & 192 == 128 } -> Wait2 +| { input_data().\result & 192 == 192 } -> Wait1 +| { input_data().\result & 128 == 0 } -> Wait1 +; + +DataReq2 : + { input_data().\result & 192 == 128 } -> Wait2 +| { input_data().\result & 192 == 192 } -> Wait1 +| { input_data().\result & 128 == 0 } $x1 := \result; -> Wait3 +; + +DataReq3 : + { input_data().\result & 192 == 128 } -> Wait2 +| { input_data().\result & 192 == 192 } -> Wait1 +| { input_data().\result & 128 == 0 } $x2 := \result; -> Wait4 +; + +DataReq4 : + { input_data().\result & 192 == 128 } -> Wait2 +| { input_data().\result & 192 == 192 } -> Wait1 +| { input_data().\result & 128 == 0 } $y1 := \result; -> Wait5 +; + +DataReq5 : + { input_data().\result & 192 == 128 } -> Wait2 +| { input_data().\result & 192 == 192 } -> Wait1 +| { input_data().\result & 128 == 0 } $y2 := \result; -> Complete +; + +Complete : + { CALL(output) && output().x == $x1 + 128 * $x2 && output().y == $y1 + 128 * $y2 } -> Wait1 +| { CALL(output) && (output().x != $x1 + 128 * $x2 || output().y != $y1 + 128 * $y2) } -> Error +| { CALL(input_status) } -> StatusReq1 +| { CALL(input_data) } -> Error +| other -> Complete +; + diff --git a/src/plugins/aorai/tests/ya/serial_wp.ya b/src/plugins/aorai/tests/ya/serial_wp.ya new file mode 100644 index 0000000000000000000000000000000000000000..1a28de31009827dd8d4018f2f53cc67816a6b661 --- /dev/null +++ b/src/plugins/aorai/tests/ya/serial_wp.ya @@ -0,0 +1,159 @@ +%init : Wait1; +%deterministic; +%observables: input_status, input_data, output; + +$x1 : int; +$x2 : int; +$y1 : int; +$y2 : int; + +Error : { false } -> Error; + +Wait1 : + { CALL(input_status) } -> StatusReq1 +| { CALL(input_data) } -> Error +| { CALL(output) } -> Error +| other -> Wait1 +; + +Wait2 : + { CALL(input_status) } -> StatusReq2 +| { CALL(input_data) } -> Error +| { CALL(output) } -> Error +| other -> Wait2 +; + +Wait3 : + { CALL(input_status) } -> StatusReq3 +| { CALL(input_data) } -> Error +| { CALL(output) } -> Error +| other -> Wait3 +; + +Wait4 : + { CALL(input_status) } -> StatusReq4 +| { CALL(input_data) } -> Error +| { CALL(output) } -> Error +| other -> Wait4 +; + +Wait5 : + { CALL(input_status) } -> StatusReq5 +| { CALL(input_data) } -> Error +| { CALL(output) } -> Error +| other -> Wait5 +; + +StatusReq1 : + { input_status().\result < 1 } -> Wait1 +| { input_status().\result == 14 } -> StatusOk1 +| other -> StatusError +; + +StatusReq2 : + { input_status().\result < 1 } -> Wait2 +| { input_status().\result == 14 } -> StatusOk2 +| other -> StatusError +; + +StatusReq3 : + { input_status().\result < 1 } -> Wait3 +| { input_status().\result == 14 } -> StatusOk3 +| other -> StatusError +; + +StatusReq4 : + { input_status().\result < 1 } -> Wait4 +| { input_status().\result == 14 } -> StatusOk4 +| other -> StatusError +; + +StatusReq5 : + { input_status().\result < 1 } -> Wait5 +| { input_status().\result == 14 } -> StatusOk5 +| other -> StatusError +; + +StatusError : + { CALL(input_status) } -> StatusReq1 +| { CALL(input_data) } -> DataReqE +| { CALL(output) } -> Error +| other -> StatusError +; + +StatusOk1 : + { CALL(input_status) } -> StatusReq1 +| { CALL(input_data) } -> DataReq1 +| { CALL(output) } -> Error +| other -> StatusOk1 +; + +StatusOk2 : + { CALL(input_status) } -> StatusReq2 +| { CALL(input_data) } -> DataReq2 +| { CALL(output) } -> Error +| other -> StatusOk2 +; + +StatusOk3 : + { CALL(input_status) } -> StatusReq3 +| { CALL(input_data) } -> DataReq3 +| { CALL(output) } -> Error +| other -> StatusOk3 +; + +StatusOk4 : + { CALL(input_status) } -> StatusReq4 +| { CALL(input_data) } -> DataReq4 +| { CALL(output) } -> Error +| other -> StatusOk4 +; + +StatusOk5 : + { CALL(input_status) } -> StatusReq5 +| { CALL(input_data) } -> DataReq5 +| { CALL(output) } -> Error +| other -> StatusOk5 +; + +DataReqE : + { RETURN(input_data) } -> Wait1 +; + +DataReq1 : + { input_data().\result <= 128 && input_data().\result != 64 } -> Wait2 +| { input_data().\result == 64 } -> Wait1 +| { input_data().\result > 128 } -> Wait1 +; + +DataReq2 : + { input_data().\result <= 128 && input_data().\result != 64 } -> Wait2 +| { input_data().\result == 64 } -> Wait1 +| { input_data().\result > 128 } $x1 := \result; -> Wait3 +; + +DataReq3 : + { input_data().\result <= 128 && input_data().\result != 64 } -> Wait2 +| { input_data().\result == 64 } -> Wait1 +| { input_data().\result > 128 } $x2 := \result; -> Wait4 +; + +DataReq4 : + { input_data().\result <= 128 && input_data().\result != 64 } -> Wait2 +| { input_data().\result == 64 } -> Wait1 +| { input_data().\result > 128 } $y1 := \result; -> Wait5 +; + +DataReq5 : + { input_data().\result <= 128 && input_data().\result != 64 } -> Wait2 +| { input_data().\result == 64 } -> Wait1 +| { input_data().\result > 128 } $y2 := \result; -> Complete +; + +Complete : + { CALL(output) && output().x == $x1 + 128 * $x2 && output().y == $y1 + 128 * $y2 } -> Wait1 +| { CALL(output) && (output().x != $x1 + 128 * $x2 || output().y != $y1 + 128 * $y2) } -> Error +| { CALL(input_status) } -> StatusReq1 +| { CALL(input_data) } -> Error +| other -> Complete +; diff --git a/src/plugins/aorai/tests/ya/single_call.i b/src/plugins/aorai/tests/ya/single_call.i index 257ce2b2c7a4493ee42953dcff3b29bed8d29643..51abf5a7ef33870f78f6a029de9e3ebbb3330e69 100644 --- a/src/plugins/aorai/tests/ya/single_call.i +++ b/src/plugins/aorai/tests/ya/single_call.i @@ -1,5 +1,5 @@ /* run.config* - OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -aorai-test 1 -load-module tests/Aorai_test.cmxs -aorai-acceptance -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ + OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -load-module tests/Aorai_test.cmxs -aorai-acceptance -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ */ int main () {} diff --git a/src/plugins/aorai/tests/ya/singleassignment-right.i b/src/plugins/aorai/tests/ya/singleassignment-right.i index 943c3e5e67cf9c02fde3be2c6dc73b2fbaa07b7d..4c5612f51075bcfe936814e8492beb88f67935c4 100644 --- a/src/plugins/aorai/tests/ya/singleassignment-right.i +++ b/src/plugins/aorai/tests/ya/singleassignment-right.i @@ -1,5 +1,5 @@ /* run.config* - OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -aorai-test 1 -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ + OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ */ void main(int *x, int *y) diff --git a/src/plugins/aorai/tests/ya/singleassignment-wrong.i b/src/plugins/aorai/tests/ya/singleassignment-wrong.i index c983ce03e455dd3ac55c8baa1c76fc0785a8028f..4a88230c1c71bc1958ba3a68ca1a473d28633b66 100644 --- a/src/plugins/aorai/tests/ya/singleassignment-wrong.i +++ b/src/plugins/aorai/tests/ya/singleassignment-wrong.i @@ -1,5 +1,5 @@ /* run.config* - OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -aorai-test 1 -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ + OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ */ int main(int x) diff --git a/src/plugins/aorai/tests/ya/stack.i b/src/plugins/aorai/tests/ya/stack.i index b3a734178295ace67bf450f577e757095db612b1..d911301c6860deccbbf88ee8e2cecaf097232e3a 100644 --- a/src/plugins/aorai/tests/ya/stack.i +++ b/src/plugins/aorai/tests/ya/stack.i @@ -1,5 +1,5 @@ /* run.config* - OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -aorai-test 1 -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ + OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ */ diff --git a/src/plugins/aorai/tests/ya/test_acces_params.c b/src/plugins/aorai/tests/ya/test_acces_params.c index 884140ce9cab8b66952394937c1595f7a31dd37a..dc673f9bc593429faf4c8cadd396389fa5c115a7 100644 --- a/src/plugins/aorai/tests/ya/test_acces_params.c +++ b/src/plugins/aorai/tests/ya/test_acces_params.c @@ -1,5 +1,5 @@ /* run.config* - OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -aorai-test 1 -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ + OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ */ int status=0; diff --git a/src/plugins/aorai/tests/ya/test_acces_params2.c b/src/plugins/aorai/tests/ya/test_acces_params2.c index 86092179e3f19e4041f7d3f3b5b2623d073edf51..7f25f23facbb6f7de9782534fb2dc42e0e0515f0 100644 --- a/src/plugins/aorai/tests/ya/test_acces_params2.c +++ b/src/plugins/aorai/tests/ya/test_acces_params2.c @@ -1,5 +1,5 @@ /* run.config* - OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -aorai-test 1 -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ + OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ */ diff --git a/src/plugins/aorai/tests/ya/test_boucle_rechercheTableau.c b/src/plugins/aorai/tests/ya/test_boucle_rechercheTableau.c index 7dcf436cfe3bc7a95f03bb57faf63c8cca87b1b9..da220198440138b3924dddc99a92b9ea53794f5d 100644 --- a/src/plugins/aorai/tests/ya/test_boucle_rechercheTableau.c +++ b/src/plugins/aorai/tests/ya/test_boucle_rechercheTableau.c @@ -1,5 +1,5 @@ /* run.config* - OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -aorai-test 1 -aorai-acceptance -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ + OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -aorai-acceptance -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ */ diff --git a/src/plugins/aorai/tests/ya/test_factorial.c b/src/plugins/aorai/tests/ya/test_factorial.c index 9cb2213b68d6e23abeaed004b89d16e8b7a8d67e..fbb9762854cd43b3ef4c17245f2919486f58d4b8 100644 --- a/src/plugins/aorai/tests/ya/test_factorial.c +++ b/src/plugins/aorai/tests/ya/test_factorial.c @@ -1,5 +1,5 @@ /* run.config* - OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -aorai-test 1 -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ + OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ */ diff --git a/src/plugins/aorai/tests/ya/test_recursion4.c b/src/plugins/aorai/tests/ya/test_recursion4.c index cf4c5d8523a6c123692f77b03bb2a129b9e3c20c..e88b8471fb74d57f267b879b89fe4b2c3bdc803a 100644 --- a/src/plugins/aorai/tests/ya/test_recursion4.c +++ b/src/plugins/aorai/tests/ya/test_recursion4.c @@ -1,5 +1,5 @@ /* run.config* - OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -aorai-test 1 -aorai-acceptance -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ + OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -aorai-acceptance -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ */ # pragma JessieIntegerModel(math) diff --git a/src/plugins/aorai/tests/ya/test_recursion5.c b/src/plugins/aorai/tests/ya/test_recursion5.c index 241030e711241484c0f829e0a16101618649f832..0f902c0071f25495d236c849b770836a8b227ee4 100644 --- a/src/plugins/aorai/tests/ya/test_recursion5.c +++ b/src/plugins/aorai/tests/ya/test_recursion5.c @@ -1,5 +1,5 @@ /* run.config* - OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -aorai-test 1 -aorai-acceptance -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ + OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -aorai-acceptance -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ */ diff --git a/src/plugins/aorai/tests/ya/test_struct.c b/src/plugins/aorai/tests/ya/test_struct.c index 1b8ff3ec2ff039f6a94506b149db7d128961e656..d94c75970eb6a1897bc2cb560147174f73452bf3 100644 --- a/src/plugins/aorai/tests/ya/test_struct.c +++ b/src/plugins/aorai/tests/ya/test_struct.c @@ -1,5 +1,5 @@ /* run.config* - OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -aorai-test 1 -aorai-acceptance -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ + OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -aorai-acceptance -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ */ struct People{ diff --git a/src/plugins/aorai/utils_parser.ml b/src/plugins/aorai/utils_parser.ml index a07de0f812ba7c064666f9f8af42cf25cb9b8491..d9b243618eb702fc8fa1408e4f8fa89a8a2e471e 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 54a238bc93472fcd1af25d2b8457082aa8d4be8c..b99f7b4a8320ec9c9c52bd1c2f3120c496a7c429 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 3a88ed02f8f6e646fb116fe4846ee366ea58e190..fc6ea315e04c259d37ef20639c793b83b4678547 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat à l'énergie atomique et aux énergies */ /* alternatives) */ /* INRIA (Institut National de Recherche en Informatique et en */ @@ -32,7 +32,11 @@ open Logic_ptree open Promelaast open Bool3 -type options = Deterministic | Init of string list | Accept of string list +type options = + | Deterministic + | Init of string list + | Accept of string list + | Observables of string list let to_seq c = [{ condition = Some c; @@ -104,13 +108,22 @@ let check_state st = Aorai_option.abort "Error: the state '%s' is used but never defined." st.name -let interpret_option = function +let interpret_option auto = function | Init states -> - List.iter set_init_state states + List.iter set_init_state states; auto | Accept states -> - List.iter set_accept_state states + List.iter set_accept_state states; auto | Deterministic -> - Aorai_option.Deterministic.set true + Aorai_option.Deterministic.set true; auto + | Observables names -> + let module Set = Datatype.String.Set in + let new_set = Set.of_list names in + let observables = + match auto.observables with + | None -> Some new_set + | Some set -> Some (Set.union set new_set) + in + { auto with observables } let build_automaton options metavariables trans = let htable_to_list table = Hashtbl.fold (fun _ st l -> st :: l) table [] in @@ -119,15 +132,15 @@ let build_automaton options metavariables trans = and metavariables = List.fold_left add_metavariable Datatype.String.Map.empty metavariables in - List.iter interpret_option options; + let auto = { states; trans; metavariables; observables = None } in + let auto = List.fold_left interpret_option auto options in List.iter check_state states; if not (List.exists (fun st -> st.init=True) states) then Aorai_option.abort "Automaton does not declare an initial state"; if undefined_states <> [] then Aorai_option.abort "Error: the state(s) %a are used but never defined." (Pretty_utils.pp_list ~sep:"," Format.pp_print_string) undefined_states; - { states; trans; metavariables } - + auto type pre_cond = Behavior of string | Pre of Promelaast.condition @@ -169,6 +182,7 @@ option | "init" -> Init $3 | "accept" -> Accept $3 | "deterministic" -> Deterministic + | "observables" -> Observables $3 | _ -> Aorai_option.abort "unknown option: '%s'" $2 } diff --git a/src/plugins/callgraph/Callgraph.mli b/src/plugins/callgraph/Callgraph.mli index 4a66ce06fe873d435c5f32c4b8e971acddca9fd5..0d649136073dd5b2302303f3db77b9f2bae279aa 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 3ac0ff45c8e66db4ab781a3b720ff76450ea74d9..2eaf5ffbfb201629476a0d35fcda0116c613111f 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/callgraph/cg.ml b/src/plugins/callgraph/cg.ml index 57bfa6b1fb80c79f4800df286fcfe6f84bd0cab3..4593f34eb37c0d46c076856687d582b72f88d114 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/callgraph/cg.mli b/src/plugins/callgraph/cg.mli index acaa12e16a2e19d923520bfc1d92a72cdb853af9..e2414d5e49f1e9b8483bdc75cafec9d2f0503a26 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/callgraph/cg_viewer.yes.ml b/src/plugins/callgraph/cg_viewer.yes.ml index d29b123e0cbc76b13a5a75ad2b2a69ef1897c008..dfbff693bae3e58a0b86c34e8058541648c5df43 100644 --- a/src/plugins/callgraph/cg_viewer.yes.ml +++ b/src/plugins/callgraph/cg_viewer.yes.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/callgraph/journalize.ml b/src/plugins/callgraph/journalize.ml index eb0296fea00ff4d857dc27cb8d80dab7a21bdcbe..7471d201b83e11e05c4b41c9f710f51769f2c1b2 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/callgraph/journalize.mli b/src/plugins/callgraph/journalize.mli index 4dc17a09eede3a10c8f000c9c2aa2fe966bf8a4a..afb124a4ffde37467dec06b73799380d5ffc563d 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/callgraph/options.ml b/src/plugins/callgraph/options.ml index 6dc9b567c5e249d683456916e6aa6a3703e4a17a..d42856664a9fe2f3e6bc2d0124c99ae90e729a68 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/callgraph/options.mli b/src/plugins/callgraph/options.mli index b85007ef1c3afb1c1a1b29dbe67dbbb32aebc71e..aa6fd2e5026a828c84f95be2cbca523154793c72 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/callgraph/register.ml b/src/plugins/callgraph/register.ml index c49166c29d6d868c90a5b0136c203983100ba1d7..d7da576b50f9ee45167f7e3404d27e0c179facd8 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/callgraph/services.ml b/src/plugins/callgraph/services.ml index b283fbfc36e7628ae301b12ccb07e2e7dc364c76..fae225ee3cb3c0f04093d51ce77df9acc07e4e00 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/callgraph/services.mli b/src/plugins/callgraph/services.mli index 39ba4c4f8fc44caad9fab9e5da8b060f4f593e11..1230f2106ad6fbc8c4ba13fe792ddf847ddb9ce4 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/callgraph/subgraph.ml b/src/plugins/callgraph/subgraph.ml index 3376dc402136cfc224e226bf798c53138c4babde..a6d31f082556a7d61f031efdaf1f906271335f9f 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/callgraph/subgraph.mli b/src/plugins/callgraph/subgraph.mli index 4a14a2d0f5b11f32c294cdb5e3020b8c684c8b24..00f19b29c3819427913a1a51d7216f43dd6b10d6 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/callgraph/uses.ml b/src/plugins/callgraph/uses.ml index b203750505b4fec5b9edb0e275bcfb26b7214fc7..1f6b72b02d9b13741a2e3e75a6539f5567df0274 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/callgraph/uses.mli b/src/plugins/callgraph/uses.mli index 5d345f11bcab9256d246672e24ef19c2723b3d23..81ee102626f1872c5605694c5f0f4ba5dd91082b 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 b34db0dbfe1d4e2105a0b1bbae7f1b86dd74b4c9..6bfedef7a5c0f4d9cbb4da90b827ff185a5936d8 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 ab3fa392e9d2b53efb783f0f8661a9a69802a50d..569d5d24e3aeb69d3dbbf390330390aecc1c60da 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -93,7 +93,7 @@ class propagate project fnames ~cast_intro = object(self) else oldt, newt in - let exp = Cil.mkCastT e oldt newt in + let exp = Cil.mkCastT oldt newt e in if cast_intro then exp else match exp.enode with diff --git a/src/plugins/constant_propagation/api.mli b/src/plugins/constant_propagation/api.mli index 763f2eb9e4f5e79fb9cab07a6700d1297aa13ee0..0d19fa37068325ae177155a7aa7b64d5dba4b6fc 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 026125e1e25bb0807dd2c2317901db870375710a..40f995c204b01ee8780b3f4bab7a41a243968ee9 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 d7fe6c9ba779041a27d1a158f3e1502ad7c7c284..7a06a4e4be816ca5c0822c3c6508e1596778d281 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/dive/Dive.mli b/src/plugins/dive/Dive.mli index 182bc40a8e1af00f6d1329952d449d0f2e6808e1..fa8a4b16cfba48dc466ea01e1e5bdc509905eef0 100644 --- a/src/plugins/dive/Dive.mli +++ b/src/plugins/dive/Dive.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -19,3 +19,5 @@ (* for more details (enclosed in the file licenses/LGPLv2.1). *) (* *) (**************************************************************************) + +(* This plugin does not export anything to the OCaml API. *) diff --git a/src/plugins/dive/Makefile.in b/src/plugins/dive/Makefile.in index 10125171ad2534f8eeca352f7b38a593576dae06..7b6bf1276f93ea192fbcc48e1e4a5d9232b6184a 100644 --- a/src/plugins/dive/Makefile.in +++ b/src/plugins/dive/Makefile.in @@ -2,7 +2,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/src/plugins/dive/build.ml b/src/plugins/dive/build.ml index 03f14617e46e368c6765897f96219deb88b58b03..5ed33280abbfe89e3c1eff6b08f1889e92208105 100644 --- a/src/plugins/dive/build.ml +++ b/src/plugins/dive/build.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/dive/build.mli b/src/plugins/dive/build.mli index 913ee78fd5ab97210b6f76543df0a55c79c7ca27..7ec3f82cddd94d37f5229c274860f6efc37d9fea 100644 --- a/src/plugins/dive/build.mli +++ b/src/plugins/dive/build.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/dive/callstack.ml b/src/plugins/dive/callstack.ml index 8b25837a11357d83f0dd791d749baf2e11225b77..6ddb2d6eb0b50c47e7b4b8cf2254aee573d420e1 100644 --- a/src/plugins/dive/callstack.ml +++ b/src/plugins/dive/callstack.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/dive/callstack.mli b/src/plugins/dive/callstack.mli index 48d3a417b9614086235ce292a695fc084efd16b0..facd55f26d6088c064c79f92720685887eff69b8 100644 --- a/src/plugins/dive/callstack.mli +++ b/src/plugins/dive/callstack.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/dive/configure.ac b/src/plugins/dive/configure.ac index dddb5ed24e2092387c4c801ab35f0a3d061f8b41..a482765014375e0aebb68febd4d77d2f5c0e776a 100644 --- a/src/plugins/dive/configure.ac +++ b/src/plugins/dive/configure.ac @@ -2,7 +2,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # @@ -39,6 +39,7 @@ check_plugin(dive,PLUGIN_RELATIVE_PATH(plugin_file), plugin_require(dive,eva) plugin_require(dive,studia) +plugin_require(dive,server) #plugin_use(dive,usable_plugin_but_not_mandatory) check_plugin_dependencies diff --git a/src/plugins/dive/context.ml b/src/plugins/dive/context.ml index df14fe7c723a4a332ce12d415422d2e28430a069..4472ff2629e74ad168806decb5cc8bb251ad0311 100644 --- a/src/plugins/dive/context.ml +++ b/src/plugins/dive/context.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/dive/context.mli b/src/plugins/dive/context.mli index 953fcf72a9a4f34486609518ad755f4f08a3dfa7..b3739823f3af450d32fb09137111ea36e6ad0f25 100644 --- a/src/plugins/dive/context.mli +++ b/src/plugins/dive/context.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/dive/dive_graph.ml b/src/plugins/dive/dive_graph.ml index 3c4221fd2afe1d354106abbdb4e281a1e552e771..427b2a6678d3e39814a56c75a15e6381995ca52d 100644 --- a/src/plugins/dive/dive_graph.ml +++ b/src/plugins/dive/dive_graph.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/dive/dive_graph.mli b/src/plugins/dive/dive_graph.mli index 1f4f6d43cb695ba2823f203ac7ee9c771149ebf6..da3e92a46ee88cdc616cffe14073f306fe9dcb9d 100644 --- a/src/plugins/dive/dive_graph.mli +++ b/src/plugins/dive/dive_graph.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/dive/dive_types.mli b/src/plugins/dive/dive_types.mli index 599612a864747312c8fc8d75d26383ebcd99d4c4..f4e9eaf6237ee666383fe310327661d7175ed48d 100644 --- a/src/plugins/dive/dive_types.mli +++ b/src/plugins/dive/dive_types.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/dive/main.ml b/src/plugins/dive/main.ml index 5f728b624ad4dc7de4be2031e01ca37bad432053..7387399121640d369c24df0f3323af284fe4c709 100644 --- a/src/plugins/dive/main.ml +++ b/src/plugins/dive/main.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/dive/node_kind.ml b/src/plugins/dive/node_kind.ml index 20fd1656ee2d13e4954a0465476855e110dbcfaa..fb40b6a43fc847ab7f9567bd367fd71958aed0ef 100644 --- a/src/plugins/dive/node_kind.ml +++ b/src/plugins/dive/node_kind.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/dive/node_kind.mli b/src/plugins/dive/node_kind.mli index 395fb9bf5ad345c08c8f8a86b3aa65041c6a2d4b..dd29ce143977a3aab54a950bf115c6ccc6d113e9 100644 --- a/src/plugins/dive/node_kind.mli +++ b/src/plugins/dive/node_kind.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/dive/node_range.ml b/src/plugins/dive/node_range.ml index 7d5f23709b552ee499b9ba43f95a5d7b2fd713d1..12c0a599d31ebb95556b72508ad01fa78b6899ae 100644 --- a/src/plugins/dive/node_range.ml +++ b/src/plugins/dive/node_range.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/dive/node_range.mli b/src/plugins/dive/node_range.mli index 1f8f3f24b859b1fb14de5ba8ab2a962f8b2b4251..63350e563f0f71572132a3151480d1f7315d303b 100644 --- a/src/plugins/dive/node_range.mli +++ b/src/plugins/dive/node_range.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/dive/self.ml b/src/plugins/dive/self.ml index e83c8f924e328e0ab973b79770def00fff504f1a..26a925a3f5475acf84c842e7a8cb0b1ae10672ff 100644 --- a/src/plugins/dive/self.ml +++ b/src/plugins/dive/self.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/dive/self.mli b/src/plugins/dive/self.mli index f15ce3c96bd820641bf5a421de36bc8181ae046a..cb5014982463f0f11c2adc18224bcc0c5ef1ea47 100644 --- a/src/plugins/dive/self.mli +++ b/src/plugins/dive/self.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/dive/server_interface.ml b/src/plugins/dive/server_interface.ml index 7d2efc4861d4abbbff5f8d286f2798c288d75d3c..93e389396dc826aae8771fb83ef57878bb4d635a 100644 --- a/src/plugins/dive/server_interface.ml +++ b/src/plugins/dive/server_interface.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/dive/server_interface.mli b/src/plugins/dive/server_interface.mli index 182bc40a8e1af00f6d1329952d449d0f2e6808e1..c639db5ea04e8bc2afa6635d04be81d660dccf1c 100644 --- a/src/plugins/dive/server_interface.mli +++ b/src/plugins/dive/server_interface.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -19,3 +19,5 @@ (* for more details (enclosed in the file licenses/LGPLv2.1). *) (* *) (**************************************************************************) + +(* Dive API for the server. Nothing is exported. *) diff --git a/src/plugins/e-acsl/doc/refman/biblio.bib b/src/plugins/e-acsl/doc/refman/biblio.bib index bb7f2f66e7fdac2a5da6eec09708123e29088bd1..da3c4fc29c6344593301fb20559623872f7eb71a 100644 --- a/src/plugins/e-acsl/doc/refman/biblio.bib +++ b/src/plugins/e-acsl/doc/refman/biblio.bib @@ -57,7 +57,7 @@ Virgile Prevosto and Armand Puccetti and Julien Signoles and Boris Yakobowski}, @manual{eacsl-plugin, title = {Frama-C's E-ACSL Plug-in}, - author = {Julien Signoles and Kostyantyn Vorobyov}, + author = {Julien Signoles and Basile Desloges and Kostyantyn Vorobyov}, note = {\url{https://frama-c.com/fc-plugins/e-acsl.html}}, } diff --git a/src/plugins/e-acsl/share/e-acsl/observation_model/e_acsl_observation_model.h b/src/plugins/e-acsl/share/e-acsl/observation_model/e_acsl_observation_model.h index f55417402c009ae4e15f44fb747d6d3be9a0f62e..4a5a8204afda7fc9457a9b68a8c7712c5290ee09 100644 --- a/src/plugins/e-acsl/share/e-acsl/observation_model/e_acsl_observation_model.h +++ b/src/plugins/e-acsl/share/e-acsl/observation_model/e_acsl_observation_model.h @@ -36,6 +36,19 @@ #include "../internals/e_acsl_alias.h" #include "e_acsl_heap.h" +/*@ ghost extern int __fc_heap_status; */ + +/*@ axiomatic dynamic_allocation { + @ predicate is_allocable{L}(integer n) // Can a block of n bytes be allocated? + @ reads __fc_heap_status; + @ // The logic label L is not used, but it must be present because the + @ // predicate depends on the memory state + @ axiom never_allocable{L}: + @ \forall integer i; + @ i < 0 || i > __FC_SIZE_MAX ==> !is_allocable(i); + @ } +*/ + /************************************************************************/ /*** API Prefixes {{{ ***/ /************************************************************************/ @@ -83,8 +96,16 @@ * behaviour is as if the size were some non-zero value, except that the * returned pointer shall not be used to access an object." */ /*@ - assigns __e_acsl_heap_allocation_size \from size, __e_acsl_heap_allocation_size; - assigns __e_acsl_heap_allocated_blocks \from size, __e_acsl_heap_allocated_blocks; + assigns __e_acsl_heap_allocation_size \from indirect:size, __e_acsl_heap_allocation_size; + assigns __e_acsl_heap_allocated_blocks \from indirect:size, __e_acsl_heap_allocated_blocks; + behavior allocation: + assumes can_allocate: is_allocable(size); + assigns __e_acsl_heap_allocation_size \from indirect:size, __e_acsl_heap_allocation_size; + assigns __e_acsl_heap_allocated_blocks \from indirect:size, __e_acsl_heap_allocated_blocks; + behavior no_allocation: + assumes cannot_allocate: !is_allocable(size); + assigns __e_acsl_heap_allocation_size \from indirect:size, __e_acsl_heap_allocation_size; + assigns __e_acsl_heap_allocated_blocks \from size, __e_acsl_heap_allocated_blocks; */ void * malloc(size_t size) __attribute__((FC_BUILTIN)); @@ -94,6 +115,14 @@ void * malloc(size_t size) /*@ assigns __e_acsl_heap_allocation_size \from indirect:nbr_elt, indirect:size_elt, __e_acsl_heap_allocation_size; assigns __e_acsl_heap_allocated_blocks \from indirect:nbr_elt, indirect:size_elt, __e_acsl_heap_allocated_blocks; + behavior allocation: + assumes can_allocate: is_allocable(nbr_elt * size_elt); + assigns __e_acsl_heap_allocation_size \from indirect:nbr_elt, indirect:size_elt, __e_acsl_heap_allocation_size; + assigns __e_acsl_heap_allocated_blocks \from indirect:nbr_elt, indirect:size_elt, __e_acsl_heap_allocated_blocks; + behavior no_allocation: + assumes cannot_allocate: !is_allocable(nbr_elt * size_elt); + assigns __e_acsl_heap_allocation_size \from indirect:nbr_elt, indirect:size_elt, __e_acsl_heap_allocation_size; + assigns __e_acsl_heap_allocated_blocks \from indirect:nbr_elt, indirect:size_elt, __e_acsl_heap_allocated_blocks; */ void * calloc(size_t nbr_elt, size_t size_elt) __attribute__((FC_BUILTIN)); @@ -103,6 +132,19 @@ void * calloc(size_t nbr_elt, size_t size_elt) /*@ assigns __e_acsl_heap_allocation_size \from __e_acsl_heap_allocation_size; assigns __e_acsl_heap_allocated_blocks \from __e_acsl_heap_allocated_blocks; + behavior allocation: + assumes can_allocate: is_allocable(size); + assigns __e_acsl_heap_allocation_size \from __e_acsl_heap_allocation_size; + assigns __e_acsl_heap_allocated_blocks \from __e_acsl_heap_allocated_blocks; + behavior deallocation: + assumes nonnull_ptr: ptr != \null; + assumes can_allocate: is_allocable(size); + assigns __e_acsl_heap_allocation_size \from __e_acsl_heap_allocation_size; + assigns __e_acsl_heap_allocated_blocks \from __e_acsl_heap_allocated_blocks; + behavior fail: + assumes cannot_allocate: !is_allocable(size); + assigns __e_acsl_heap_allocation_size \from __e_acsl_heap_allocation_size; + assigns __e_acsl_heap_allocated_blocks \from __e_acsl_heap_allocated_blocks; */ void * realloc(void * ptr, size_t size) __attribute__((FC_BUILTIN)); @@ -112,6 +154,14 @@ void * realloc(void * ptr, size_t size) /*@ assigns __e_acsl_heap_allocation_size \from __e_acsl_heap_allocation_size; assigns __e_acsl_heap_allocated_blocks \from __e_acsl_heap_allocated_blocks; + behavior deallocation: + assumes nonnull_p: ptr != \null; + assigns __e_acsl_heap_allocation_size \from __e_acsl_heap_allocation_size; + assigns __e_acsl_heap_allocated_blocks \from __e_acsl_heap_allocated_blocks; + behavior no_deallocation: + assumes null_p: ptr == \null; + assigns __e_acsl_heap_allocation_size \from __e_acsl_heap_allocation_size; + assigns __e_acsl_heap_allocated_blocks \from __e_acsl_heap_allocated_blocks; */ void free(void * ptr) __attribute__((FC_BUILTIN)); @@ -137,6 +187,14 @@ void *aligned_alloc(size_t alignment, size_t size) /*@ assigns __e_acsl_heap_allocation_size \from indirect:alignment, size, __e_acsl_heap_allocation_size; assigns __e_acsl_heap_allocated_blocks \from indirect:alignment, size, __e_acsl_heap_allocated_blocks; + behavior allocation: + assumes can_allocate: is_allocable(size); + assigns __e_acsl_heap_allocation_size \from indirect:alignment, size, __e_acsl_heap_allocation_size; + assigns __e_acsl_heap_allocated_blocks \from indirect:alignment, size, __e_acsl_heap_allocated_blocks; + behavior no_allocation: + assumes cannot_allocate: !is_allocable(size); + assigns __e_acsl_heap_allocation_size \from indirect:alignment, size, __e_acsl_heap_allocation_size; + assigns __e_acsl_heap_allocated_blocks \from indirect:alignment, size, __e_acsl_heap_allocated_blocks; */ int posix_memalign(void **memptr, size_t alignment, size_t size) __attribute__((FC_BUILTIN)); diff --git a/src/plugins/e-acsl/src/code_generator/logic_array.ml b/src/plugins/e-acsl/src/code_generator/logic_array.ml index c8371e3b71451cf732c2df3d50b5c5ea33308cc7..688905079da3776c370c325c926742cf09f8a91e 100644 --- a/src/plugins/e-acsl/src/code_generator/logic_array.ml +++ b/src/plugins/e-acsl/src/code_generator/logic_array.ml @@ -214,6 +214,7 @@ let comparison_to_exp ~loc kf env ~name bop array1 array2 = ~stopat:len1_exp ~incr:(Cil.one ~loc) ~body:[ Smart_stmt.block_stmt body_blk ] + () ) ) ) diff --git a/src/plugins/e-acsl/src/code_generator/logic_functions.ml b/src/plugins/e-acsl/src/code_generator/logic_functions.ml index ebac4f3a70f0e9ee966a874f44e52e60225ba20a..ebb75d0b2b7cda9a7955284269fcb74cab8f1041 100644 --- a/src/plugins/e-acsl/src/code_generator/logic_functions.ml +++ b/src/plugins/e-acsl/src/code_generator/logic_functions.ml @@ -320,7 +320,7 @@ let tapp_to_exp ~loc fname env kf t li params_ty args = the exact type of the parameter is only computed when the function is generated *) List.map2 - (fun (_, newt, _) e -> Cil.mkCast ~force:false ~newt ~e) + (fun (_, newt, _) e -> Cil.mkCast ~force:false ~newt e) params args | _ -> assert false diff --git a/src/plugins/e-acsl/src/code_generator/rational.ml b/src/plugins/e-acsl/src/code_generator/rational.ml index 0af7f3b0697137395bd885f1e88f797bc4943209..b0af08300c4d904bf229f0123eccca0587004951 100644 --- a/src/plugins/e-acsl/src/code_generator/rational.ml +++ b/src/plugins/e-acsl/src/code_generator/rational.ml @@ -170,7 +170,7 @@ let add_cast ~loc ?name e env kf ty = let e, env = get_double e env in Options.warning ~once:true "R to float: double rounding might cause unsoundness"; - Cil.mkCastT ~force:false ~e ~oldt:Cil.doubleType ~newt:ty, env + Cil.mkCastT ~force:false ~oldt:Cil.doubleType ~newt:ty e, env | TInt(IULongLong, _) -> (* The biggest C integer type we can extract from GMP is ulong *) Error.not_yet "R to unsigned long long" diff --git a/src/plugins/e-acsl/src/code_generator/smart_stmt.ml b/src/plugins/e-acsl/src/code_generator/smart_stmt.ml index 2c3497df87388788c01f9b46c4b751bb24bc240f..c126fe01e0ba9fbff3662f5e8bd225919a71245a 100644 --- a/src/plugins/e-acsl/src/code_generator/smart_stmt.ml +++ b/src/plugins/e-acsl/src/code_generator/smart_stmt.ml @@ -81,7 +81,7 @@ let do_call ~loc ?result vi args = | TPtr _, TArray _, _ -> assert false | _, _, _ -> arg in - let e = Cil.mkCast ~force:false ~newt:ty ~e in + let e = Cil.mkCast ~force:false ~newt:ty e in make_rev_args (e :: res) args_tl param_ty_tl | arg :: args_tl, [] when variadic -> make_rev_args (arg :: res) args_tl [] | [], [] -> res diff --git a/src/plugins/e-acsl/src/code_generator/translate.ml b/src/plugins/e-acsl/src/code_generator/translate.ml index 960cddb412e78a632121512474dde0894afc113a..5f34444f061e2c48b355d045a491c35313525344 100644 --- a/src/plugins/e-acsl/src/code_generator/translate.ml +++ b/src/plugins/e-acsl/src/code_generator/translate.ml @@ -108,7 +108,7 @@ let add_cast ~loc ?name env kf ctx strnum t_opt e = only non integral value that can be seen as an integer, while the type system infers that it is C-representable (see tests/runtime/null.i) *) - Cil.mkCast e Cil.longType (* \null *) + Cil.mkCast Cil.longType e (* \null *) else e in @@ -147,7 +147,7 @@ let add_cast ~loc ?name env kf ctx strnum t_opt e = Rational.add_cast ~loc ?name e env kf ctx else (* C type --> another C type *) - Cil.mkCastT ~force:false ~e ~oldt:ty ~newt:ctx, env + Cil.mkCastT ~force:false ~oldt:ty ~newt:ctx e, env let constant_to_exp ~loc t c = let mk_real s = @@ -733,7 +733,7 @@ and context_insensitive_term_to_exp kf env t = e, env, C_number, name | Tblock_length _ -> Env.not_yet env "labeled \\block_length" | Tnull -> - Cil.mkCast (Cil.zero ~loc) (TPtr(TVoid [], [])), env, C_number, "null" + Cil.mkCast (TPtr(TVoid [], [])) (Cil.zero ~loc), env, C_number, "null" | TUpdate _ -> Env.not_yet env "functional update" | Ttypeof _ -> Env.not_yet env "typeof" | Ttype _ -> Env.not_yet env "C type" diff --git a/src/plugins/e-acsl/src/project_initializer/rtl.ml b/src/plugins/e-acsl/src/project_initializer/rtl.ml index 07be50d1a64fb1cfbebc38c5a8351b25e03b7204..8c96f04f908c620773f0a2cb0bf2ca75df2d489d 100644 --- a/src/plugins/e-acsl/src/project_initializer/rtl.ml +++ b/src/plugins/e-acsl/src/project_initializer/rtl.ml @@ -100,6 +100,71 @@ end = struct *) end +(* Internal module to store the associations between symbols in the RTL project + and their corresponding symbols in the user's project. *) +module Assocs: sig + val clear: unit -> unit + (** Clear stored associations. *) + + val add_kf: global -> kernel_function -> unit + (** Add an association between a global in the RTL project and the + corresponding kernel function in the user's project. *) + + val mem_kf: global -> bool + (** Returns true if the given global from the RTL project has a corresponding + kernel function in the user's project. *) + + val get_kf: global -> kernel_function + (** Returns the corresponding kernel function from the user's project for the + given global in the RTL project. *) + + val add_vi: varinfo -> varinfo -> unit + (** [add_vi rtl_vi user_vi] adds an association between a [varinfo] in the + RTL project and the corresponding [varinfo] in the user's project. *) + + val find_vi: varinfo -> varinfo + (** [find_vi rtl_vi] returns the corresponding [varinfo] from the user's + project for the given [varinfo] in the RTL project if it exists, or raise + [Not_found] otherwise. *) + + val add_li: logic_info -> logic_info -> unit + (** [add_li rtl_li user_li] adds an association between a [logic_info] in the + RTL project and the corresponding [logic_info] in the user's project. *) + + val find_li: logic_info -> logic_info + (** [find_li rtl_li] returns the corresponding [logic_info] from the user's + project for the given [logic_info] in the RTL project if it exists, + or raise [Not_found] otherwise. *) + +end = struct + let kfs: kernel_function Global.Hashtbl.t = Global.Hashtbl.create 17 + let vars: varinfo Varinfo.Hashtbl.t = Varinfo.Hashtbl.create 17 + let logic_vars: logic_info Logic_info.Hashtbl.t = Logic_info.Hashtbl.create 17 + + let clear () = + Global.Hashtbl.clear kfs; + Varinfo.Hashtbl.clear vars; + Logic_info.Hashtbl.clear logic_vars + + let add_kf rtl_g user_kf = Global.Hashtbl.replace kfs rtl_g user_kf + let mem_kf rtl_g = Global.Hashtbl.mem kfs rtl_g + let get_kf rtl_g = + try + Global.Hashtbl.find kfs rtl_g + with Not_found -> + Options.fatal + "Unable to find user kf corresponding to %a. Assocs.mem_kf should be \ + used before calling Assocs.get_kf" + Printer.pp_global rtl_g + + let add_vi rtl_vi user_vi = Varinfo.Hashtbl.replace vars rtl_vi user_vi + let find_vi rtl_vi = Varinfo.Hashtbl.find vars rtl_vi + + let add_li rtl_li user_li = Logic_info.Hashtbl.replace logic_vars rtl_li user_li + let find_li rtl_li = Logic_info.Hashtbl.find logic_vars rtl_li +end + + (* NOTE: do not use [Mergecil.merge] since all [ast]'s symbols must be kept unchanged: so do it ourselves. Thanksfully, we merge in a particular setting because we know what the RTL is. Therefore merging is far from being @@ -109,11 +174,15 @@ end tables. @return the list of globals to be inserted into [ast], in reverse order. *) let lookup_rtl_globals rtl_ast = - (* [do_it ~add mem acc l g] checks whether the global does exist in the user's - AST. If not, add it to the corresponding symbol table(s). *) - let rec do_it ?(add=fun _g -> ()) mem acc l g = - if mem g then do_globals (g :: acc) l - else begin + (* [do_it ~add ~assoc mem acc l g] checks whether the global does exist in the + user's AST. If not, add it to the corresponding symbol table(s). If yes, + save the association between the global in the user's AST and the global in + the RTL. *) + let rec do_it ?(add=fun _g -> ()) ?(assoc=fun _g -> ()) mem acc l g = + if mem g then begin + assoc g; + do_globals (g :: acc) l + end else begin add g; Symbols.add_global g; do_globals (g :: acc) l @@ -134,8 +203,11 @@ let lookup_rtl_globals rtl_ast = do_ty acc l g Logic_typing.Enum ei.ename | GVarDecl(vi, (pos, _)) | GVar(vi, _, (pos, _)) as g :: l -> let tunit = Translation_unit pos.Filepath.pos_path in + let get_old_vi_opt vi = + Globals.Syntactic_search.find_in_scope vi.vorig_name tunit + in let mem _g = - let g = Globals.Syntactic_search.find_in_scope vi.vorig_name tunit in + let g = get_old_vi_opt vi in Option.is_some g in let add g = @@ -145,16 +217,95 @@ let lookup_rtl_globals rtl_ast = | GVar(_, ii, _) -> Globals.Vars.add vi ii | _ -> assert false in - do_it ~add mem acc l g + let assoc _g = + (* [assoc] is called if [mem] returns true, so the option returned by + [get_old_vi_opt] is [Some] by construction. *) + let old_vi = get_old_vi_opt vi in + Assocs.add_vi vi (Option.get old_vi) + in + do_it ~add ~assoc mem acc l g | GFunDecl(_, vi, _loc) | GFun({ svar = vi }, _loc) as g :: l -> let add _g = Symbols.add_vi vi.vname vi; (* functions will be registered in kernel's table after substitution of RTL's symbols inside them *) in - do_it ~add (fun _ -> Globals.Functions.mem_name vi.vname) acc l g + let assoc g = + let kf = Globals.Functions.find_by_name vi.vname in + Assocs.add_kf g kf + in + do_it ~add ~assoc (fun _ -> Globals.Functions.mem_name vi.vname) acc l g + | GAnnot (Daxiomatic (name, galist, _, _), _) as g :: l -> + (* processing axiomatics *) + let fun_or_preds = + (* extract the functions and predicates from the axiomatic *) + List.filter_map + (fun ga -> + match ga with + | Dfun_or_pred (li, _) -> Some li + | _ -> None) + galist + in + let mem _ = + (* check if some function or predicate of the axiomatic [exists] in the + user's project, if all the functions and predicates are in the user's + project ([forall]), and store which function and predicate are in the + user's project in [conflicting_lis]. *) + let exists, forall, conflicting_lis = + List.fold_left + (fun (exists, forall, conflicting_lis) li -> + let lv_name = li.l_var_info.lv_name in + let li_exists = Logic_env.Logic_info.mem lv_name in + let conflicting_lis = + if li_exists then li :: conflicting_lis else conflicting_lis + in + exists || li_exists, forall && li_exists, conflicting_lis) + (false, true, []) + fun_or_preds + in + (* The axiomatic is considered "in the user's project" if and only if + all its functions and predicates are in the user's project. If only + some of them are in it then it is an error, and if none of them are + then the axiomatic is not in the user's project. *) + if exists && not forall then + Options.abort + "@[The following logic functions or predicates@ \ + are in conflict with logic functions or predicates from the@ \ + axiomatic '%s' in the E-ACSL runtime library, please rename@ \ + them:@ %a@]" + name + (Pretty_utils.pp_list + ~sep:",@ " + Printer.pp_logic_info) + conflicting_lis + else + forall + in + let assoc _g = + List.iter + (fun li -> + let lv_name = li.l_var_info.lv_name in + let old_lis = Logic_env.Logic_info.find lv_name in + let old_li = + try + List.find + (fun old_li -> Logic_utils.is_same_logic_info li old_li) + old_lis + with Not_found -> + Options.fatal + "Unable to find the logic_info in the user's AST \ + corresponding to the logic_info %a in the RTL's AST. This \ + most likely comes from a mismatch between the axiomatic %s \ + in the RTL that is supposed to mirror one from the stdlib." + Printer.pp_logic_info li + name + in + Assocs.add_li li old_li) + fun_or_preds + in + do_it ~assoc mem acc l g | GAnnot _ :: l -> - (* ignoring annotations from the AST *) + (* ignoring other annotations from the AST *) do_globals acc l | GPragma _ as g :: l -> do_it Symbols.mem_global acc l g @@ -163,34 +314,86 @@ let lookup_rtl_globals rtl_ast = in do_globals [] rtl_ast.globals +(** [get_kf vi] returns the kernel function corresponding to the given varinfo + in the current project. The varinfo must correspond to a kernel function. *) +let get_kf vi = + try + Globals.Functions.get vi + with Not_found -> + Options.fatal "unknown function %s in project %a" + vi.vname + Project.pretty (Project.current ()) + +(** [get_formals_and_spec prj vi] returns a couple with the formals and function + specification of the function corresponding to the varinfo [vi] in the + project [prj]. The varinfo must correspond to a function of the given + project. *) +let get_formals_and_spec prj vi = + let selection = + State_selection.of_list + [ Globals.Functions.self; Annotations.funspec_state ] + in + Project.on + prj + ~selection + (fun vi -> + let kf = get_kf vi in + Kernel_function.get_formals kf, + Annotations.funspec ~populate:false kf) + vi + +(** Visitor to replace [varinfo] and [logic_info] leaves of an AST with + corresponding values from the [Assocs] tables. + If the visitor is created with the [formals] associating the [varinfo] of + the RTL formals with the [varinfo] of the user formals, then replace the + corresponding [varinfo] leaves. *) +class vis_replace_leaves ?formals () = + object + (* Since we are already working on a copied project, we can use an inplace + visitor. *) + inherit Visitor.frama_c_inplace + + val formals: varinfo Varinfo.Hashtbl.t = + match formals with + | None -> Varinfo.Hashtbl.create 7 + | Some formals -> formals + + (* Since the RTL project will be deleted at the end of the AST + merge, we can temporarily violate the Frama-C invariant that says + that a varinfo or logic_info must be in a single project and directly + replace the varinfo/logic_info of the RTL in the specification with the + logic_info/varinfo of the user's AST. *) + + method! vlogic_info_use rtl_li = + try + (* Replace the logic_info if it is a logic_info from the RTL project. *) + let user_li = Assocs.find_li rtl_li in + Cil.ChangeTo user_li + with Not_found -> + Cil.SkipChildren + + method! vvrbl rtl_vi = + try + (* Replace the varinfo if it is a global from the RTL project.*) + let user_vi = Assocs.find_vi rtl_vi in + Cil.ChangeTo user_vi + with Not_found -> + try + (* Replace the varinfo if it is a formal. *) + let user_vi = Varinfo.Hashtbl.find formals rtl_vi in + Cil.ChangeTo user_vi + with Not_found -> + (* Otherwise do nothing. *) + Cil.SkipChildren + end + (* [substitute_rtl_symbols] registers the correct symbols for RTL's functions *) let substitute_rtl_symbols rtl_prj = function | GVarDecl _ | GVar _ as g -> g | GFunDecl(_, vi, loc) | GFun({ svar = vi }, loc) as g -> - let get_kf vi = - try - Globals.Functions.get vi - with Not_found -> - Options.fatal "unknown function %s in project %a" - vi.vname - Project.pretty (Project.current ()) - in - let selection = - State_selection.of_list - [ Globals.Functions.self; Annotations.funspec_state ] - in (* get the RTL's formals and spec *) - let formals, spec = - Project.on - rtl_prj - ~selection - (fun vi -> - let kf = get_kf vi in - Kernel_function.get_formals kf, - Annotations.funspec ~populate:false kf) - vi - in + let formals, spec = get_formals_and_spec rtl_prj vi in (match g with | GFunDecl _ -> Globals.Functions.replace_by_declaration spec vi loc @@ -209,10 +412,47 @@ let substitute_rtl_symbols rtl_prj = function Annotations.register_funspec ~emitter:Options.emitter kf; Symbols.add_kf kf; g + | GAnnot (Daxiomatic _ as ga, loc) -> + let vis_replace_leaves = new vis_replace_leaves () in + let ga = Visitor.visitFramacAnnotation vis_replace_leaves ga in + Annotations.add_global Options.emitter ga; + GAnnot (ga, loc) | GType _ | GCompTag _ | GCompTagDecl _ | GEnumTag _ | GEnumTagDecl _ | GAnnot _ | GAsm _ | GPragma _ | GText _ -> assert false +(* [merge_rtl_spec rtl_prj rtl_global] adds the spec of the given global + function from the RTL project to the corresponding function in the current + project. Before adding the spec, the varinfos of the global variables and + formals in the spec are replaced with their corresponding varinfos in the + current project. *) +let merge_rtl_spec rtl_prj rtl_global = + match rtl_global with + | GFunDecl(_, vi, _loc) | GFun({ svar = vi }, _loc) as g -> + (* get the RTL's formals and spec *) + let rtl_formals, spec = get_formals_and_spec rtl_prj vi in + (* if the spec is not empty, then merge it with the user's spec *) + if not (Cil.is_empty_funspec spec) then begin + (* get the user's kf *) + let user_kf = Assocs.get_kf g in + (* get the user's formals *) + let user_formals = Kernel_function.get_formals user_kf in + (* replace all the formals and global variables in the spec with the + formals and globals from the user's project. *) + let formals_assoc: varinfo Varinfo.Hashtbl.t = Varinfo.Hashtbl.create 7 in + List.iter2 + (fun rtl_vi user_vi -> Varinfo.Hashtbl.add formals_assoc rtl_vi user_vi) + rtl_formals + user_formals; + let vis_replace_formals = new vis_replace_leaves ~formals:formals_assoc () in + let spec = Visitor.visitFramacFunspec vis_replace_formals spec in + (* Add the updated spec to the user's kf *) + Annotations.add_spec Options.emitter user_kf spec + end + | GVarDecl _ | GVar _ | GType _ | GCompTag _ | GCompTagDecl _ | GEnumTag _ + | GEnumTagDecl _ | GAnnot _ | GAsm _ | GPragma _ | GText _ -> + assert false + (* [insert_rtl_globals] adds the rtl symbols into the user's AST *) let insert_rtl_globals rtl_prj rtl_globals ast = let add_ty acc old_g new_g = @@ -238,12 +478,21 @@ let insert_rtl_globals rtl_prj rtl_globals ast = only declared *) let acc = add_ty acc g (GEnumTagDecl(ei, loc)) in add acc l - | GVarDecl _ | GVar _ | GFunDecl _ | GFun _ as g :: l -> + | GVarDecl _ | GVar _ | GFunDecl _ | GFun _ + | GAnnot (Daxiomatic _, _) as g :: l -> let acc = if Symbols.mem_global g then + (* The symbol is in the RTL project, but not in the user's project. + Perform the symbols substitution and add the global to the user's + project. *) let g = substitute_rtl_symbols rtl_prj g in g :: acc - else + else if Assocs.mem_kf g then begin + (* The symbol is in the RTL project and associated with a kf in the + user's project. Merge both contracts. *) + merge_rtl_spec rtl_prj g; + acc + end else acc in add acc l @@ -261,6 +510,7 @@ let link rtl_prj = let rtl_globals = lookup_rtl_globals rtl_ast in (* Symbols.debug ();*) insert_rtl_globals rtl_prj rtl_globals ast; + Assocs.clear (); Ast.mark_as_grown () (* diff --git a/src/plugins/e-acsl/tests/memory/memsize.c b/src/plugins/e-acsl/tests/memory/memsize.c index c214b60ebd4dcbb33a07b64bf3fddf3e7aec9a8e..2260a306878d6dfd4943d73ccbddc6436c2ec2f5 100644 --- a/src/plugins/e-acsl/tests/memory/memsize.c +++ b/src/plugins/e-acsl/tests/memory/memsize.c @@ -1,5 +1,6 @@ -/* run.config +/* run.config_ci COMMENT: Checking heap memory size + STDOPT: +"-eva-no-builtins-auto" */ #include <stdlib.h> diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_memalign.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_memalign.c index 594eb809025228428f8d77a55c247c7157cab650..86b350d6bcd47ce810e3942357482c1a1697e052 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_memalign.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_memalign.c @@ -40,6 +40,12 @@ extern int __e_acsl_sound_verdict; */ int __gen_e_acsl_posix_memalign(void **memptr, size_t alignment, size_t size); +/*@ assigns __e_acsl_heap_allocation_size, __e_acsl_heap_allocated_blocks; + assigns __e_acsl_heap_allocation_size + \from (indirect: alignment), size, __e_acsl_heap_allocation_size; + assigns __e_acsl_heap_allocated_blocks + \from (indirect: alignment), size, __e_acsl_heap_allocated_blocks; + */ void *aligned_alloc(size_t alignment, size_t size); int main(int argc, char const **argv) diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_memsize.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_memsize.c index 134e80f8dafed2dc211d27d63cf0ed3076a9c401..d31fa69d2a5df24b8d9189086ba15157c57864a5 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_memsize.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_memsize.c @@ -11,73 +11,73 @@ int main(int argc, char **argv) char *a = malloc((unsigned long)7); __e_acsl_assert(__e_acsl_heap_allocation_size == 7UL,"Assertion","main", "__e_acsl_heap_allocation_size == 7", - "tests/memory/memsize.c",14); + "tests/memory/memsize.c",15); /*@ assert __e_acsl_heap_allocation_size ≡ 7; */ ; char *b = malloc((unsigned long)14); __e_acsl_assert(__e_acsl_heap_allocation_size == 21UL,"Assertion","main", "__e_acsl_heap_allocation_size == 21", - "tests/memory/memsize.c",16); + "tests/memory/memsize.c",17); /*@ assert __e_acsl_heap_allocation_size ≡ 21; */ ; free((void *)a); __e_acsl_assert(__e_acsl_heap_allocation_size == 14UL,"Assertion","main", "__e_acsl_heap_allocation_size == 14", - "tests/memory/memsize.c",20); + "tests/memory/memsize.c",21); /*@ assert __e_acsl_heap_allocation_size ≡ 14; */ ; a = (char *)0; free((void *)a); __e_acsl_assert(__e_acsl_heap_allocation_size == 14UL,"Assertion","main", "__e_acsl_heap_allocation_size == 14", - "tests/memory/memsize.c",25); + "tests/memory/memsize.c",26); /*@ assert __e_acsl_heap_allocation_size ≡ 14; */ ; b = (char *)realloc((void *)b,(unsigned long)9); __e_acsl_assert(__e_acsl_heap_allocation_size == 9UL,"Assertion","main", "__e_acsl_heap_allocation_size == 9", - "tests/memory/memsize.c",29); + "tests/memory/memsize.c",30); /*@ assert __e_acsl_heap_allocation_size ≡ 9; */ ; b = (char *)realloc((void *)b,(unsigned long)18); __e_acsl_assert(__e_acsl_heap_allocation_size == 18UL,"Assertion","main", "__e_acsl_heap_allocation_size == 18", - "tests/memory/memsize.c",33); + "tests/memory/memsize.c",34); /*@ assert __e_acsl_heap_allocation_size ≡ 18; */ ; b = (char *)realloc((void *)b,(unsigned long)0); b = (char *)0; __e_acsl_assert(__e_acsl_heap_allocation_size == 0UL,"Assertion","main", "__e_acsl_heap_allocation_size == 0", - "tests/memory/memsize.c",38); + "tests/memory/memsize.c",39); /*@ assert __e_acsl_heap_allocation_size ≡ 0; */ ; b = (char *)realloc((void *)b,(unsigned long)8); __e_acsl_assert(__e_acsl_heap_allocation_size == 8UL,"Assertion","main", "__e_acsl_heap_allocation_size == 8", - "tests/memory/memsize.c",42); + "tests/memory/memsize.c",43); /*@ assert __e_acsl_heap_allocation_size ≡ 8; */ ; b = (char *)realloc((void *)0,(unsigned long)8); __e_acsl_assert(__e_acsl_heap_allocation_size == 16UL,"Assertion","main", "__e_acsl_heap_allocation_size == 16", - "tests/memory/memsize.c",46); + "tests/memory/memsize.c",47); /*@ assert __e_acsl_heap_allocation_size ≡ 16; */ ; b = (char *)realloc((void *)0,18446744073709551615UL); __e_acsl_assert(__e_acsl_heap_allocation_size == 16UL,"Assertion","main", "__e_acsl_heap_allocation_size == 16", - "tests/memory/memsize.c",50); + "tests/memory/memsize.c",51); /*@ assert __e_acsl_heap_allocation_size ≡ 16; */ ; __e_acsl_assert(b == (char *)0,"Assertion","main","b == (char *)0", - "tests/memory/memsize.c",51); + "tests/memory/memsize.c",52); /*@ assert b ≡ (char *)0; */ ; b = (char *)calloc(18446744073709551615UL,18446744073709551615UL); __e_acsl_assert(__e_acsl_heap_allocation_size == 16UL,"Assertion","main", "__e_acsl_heap_allocation_size == 16", - "tests/memory/memsize.c",55); + "tests/memory/memsize.c",56); /*@ assert __e_acsl_heap_allocation_size ≡ 16; */ ; __e_acsl_assert(b == (char *)0,"Assertion","main","b == (char *)0", - "tests/memory/memsize.c",56); + "tests/memory/memsize.c",57); /*@ assert b ≡ (char *)0; */ ; b = (char *)malloc(18446744073709551615UL); __e_acsl_assert(__e_acsl_heap_allocation_size == 16UL,"Assertion","main", "__e_acsl_heap_allocation_size == 16", - "tests/memory/memsize.c",60); + "tests/memory/memsize.c",61); /*@ assert __e_acsl_heap_allocation_size ≡ 16; */ ; __e_acsl_assert(b == (char *)0,"Assertion","main","b == (char *)0", - "tests/memory/memsize.c",61); + "tests/memory/memsize.c",62); /*@ assert b ≡ (char *)0; */ ; __retres = 0; __e_acsl_memory_clean(); diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/memsize.res.oracle b/src/plugins/e-acsl/tests/memory/oracle_ci/memsize.res.oracle index 2db55f248cb6caa7f38d1c46c8c93f5bdc964f5e..68e3cc47739f873c790ec413966607107df9a811 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/memsize.res.oracle +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/memsize.res.oracle @@ -1,7 +1,66 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". -[eva:alarm] tests/memory/memsize.c:14: Warning: +[eva] tests/memory/memsize.c:14: Warning: ignoring unsupported \allocates clause +[eva:alarm] tests/memory/memsize.c:15: Warning: + function __e_acsl_assert: precondition got status unknown. +[eva:alarm] tests/memory/memsize.c:15: Warning: assertion got status unknown. +[eva] tests/memory/memsize.c:16: Warning: ignoring unsupported \allocates clause +[eva:alarm] tests/memory/memsize.c:17: Warning: + function __e_acsl_assert: precondition got status unknown. +[eva:alarm] tests/memory/memsize.c:17: Warning: assertion got status unknown. +[eva] tests/memory/memsize.c:20: Warning: ignoring unsupported \allocates clause +[eva:alarm] tests/memory/memsize.c:20: Warning: + function free: precondition 'freeable' got status unknown. +[eva:alarm] tests/memory/memsize.c:21: Warning: + function __e_acsl_assert: precondition got status unknown. +[eva:alarm] tests/memory/memsize.c:21: Warning: assertion got status unknown. +[eva] tests/memory/memsize.c:25: Warning: ignoring unsupported \allocates clause +[eva:alarm] tests/memory/memsize.c:26: Warning: + function __e_acsl_assert: precondition got status unknown. +[eva:alarm] tests/memory/memsize.c:26: Warning: assertion got status unknown. +[eva] FRAMAC_SHARE/libc/stdlib.h:452: Warning: + no 'assigns \result \from ...' clause specified for function realloc +[eva] tests/memory/memsize.c:29: Warning: ignoring unsupported \allocates clause +[eva:alarm] tests/memory/memsize.c:29: Warning: + function realloc: precondition 'freeable' got status unknown. +[eva:alarm] tests/memory/memsize.c:30: Warning: + function __e_acsl_assert: precondition got status unknown. +[eva:alarm] tests/memory/memsize.c:30: Warning: assertion got status unknown. +[eva] tests/memory/memsize.c:33: Warning: ignoring unsupported \allocates clause +[eva:alarm] tests/memory/memsize.c:33: Warning: + function realloc: precondition 'freeable' got status unknown. +[eva:alarm] tests/memory/memsize.c:34: Warning: + function __e_acsl_assert: precondition got status unknown. +[eva:alarm] tests/memory/memsize.c:34: Warning: assertion got status unknown. +[eva] tests/memory/memsize.c:37: Warning: ignoring unsupported \allocates clause +[eva:alarm] tests/memory/memsize.c:37: Warning: + function realloc: precondition 'freeable' got status unknown. +[eva:alarm] tests/memory/memsize.c:39: Warning: + function __e_acsl_assert: precondition got status unknown. +[eva:alarm] tests/memory/memsize.c:39: Warning: assertion got status unknown. +[eva] tests/memory/memsize.c:42: Warning: ignoring unsupported \allocates clause +[eva:alarm] tests/memory/memsize.c:43: Warning: + function __e_acsl_assert: precondition got status unknown. +[eva:alarm] tests/memory/memsize.c:43: Warning: assertion got status unknown. +[eva] tests/memory/memsize.c:46: Warning: ignoring unsupported \allocates clause +[eva:alarm] tests/memory/memsize.c:47: Warning: + function __e_acsl_assert: precondition got status unknown. +[eva:alarm] tests/memory/memsize.c:47: Warning: assertion got status unknown. +[eva] tests/memory/memsize.c:50: Warning: ignoring unsupported \allocates clause +[eva:alarm] tests/memory/memsize.c:51: Warning: + function __e_acsl_assert: precondition got status unknown. +[eva:alarm] tests/memory/memsize.c:51: Warning: assertion got status unknown. +[eva:alarm] tests/memory/memsize.c:52: Warning: + function __e_acsl_assert: precondition got status unknown. +[eva] FRAMAC_SHARE/libc/stdlib.h:385: Warning: + no 'assigns \result \from ...' clause specified for function calloc +[eva] tests/memory/memsize.c:55: Warning: ignoring unsupported \allocates clause +[eva:alarm] tests/memory/memsize.c:56: Warning: + function __e_acsl_assert: precondition got status unknown. +[eva:alarm] tests/memory/memsize.c:56: Warning: assertion got status unknown. +[eva] tests/memory/memsize.c:60: Warning: ignoring unsupported \allocates clause +[eva:alarm] tests/memory/memsize.c:61: Warning: + function __e_acsl_assert: precondition got status unknown. +[eva:alarm] tests/memory/memsize.c:61: Warning: assertion got status unknown. +[eva:alarm] tests/memory/memsize.c:62: Warning: function __e_acsl_assert: precondition got status unknown. -[eva:alarm] tests/memory/memsize.c:14: Warning: assertion got status unknown. -[eva:alarm] tests/memory/memsize.c:16: Warning: - function __e_acsl_assert: precondition got status invalid. diff --git a/src/plugins/from/From.mli b/src/plugins/from/From.mli index eaabab7daa5e7a05c3b9b9fe0d9c49c781a9aced..4da7e8c9f16e02912bfddc9ca6f16b3982b3d73f 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/from/callwise.ml b/src/plugins/from/callwise.ml index 71038fdbbc65415215314d7133d10747a5dcd439..1e6f33366a86b33af63958b9eb4f6da4527a84e5 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/from/callwise.mli b/src/plugins/from/callwise.mli index 2bbb744fba094d7b0dc4d898188aa26011f8d47c..b1ad7b6bc68c54ffe248b7d51604bde3f8a8a110 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 72dc3365fa1e264f63a0957cf5d15053be84fbbb..4b34ced746b15200da5e6c8a079b2a8157af28a1 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 3d60c365c51776073b69f67b17a0f062455b0943..33c9abff454090e9ad2fd096e091e0820bd895ae 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 b5ad2dab5bf6b024a6c156dad1289e41ad168903..24b34fb037bed661b5444823278e6be31c95cc84 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 0ed0fc3f8f9b9332b7c0c9a709958f86ea5fd06c..d93241029ef84547c7b5871dd049bdd65214265f 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 9b82d7c782042c7b65dff23ce550f11880ea6337..4d580479eb2f6a13dfe69997c162e361209bceeb 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 a884c1eac91361cd9f1131a8f5b40e6fe1504702..745d36052f8c4a975d4d5c319ce56411816682f5 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 d851a7226a9b79db1eac52ad82002f3c4ae92517..3e87de5ea8ca807fcfc0a91d5c0de99c3ed7bef3 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 d98d08164e60459ed2ad3383ae04ec518eb513ce..6952dd8517a5b4399a14fec5f7e03c1b66fb6005 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/from/functionwise.ml b/src/plugins/from/functionwise.ml index b8492a24f450100dd1679e61185da57ca71555c6..fd9fa80228382ff682e148e29ac01bb0e144147f 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/from/functionwise.mli b/src/plugins/from/functionwise.mli index 63ca79e40930690bfd1b6e3869c679873016711c..31ee0992e0a5fd0c65fe4f6d43060c66e48af20d 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 index b7f09499398a6d6c39453cf0ebb21db36cb4bfdc..da100895a01d04d0d68b56d1e288ce0ecd2f35e4 100644 --- a/src/plugins/gui/GSourceView2.ml.in +++ b/src/plugins/gui/GSourceView2.ml.in @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/GSourceView2.mli.in b/src/plugins/gui/GSourceView2.mli.in index 108596e4df39f67782e60fd69678d6a2636bf722..3af59ceded98dd9d71a9a12d88e6ad712bf99d18 100644 --- a/src/plugins/gui/GSourceView2.mli.in +++ b/src/plugins/gui/GSourceView2.mli.in @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/GSourceView3.ml.in b/src/plugins/gui/GSourceView3.ml.in index cf732307b385aa9bb80376169ee51ec10bed297b..71a84a50c313d2bbfdd3cc810f2d55cbe446fc99 100644 --- a/src/plugins/gui/GSourceView3.ml.in +++ b/src/plugins/gui/GSourceView3.ml.in @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/GSourceView3.mli.in b/src/plugins/gui/GSourceView3.mli.in index 2182dafc39a95ef4aa0059c742c28d5c6ae59b44..a5b288ada41c4b4573d49aaaff18d628dd30a211 100644 --- a/src/plugins/gui/GSourceView3.mli.in +++ b/src/plugins/gui/GSourceView3.mli.in @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/analyses_manager.ml b/src/plugins/gui/analyses_manager.ml index 1a94f476eb1a85a0844111949cf3092e6945d02e..c1319c838726303831b59b78d3ef2014178e1331 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 60e3962dceedbe39b9d7c51a14e3015af7285fc4..a74e41e1a306f7ac3419fa84349ea03ed92e6d7b 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 8d411b8aba57c276ca6f2fa9973ec7df8885f4fa..fe3baaaaa5722e552c7f2e35bb8092d0ab9a20e4 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/book_manager.mli b/src/plugins/gui/book_manager.mli index 7db19c671fd867c1bc5a22a1e7cf7834bb1c43ec..89614ee59dc75994b07a785916d94f38c48fffff 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/debug_manager.mli b/src/plugins/gui/debug_manager.mli index 60e3962dceedbe39b9d7c51a14e3015af7285fc4..a74e41e1a306f7ac3419fa84349ea03ed92e6d7b 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/debug_manager.yes.ml b/src/plugins/gui/debug_manager.yes.ml index 32eb2f1965f43ca1d812787c1f350caccbb754dc..ae9b17794f89f24db996417483aef6d9c00a29a5 100644 --- a/src/plugins/gui/debug_manager.yes.ml +++ b/src/plugins/gui/debug_manager.yes.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/design.ml b/src/plugins/gui/design.ml index c5a986d5802ee1663188d80d51817a05a251fdc8..d29eb062dfc7511d8298b2371658f78012199247 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -499,14 +499,12 @@ let to_do_on_select "This is a complete behaviors clause.@.%a@." pretty_predicate_status ip; main_ui#view_original (location ip) - | PIP(IPAxiom _ as ip) -> - main_ui#pretty_information "This is an axiom.@."; - main_ui#view_original (location ip) | PIP(IPAxiomatic _ as ip) -> main_ui#pretty_information "This is an axiomatic.@."; main_ui#view_original (location ip) - | PIP(IPLemma _ as ip) -> - main_ui#pretty_information "This is a lemma.@."; + | PIP(IPLemma { il_pred } as ip) -> + main_ui#pretty_information "This is a %a.@." + Cil_printer.pp_lemma_kind il_pred.tp_kind; main_ui#view_original (location ip) | PIP(IPTypeInvariant _ as ip) -> main_ui#pretty_information "This is a type invariant.@."; @@ -1034,7 +1032,7 @@ class main_window () : main_window_extension_points = let m = new Menu_manager.menu_manager ~packing:(toplevel_vbox#pack ~expand:false ~fill:false ~from:`START) - ~host:(self :> Gtk_helper.host) + (self :> Gtk_helper.host) in menu_manager <- Some m; m diff --git a/src/plugins/gui/design.mli b/src/plugins/gui/design.mli index 90f8d9d800dd39c106f5c11d745ad157239ce93f..ea4c1f49f057bbee527a20fa38d88cc42d66cbd5 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/dgraph_helper.mli b/src/plugins/gui/dgraph_helper.mli index 569c400b3ccc135b735aacf3bad297d08fa20514..032937e8bb2ce490485aed9d207eea85136382e7 100644 --- a/src/plugins/gui/dgraph_helper.mli +++ b/src/plugins/gui/dgraph_helper.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/dgraph_helper.no.ml b/src/plugins/gui/dgraph_helper.no.ml index 142305393c4e8981bc685109a671f7dac3beb335..a93468cbfe3cc19c955ca24228b8f8c2b1abf9bc 100644 --- a/src/plugins/gui/dgraph_helper.no.ml +++ b/src/plugins/gui/dgraph_helper.no.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/dgraph_helper.yes.ml b/src/plugins/gui/dgraph_helper.yes.ml index f547f895cb8bb737ed10b9421b0db40f7a8cd064..bb3422f9791ffa75832690313b9af7081fd6e7d5 100644 --- a/src/plugins/gui/dgraph_helper.yes.ml +++ b/src/plugins/gui/dgraph_helper.yes.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/file_manager.ml b/src/plugins/gui/file_manager.ml index 2d67756133dcb77ec81de1ba0341d365dda9d8fe..6c889e5dc3546e84c3bc198b0adbb5fc5688f8e2 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 60e3962dceedbe39b9d7c51a14e3015af7285fc4..a74e41e1a306f7ac3419fa84349ea03ed92e6d7b 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/filetree.ml b/src/plugins/gui/filetree.ml index 48f9fe8717e8c69848fb9326da7415b0abce54f8..a0be9aeb2d40cc93e900292886fcb52c53dbce41 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -316,7 +316,7 @@ module MYTREE = struct | Dvolatile _ -> Some "volatile clause" | Daxiomatic (s, _, _,_) -> Some (global_name s) | Dtype (lti, _) -> Some (global_name lti.lt_name) - | Dlemma (s, _, _, _, _, _,_) -> Some (global_name s) + | Dlemma (s, _, _, _, _,_) -> Some (global_name s) | Dinvariant (li, _) -> Some (global_name li.l_var_info.lv_name) | Dtype_annot (li, _) -> Some (global_name li.l_var_info.lv_name) | Dmodel_annot (mf, _) -> Some (global_name mf.mi_name) diff --git a/src/plugins/gui/filetree.mli b/src/plugins/gui/filetree.mli index bf353c76894432e5de4c568bd0bf29869aeb681b..d5b86c3558a58a43e5636bf59d62c805b74ec39c 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 index b6b1a7715b39deefb5ef9facce27821f61b95d4b..7aaa9b7c5aeb62fed33b686cf1fd168b05727fcb 100644 --- a/src/plugins/gui/gtk_compat.2.ml +++ b/src/plugins/gui/gtk_compat.2.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/gtk_compat.3.ml b/src/plugins/gui/gtk_compat.3.ml index 4ccc721fcbf5202edf1b42ee1a0252343932111d..9981263af956cf328278a2f50df0c8dd446cf3da 100644 --- a/src/plugins/gui/gtk_compat.3.ml +++ b/src/plugins/gui/gtk_compat.3.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/gtk_compat.mli b/src/plugins/gui/gtk_compat.mli index c3b3d7c1e407c7ca3c82d1cff8ad2a8fde90a86e..ce275610c9ebd17322ed822999955a5d54a93545 100644 --- a/src/plugins/gui/gtk_compat.mli +++ b/src/plugins/gui/gtk_compat.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/gtk_form.ml b/src/plugins/gui/gtk_form.ml index e0ad53b28fcb306b6549d05de10501fbb92b1451..da851951be67b45cc9d6c6a7dd99143c9bef5504 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/gtk_form.mli b/src/plugins/gui/gtk_form.mli index 3c64bc91e07c1d9e3d7fcbd1f3c87c96743ca0ae..769e3d726e92bafaa439e7e8bcb90b88918cc6ff 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 dd04ec19f44f82c7a40f6600bed43e449c53c619..a4339a28ec8f1e5cd250eb1c35cf518a9dad3abd 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/gtk_helper.mli b/src/plugins/gui/gtk_helper.mli index 18b41177870c626626a67afe3571c8922cafc36b..5b09f6853761b4e43d1a7eda4d20cc16b77b6a04 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/gui_parameters.ml b/src/plugins/gui/gui_parameters.ml index 1168424d3cbb12d8ffca57ff32a1e65f2c20f5ce..ec91f4bee2e27b719e9c6b0a3e637d20dc9ee1b5 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 bb184b536c58da2b2fa6ad80cfa2b45ebbc5c51d..1f24b1a9722c6a7a70cf0185552c606f5f7719f6 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 81ef068459e7c26c19951ec0656b024960cca281..617a671256bcf1569bbbabb4c74a0ba3610f3b2d 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 52b197288014f7b270d15eb8a9095fec7bf6ba96..582be71d3580b5f816ab1b5cda7812ceb100770c 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 286541b637bb8816a7015ce0921cfb21313000bb..01d2244fd0f36c31a425c88a225388057e813600 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 60e3962dceedbe39b9d7c51a14e3015af7285fc4..a74e41e1a306f7ac3419fa84349ea03ed92e6d7b 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/history.ml b/src/plugins/gui/history.ml index 56b4f7dc99f3787729d7cc91a1e67b0a4e466f73..29faae0a64ef52297423ec4fb00ee6f53fb12f0b 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -224,8 +224,8 @@ let translate_history_elt old_helt = GAnnot(Dtype( {lt_name = new_name},_) , new_loc)) | (GAnnot(Daxiomatic( old_name,_,_,_), old_loc), GAnnot(Daxiomatic( new_name,_,_,_), new_loc)) - | (GAnnot(Dlemma( old_name,_,_,_,_,_,_), old_loc), - GAnnot(Dlemma( new_name,_,_,_,_,_,_), new_loc)) + | (GAnnot(Dlemma( old_name,_,_,_,_,_), old_loc), + GAnnot(Dlemma( new_name,_,_,_,_,_), new_loc)) | (GAnnot(Dfun_or_pred({l_var_info= {lv_name=old_name}},_), old_loc), GAnnot(Dfun_or_pred({l_var_info= {lv_name=new_name}},_), new_loc)) diff --git a/src/plugins/gui/history.mli b/src/plugins/gui/history.mli index ca4f9b8db68c01b59900a83c48d14588311fe6b8..67fa426f9dc8434a0d947feb4bd1234867ef1a9e 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/launcher.ml b/src/plugins/gui/launcher.ml index 447e7ae8e0a669303dfd0273ca5a7cdac9b44783..be6cf7e656067064add06833ceec9094bbb440b0 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/launcher.mli b/src/plugins/gui/launcher.mli index a0cc2868c9a6bc8d2f7436ee8be5633bf2b042f9..33e9eb41c80a321a4c8cc368537523882245e4c3 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 5d835aabd1c60aef79cff1ad0118f5bf3cae62e9..bb75ce6d774dea2960e148dffdf0775fb006f5a8 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -112,7 +112,7 @@ let add_submenu container ~pos label = external set_menu : Obj.t -> unit = "ige_mac_menu_set_menu_bar" *) -class menu_manager ?packing ~host:(_:Gtk_helper.host) = +class menu_manager ?packing (_:Gtk_helper.host) = let menubar = GMenu.menu_bar ?packing () in (* let () = set_menu (Obj.field (Obj.repr ((menubar)#as_widget)) 1) in *) let factory = new GMenu.factory menubar in diff --git a/src/plugins/gui/menu_manager.mli b/src/plugins/gui/menu_manager.mli index dba70f9279ccb6d55cb566d59e26cdfce42eee12..6b5a3145cd23f67c81a55c7112dff27ff4ec4512 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -113,7 +113,7 @@ end (** How to handle a Frama-C menu. @since Boron-20100401 *) -class menu_manager: ?packing:(GObj.widget -> unit) -> host:Gtk_helper.host -> +class menu_manager: ?packing:(GObj.widget -> unit) -> Gtk_helper.host -> object (** {2 API for plug-ins} *) diff --git a/src/plugins/gui/pretty_source.ml b/src/plugins/gui/pretty_source.ml index 91255b5d6f2a4565d67d889f5f9e2206b079970a..c2aa878bbe0e137972f273c35595fa538914cab5 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/pretty_source.mli b/src/plugins/gui/pretty_source.mli index 480278f9337e3b72ac7bb853dbe0f893c1d05035..a3544e647fbcc811deb9e0ad65ed6c1d4df2d1a7 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/project_manager.ml b/src/plugins/gui/project_manager.ml index 898ffd30bded03fbef06161f90088a1d81bd92c1..5d2c08cc77998476a14f0603aad4b2da7840d1d7 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/project_manager.mli b/src/plugins/gui/project_manager.mli index aaea6cabd31c9c04aad1b4330baedad8122e51bc..388a97c33bc9bc84c04c914849dcfca8513765c2 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 cbd09639a4b6fdfeeb50d9098a37c056b3f96935..167e9afbb7f1b8a4274a68ed40b26f67fb57a6bb 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -633,7 +633,6 @@ let make_panel (main_ui:main_window_extension_points) = | IPPredicate {ip_kind=PKEnsures _;ip_kinstr=Kstmt _} -> ensures.get() && stmtSpec.get() | IPPredicate {ip_kind = PKTerminates} -> terminates.get () - | IPAxiom _ -> false | IPTypeInvariant _ -> typeInvariants.get() | IPGlobalInvariant _ -> globalInvariants.get() | IPAxiomatic _ -> axiomatic.get () && not (onlyCurrent.get ()) diff --git a/src/plugins/gui/property_navigator.mli b/src/plugins/gui/property_navigator.mli index 2509c440cfc186aa9bc85d629b86d272ac98a1eb..5a37db8e0bc1e23d5391e8eef10fefc4dd894228 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 72954ee2674201ad78d54b79c9505c0e70cb8e48..7ceadddf52977b182dcf49b30d74b615c52c7058 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/source_manager.mli b/src/plugins/gui/source_manager.mli index b98edc5485c6f59e12b0f5d319871535d31f5c56..58c5ae021948078f2be3bb0ae2a08e0be6b45736 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/source_viewer.ml b/src/plugins/gui/source_viewer.ml index d1516cd81f3a84bd0f391a60308ba45385251bdf..b4faad1b93cb194f8a114dac898813fe07d32b6f 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/source_viewer.mli b/src/plugins/gui/source_viewer.mli index 815dc746509d11da2377a40600cc190d5cee7583..697d67a9c334ae78aad6ec915604f3a14f951061 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/warning_manager.ml b/src/plugins/gui/warning_manager.ml index e76ee827ccfe9ce32cc7e9c077d086f4fab67af1..f9f95f0b838214af73334c3a4450c47c52fcde67 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 4aecbf9646e1c866f4b919ff969e64529040e3cf..16231b02c402e85b73692b00baa1abd7bfeb000a 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/wbox.ml b/src/plugins/gui/wbox.ml index bada4ff44c3873ef9f2390691383148c9bc5d0c7..95e9dd438c83507f347c6c2d525bfa88fdca386d 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/wbox.mli b/src/plugins/gui/wbox.mli index e4841feb36a8bb524f11c8eb68491ed0cfaf92d3..30e1d9591abb791377d04147bd5736041b423a36 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/wfile.ml b/src/plugins/gui/wfile.ml index a8a60ba56cb15f84c2cc8573992604cc3e94ff91..7b71886509632f777351a07d2f5ef0d764cd96a0 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/wfile.mli b/src/plugins/gui/wfile.mli index 2f7d07c559fc5efc5993cc2c4f3d3b37ff31b4b0..dfbbc6362b2f017132c4d6e8b5a7051baf84d3f0 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/widget.ml b/src/plugins/gui/widget.ml index 3c2c806b0fad2c682b92b3a01b17b63c969d6fe7..361d46e9d7e01f26cf3685fe49f189cb2f5d6bf6 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/widget.mli b/src/plugins/gui/widget.mli index 4a26f0c6da0fa215836c0c108420fe23dbed46ec..e208ca117ead4812fb75cb93cfdd545a03f2d52c 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/wpalette.ml b/src/plugins/gui/wpalette.ml index a95017c09445a85dac9d5987b25cdf49c4c24fdc..96935c86465bbbadc3e56623138f5a9501c5178b 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/wpalette.mli b/src/plugins/gui/wpalette.mli index a48bf29097c8ce54093b267777513efb82074330..dac298466751950bf27deea42abaa1937a3098eb 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/wpane.ml b/src/plugins/gui/wpane.ml index f8c5b7e650bc01c6e325d9b2191469f4aebcccec..4877b7cf30d9f739437a737110378b785c2d1e97 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/wpane.mli b/src/plugins/gui/wpane.mli index 6c6f86e4e0710447c7392da9d36579b1298bf5a3..cb2b8a6db9c519289c77b4acc8c7b12070c3694a 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/wtable.ml b/src/plugins/gui/wtable.ml index f32de100ffccac55359ed0ed55b4c68ee4e51dfc..82069877008c14f4ee42ae106ac2b1c1a57b2a0f 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/wtable.mli b/src/plugins/gui/wtable.mli index 3e6a869426b324e460ae7c6f703adcbff25440ee..0a2548d4219c046cf834034e128ea8d171f441be 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/wtext.ml b/src/plugins/gui/wtext.ml index 7bfe557c97514b4af670d6cb0b61f7de097c69dc..291e0ff838c961b1758423b2a298f86fd4fa9020 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/wtext.mli b/src/plugins/gui/wtext.mli index 431333f7e6fba53497dc5139ff808c7373231228..e7afc48bf36638d11bf833bf0324a56d230b8418 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/wutil.ml b/src/plugins/gui/wutil.ml index c6a759ddd536e9a37e983c7fac491951848b4f92..4d740e8b68d7066cf2a90afcb6944fabe9552288 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/wutil.mli b/src/plugins/gui/wutil.mli index f2e5bd3a250c9617ed03819ee7917ce7f0f98338..5b1dc452488731d5d0d950d6cc70f6a7420eeea8 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/wutil_once.ml b/src/plugins/gui/wutil_once.ml index 32b1680735c9ba39be1422ba2ef8cb954ec41a9e..eaa82556ffa6387d2d2d9b981d188ae2691aa636 100644 --- a/src/plugins/gui/wutil_once.ml +++ b/src/plugins/gui/wutil_once.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/gui/wutil_once.mli b/src/plugins/gui/wutil_once.mli index 210fa2d2e11a3c95639aa223d5e297c906086d2f..1a251afabe425a7b5fb9fd7aeef540a2c1f83b3f 100644 --- a/src/plugins/gui/wutil_once.mli +++ b/src/plugins/gui/wutil_once.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/impact/Impact.mli b/src/plugins/impact/Impact.mli index d94e6cc32600611eb6e7fc8b79c3dbf0bd905941..8a177504b16ead1779a8067d27b430d0f513fb2b 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 001e77b06c1860df2c8dd5c4407c9055023d6858..6ce1a5dbf944c32c8b40440e98209d1b79e2f19f 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 d54157c68ee68d7106fc58e7ea2b285e4eef45d8..d5040bf75d69d556af1f8702f3c2eb252c35d9e5 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/impact/options.ml b/src/plugins/impact/options.ml index 57be52bd1a5c35955cb6f7e24d9a7c48904f922c..b661d84289550e1a0773839f01ff9c5e22e80377 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/impact/options.mli b/src/plugins/impact/options.mli index 24c8027914ad7d2de2115eec88fc71097f5376ed..3486fec752f7654c4328c4f07481f353b68b76b7 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 d5a1b5c14e78c7ceba71aaa4267422f3a31f01f5..7e310efb327777bdefeaf6c07f42a87993c55548 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 0b7946c036e6ab7fa33e0d31f28a5f2260d82d12..361d7707d1cbd941d78056012f832427be264570 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 4d5f6138dc0d0bc9d7c9fb3192b31fc22b4400d6..d39473451727bc94dc441974a145042055e1cd37 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/impact/register.ml b/src/plugins/impact/register.ml index 1303b8c96d290b252b1144306123494534913aff..20d35c07912fbbfaa88fda1de1a9525bb7eec680 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 0d4c8b617456ecc9abc3bed972b8e072cb80e558..38bba42a81961373ba276d255a81ef2986236755 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/impact/register_gui.mli b/src/plugins/impact/register_gui.mli index 13e0862624caa61b020e034f5b68abad8f5df3f5..8b483b2330be471454fba31c119422911967f516 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/inout/Inout.mli b/src/plugins/inout/Inout.mli index 6050abd7736e534e83c562e430dcc186d2cc49eb..b69d75e34c9d8cf3ea8467fd800dfd72162ee608 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/inout/context.mli b/src/plugins/inout/context.mli index 1fd2ec53d676c7eabcf967ca0e8f594b9a851d3d..f07636cc5141865b45351a888e1ec877faf5ff0a 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 04002151adf4864118c3f8aa68719d696a9452d8..bf0b78ccfeb1a5dd63db125e5f504f4b60b79a12 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 81f72e1b5f5cc120643196e0f3016e6cd4c65aa9..07bc86c0089ee592aa744337883c297feb65971d 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/inout/derefs.ml b/src/plugins/inout/derefs.ml index 4cc972c9bfa94669b66323bb16d31f7ca5e8bdf3..6183da7d9cf8e21666dab9b920140e2bb913583c 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/inout/derefs.mli b/src/plugins/inout/derefs.mli index a33d6a82d16cc0b35c126e42d0472f352c0d268f..ef6da1ee1eb40afbab51a619789518716c53503b 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 eef83915883414ce93655863cb71e4030f8c9086..49240507a187efe1a9548e5a0dea94d61f9574de 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 d59478b1bb4b6d5abc66fda2febf90f8cc2f0aa6..0068cca9d64c17ad5afff9678d9ba7d4ae6ad159 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/inout/inputs.ml b/src/plugins/inout/inputs.ml index 653f28e727341308d379798bf943e7834ee973f8..9151573d28633934c1f932bf574e5dba8d5db6b8 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/inout/inputs.mli b/src/plugins/inout/inputs.mli index 9d5ac8efaab479ed2128e1729ffd15d98ecd3f58..f736617a1bb7fe56d723f3916f265781f59db214 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 0a9e939486499af8718a176957bb3b8705e2997e..d0e4af644e50c8cf81fa612dec1bd33d08c850d7 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/inout/outputs.ml b/src/plugins/inout/outputs.ml index e2e6d6e22ca022916749aa0816402fdb5dd823c8..ae8eefa76c4399815631235f40663ccc1a080cd2 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/inout/outputs.mli b/src/plugins/inout/outputs.mli index 51f55608909391d2f5c3a36d46d93c29cf4e401f..7a167d2a4a6bf02f8c6fa65c4dfa880c67f374b1 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/inout/register.ml b/src/plugins/inout/register.ml index bafdeee50ff89db3d2042eb3bda93d6bf9afbdc2..992a0b81711a6e08eaf01b4eb95c6419ee9ec249 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/instantiate/Instantiate.mli b/src/plugins/instantiate/Instantiate.mli index 4444dd5d95bae406b65c2def46efcd16145479da..e7d5a827ce06573fc693985ef84df18abda7a24c 100644 --- a/src/plugins/instantiate/Instantiate.mli +++ b/src/plugins/instantiate/Instantiate.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -84,12 +84,12 @@ module Instantiator_builder: sig *) val generate_prototype: override_key -> (string * typ) - (** [generate_spec key fundec loc] must generate the specification of the + (** [generate_spec key loc fundec] must generate the specification of the [fundec] generated from [key]. The location is the one generated by the [Transform] visitor. Note that it must return a [funspec] but should {b not} register it in [Annotations] tables. *) - val generate_spec: override_key -> fundec -> location -> funspec + val generate_spec: override_key -> location -> fundec -> funspec end end diff --git a/src/plugins/instantiate/Makefile.in b/src/plugins/instantiate/Makefile.in index 8635d3bace9d9077ef18361548a18fc660a56aa2..b199f6f27874f15b17e25f5ac6da2dcfa0e9044d 100644 --- a/src/plugins/instantiate/Makefile.in +++ b/src/plugins/instantiate/Makefile.in @@ -2,7 +2,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/src/plugins/instantiate/basic_blocks.ml b/src/plugins/instantiate/basic_blocks.ml index 87f9f09c8791f66d593e0ea00dc3f892978f25c5..ba6e991a881428f3a5c521004920df9cafbf40ee 100644 --- a/src/plugins/instantiate/basic_blocks.ml +++ b/src/plugins/instantiate/basic_blocks.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -45,7 +45,7 @@ let call_function lval vi args = let typs = Cil.argsToList typs in let gen_arg exp (_, typ, _) = if Cil_datatype.Typ.equal vi.vtype typ then exp - else Cil.mkCast exp typ + else Cil.mkCast typ exp in let args = List.map2 gen_arg args typs in Call(lval, (Cil.evar vi), args, loc) diff --git a/src/plugins/instantiate/basic_blocks.mli b/src/plugins/instantiate/basic_blocks.mli index 8b22347ecc101157465949a4131ecb4ddebcbcb8..84ecb83c5292b3a436a3391ad8572a2fbfcff049 100644 --- a/src/plugins/instantiate/basic_blocks.mli +++ b/src/plugins/instantiate/basic_blocks.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/instantiate/configure.ac b/src/plugins/instantiate/configure.ac index e73e985a41193da40c09804b9ff12e63b01c62ac..1a4b7a1e08eebd92e2257ccbde41806732c14b4a 100644 --- a/src/plugins/instantiate/configure.ac +++ b/src/plugins/instantiate/configure.ac @@ -2,7 +2,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/src/plugins/instantiate/global_context.ml b/src/plugins/instantiate/global_context.ml index 9791a78d529581153916776dd28b906b02c35232..b450df4ae9d4a1b84015c10475e9e4d5234c5535 100644 --- a/src/plugins/instantiate/global_context.ml +++ b/src/plugins/instantiate/global_context.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/instantiate/global_context.mli b/src/plugins/instantiate/global_context.mli index 9a1456ff0bb26db8834f8857a883749d52e91b8b..7ac519fef5d8c6e4cb25c7b9c93e455839138c65 100644 --- a/src/plugins/instantiate/global_context.mli +++ b/src/plugins/instantiate/global_context.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/instantiate/instantiator_builder.ml b/src/plugins/instantiate/instantiator_builder.ml index e700239c933ccda3c281059325354f4fd794ebed..c416eeafdeebf590e4b1086321ccf296d199a18c 100644 --- a/src/plugins/instantiate/instantiator_builder.ml +++ b/src/plugins/instantiate/instantiator_builder.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -33,7 +33,7 @@ module type Generator_sig = sig val retype_args: override_key -> exp list -> exp list val args_for_original: override_key -> exp list -> exp list val generate_prototype: override_key -> (string * typ) - val generate_spec: override_key -> fundec -> location -> funspec + val generate_spec: override_key -> location -> fundec -> funspec end module type Instantiator = sig @@ -90,7 +90,7 @@ module Make_instantiator (G: Generator_sig) = struct let spec = Cil.empty_funspec () in Globals.Functions.replace_by_definition spec fd loc ; let kf = Globals.Functions.get fd.svar in - let spec = generate_spec key fd loc in + let spec = generate_spec key loc fd in Annotations.add_behaviors Options.emitter kf spec.spec_behavior ; List.iter (Annotations.add_complete Options.emitter kf) diff --git a/src/plugins/instantiate/instantiator_builder.mli b/src/plugins/instantiate/instantiator_builder.mli index b0eb2f79fcf975b1957079beed9ac29d32c14e6d..4fcbcbe11c32aea5ef66fbc887382367d67b381e 100644 --- a/src/plugins/instantiate/instantiator_builder.mli +++ b/src/plugins/instantiate/instantiator_builder.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -83,12 +83,12 @@ module type Generator_sig = sig *) val generate_prototype: override_key -> (string * typ) - (** [generate_spec key fundec loc] must generate the specification of the + (** [generate_spec key loc fundec] must generate the specification of the [fundec] generated from [key]. The location is the one generated by the [Transform] visitor. Note that it must return a [funspec] but should {b not} register it in [Annotations] tables. *) - val generate_spec: override_key -> fundec -> location -> funspec + val generate_spec: override_key -> location -> fundec -> funspec end (** Signature of a instantiator. diff --git a/src/plugins/instantiate/options.ml b/src/plugins/instantiate/options.ml index 9dd45e5a8ace273015c6a56dfc760417a14795b2..bb55c4017eea0f2217a5ca01a6a58b63ad0fb6a6 100644 --- a/src/plugins/instantiate/options.ml +++ b/src/plugins/instantiate/options.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/instantiate/options.mli b/src/plugins/instantiate/options.mli index 477c15f351815bafa8046b6c3209621d072ab156..52caeb432b7fb939bb41dffc74bd043d70943566 100644 --- a/src/plugins/instantiate/options.mli +++ b/src/plugins/instantiate/options.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/instantiate/register.ml b/src/plugins/instantiate/register.ml index 2b2505bf09dcdb47b7c87b976f3c92e7586aafb7..5f2a5bced79c64597739fb2a17fc39d2170bee3b 100644 --- a/src/plugins/instantiate/register.ml +++ b/src/plugins/instantiate/register.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/instantiate/stdlib/basic_alloc.ml b/src/plugins/instantiate/stdlib/basic_alloc.ml index f2d749c5442aac162cd5325a85374f66f6a313c5..e488ba9e61c68732db77ba52d3cc9621eba803db 100644 --- a/src/plugins/instantiate/stdlib/basic_alloc.ml +++ b/src/plugins/instantiate/stdlib/basic_alloc.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -79,9 +79,9 @@ let make_axiomatic_is_allocable loc () = let cond = pand (prel (Rlt, t_i, zero), prel (Rgt, t_i, max)) in let app = pnot (papp (is_allocable,[label],[t_i])) in let prop = pforall ([lv_i], pimplies (cond, app)) in - let prop = Logic_const.toplevel_predicate prop in + let prop = Logic_const.toplevel_predicate ~kind:Admit prop in let gfun = Dfun_or_pred(is_allocable, loc) in - let axiom = Dlemma("never_allocable", true, [label],[],prop,[], loc) in + let axiom = Dlemma("never_allocable", [label],[],prop,[], loc) in ("dynamic_allocation", [gfun ; axiom]), [is_allocable] let get_is_allocable loc = diff --git a/src/plugins/instantiate/stdlib/basic_alloc.mli b/src/plugins/instantiate/stdlib/basic_alloc.mli index c312e2bdf3ad7d2dacc2612e0e95d9c4c53c273e..793df76c25577c980b9a93a2b8afffd6ac6de275 100644 --- a/src/plugins/instantiate/stdlib/basic_alloc.mli +++ b/src/plugins/instantiate/stdlib/basic_alloc.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/instantiate/stdlib/calloc.ml b/src/plugins/instantiate/stdlib/calloc.ml index 443804eb044e4421e57b327092a23c65cf12c176..432e2e9124b28224555715306f93fb77fc28e0ba 100644 --- a/src/plugins/instantiate/stdlib/calloc.ml +++ b/src/plugins/instantiate/stdlib/calloc.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -107,7 +107,7 @@ let make_behavior_no_allocation loc alloc_type num size = let alloc = allocates_nothing () in make_behavior ~name:"no_allocation" ~assumes ~assigns ~ensures ~alloc () -let generate_spec alloc_type { svar = vi } loc = +let generate_spec alloc_type loc { svar = vi } = let (cnum, csize) = match Cil.getFormalsDecl vi with | [ cnum ; csize ] -> cnum, csize | _ -> unexpected "ill-formed fundec in specification generation" diff --git a/src/plugins/instantiate/stdlib/calloc.mli b/src/plugins/instantiate/stdlib/calloc.mli index 6ad873cc0821c4948e2ed1c785f5d718055d953b..bc5f73b18bcb6eb8a86312b6b07250bf72d2f494 100644 --- a/src/plugins/instantiate/stdlib/calloc.mli +++ b/src/plugins/instantiate/stdlib/calloc.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/instantiate/stdlib/free.ml b/src/plugins/instantiate/stdlib/free.ml index b1adaae34a331f69f8b9f4110511a726cda44cb9..46e2274cb85eaf13dad33d7befbc9ddff1f72fb8 100644 --- a/src/plugins/instantiate/stdlib/free.ml +++ b/src/plugins/instantiate/stdlib/free.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -62,7 +62,7 @@ let make_behavior_no_deallocation loc ptr = let alloc = allocates_nothing () in make_behavior ~name:"no_allocation" ~assumes ~assigns ~ensures ~alloc () -let generate_spec _typ { svar = vi } loc = +let generate_spec _typ loc { svar = vi } = let ptr = match Cil.getFormalsDecl vi with | [ ptr ] -> cvar_to_tvar ptr | _ -> unexpected "ill-formed fundec in specification generation" diff --git a/src/plugins/instantiate/stdlib/free.mli b/src/plugins/instantiate/stdlib/free.mli index 49d1d0397e263a1d99f038d5fca96113e1f216b0..b717638020393c604f0d8a6fcbd04335cb4a4ea9 100644 --- a/src/plugins/instantiate/stdlib/free.mli +++ b/src/plugins/instantiate/stdlib/free.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/instantiate/stdlib/malloc.ml b/src/plugins/instantiate/stdlib/malloc.ml index f7b3e9f3b0d3485f7cf7ace2a47d12712b19f0bd..65ad90015e10a3f92cbd89e9677fa888b75a09a9 100644 --- a/src/plugins/instantiate/stdlib/malloc.ml +++ b/src/plugins/instantiate/stdlib/malloc.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -48,7 +48,7 @@ let make_behavior_no_allocation loc ptr_type size = let alloc = allocates_nothing () in make_behavior ~name:"no_allocation" ~assumes ~assigns ~ensures ~alloc () -let generate_spec alloc_typ { svar = vi } loc = +let generate_spec alloc_typ loc { svar = vi } = let (csize) = match Cil.getFormalsDecl vi with | [ size ] -> size | _ -> unexpected "ill-formed fundec in specification generation" diff --git a/src/plugins/instantiate/stdlib/malloc.mli b/src/plugins/instantiate/stdlib/malloc.mli index cb602ba318dd2c7bd03fb97256a43bf463a792ef..6d720221a27c6e64bd1c127d3c6f536117297873 100644 --- a/src/plugins/instantiate/stdlib/malloc.mli +++ b/src/plugins/instantiate/stdlib/malloc.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/instantiate/string/mem_utils.ml b/src/plugins/instantiate/string/mem_utils.ml index 200e3f1e37eb746fb20475ec3a73c83087a810de..ff4edf0ec9260c88226951f44c78f88af39a48da 100644 --- a/src/plugins/instantiate/string/mem_utils.ml +++ b/src/plugins/instantiate/string/mem_utils.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -58,7 +58,7 @@ let mem2s_typing _ = function (Cil.isCompleteType dest) | _ -> false -let mem2s_spec ~requires ~assigns ~ensures _t { svar = vi } loc = +let mem2s_spec ~requires ~assigns ~ensures _t loc { svar = vi } = let (cdest, csrc, clen) = match Cil.getFormalsDecl vi with | [ dest ; src ; len ] -> dest, src, len | _ -> unexpected "ill-formed fundec in specification generation" diff --git a/src/plugins/instantiate/string/mem_utils.mli b/src/plugins/instantiate/string/mem_utils.mli index 2a580c48732ada81908001ff088e88858048da53..f68bcbfb57bbdadc9345a767a4247254642f9c5f 100644 --- a/src/plugins/instantiate/string/mem_utils.mli +++ b/src/plugins/instantiate/string/mem_utils.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -56,7 +56,7 @@ val mem2s_spec: requires: (identified_predicate list) spec_gen -> assigns: assigns spec_gen -> ensures: (termination_kind * identified_predicate) list spec_gen -> - typ -> fundec -> location -> funspec + typ -> location -> fundec -> funspec val mem2s_typing: typ option -> typ list -> bool diff --git a/src/plugins/instantiate/string/memcmp.ml b/src/plugins/instantiate/string/memcmp.ml index 59969c7ddeed41df219bd4ab7f2bd52d29d2e00c..da4f9553aa52ed709215e96ef168940255315ff5 100644 --- a/src/plugins/instantiate/string/memcmp.ml +++ b/src/plugins/instantiate/string/memcmp.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/instantiate/string/memcmp.mli b/src/plugins/instantiate/string/memcmp.mli index 0e837c30d2f17b20d951419cb652b3a1b69556ab..1c9e1785bedd1e6c534ce3a9e3be94178393bc49 100644 --- a/src/plugins/instantiate/string/memcmp.mli +++ b/src/plugins/instantiate/string/memcmp.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/instantiate/string/memcpy.ml b/src/plugins/instantiate/string/memcpy.ml index e56778e6a5714e879f090c0421c121d5ea61dcb6..299f749ebcce4129b74b16f43389a24683ea125c 100644 --- a/src/plugins/instantiate/string/memcpy.ml +++ b/src/plugins/instantiate/string/memcpy.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/instantiate/string/memcpy.mli b/src/plugins/instantiate/string/memcpy.mli index afc53006e4bdc810836ea8fa9df11abe24fc603a..d08dbbe9033db2b28801e0d4ab9115944d49cc16 100644 --- a/src/plugins/instantiate/string/memcpy.mli +++ b/src/plugins/instantiate/string/memcpy.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/instantiate/string/memmove.ml b/src/plugins/instantiate/string/memmove.ml index 9ce6d75b6bdd8db4598ad0208d393a6cb6ae3059..796e0286135a33ad9cf0568a9b6c1d9aa664716a 100644 --- a/src/plugins/instantiate/string/memmove.ml +++ b/src/plugins/instantiate/string/memmove.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/instantiate/string/memmove.mli b/src/plugins/instantiate/string/memmove.mli index d290ece40994a2f7f1d611e650cb7826a366b73a..cf61a39037fa2c5e48b8281a03e7ec9795437c62 100644 --- a/src/plugins/instantiate/string/memmove.mli +++ b/src/plugins/instantiate/string/memmove.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/instantiate/string/memset.ml b/src/plugins/instantiate/string/memset.ml index 92c47cab940c34d00e779f4c8f4e02a71e6f304e..8a527ca3cfb82f95ecda6ee864af39d3621a5732 100644 --- a/src/plugins/instantiate/string/memset.ml +++ b/src/plugins/instantiate/string/memset.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -162,7 +162,7 @@ let generate_ensures e loc t ptr value len = { (presult_ptr ~loc t ptr) with pred_name = [ "result"] } ]) -let generate_spec (_t, e) { svar = vi } loc = +let generate_spec (_t, e) loc { svar = vi } = let (cptr, cvalue, clen) = match Cil.getFormalsDecl vi with | [ ptr ; value ; len ] -> ptr, (Some value), len | [ ptr ; len ] -> ptr, None, len @@ -253,7 +253,7 @@ let retype_args (_t, e) args = | Value_of t -> base_char_type t | _ -> unexpected "trying to retype arguments on an ill-typed call" in - let v = Cil.mkCast (Cil.stripCasts v) base_type in + let v = Cil.mkCast base_type (Cil.stripCasts v) in [ ptr ; v ; n ] | Some fv, [ ptr ; v ; n ] -> let ptr = Cil.stripCasts ptr in diff --git a/src/plugins/instantiate/string/memset.mli b/src/plugins/instantiate/string/memset.mli index dae107989326e35ed5de1e9cae12a0b4914e2099..233eb5e0b70de1ed6360377449f459161eba3652 100644 --- a/src/plugins/instantiate/string/memset.mli +++ b/src/plugins/instantiate/string/memset.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/instantiate/transform.ml b/src/plugins/instantiate/transform.ml index 590ee506dbdb151d26053806b4baa26e4f15d373..365b4f228251c8d31d1f3e265c372ad6ee1c36a2 100644 --- a/src/plugins/instantiate/transform.ml +++ b/src/plugins/instantiate/transform.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/instantiate/transform.mli b/src/plugins/instantiate/transform.mli index b20ea99b6649c879c45800a13bffe7ac396d2697..2ee7cf71a0c98353dd574dbf6a01f4e706e65ddf 100644 --- a/src/plugins/instantiate/transform.mli +++ b/src/plugins/instantiate/transform.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 7e693a374a1a455eaa4daa51b7147f4f3c732098..8d46ca49557eded570f502a2a42178c04cbc29fa 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 1b0b09bcf962dc8b6e1b4d8b6f8c3af103bfbfa6..002dfe843f16db43596131febcedf7f0cd34a860 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-2020 # +# Copyright (C) 2007-2021 # # 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 c576be1b02696b00b2316aa2b9d08e3895d0f505..c7044910afbe88c783a9e281fb7a117c70e89b63 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-2020 # +# Copyright (C) 2007-2021 # # 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 0872f1561d6bca982717a04690829390ea5dfb70..2a55ef055c87ab0f4a49016406d63ce09111d03c 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/loop_analysis/loop_analysis.mli b/src/plugins/loop_analysis/loop_analysis.mli index 7d86b4b803fcdb87114afa7b186ca8643ae61626..3141ee73f687361b44e50ee339554865088cca0e 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 ed598f993722f1382a16516f318b2c7a0f465e3a..54ca3514d2a1625fbccd7663e955830c9b54739f 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 00373b5dafd750288376fb9a689e9bbdaac34441..85a4f9918b6653242c32602ca35331fd00c43b81 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 84c891f9571d3044ce9b0ebda4be5f37008801ad..9e090003c07d6b48928abe1932ead9d08dab4fd9 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 be9e5e5d173f5b1bac8161f002f272b30e0f2e9a..6b4feeb6c8143b74197eb1da945f934e44d824e9 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 12efabc7b978ce73374d17ecb9ef3ee0c38de184..e1e53ce34bd40ebea13b3fb623fe098fae2165b9 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 62e0aa264288e1664b4e5891574fba5b165098f2..66d4b4987be91724e7e982ccc12eb9d3c4d560d2 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 2446172821263d864e7ca1da724a744dec92c261..a52050d3e067bab4e2d7c3e67f51a4dc966371c2 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 4b592d7f1a7c467ae1dca3f2fd787809d9847771..a6b1a69cc7c56507ddfda870254e840df9929468 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 8a1de0d297625eb4d9834df2c4f8707eeeecde76..2e70c946c7ae7aa7d13ea1b5f4ca64dc7d6f40d0 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/markdown-report/LICENSE b/src/plugins/markdown-report/LICENSE deleted file mode 100644 index a2c9b3c9fe98da6b64004cefec4332b13c5498b2..0000000000000000000000000000000000000000 --- a/src/plugins/markdown-report/LICENSE +++ /dev/null @@ -1,9 +0,0 @@ -Files in this directory are part of the MarkDown Report Frama-C plug-in. - -Copyright (C) 2007-2020 - CEA (Commissariat à l'énergie atomique et aux énergies - alternatives) - -All rights reserved. -Contact CEA LIST for licensing. - diff --git a/src/plugins/markdown-report/Makefile.in b/src/plugins/markdown-report/Makefile.in index 08dec2b3520bd3c3cc80e203121373bce8dce2e5..3fe98f4e5f9a42f99e7223deb7ba9b4b5c36f3c0 100644 --- a/src/plugins/markdown-report/Makefile.in +++ b/src/plugins/markdown-report/Makefile.in @@ -2,7 +2,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/src/plugins/markdown-report/configure.ac b/src/plugins/markdown-report/configure.ac index b187dc61bc24ba6f6b6bad4032bce49f0632ea4c..13dcf1fe34a63fc659bf67bed725151b76c9eb50 100644 --- a/src/plugins/markdown-report/configure.ac +++ b/src/plugins/markdown-report/configure.ac @@ -2,7 +2,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/src/plugins/markdown-report/eva_info.ml b/src/plugins/markdown-report/eva_info.ml index 5df8dbbefda486fe5918bb38ab77b3b981c1bbf4..7c00cc4ae15e0e88f9a093f261341904dcb1994d 100644 --- a/src/plugins/markdown-report/eva_info.ml +++ b/src/plugins/markdown-report/eva_info.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/markdown-report/eva_info.mli b/src/plugins/markdown-report/eva_info.mli index 7ba39b81ae472b3543306e442b123eefc3ee6340..0bf485885a9baa5d903785f233820a730cfbb98a 100644 --- a/src/plugins/markdown-report/eva_info.mli +++ b/src/plugins/markdown-report/eva_info.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/markdown-report/md_gen.ml b/src/plugins/markdown-report/md_gen.ml index 2930c0065138c7bf4ddedd0517ba8ccc6cd92849..dc212069f0d533bf8513d4311ccaf8ef7f9daaa7 100644 --- a/src/plugins/markdown-report/md_gen.ml +++ b/src/plugins/markdown-report/md_gen.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/markdown-report/md_gen.mli b/src/plugins/markdown-report/md_gen.mli index 3083a44b11acce51fddddb0ad1f9b15969d63aff..333b763ec475ddf85d6dfa24f9bda92c0aa71368 100644 --- a/src/plugins/markdown-report/md_gen.mli +++ b/src/plugins/markdown-report/md_gen.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/markdown-report/mdr_params.ml b/src/plugins/markdown-report/mdr_params.ml index 249abea7136e46b3affad7a6143c7d7cf23897cd..3b799faccaad2e5e4349c5ebe73993683abf2dbb 100644 --- a/src/plugins/markdown-report/mdr_params.ml +++ b/src/plugins/markdown-report/mdr_params.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/markdown-report/mdr_params.mli b/src/plugins/markdown-report/mdr_params.mli index 08b54d5c06f33be1eec7d58f77e2a7c78de8c242..b7c5b06901b78d086f8389fa5fe8adf149d07112 100644 --- a/src/plugins/markdown-report/mdr_params.mli +++ b/src/plugins/markdown-report/mdr_params.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/markdown-report/mdr_register.ml b/src/plugins/markdown-report/mdr_register.ml index 800c08408b1aca2b6d2aa93daaffca19532486a6..8b8373cdd1c4323ea5c0c37460215755f6e415ed 100644 --- a/src/plugins/markdown-report/mdr_register.ml +++ b/src/plugins/markdown-report/mdr_register.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/markdown-report/mdr_register.mli b/src/plugins/markdown-report/mdr_register.mli index 3b135f1378f4829409f2c8b1cfc928cf2da2daa3..3d177dc7b70ea4690bfce7f48676e75077544e0c 100644 --- a/src/plugins/markdown-report/mdr_register.mli +++ b/src/plugins/markdown-report/mdr_register.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/markdown-report/parse_remarks.ml b/src/plugins/markdown-report/parse_remarks.ml index d3b87ed06ada29aab7000f6507889b1854abe26a..d2e4860e7c455fb1f4fc6b477c3882b2ffc653da 100644 --- a/src/plugins/markdown-report/parse_remarks.ml +++ b/src/plugins/markdown-report/parse_remarks.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/markdown-report/parse_remarks.mli b/src/plugins/markdown-report/parse_remarks.mli index 478bf26f7d468df1093ebabb4f3829fc5931fe39..2491fe94a4998fe29fed358596b97815f98da233 100644 --- a/src/plugins/markdown-report/parse_remarks.mli +++ b/src/plugins/markdown-report/parse_remarks.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/markdown-report/sarif.ml b/src/plugins/markdown-report/sarif.ml index 2e7dd60ca16175d36a351fd099805734b5c540c9..e87ebb3c6ae4c5afe2a5c8de499d078787b59038 100644 --- a/src/plugins/markdown-report/sarif.ml +++ b/src/plugins/markdown-report/sarif.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/markdown-report/sarif_gen.ml b/src/plugins/markdown-report/sarif_gen.ml index 37fd6b824e300ae8820e6581f6eea17ac26aa84a..12d64ad6e94bf30041c359bf8bb4d705e75a29f7 100644 --- a/src/plugins/markdown-report/sarif_gen.ml +++ b/src/plugins/markdown-report/sarif_gen.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -149,8 +149,7 @@ let ip_is_in_libc ip = match ip with | IPAxiomatic {iax_attrs=attrs} | IPLemma {il_attrs=attrs} - | IPAxiom {il_attrs=attrs} -> - Cil.is_in_libc attrs + -> Cil.is_in_libc attrs | _ -> false end @@ -206,6 +205,7 @@ let gen_status ip = Sarif_result.create ~ruleId:user_annot_id ~level ~locations ~message () let gen_statuses () = + let cmp = Property.Ordered_by_function.compare in let f ip content = let exclude = is_alarm ip || @@ -213,7 +213,7 @@ let gen_statuses () = in if exclude then content else (gen_status ip) :: content in - List.rev (Property_status.fold f []) + List.rev (Property_status.fold_sorted ~cmp f []) let gen_artifacts () = let add_src_file f = diff --git a/src/plugins/markdown-report/sarif_gen.mli b/src/plugins/markdown-report/sarif_gen.mli index 307135641c63b1308497ae1b32a938e235bf7430..585116e29087ef6212a4c346bf7dc61365a13c45 100644 --- a/src/plugins/markdown-report/sarif_gen.mli +++ b/src/plugins/markdown-report/sarif_gen.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/markdown-report/share/acsl.xml b/src/plugins/markdown-report/share/acsl.xml index 06ffbde201e05bfb5fc2f2ff60dad978046b5fe2..f198c3e5b9c94a2f8d56279ae559209b2b91af9a 100644 --- a/src/plugins/markdown-report/share/acsl.xml +++ b/src/plugins/markdown-report/share/acsl.xml @@ -2,7 +2,7 @@ <!-- --> <!-- This file is part of Frama-C. --> <!-- --> -<!-- Copyright (C) 2007-2020 --> +<!-- Copyright (C) 2007-2021 --> <!-- CEA (Commissariat à l'énergie atomique et aux énergies --> <!-- alternatives) --> <!-- --> diff --git a/src/plugins/markdown-report/tests/sarif/oracle/cwe125.sarif b/src/plugins/markdown-report/tests/sarif/oracle/cwe125.sarif index 5855585658f0d7aee1f680420db13842a321ca1f..01038bb8a72d1d607ca386bebf1c5ed0289b8063 100644 --- a/src/plugins/markdown-report/tests/sarif/oracle/cwe125.sarif +++ b/src/plugins/markdown-report/tests/sarif/oracle/cwe125.sarif @@ -120,7 +120,9 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "assigns clause in function printf." }, + "message": { + "text": "reachability of stmt line 27 in getValueFromArray." + }, "locations": [ { "physicalLocation": { @@ -131,8 +133,8 @@ "region": { "startLine": 27, "endLine": 27, - "endColumn": 6, - "byteLength": 6 + "endColumn": 38, + "byteLength": 38 } } } @@ -165,9 +167,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": "from clause of term \\result in function printf." - }, + "message": { "text": "behavior default! in function printf." }, "locations": [ { "physicalLocation": { @@ -189,7 +189,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "behavior default! in function printf." }, + "message": { "text": "assigns clause in function printf." }, "locations": [ { "physicalLocation": { @@ -212,7 +212,7 @@ "kind": "pass", "level": "none", "message": { - "text": "reachability of stmt line 27 in getValueFromArray." + "text": "from clause of term \\result in function printf." }, "locations": [ { @@ -224,8 +224,8 @@ "region": { "startLine": 27, "endLine": 27, - "endColumn": 38, - "byteLength": 38 + "endColumn": 6, + "byteLength": 6 } } } diff --git a/src/plugins/markdown-report/tests/sarif/oracle/std_string.res.oracle b/src/plugins/markdown-report/tests/sarif/oracle/std_string.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..bfb86c1c794adb68fa6aec1b338be725beb5c12d --- /dev/null +++ b/src/plugins/markdown-report/tests/sarif/oracle/std_string.res.oracle @@ -0,0 +1,22 @@ +[kernel] Parsing tests/sarif/std_string.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] done for function main +[eva] ====== VALUES COMPUTED ====== +[eva:final-states] Values at end of function main: + __retres ∈ {0} +[eva:summary] ====== ANALYSIS SUMMARY ====== + ---------------------------------------------------------------------------- + 1 function analyzed (out of 1): 100% coverage. + In this function, 2 statements reached (out of 2): 100% coverage. + ---------------------------------------------------------------------------- + No errors or warnings raised during the analysis. + ---------------------------------------------------------------------------- + 0 alarms generated by the analysis. + ---------------------------------------------------------------------------- + No logical properties have been reached by the analysis. + ---------------------------------------------------------------------------- +[mdr] Report tests/sarif/result/std_string.sarif generated diff --git a/src/plugins/markdown-report/tests/sarif/oracle/std_string.sarif b/src/plugins/markdown-report/tests/sarif/oracle/std_string.sarif new file mode 100644 index 0000000000000000000000000000000000000000..d898b2528498b8b97d7170ffa8bad67cc0590cad --- /dev/null +++ b/src/plugins/markdown-report/tests/sarif/oracle/std_string.sarif @@ -0,0 +1,25270 @@ +{ + "$schema": + "https://github.com/oasis-tcs/sarif-spec/blob/master/Documents/CommitteeSpecificationDrafts/v2.1.0-CSD.1/sarif-schema-2.1.0.json", + "version": "2.1.0", + "runs": [ + { + "tool": { + "driver": { + "name": "frama-c", + "fullName": "frama-c-0+omitted-for-deterministic-output", + "version": "0+omitted-for-deterministic-output", + "downloadUri": "https://frama-c.com/download.html", + "informationUri": "https://frama-c.com" + } + }, + "invocations": [ + { + "commandLine": + "frama-c -check tests/sarif/std_string.c -eva -then -mdr-sarif-deterministic -mdr-gen sarif -mdr-out tests/sarif/result/std_string.sarif", + "arguments": [ + "-check", "tests/sarif/std_string.c", "-eva", "-then", + "-mdr-sarif-deterministic", "-mdr-gen", "sarif", "-mdr-out", + "tests/sarif/result/std_string.sarif" + ], + "exitCode": 0, + "executionSuccessful": true + } + ], + "originalUriBaseIds": { + "FRAMAC_SHARE": { + "uri": "file:///omitted-for-deterministic-output/" + }, + "FRAMAC_LIB": { "uri": "file:///omitted-for-deterministic-output/" }, + "FRAMAC_PLUGIN": { + "uri": "file:///omitted-for-deterministic-output/" + }, + "PWD": { "uri": "file:///omitted-for-deterministic-output/" } + }, + "artifacts": [ + { + "location": { + "uri": "tests/sarif/std_string.c", + "uriBaseId": "PWD" + }, + "roles": [ "analysisTarget" ], + "mimeType": "text/x-csrc" + } + ], + "results": [ + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "MemChr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_string_axiomatic.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 57, + "startColumn": 4, + "endLine": 59, + "endColumn": 62, + "byteLength": 134 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "MemCmp." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_string_axiomatic.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 39, + "startColumn": 4, + "endLine": 42, + "endColumn": 70, + "byteLength": 170 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "MemSet." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_string_axiomatic.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 68, + "startColumn": 4, + "endLine": 70, + "endColumn": 63, + "byteLength": 135 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "StrChr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_string_axiomatic.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 168, + "startColumn": 4, + "endLine": 170, + "endColumn": 75, + "byteLength": 132 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "StrCmp." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_string_axiomatic.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 143, + "startColumn": 4, + "endLine": 147, + "endColumn": 63, + "byteLength": 170 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "StrLen." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_string_axiomatic.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 132, + "startColumn": 4, + "endLine": 135, + "endColumn": 38, + "byteLength": 185 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "StrNCmp." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_string_axiomatic.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 155, + "startColumn": 4, + "endLine": 159, + "endColumn": 53, + "byteLength": 191 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "WMemChr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_string_axiomatic.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 183, + "startColumn": 4, + "endLine": 185, + "endColumn": 63, + "byteLength": 143 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "WcsChr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_string_axiomatic.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 266, + "startColumn": 4, + "endLine": 269, + "endColumn": 29, + "byteLength": 153 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "WcsCmp." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_string_axiomatic.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 240, + "startColumn": 4, + "endLine": 244, + "endColumn": 63, + "byteLength": 173 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "WcsLen." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_string_axiomatic.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 230, + "startColumn": 4, + "endLine": 232, + "endColumn": 63, + "byteLength": 147 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "WcsNCmp." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_string_axiomatic.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 252, + "startColumn": 4, + "endLine": 256, + "endColumn": 53, + "byteLength": 194 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "dynamic_allocation." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_alloc_axiomatic.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 39, + "startColumn": 4, + "endLine": 41, + "endColumn": 61, + "byteLength": 110 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "memchr_def." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_string_axiomatic.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 57, + "startColumn": 4, + "endLine": 59, + "endColumn": 62, + "byteLength": 134 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "memcmp_strlen_left." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_string_axiomatic.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 119, + "startColumn": 4, + "endLine": 121, + "endColumn": 77, + "byteLength": 148 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "memcmp_strlen_right." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_string_axiomatic.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 123, + "startColumn": 4, + "endLine": 125, + "endColumn": 77, + "byteLength": 149 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "memcmp_strlen_shift_left." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_string_axiomatic.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 127, + "startColumn": 4, + "endLine": 130, + "endColumn": 38, + "byteLength": 184 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "memcmp_strlen_shift_right." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_string_axiomatic.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 132, + "startColumn": 4, + "endLine": 135, + "endColumn": 38, + "byteLength": 185 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "memcmp_zero." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_string_axiomatic.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 39, + "startColumn": 4, + "endLine": 42, + "endColumn": 70, + "byteLength": 170 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "memset_def." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_string_axiomatic.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 68, + "startColumn": 4, + "endLine": 70, + "endColumn": 63, + "byteLength": 135 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "never_allocable." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_alloc_axiomatic.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 39, + "startColumn": 4, + "endLine": 41, + "endColumn": 61, + "byteLength": 110 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "strchr_def." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_string_axiomatic.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 168, + "startColumn": 4, + "endLine": 170, + "endColumn": 75, + "byteLength": 132 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "strcmp_zero." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_string_axiomatic.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 143, + "startColumn": 4, + "endLine": 147, + "endColumn": 63, + "byteLength": 170 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "strlen_at_null." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_string_axiomatic.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 92, + "startColumn": 4, + "endLine": 93, + "endColumn": 61, + "byteLength": 86 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "strlen_before_null." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_string_axiomatic.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 89, + "startColumn": 4, + "endLine": 90, + "endColumn": 72, + "byteLength": 101 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "strlen_create." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_string_axiomatic.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 111, + "startColumn": 4, + "endLine": 113, + "endColumn": 51, + "byteLength": 111 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "strlen_create_shift." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_string_axiomatic.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 115, + "startColumn": 4, + "endLine": 117, + "endColumn": 62, + "byteLength": 143 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "strlen_neg." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_string_axiomatic.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 84, + "startColumn": 4, + "endLine": 87, + "endColumn": 22, + "byteLength": 109 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "strlen_not_zero." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_string_axiomatic.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 95, + "startColumn": 4, + "endLine": 97, + "endColumn": 58, + "byteLength": 120 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "strlen_pos_or_null." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_string_axiomatic.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 78, + "startColumn": 4, + "endLine": 82, + "endColumn": 40, + "byteLength": 169 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "strlen_shift." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_string_axiomatic.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 107, + "startColumn": 4, + "endLine": 109, + "endColumn": 59, + "byteLength": 118 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "strlen_sup." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_string_axiomatic.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 103, + "startColumn": 4, + "endLine": 105, + "endColumn": 51, + "byteLength": 108 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "strlen_zero." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_string_axiomatic.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 99, + "startColumn": 4, + "endLine": 101, + "endColumn": 59, + "byteLength": 117 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "strncmp_zero." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_string_axiomatic.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 155, + "startColumn": 4, + "endLine": 159, + "endColumn": 53, + "byteLength": 191 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "wcschr_def." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_string_axiomatic.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 266, + "startColumn": 4, + "endLine": 269, + "endColumn": 29, + "byteLength": 153 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "wcscmp_zero." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_string_axiomatic.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 240, + "startColumn": 4, + "endLine": 244, + "endColumn": 63, + "byteLength": 173 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "wcslen_at_null." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_string_axiomatic.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 207, + "startColumn": 4, + "endLine": 208, + "endColumn": 65, + "byteLength": 90 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "wcslen_before_null." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_string_axiomatic.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 204, + "startColumn": 4, + "endLine": 205, + "endColumn": 76, + "byteLength": 105 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "wcslen_create." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_string_axiomatic.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 226, + "startColumn": 4, + "endLine": 228, + "endColumn": 52, + "byteLength": 115 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "wcslen_create_shift." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_string_axiomatic.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 230, + "startColumn": 4, + "endLine": 232, + "endColumn": 63, + "byteLength": 147 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "wcslen_neg." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_string_axiomatic.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 199, + "startColumn": 4, + "endLine": 202, + "endColumn": 22, + "byteLength": 113 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "wcslen_not_zero." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_string_axiomatic.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 210, + "startColumn": 4, + "endLine": 212, + "endColumn": 59, + "byteLength": 124 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "wcslen_pos_or_null." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_string_axiomatic.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 193, + "startColumn": 4, + "endLine": 197, + "endColumn": 41, + "byteLength": 174 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "wcslen_shift." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_string_axiomatic.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 222, + "startColumn": 4, + "endLine": 224, + "endColumn": 55, + "byteLength": 117 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "wcslen_sup." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_string_axiomatic.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 218, + "startColumn": 4, + "endLine": 220, + "endColumn": 52, + "byteLength": 112 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "wcslen_zero." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_string_axiomatic.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 214, + "startColumn": 4, + "endLine": 216, + "endColumn": 60, + "byteLength": 121 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "wcsncmp_zero." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_string_axiomatic.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 252, + "startColumn": 4, + "endLine": 256, + "endColumn": 53, + "byteLength": 194 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "wmemchr_def." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_string_axiomatic.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 183, + "startColumn": 4, + "endLine": 185, + "endColumn": 63, + "byteLength": 143 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "behavior default! in function Frama_C_abort." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 180, + "startColumn": 12, + "endLine": 180, + "endColumn": 25, + "byteLength": 13 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "never_terminates." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 178, + "startColumn": 28, + "endLine": 178, + "endColumn": 34, + "byteLength": 6 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function Frama_C_abort." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 180, + "startColumn": 12, + "endLine": 180, + "endColumn": 25, + "byteLength": 13 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "terminates \\false." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 176, + "startColumn": 13, + "endLine": 176, + "endColumn": 19, + "byteLength": 6 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "behavior default! in function Frama_C_abstract_cardinal." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 188, + "startColumn": 17, + "endLine": 188, + "endColumn": 42, + "byteLength": 25 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "assigns clause in function Frama_C_abstract_cardinal." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 188, + "startColumn": 17, + "endLine": 188, + "endColumn": 42, + "byteLength": 25 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term \\result in function Frama_C_abstract_cardinal." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 187, + "startColumn": 12, + "endLine": 187, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "behavior default! in function Frama_C_abstract_max." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 190, + "startColumn": 17, + "endLine": 190, + "endColumn": 37, + "byteLength": 20 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "assigns clause in function Frama_C_abstract_max." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 190, + "startColumn": 17, + "endLine": 190, + "endColumn": 37, + "byteLength": 20 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term \\result in function Frama_C_abstract_max." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 189, + "startColumn": 12, + "endLine": 189, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "behavior default! in function Frama_C_abstract_min." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 192, + "startColumn": 17, + "endLine": 192, + "endColumn": 37, + "byteLength": 20 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "assigns clause in function Frama_C_abstract_min." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 192, + "startColumn": 17, + "endLine": 192, + "endColumn": 37, + "byteLength": 20 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term \\result in function Frama_C_abstract_min." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 191, + "startColumn": 12, + "endLine": 191, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "behavior default! in function Frama_C_char_interval." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 79, + "startColumn": 12, + "endLine": 79, + "endColumn": 33, + "byteLength": 21 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "order." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 74, + "startColumn": 20, + "endLine": 74, + "endColumn": 30, + "byteLength": 10 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_bounded." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 77, + "startColumn": 28, + "endLine": 77, + "endColumn": 49, + "byteLength": 21 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "assigns clause in function Frama_C_char_interval." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 75, + "startColumn": 12, + "endLine": 75, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term \\result in function Frama_C_char_interval." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 75, + "startColumn": 12, + "endLine": 75, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term Frama_C_entropy_source in function Frama_C_char_interval." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 76, + "startColumn": 12, + "endLine": 76, + "endColumn": 34, + "byteLength": 22 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "behavior default! in function Frama_C_double_interval." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 165, + "startColumn": 14, + "endLine": 165, + "endColumn": 37, + "byteLength": 23 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "finite." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 159, + "startColumn": 21, + "endLine": 159, + "endColumn": 55, + "byteLength": 34 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "order." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 160, + "startColumn": 20, + "endLine": 160, + "endColumn": 30, + "byteLength": 10 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_bounded." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 163, + "startColumn": 28, + "endLine": 163, + "endColumn": 72, + "byteLength": 44 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "assigns clause in function Frama_C_double_interval." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 161, + "startColumn": 12, + "endLine": 161, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term \\result in function Frama_C_double_interval." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 161, + "startColumn": 12, + "endLine": 161, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term Frama_C_entropy_source in function Frama_C_double_interval." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 162, + "startColumn": 12, + "endLine": 162, + "endColumn": 34, + "byteLength": 22 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "behavior default! in function Frama_C_float_interval." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 157, + "startColumn": 13, + "endLine": 157, + "endColumn": 35, + "byteLength": 22 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "finite." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 151, + "startColumn": 21, + "endLine": 151, + "endColumn": 55, + "byteLength": 34 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "order." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 152, + "startColumn": 20, + "endLine": 152, + "endColumn": 30, + "byteLength": 10 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_bounded." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 155, + "startColumn": 28, + "endLine": 155, + "endColumn": 72, + "byteLength": 44 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "assigns clause in function Frama_C_float_interval." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 153, + "startColumn": 12, + "endLine": 153, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term \\result in function Frama_C_float_interval." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 153, + "startColumn": 12, + "endLine": 153, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term Frama_C_entropy_source in function Frama_C_float_interval." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 154, + "startColumn": 12, + "endLine": 154, + "endColumn": 34, + "byteLength": 22 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "behavior default! in function Frama_C_int_interval." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 108, + "startColumn": 11, + "endLine": 108, + "endColumn": 31, + "byteLength": 20 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "order." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 103, + "startColumn": 20, + "endLine": 103, + "endColumn": 30, + "byteLength": 10 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_bounded." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 106, + "startColumn": 28, + "endLine": 106, + "endColumn": 49, + "byteLength": 21 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "assigns clause in function Frama_C_int_interval." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 104, + "startColumn": 12, + "endLine": 104, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term \\result in function Frama_C_int_interval." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 104, + "startColumn": 12, + "endLine": 104, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term Frama_C_entropy_source in function Frama_C_int_interval." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 105, + "startColumn": 12, + "endLine": 105, + "endColumn": 34, + "byteLength": 22 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "behavior default! in function Frama_C_interval." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 57, + "startColumn": 11, + "endLine": 57, + "endColumn": 27, + "byteLength": 16 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "order." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 52, + "startColumn": 20, + "endLine": 52, + "endColumn": 30, + "byteLength": 10 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_bounded." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 55, + "startColumn": 28, + "endLine": 55, + "endColumn": 49, + "byteLength": 21 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "assigns clause in function Frama_C_interval." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 53, + "startColumn": 12, + "endLine": 53, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term \\result in function Frama_C_interval." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 53, + "startColumn": 12, + "endLine": 53, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term Frama_C_entropy_source in function Frama_C_interval." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 54, + "startColumn": 12, + "endLine": 54, + "endColumn": 34, + "byteLength": 22 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "behavior default! in function Frama_C_interval_split." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 64, + "startColumn": 11, + "endLine": 64, + "endColumn": 33, + "byteLength": 22 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "order." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 59, + "startColumn": 20, + "endLine": 59, + "endColumn": 30, + "byteLength": 10 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_bounded." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 62, + "startColumn": 28, + "endLine": 62, + "endColumn": 49, + "byteLength": 21 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "assigns clause in function Frama_C_interval_split." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 60, + "startColumn": 12, + "endLine": 60, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term \\result in function Frama_C_interval_split." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 60, + "startColumn": 12, + "endLine": 60, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term Frama_C_entropy_source in function Frama_C_interval_split." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 61, + "startColumn": 12, + "endLine": 61, + "endColumn": 34, + "byteLength": 22 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "behavior default! in function Frama_C_long_interval." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 124, + "startColumn": 12, + "endLine": 124, + "endColumn": 33, + "byteLength": 21 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "order." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 119, + "startColumn": 20, + "endLine": 119, + "endColumn": 30, + "byteLength": 10 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_bounded." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 122, + "startColumn": 28, + "endLine": 122, + "endColumn": 49, + "byteLength": 21 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "assigns clause in function Frama_C_long_interval." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 120, + "startColumn": 12, + "endLine": 120, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term \\result in function Frama_C_long_interval." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 120, + "startColumn": 12, + "endLine": 120, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term Frama_C_entropy_source in function Frama_C_long_interval." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 121, + "startColumn": 12, + "endLine": 121, + "endColumn": 34, + "byteLength": 22 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "behavior default! in function Frama_C_long_long_interval." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 140, + "startColumn": 17, + "endLine": 140, + "endColumn": 43, + "byteLength": 26 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "order." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 135, + "startColumn": 20, + "endLine": 135, + "endColumn": 30, + "byteLength": 10 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_bounded." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 138, + "startColumn": 28, + "endLine": 138, + "endColumn": 49, + "byteLength": 21 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "assigns clause in function Frama_C_long_long_interval." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 136, + "startColumn": 12, + "endLine": 136, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term \\result in function Frama_C_long_long_interval." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 136, + "startColumn": 12, + "endLine": 136, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term Frama_C_entropy_source in function Frama_C_long_long_interval." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 137, + "startColumn": 12, + "endLine": 137, + "endColumn": 34, + "byteLength": 22 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "behavior default! in function Frama_C_make_unknown." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 38, + "startColumn": 12, + "endLine": 38, + "endColumn": 32, + "byteLength": 20 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_p." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 33, + "startColumn": 22, + "endLine": 33, + "endColumn": 44, + "byteLength": 22 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "initialization." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 36, + "startColumn": 28, + "endLine": 36, + "endColumn": 56, + "byteLength": 28 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "assigns clause in function Frama_C_make_unknown." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 34, + "startColumn": 12, + "endLine": 34, + "endColumn": 23, + "byteLength": 11 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term *(p + (0 .. l - 1)) in function Frama_C_make_unknown." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 34, + "startColumn": 12, + "endLine": 34, + "endColumn": 23, + "byteLength": 11 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term Frama_C_entropy_source in function Frama_C_make_unknown." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 35, + "startColumn": 12, + "endLine": 35, + "endColumn": 34, + "byteLength": 22 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "behavior default! in function Frama_C_nondet." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 44, + "startColumn": 11, + "endLine": 44, + "endColumn": 25, + "byteLength": 14 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_a_or_b." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 42, + "startColumn": 27, + "endLine": 42, + "endColumn": 55, + "byteLength": 28 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function Frama_C_nondet." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 40, + "startColumn": 12, + "endLine": 40, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term \\result in function Frama_C_nondet." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 40, + "startColumn": 12, + "endLine": 40, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term Frama_C_entropy_source in function Frama_C_nondet." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 41, + "startColumn": 12, + "endLine": 41, + "endColumn": 34, + "byteLength": 22 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "behavior default! in function Frama_C_nondet_ptr." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 50, + "startColumn": 12, + "endLine": 50, + "endColumn": 13, + "byteLength": 1 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_a_or_b." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 48, + "startColumn": 27, + "endLine": 48, + "endColumn": 55, + "byteLength": 28 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "assigns clause in function Frama_C_nondet_ptr." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 46, + "startColumn": 12, + "endLine": 46, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term \\result in function Frama_C_nondet_ptr." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 46, + "startColumn": 12, + "endLine": 46, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term Frama_C_entropy_source in function Frama_C_nondet_ptr." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 47, + "startColumn": 12, + "endLine": 47, + "endColumn": 34, + "byteLength": 22 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "behavior default! in function Frama_C_offset." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 183, + "startColumn": 14, + "endLine": 183, + "endColumn": 28, + "byteLength": 14 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function Frama_C_offset." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 183, + "startColumn": 14, + "endLine": 183, + "endColumn": 28, + "byteLength": 14 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term \\result in function Frama_C_offset." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 182, + "startColumn": 12, + "endLine": 182, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "behavior default! in function Frama_C_real_interval_as_double." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 173, + "startColumn": 14, + "endLine": 173, + "endColumn": 45, + "byteLength": 31 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "finite." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 167, + "startColumn": 21, + "endLine": 167, + "endColumn": 55, + "byteLength": 34 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "order." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 168, + "startColumn": 20, + "endLine": 168, + "endColumn": 30, + "byteLength": 10 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_bounded." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 171, + "startColumn": 28, + "endLine": 171, + "endColumn": 72, + "byteLength": 44 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "assigns clause in function Frama_C_real_interval_as_double." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 169, + "startColumn": 12, + "endLine": 169, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term \\result in function Frama_C_real_interval_as_double." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 169, + "startColumn": 12, + "endLine": 169, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term Frama_C_entropy_source in function Frama_C_real_interval_as_double." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 170, + "startColumn": 12, + "endLine": 170, + "endColumn": 34, + "byteLength": 22 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "behavior default! in function Frama_C_short_interval." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 93, + "startColumn": 13, + "endLine": 93, + "endColumn": 35, + "byteLength": 22 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "order." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 88, + "startColumn": 20, + "endLine": 88, + "endColumn": 30, + "byteLength": 10 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_bounded." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 91, + "startColumn": 28, + "endLine": 91, + "endColumn": 49, + "byteLength": 21 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "assigns clause in function Frama_C_short_interval." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 89, + "startColumn": 12, + "endLine": 89, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term \\result in function Frama_C_short_interval." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 89, + "startColumn": 12, + "endLine": 89, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term Frama_C_entropy_source in function Frama_C_short_interval." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 90, + "startColumn": 12, + "endLine": 90, + "endColumn": 34, + "byteLength": 22 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "behavior default! in function Frama_C_size_t_interval." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 148, + "startColumn": 14, + "endLine": 148, + "endColumn": 37, + "byteLength": 23 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "order." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 143, + "startColumn": 20, + "endLine": 143, + "endColumn": 30, + "byteLength": 10 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_bounded." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 146, + "startColumn": 28, + "endLine": 146, + "endColumn": 49, + "byteLength": 21 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "assigns clause in function Frama_C_size_t_interval." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 144, + "startColumn": 12, + "endLine": 144, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term \\result in function Frama_C_size_t_interval." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 144, + "startColumn": 12, + "endLine": 144, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term Frama_C_entropy_source in function Frama_C_size_t_interval." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 145, + "startColumn": 12, + "endLine": 145, + "endColumn": 34, + "byteLength": 22 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "behavior default! in function Frama_C_unsigned_char_interval." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 71, + "startColumn": 21, + "endLine": 71, + "endColumn": 51, + "byteLength": 30 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "order." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 66, + "startColumn": 20, + "endLine": 66, + "endColumn": 30, + "byteLength": 10 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_bounded." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 69, + "startColumn": 28, + "endLine": 69, + "endColumn": 49, + "byteLength": 21 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "assigns clause in function Frama_C_unsigned_char_interval." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 67, + "startColumn": 12, + "endLine": 67, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term \\result in function Frama_C_unsigned_char_interval." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 67, + "startColumn": 12, + "endLine": 67, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term Frama_C_entropy_source in function Frama_C_unsigned_char_interval." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 68, + "startColumn": 12, + "endLine": 68, + "endColumn": 34, + "byteLength": 22 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "behavior default! in function Frama_C_unsigned_int_interval." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 101, + "startColumn": 20, + "endLine": 101, + "endColumn": 49, + "byteLength": 29 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "order." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 96, + "startColumn": 20, + "endLine": 96, + "endColumn": 30, + "byteLength": 10 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_bounded." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 99, + "startColumn": 28, + "endLine": 99, + "endColumn": 49, + "byteLength": 21 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "assigns clause in function Frama_C_unsigned_int_interval." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 97, + "startColumn": 12, + "endLine": 97, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term \\result in function Frama_C_unsigned_int_interval." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 97, + "startColumn": 12, + "endLine": 97, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term Frama_C_entropy_source in function Frama_C_unsigned_int_interval." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 98, + "startColumn": 12, + "endLine": 98, + "endColumn": 34, + "byteLength": 22 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "behavior default! in function Frama_C_unsigned_long_interval." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 116, + "startColumn": 21, + "endLine": 116, + "endColumn": 51, + "byteLength": 30 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "order." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 111, + "startColumn": 20, + "endLine": 111, + "endColumn": 30, + "byteLength": 10 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_bounded." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 114, + "startColumn": 28, + "endLine": 114, + "endColumn": 49, + "byteLength": 21 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "assigns clause in function Frama_C_unsigned_long_interval." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 112, + "startColumn": 12, + "endLine": 112, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term \\result in function Frama_C_unsigned_long_interval." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 112, + "startColumn": 12, + "endLine": 112, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term Frama_C_entropy_source in function Frama_C_unsigned_long_interval." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 113, + "startColumn": 12, + "endLine": 113, + "endColumn": 34, + "byteLength": 22 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "behavior default! in function Frama_C_unsigned_long_long_interval." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 132, + "startColumn": 26, + "endLine": 132, + "endColumn": 61, + "byteLength": 35 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "order." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 127, + "startColumn": 20, + "endLine": 127, + "endColumn": 30, + "byteLength": 10 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_bounded." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 130, + "startColumn": 28, + "endLine": 130, + "endColumn": 49, + "byteLength": 21 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "assigns clause in function Frama_C_unsigned_long_long_interval." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 128, + "startColumn": 12, + "endLine": 128, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term \\result in function Frama_C_unsigned_long_long_interval." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 128, + "startColumn": 12, + "endLine": 128, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term Frama_C_entropy_source in function Frama_C_unsigned_long_long_interval." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 129, + "startColumn": 12, + "endLine": 129, + "endColumn": 34, + "byteLength": 22 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "behavior default! in function Frama_C_unsigned_short_interval." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 86, + "startColumn": 22, + "endLine": 86, + "endColumn": 53, + "byteLength": 31 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "order." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 81, + "startColumn": 20, + "endLine": 81, + "endColumn": 30, + "byteLength": 10 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_bounded." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 84, + "startColumn": 28, + "endLine": 84, + "endColumn": 49, + "byteLength": 21 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "assigns clause in function Frama_C_unsigned_short_interval." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 82, + "startColumn": 12, + "endLine": 82, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term \\result in function Frama_C_unsigned_short_interval." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 82, + "startColumn": 12, + "endLine": 82, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term Frama_C_entropy_source in function Frama_C_unsigned_short_interval." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_builtin.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 83, + "startColumn": 12, + "endLine": 83, + "endColumn": 34, + "byteLength": 22 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function _Exit." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 481, + "startColumn": 12, + "endLine": 481, + "endColumn": 17, + "byteLength": 5 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "never_terminates." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 479, + "startColumn": 28, + "endLine": 479, + "endColumn": 34, + "byteLength": 6 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function _Exit." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 481, + "startColumn": 12, + "endLine": 481, + "endColumn": 17, + "byteLength": 5 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function abort." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 462, + "startColumn": 12, + "endLine": 462, + "endColumn": 17, + "byteLength": 5 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "status." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 459, + "startColumn": 16, + "endLine": 459, + "endColumn": 33, + "byteLength": 17 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "never_terminates." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 460, + "startColumn": 28, + "endLine": 460, + "endColumn": 34, + "byteLength": 6 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function abort." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 458, + "startColumn": 10, + "endLine": 458, + "endColumn": 22, + "byteLength": 12 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\exit_status in function abort." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 458, + "startColumn": 10, + "endLine": 458, + "endColumn": 22, + "byteLength": 12 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function abs." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 575, + "startColumn": 11, + "endLine": 575, + "endColumn": 14, + "byteLength": 3 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior negative in function abs." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 575, + "startColumn": 11, + "endLine": 575, + "endColumn": 14, + "byteLength": 3 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior nonnegative in function abs." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 575, + "startColumn": 11, + "endLine": 575, + "endColumn": 14, + "byteLength": 3 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "abs_representable." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 564, + "startColumn": 30, + "endLine": 564, + "endColumn": 51, + "byteLength": 21 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "negative." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 567, + "startColumn": 22, + "endLine": 567, + "endColumn": 27, + "byteLength": 5 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "nonnegative." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 570, + "startColumn": 25, + "endLine": 570, + "endColumn": 31, + "byteLength": 6 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "opposite_result." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 568, + "startColumn": 29, + "endLine": 568, + "endColumn": 42, + "byteLength": 13 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "same_result." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 571, + "startColumn": 25, + "endLine": 571, + "endColumn": 37, + "byteLength": 12 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function abs." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 575, + "startColumn": 11, + "endLine": 575, + "endColumn": 14, + "byteLength": 3 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function abs." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 565, + "startColumn": 10, + "endLine": 565, + "endColumn": 17, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "complete clause in function abs." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 575, + "startColumn": 11, + "endLine": 575, + "endColumn": 14, + "byteLength": 3 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "disjoint clause in function abs." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 575, + "startColumn": 11, + "endLine": 575, + "endColumn": 14, + "byteLength": 3 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "behavior default! in function at_quick_exit." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 468, + "startColumn": 11, + "endLine": 468, + "endColumn": 24, + "byteLength": 13 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function at_quick_exit." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 468, + "startColumn": 11, + "endLine": 468, + "endColumn": 24, + "byteLength": 13 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function at_quick_exit." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 467, + "startColumn": 12, + "endLine": 467, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function atexit." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 465, + "startColumn": 11, + "endLine": 465, + "endColumn": 17, + "byteLength": 6 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function atexit." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 465, + "startColumn": 11, + "endLine": 465, + "endColumn": 17, + "byteLength": 6 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function atexit." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 464, + "startColumn": 12, + "endLine": 464, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function atof." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 75, + "startColumn": 14, + "endLine": 75, + "endColumn": 18, + "byteLength": 4 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_nptr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 72, + "startColumn": 23, + "endLine": 72, + "endColumn": 40, + "byteLength": 17 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function atof." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 75, + "startColumn": 14, + "endLine": 75, + "endColumn": 18, + "byteLength": 4 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function atof." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 73, + "startColumn": 10, + "endLine": 73, + "endColumn": 17, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function atoi." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 81, + "startColumn": 11, + "endLine": 81, + "endColumn": 15, + "byteLength": 4 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_nptr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 78, + "startColumn": 23, + "endLine": 78, + "endColumn": 40, + "byteLength": 17 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function atoi." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 81, + "startColumn": 11, + "endLine": 81, + "endColumn": 15, + "byteLength": 4 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function atoi." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 79, + "startColumn": 10, + "endLine": 79, + "endColumn": 17, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function atol." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 87, + "startColumn": 16, + "endLine": 87, + "endColumn": 20, + "byteLength": 4 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_nptr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 84, + "startColumn": 23, + "endLine": 84, + "endColumn": 40, + "byteLength": 17 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function atol." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 87, + "startColumn": 16, + "endLine": 87, + "endColumn": 20, + "byteLength": 4 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function atol." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 85, + "startColumn": 10, + "endLine": 85, + "endColumn": 17, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function atoll." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 93, + "startColumn": 21, + "endLine": 93, + "endColumn": 26, + "byteLength": 5 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_nptr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 90, + "startColumn": 23, + "endLine": 90, + "endColumn": 40, + "byteLength": 17 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function atoll." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 93, + "startColumn": 21, + "endLine": 93, + "endColumn": 26, + "byteLength": 5 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function atoll." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 91, + "startColumn": 10, + "endLine": 91, + "endColumn": 17, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function bsearch." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 547, + "startColumn": 12, + "endLine": 547, + "endColumn": 13, + "byteLength": 1 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_function_compar." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 540, + "startColumn": 34, + "endLine": 540, + "endColumn": 57, + "byteLength": 23 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "null_or_correct_result." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 544, + "startColumn": 34, + "endLine": 545, + "endColumn": 76, + "byteLength": 96 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function bsearch." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 547, + "startColumn": 12, + "endLine": 547, + "endColumn": 13, + "byteLength": 1 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function bsearch." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 541, + "startColumn": 10, + "endLine": 541, + "endColumn": 17, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function bzero." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/strings.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 40, + "startColumn": 12, + "endLine": 40, + "endColumn": 17, + "byteLength": 5 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_memory_area." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/strings.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 36, + "startColumn": 32, + "endLine": 36, + "endColumn": 63, + "byteLength": 31 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "s_initialized." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/strings.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 38, + "startColumn": 39, + "endLine": 38, + "endColumn": 75, + "byteLength": 36 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "zero_initialized." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/strings.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 39, + "startColumn": 28, + "endLine": 39, + "endColumn": 63, + "byteLength": 35 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function bzero." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/strings.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 37, + "startColumn": 10, + "endLine": 37, + "endColumn": 31, + "byteLength": 21 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term *((char *)s + (0 .. n - 1)) in function bzero." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/strings.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 37, + "startColumn": 10, + "endLine": 37, + "endColumn": 31, + "byteLength": 21 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior allocation in function calloc." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 385, + "startColumn": 12, + "endLine": 385, + "endColumn": 13, + "byteLength": 1 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function calloc." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 385, + "startColumn": 12, + "endLine": 385, + "endColumn": 13, + "byteLength": 1 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior no_allocation in function calloc." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 385, + "startColumn": 12, + "endLine": 385, + "endColumn": 13, + "byteLength": 1 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "can_allocate." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 372, + "startColumn": 26, + "endLine": 372, + "endColumn": 52, + "byteLength": 26 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "cannot_allocate." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 378, + "startColumn": 29, + "endLine": 378, + "endColumn": 56, + "byteLength": 27 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "allocation." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 373, + "startColumn": 24, + "endLine": 373, + "endColumn": 53, + "byteLength": 29 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "initialization." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 374, + "startColumn": 28, + "endLine": 374, + "endColumn": 77, + "byteLength": 49 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "zero_initialization." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 375, + "startColumn": 33, + "endLine": 375, + "endColumn": 81, + "byteLength": 48 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "null_result." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 381, + "startColumn": 25, + "endLine": 381, + "endColumn": 41, + "byteLength": 16 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function calloc." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 367, + "startColumn": 10, + "endLine": 367, + "endColumn": 26, + "byteLength": 16 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function calloc." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 385, + "startColumn": 12, + "endLine": 385, + "endColumn": 13, + "byteLength": 1 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term __fc_heap_status in function calloc." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 367, + "startColumn": 10, + "endLine": 367, + "endColumn": 26, + "byteLength": 16 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function calloc." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 368, + "startColumn": 10, + "endLine": 368, + "endColumn": 17, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function calloc." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 379, + "startColumn": 12, + "endLine": 379, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "allocates/frees clause in function calloc." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 366, + "startColumn": 12, + "endLine": 366, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "allocates/frees clause in function calloc." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 385, + "startColumn": 12, + "endLine": 385, + "endColumn": 13, + "byteLength": 1 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "complete clause in function calloc." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 385, + "startColumn": 12, + "endLine": 385, + "endColumn": 13, + "byteLength": 1 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "disjoint clause in function calloc." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 385, + "startColumn": 12, + "endLine": 385, + "endColumn": 13, + "byteLength": 1 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function div." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 606, + "startColumn": 13, + "endLine": 606, + "endColumn": 16, + "byteLength": 3 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function div." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 606, + "startColumn": 13, + "endLine": 606, + "endColumn": 16, + "byteLength": 3 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function div." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 605, + "startColumn": 12, + "endLine": 605, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function drand48." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 322, + "startColumn": 14, + "endLine": 322, + "endColumn": 21, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "random48_initialized." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 317, + "startColumn": 33, + "endLine": 317, + "endColumn": 56, + "byteLength": 23 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_range." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 320, + "startColumn": 24, + "endLine": 320, + "endColumn": 67, + "byteLength": 43 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function drand48." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 318, + "startColumn": 10, + "endLine": 318, + "endColumn": 37, + "byteLength": 27 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term __fc_random48_counter[0 .. 2] in function drand48." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 318, + "startColumn": 10, + "endLine": 318, + "endColumn": 37, + "byteLength": 27 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function drand48." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 319, + "startColumn": 10, + "endLine": 319, + "endColumn": 17, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function erand48." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 330, + "startColumn": 14, + "endLine": 330, + "endColumn": 21, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "initialization." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 325, + "startColumn": 45, + "endLine": 325, + "endColumn": 71, + "byteLength": 26 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_range." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 328, + "startColumn": 24, + "endLine": 328, + "endColumn": 67, + "byteLength": 43 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function erand48." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 326, + "startColumn": 10, + "endLine": 326, + "endColumn": 37, + "byteLength": 27 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term __fc_random48_counter[0 .. 2] in function erand48." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 326, + "startColumn": 10, + "endLine": 326, + "endColumn": 37, + "byteLength": 27 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function erand48." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 327, + "startColumn": 10, + "endLine": 327, + "endColumn": 17, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function exit." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 475, + "startColumn": 12, + "endLine": 475, + "endColumn": 16, + "byteLength": 4 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "status." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 472, + "startColumn": 16, + "endLine": 472, + "endColumn": 38, + "byteLength": 22 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "never_terminates." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 473, + "startColumn": 28, + "endLine": 473, + "endColumn": 34, + "byteLength": 6 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function exit." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 471, + "startColumn": 10, + "endLine": 471, + "endColumn": 22, + "byteLength": 12 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\exit_status in function exit." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 471, + "startColumn": 10, + "endLine": 471, + "endColumn": 22, + "byteLength": 12 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior deallocation in function free." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 419, + "startColumn": 12, + "endLine": 419, + "endColumn": 16, + "byteLength": 4 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function free." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 419, + "startColumn": 12, + "endLine": 419, + "endColumn": 16, + "byteLength": 4 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior no_deallocation in function free." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 419, + "startColumn": 12, + "endLine": 419, + "endColumn": 16, + "byteLength": 4 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "freeable." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 405, + "startColumn": 23, + "endLine": 405, + "endColumn": 47, + "byteLength": 24 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "nonnull_p." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 409, + "startColumn": 23, + "endLine": 409, + "endColumn": 31, + "byteLength": 8 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "null_p." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 413, + "startColumn": 20, + "endLine": 413, + "endColumn": 28, + "byteLength": 8 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "freed." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 411, + "startColumn": 19, + "endLine": 411, + "endColumn": 32, + "byteLength": 13 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function free." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 410, + "startColumn": 12, + "endLine": 410, + "endColumn": 28, + "byteLength": 16 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function free." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 407, + "startColumn": 12, + "endLine": 407, + "endColumn": 28, + "byteLength": 16 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function free." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 419, + "startColumn": 12, + "endLine": 419, + "endColumn": 16, + "byteLength": 4 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term __fc_heap_status in function free." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 410, + "startColumn": 12, + "endLine": 410, + "endColumn": 28, + "byteLength": 16 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term __fc_heap_status in function free." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 407, + "startColumn": 12, + "endLine": 407, + "endColumn": 28, + "byteLength": 16 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "allocates/frees clause in function free." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 406, + "startColumn": 10, + "endLine": 406, + "endColumn": 11, + "byteLength": 1 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "allocates/frees clause in function free." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 419, + "startColumn": 12, + "endLine": 419, + "endColumn": 16, + "byteLength": 4 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "complete clause in function free." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 419, + "startColumn": 12, + "endLine": 419, + "endColumn": 16, + "byteLength": 4 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "disjoint clause in function free." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 419, + "startColumn": 12, + "endLine": 419, + "endColumn": 16, + "byteLength": 4 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function getenv." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 490, + "startColumn": 12, + "endLine": 490, + "endColumn": 13, + "byteLength": 1 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_name." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 486, + "startColumn": 23, + "endLine": 486, + "endColumn": 46, + "byteLength": 23 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "null_or_valid_result." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 488, + "startColumn": 32, + "endLine": 488, + "endColumn": 67, + "byteLength": 35 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function getenv." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 490, + "startColumn": 12, + "endLine": 490, + "endColumn": 13, + "byteLength": 1 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function getenv." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 487, + "startColumn": 10, + "endLine": 487, + "endColumn": 17, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function jrand48." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 362, + "startColumn": 16, + "endLine": 362, + "endColumn": 23, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "initialization." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 357, + "startColumn": 45, + "endLine": 357, + "endColumn": 71, + "byteLength": 26 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_range." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 360, + "startColumn": 24, + "endLine": 360, + "endColumn": 59, + "byteLength": 35 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function jrand48." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 358, + "startColumn": 10, + "endLine": 358, + "endColumn": 37, + "byteLength": 27 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term __fc_random48_counter[0 .. 2] in function jrand48." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 358, + "startColumn": 10, + "endLine": 358, + "endColumn": 37, + "byteLength": 27 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function jrand48." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 359, + "startColumn": 10, + "endLine": 359, + "endColumn": 17, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function labs." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 589, + "startColumn": 16, + "endLine": 589, + "endColumn": 20, + "byteLength": 4 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior negative in function labs." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 589, + "startColumn": 16, + "endLine": 589, + "endColumn": 20, + "byteLength": 4 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior nonnegative in function labs." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 589, + "startColumn": 16, + "endLine": 589, + "endColumn": 20, + "byteLength": 4 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "abs_representable." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 578, + "startColumn": 30, + "endLine": 578, + "endColumn": 61, + "byteLength": 31 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "negative." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 581, + "startColumn": 22, + "endLine": 581, + "endColumn": 27, + "byteLength": 5 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "nonnegative." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 584, + "startColumn": 25, + "endLine": 584, + "endColumn": 31, + "byteLength": 6 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "opposite_result." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 582, + "startColumn": 29, + "endLine": 582, + "endColumn": 42, + "byteLength": 13 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "same_result." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 585, + "startColumn": 25, + "endLine": 585, + "endColumn": 37, + "byteLength": 12 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function labs." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 589, + "startColumn": 16, + "endLine": 589, + "endColumn": 20, + "byteLength": 4 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function labs." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 579, + "startColumn": 10, + "endLine": 579, + "endColumn": 17, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "complete clause in function labs." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 589, + "startColumn": 16, + "endLine": 589, + "endColumn": 20, + "byteLength": 4 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "disjoint clause in function labs." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 589, + "startColumn": 16, + "endLine": 589, + "endColumn": 20, + "byteLength": 4 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function lcong48." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 314, + "startColumn": 12, + "endLine": 314, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "random48_initialized." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 312, + "startColumn": 32, + "endLine": 312, + "endColumn": 55, + "byteLength": 23 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function lcong48." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 310, + "startColumn": 10, + "endLine": 310, + "endColumn": 37, + "byteLength": 27 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term __fc_random48_counter[0 .. 2] in function lcong48." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 310, + "startColumn": 10, + "endLine": 310, + "endColumn": 37, + "byteLength": 27 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term __fc_random48_init in function lcong48." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 311, + "startColumn": 10, + "endLine": 311, + "endColumn": 28, + "byteLength": 18 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function ldiv." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 608, + "startColumn": 14, + "endLine": 608, + "endColumn": 18, + "byteLength": 4 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function ldiv." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 608, + "startColumn": 14, + "endLine": 608, + "endColumn": 18, + "byteLength": 4 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function ldiv." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 607, + "startColumn": 12, + "endLine": 607, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function llabs." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 603, + "startColumn": 21, + "endLine": 603, + "endColumn": 26, + "byteLength": 5 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior negative in function llabs." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 603, + "startColumn": 21, + "endLine": 603, + "endColumn": 26, + "byteLength": 5 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior nonnegative in function llabs." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 603, + "startColumn": 21, + "endLine": 603, + "endColumn": 26, + "byteLength": 5 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "abs_representable." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 592, + "startColumn": 30, + "endLine": 592, + "endColumn": 63, + "byteLength": 33 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "negative." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 595, + "startColumn": 22, + "endLine": 595, + "endColumn": 27, + "byteLength": 5 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "nonnegative." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 598, + "startColumn": 25, + "endLine": 598, + "endColumn": 31, + "byteLength": 6 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "opposite_result." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 596, + "startColumn": 29, + "endLine": 596, + "endColumn": 42, + "byteLength": 13 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "same_result." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 599, + "startColumn": 25, + "endLine": 599, + "endColumn": 37, + "byteLength": 12 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function llabs." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 603, + "startColumn": 21, + "endLine": 603, + "endColumn": 26, + "byteLength": 5 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function llabs." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 593, + "startColumn": 10, + "endLine": 593, + "endColumn": 17, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "complete clause in function llabs." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 603, + "startColumn": 21, + "endLine": 603, + "endColumn": 26, + "byteLength": 5 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "disjoint clause in function llabs." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 603, + "startColumn": 21, + "endLine": 603, + "endColumn": 26, + "byteLength": 5 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function lldiv." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 610, + "startColumn": 15, + "endLine": 610, + "endColumn": 20, + "byteLength": 5 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function lldiv." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 610, + "startColumn": 15, + "endLine": 610, + "endColumn": 20, + "byteLength": 5 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function lldiv." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 609, + "startColumn": 12, + "endLine": 609, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function lrand48." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 338, + "startColumn": 16, + "endLine": 338, + "endColumn": 23, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "random48_initialized." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 333, + "startColumn": 33, + "endLine": 333, + "endColumn": 56, + "byteLength": 23 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_range." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 336, + "startColumn": 24, + "endLine": 336, + "endColumn": 49, + "byteLength": 25 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function lrand48." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 334, + "startColumn": 10, + "endLine": 334, + "endColumn": 37, + "byteLength": 27 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term __fc_random48_counter[0 .. 2] in function lrand48." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 334, + "startColumn": 10, + "endLine": 334, + "endColumn": 37, + "byteLength": 27 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function lrand48." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 335, + "startColumn": 10, + "endLine": 335, + "endColumn": 17, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior allocation in function malloc." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 403, + "startColumn": 12, + "endLine": 403, + "endColumn": 13, + "byteLength": 1 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function malloc." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 403, + "startColumn": 12, + "endLine": 403, + "endColumn": 13, + "byteLength": 1 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior no_allocation in function malloc." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 403, + "startColumn": 12, + "endLine": 403, + "endColumn": 13, + "byteLength": 1 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "can_allocate." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 391, + "startColumn": 26, + "endLine": 391, + "endColumn": 44, + "byteLength": 18 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "cannot_allocate." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 396, + "startColumn": 29, + "endLine": 396, + "endColumn": 48, + "byteLength": 19 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "allocation." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 394, + "startColumn": 24, + "endLine": 394, + "endColumn": 44, + "byteLength": 20 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "null_result." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 399, + "startColumn": 25, + "endLine": 399, + "endColumn": 39, + "byteLength": 14 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function malloc." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 392, + "startColumn": 12, + "endLine": 392, + "endColumn": 28, + "byteLength": 16 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function malloc." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 388, + "startColumn": 12, + "endLine": 388, + "endColumn": 28, + "byteLength": 16 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function malloc." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 403, + "startColumn": 12, + "endLine": 403, + "endColumn": 13, + "byteLength": 1 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term __fc_heap_status in function malloc." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 392, + "startColumn": 12, + "endLine": 392, + "endColumn": 28, + "byteLength": 16 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function malloc." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 393, + "startColumn": 12, + "endLine": 393, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term __fc_heap_status in function malloc." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 388, + "startColumn": 12, + "endLine": 388, + "endColumn": 28, + "byteLength": 16 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function malloc." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 389, + "startColumn": 12, + "endLine": 389, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function malloc." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 397, + "startColumn": 12, + "endLine": 397, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "allocates/frees clause in function malloc." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 387, + "startColumn": 14, + "endLine": 387, + "endColumn": 21, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "allocates/frees clause in function malloc." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 403, + "startColumn": 12, + "endLine": 403, + "endColumn": 13, + "byteLength": 1 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "complete clause in function malloc." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 403, + "startColumn": 12, + "endLine": 403, + "endColumn": 13, + "byteLength": 1 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "disjoint clause in function malloc." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 403, + "startColumn": 12, + "endLine": 403, + "endColumn": 13, + "byteLength": 1 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function mblen." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 618, + "startColumn": 11, + "endLine": 618, + "endColumn": 16, + "byteLength": 5 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function mblen." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 616, + "startColumn": 12, + "endLine": 616, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function mblen." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 616, + "startColumn": 12, + "endLine": 616, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term __fc_mblen_state in function mblen." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 616, + "startColumn": 21, + "endLine": 616, + "endColumn": 37, + "byteLength": 16 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function mbstowcs." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 650, + "startColumn": 14, + "endLine": 650, + "endColumn": 22, + "byteLength": 8 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "separation." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 646, + "startColumn": 23, + "endLine": 646, + "endColumn": 42, + "byteLength": 19 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function mbstowcs." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 647, + "startColumn": 10, + "endLine": 647, + "endColumn": 17, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function mbstowcs." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 647, + "startColumn": 10, + "endLine": 647, + "endColumn": 17, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term *(pwcs + (0 .. n - 1)) in function mbstowcs." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 648, + "startColumn": 10, + "endLine": 648, + "endColumn": 24, + "byteLength": 14 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function mbtowc." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 630, + "startColumn": 11, + "endLine": 630, + "endColumn": 17, + "byteLength": 6 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "separation." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 623, + "startColumn": 23, + "endLine": 623, + "endColumn": 41, + "byteLength": 18 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "consumed_range." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 628, + "startColumn": 26, + "endLine": 628, + "endColumn": 38, + "byteLength": 12 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function mbtowc." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 624, + "startColumn": 10, + "endLine": 624, + "endColumn": 17, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function mbtowc." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 624, + "startColumn": 10, + "endLine": 624, + "endColumn": 17, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term *(pwc + (0 .. \\result - 1)) in function mbtowc." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 626, + "startColumn": 10, + "endLine": 626, + "endColumn": 29, + "byteLength": 19 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term __fc_mbtowc_state in function mbtowc." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 626, + "startColumn": 31, + "endLine": 626, + "endColumn": 48, + "byteLength": 17 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function memchr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 242, + "startColumn": 5, + "endLine": 249, + "endColumn": 1, + "byteLength": 225 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior found in function memchr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 242, + "startColumn": 5, + "endLine": 249, + "endColumn": 1, + "byteLength": 225 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior not_found in function memchr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 242, + "startColumn": 5, + "endLine": 249, + "endColumn": 1, + "byteLength": 225 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 68, + "startColumn": 9, + "endLine": 69, + "endColumn": 74, + "byteLength": 100 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "initialization." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 71, + "startColumn": 8, + "endLine": 72, + "endColumn": 71, + "byteLength": 116 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "danglingness." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 74, + "startColumn": 8, + "endLine": 75, + "endColumn": 61, + "byteLength": 80 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "char_found." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 78, + "startColumn": 24, + "endLine": 78, + "endColumn": 44, + "byteLength": 20 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "char_not_found." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 85, + "startColumn": 28, + "endLine": 85, + "endColumn": 49, + "byteLength": 21 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_same_base." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 79, + "startColumn": 30, + "endLine": 79, + "endColumn": 66, + "byteLength": 36 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_char." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 80, + "startColumn": 25, + "endLine": 80, + "endColumn": 45, + "byteLength": 20 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_in_str." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 81, + "startColumn": 27, + "endLine": 83, + "endColumn": 54, + "byteLength": 120 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_null." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 86, + "startColumn": 25, + "endLine": 86, + "endColumn": 41, + "byteLength": 16 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function memchr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 242, + "startColumn": 5, + "endLine": 249, + "endColumn": 1, + "byteLength": 225 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function memchr." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 76, + "startColumn": 12, + "endLine": 76, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function memcmp." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 147, + "startColumn": 4, + "endLine": 155, + "endColumn": 1, + "byteLength": 243 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_s1." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 55, + "startColumn": 23, + "endLine": 55, + "endColumn": 49, + "byteLength": 26 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_s2." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 56, + "startColumn": 23, + "endLine": 56, + "endColumn": 49, + "byteLength": 26 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "initialization." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 57, + "startColumn": 32, + "endLine": 57, + "endColumn": 68, + "byteLength": 36 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "initialization." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 58, + "startColumn": 32, + "endLine": 58, + "endColumn": 68, + "byteLength": 36 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "danglingness." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 59, + "startColumn": 30, + "endLine": 59, + "endColumn": 49, + "byteLength": 19 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "danglingness." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 60, + "startColumn": 30, + "endLine": 60, + "endColumn": 49, + "byteLength": 19 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "logic_spec." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 63, + "startColumn": 24, + "endLine": 63, + "endColumn": 73, + "byteLength": 49 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function memcmp." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 147, + "startColumn": 4, + "endLine": 155, + "endColumn": 1, + "byteLength": 243 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function memcmp." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 61, + "startColumn": 12, + "endLine": 61, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function memcpy." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 30, + "startColumn": 4, + "endLine": 42, + "endColumn": 1, + "byteLength": 379 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_dest." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 92, + "startColumn": 25, + "endLine": 92, + "endColumn": 48, + "byteLength": 23 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_src." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 93, + "startColumn": 24, + "endLine": 93, + "endColumn": 51, + "byteLength": 27 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "separation." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 95, + "startColumn": 4, + "endLine": 95, + "endColumn": 62, + "byteLength": 58 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "copied_contents." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 98, + "startColumn": 29, + "endLine": 98, + "endColumn": 76, + "byteLength": 47 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_ptr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 99, + "startColumn": 24, + "endLine": 99, + "endColumn": 39, + "byteLength": 15 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function memcpy." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 96, + "startColumn": 12, + "endLine": 96, + "endColumn": 35, + "byteLength": 23 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term *((char *)dest + (0 .. n - 1)) in function memcpy." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 96, + "startColumn": 12, + "endLine": 96, + "endColumn": 35, + "byteLength": 23 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function memcpy." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 97, + "startColumn": 12, + "endLine": 97, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "no_eva." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 33, + "startColumn": 27, + "endLine": 33, + "endColumn": 38, + "byteLength": 11 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "no_eva." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 34, + "startColumn": 27, + "endLine": 34, + "endColumn": 92, + "byteLength": 65 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function memcpy." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 35, + "startColumn": 17, + "endLine": 35, + "endColumn": 18, + "byteLength": 1 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "decrease clause in function memcpy." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 36, + "startColumn": 17, + "endLine": 36, + "endColumn": 22, + "byteLength": 5 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "error", + "message": { "text": "reachability of stmt line 38 in memcpy." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 38, + "startColumn": 2, + "endLine": 40, + "endColumn": 3, + "byteLength": 76 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "error", + "message": { "text": "reachability post stmt line 38 in memcpy." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 38, + "startColumn": 2, + "endLine": 40, + "endColumn": 3, + "byteLength": 76 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function memmove." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 72, + "startColumn": 4, + "endLine": 102, + "endColumn": 1, + "byteLength": 1223 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_dest." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 104, + "startColumn": 25, + "endLine": 104, + "endColumn": 48, + "byteLength": 23 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_src." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 105, + "startColumn": 24, + "endLine": 105, + "endColumn": 51, + "byteLength": 27 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "copied_contents." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 108, + "startColumn": 29, + "endLine": 108, + "endColumn": 76, + "byteLength": 47 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_ptr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 109, + "startColumn": 24, + "endLine": 109, + "endColumn": 39, + "byteLength": 15 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function memmove." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 106, + "startColumn": 12, + "endLine": 106, + "endColumn": 35, + "byteLength": 23 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term *((char *)dest + (0 .. n - 1)) in function memmove." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 106, + "startColumn": 12, + "endLine": 106, + "endColumn": 35, + "byteLength": 23 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function memmove." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 107, + "startColumn": 12, + "endLine": 107, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "no_eva." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 79, + "startColumn": 29, + "endLine": 79, + "endColumn": 40, + "byteLength": 11 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "no_eva." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 80, + "startColumn": 29, + "endLine": 80, + "endColumn": 109, + "byteLength": 80 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "no_eva." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 81, + "startColumn": 29, + "endLine": 81, + "endColumn": 108, + "byteLength": 79 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function memmove." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 82, + "startColumn": 19, + "endLine": 82, + "endColumn": 20, + "byteLength": 1 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "decrease clause in function memmove." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 83, + "startColumn": 19, + "endLine": 83, + "endColumn": 24, + "byteLength": 5 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "error", + "message": { "text": "reachability of stmt line 85 in memmove." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 85, + "startColumn": 4, + "endLine": 86, + "endColumn": 18, + "byteLength": 49 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "error", + "message": { "text": "reachability post stmt line 85 in memmove." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 85, + "startColumn": 4, + "endLine": 86, + "endColumn": 18, + "byteLength": 49 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "no_eva." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 91, + "startColumn": 29, + "endLine": 91, + "endColumn": 39, + "byteLength": 10 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "no_eva." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 92, + "startColumn": 29, + "endLine": 92, + "endColumn": 108, + "byteLength": 79 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "no_eva." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 93, + "startColumn": 29, + "endLine": 93, + "endColumn": 109, + "byteLength": 80 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function memmove." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 94, + "startColumn": 19, + "endLine": 94, + "endColumn": 20, + "byteLength": 1 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "decrease clause in function memmove." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 95, + "startColumn": 19, + "endLine": 95, + "endColumn": 20, + "byteLength": 1 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "error", + "message": { "text": "reachability of stmt line 97 in memmove." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 97, + "startColumn": 4, + "endLine": 98, + "endColumn": 18, + "byteLength": 51 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "error", + "message": { "text": "reachability post stmt line 97 in memmove." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 97, + "startColumn": 4, + "endLine": 98, + "endColumn": 18, + "byteLength": 51 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function memoverlap." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 63, + "startColumn": 11, + "endLine": 70, + "endColumn": 1, + "byteLength": 255 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "behavior not_separated_gt in function memoverlap." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 63, + "startColumn": 11, + "endLine": 70, + "endColumn": 1, + "byteLength": 255 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "behavior not_separated_lt in function memoverlap." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 63, + "startColumn": 11, + "endLine": 70, + "endColumn": 1, + "byteLength": 255 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior separated in function memoverlap." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 63, + "startColumn": 11, + "endLine": 70, + "endColumn": 1, + "byteLength": 255 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "separation." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 50, + "startColumn": 35, + "endLine": 50, + "endColumn": 77, + "byteLength": 42 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "separation." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 53, + "startColumn": 32, + "endLine": 53, + "endColumn": 75, + "byteLength": 43 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "p_before_q." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 54, + "startColumn": 24, + "endLine": 54, + "endColumn": 38, + "byteLength": 14 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "separation." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 57, + "startColumn": 32, + "endLine": 57, + "endColumn": 75, + "byteLength": 43 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "p_after_q." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 58, + "startColumn": 23, + "endLine": 58, + "endColumn": 37, + "byteLength": 14 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_no_overlap." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 51, + "startColumn": 31, + "endLine": 51, + "endColumn": 43, + "byteLength": 12 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_p_before_q." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 55, + "startColumn": 31, + "endLine": 55, + "endColumn": 44, + "byteLength": 13 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_p_after_q." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 59, + "startColumn": 30, + "endLine": 59, + "endColumn": 42, + "byteLength": 12 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function memoverlap." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 63, + "startColumn": 11, + "endLine": 70, + "endColumn": 1, + "byteLength": 255 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function memoverlap." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 48, + "startColumn": 10, + "endLine": 48, + "endColumn": 17, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "complete clause in function memoverlap." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 63, + "startColumn": 11, + "endLine": 70, + "endColumn": 1, + "byteLength": 255 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "disjoint clause in function memoverlap." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 63, + "startColumn": 11, + "endLine": 70, + "endColumn": 1, + "byteLength": 255 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function memset." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 118, + "startColumn": 4, + "endLine": 125, + "endColumn": 1, + "byteLength": 144 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_s." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 115, + "startColumn": 22, + "endLine": 115, + "endColumn": 42, + "byteLength": 20 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "acsl_c_equiv." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 118, + "startColumn": 26, + "endLine": 118, + "endColumn": 46, + "byteLength": 20 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_ptr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 119, + "startColumn": 24, + "endLine": 119, + "endColumn": 36, + "byteLength": 12 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function memset." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 116, + "startColumn": 12, + "endLine": 116, + "endColumn": 32, + "byteLength": 20 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term *((char *)s + (0 .. n - 1)) in function memset." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 116, + "startColumn": 12, + "endLine": 116, + "endColumn": 32, + "byteLength": 20 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function memset." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 117, + "startColumn": 12, + "endLine": 117, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function mkstemp." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 700, + "startColumn": 11, + "endLine": 700, + "endColumn": 18, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_template." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 694, + "startColumn": 27, + "endLine": 694, + "endColumn": 48, + "byteLength": 21 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_error_or_valid_fd." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 697, + "startColumn": 36, + "endLine": 698, + "endColumn": 53, + "byteLength": 70 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function mkstemp." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 695, + "startColumn": 10, + "endLine": 695, + "endColumn": 22, + "byteLength": 12 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term *(templat + (0 ..)) in function mkstemp." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 695, + "startColumn": 10, + "endLine": 695, + "endColumn": 22, + "byteLength": 12 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function mkstemp." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 696, + "startColumn": 10, + "endLine": 696, + "endColumn": 17, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function mrand48." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 354, + "startColumn": 16, + "endLine": 354, + "endColumn": 23, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "random48_initialized." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 349, + "startColumn": 33, + "endLine": 349, + "endColumn": 56, + "byteLength": 23 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_range." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 352, + "startColumn": 24, + "endLine": 352, + "endColumn": 59, + "byteLength": 35 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function mrand48." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 350, + "startColumn": 10, + "endLine": 350, + "endColumn": 37, + "byteLength": 27 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term __fc_random48_counter[0 .. 2] in function mrand48." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 350, + "startColumn": 10, + "endLine": 350, + "endColumn": 37, + "byteLength": 27 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function mrand48." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 351, + "startColumn": 10, + "endLine": 351, + "endColumn": 17, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function nrand48." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 346, + "startColumn": 16, + "endLine": 346, + "endColumn": 23, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "initialization." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 341, + "startColumn": 45, + "endLine": 341, + "endColumn": 71, + "byteLength": 26 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_range." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 344, + "startColumn": 24, + "endLine": 344, + "endColumn": 49, + "byteLength": 25 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function nrand48." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 342, + "startColumn": 10, + "endLine": 342, + "endColumn": 37, + "byteLength": 27 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term __fc_random48_counter[0 .. 2] in function nrand48." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 342, + "startColumn": 10, + "endLine": 342, + "endColumn": 37, + "byteLength": 27 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function nrand48." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 343, + "startColumn": 10, + "endLine": 343, + "endColumn": 17, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "behavior allocation in function posix_memalign." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 689, + "startColumn": 11, + "endLine": 689, + "endColumn": 25, + "byteLength": 14 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "behavior default! in function posix_memalign." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 689, + "startColumn": 11, + "endLine": 689, + "endColumn": 25, + "byteLength": 14 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "behavior no_allocation in function posix_memalign." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 689, + "startColumn": 11, + "endLine": 689, + "endColumn": 25, + "byteLength": 14 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_memptr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 666, + "startColumn": 25, + "endLine": 666, + "endColumn": 39, + "byteLength": 14 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "alignment_is_a_suitable_power_of_two." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 668, + "startColumn": 4, + "endLine": 669, + "endColumn": 54, + "byteLength": 84 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "can_allocate." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 675, + "startColumn": 26, + "endLine": 675, + "endColumn": 44, + "byteLength": 18 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "cannot_allocate." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 682, + "startColumn": 29, + "endLine": 682, + "endColumn": 48, + "byteLength": 19 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "allocation." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 679, + "startColumn": 24, + "endLine": 679, + "endColumn": 44, + "byteLength": 20 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_zero." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 680, + "startColumn": 25, + "endLine": 680, + "endColumn": 37, + "byteLength": 12 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_non_zero." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 685, + "startColumn": 29, + "endLine": 685, + "endColumn": 55, + "byteLength": 26 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function posix_memalign." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 676, + "startColumn": 12, + "endLine": 676, + "endColumn": 28, + "byteLength": 16 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function posix_memalign." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 671, + "startColumn": 10, + "endLine": 671, + "endColumn": 26, + "byteLength": 16 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function posix_memalign." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 689, + "startColumn": 11, + "endLine": 689, + "endColumn": 25, + "byteLength": 14 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term __fc_heap_status in function posix_memalign." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 676, + "startColumn": 12, + "endLine": 676, + "endColumn": 28, + "byteLength": 16 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term \\result in function posix_memalign." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 677, + "startColumn": 12, + "endLine": 677, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term __fc_heap_status in function posix_memalign." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 671, + "startColumn": 10, + "endLine": 671, + "endColumn": 26, + "byteLength": 16 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term \\result in function posix_memalign." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 672, + "startColumn": 10, + "endLine": 672, + "endColumn": 17, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term \\result in function posix_memalign." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 683, + "startColumn": 12, + "endLine": 683, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "allocates/frees clause in function posix_memalign." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 670, + "startColumn": 12, + "endLine": 670, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "allocates/frees clause in function posix_memalign." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 689, + "startColumn": 11, + "endLine": 689, + "endColumn": 25, + "byteLength": 14 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "complete clause in function posix_memalign." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 689, + "startColumn": 11, + "endLine": 689, + "endColumn": 25, + "byteLength": 14 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "disjoint clause in function posix_memalign." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 689, + "startColumn": 11, + "endLine": 689, + "endColumn": 25, + "byteLength": 14 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function putenv." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 497, + "startColumn": 11, + "endLine": 497, + "endColumn": 17, + "byteLength": 6 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_string." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 493, + "startColumn": 25, + "endLine": 493, + "endColumn": 50, + "byteLength": 25 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function putenv." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 494, + "startColumn": 10, + "endLine": 494, + "endColumn": 23, + "byteLength": 13 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term __fc_env[0 ..] in function putenv." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 494, + "startColumn": 10, + "endLine": 494, + "endColumn": 23, + "byteLength": 13 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function putenv." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 495, + "startColumn": 10, + "endLine": 495, + "endColumn": 17, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function qsort." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 558, + "startColumn": 12, + "endLine": 558, + "endColumn": 17, + "byteLength": 5 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_function_compar." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 553, + "startColumn": 34, + "endLine": 553, + "endColumn": 57, + "byteLength": 23 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function qsort." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 554, + "startColumn": 10, + "endLine": 554, + "endColumn": 29, + "byteLength": 19 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term *((char *)base + (0 ..)) in function qsort." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 554, + "startColumn": 10, + "endLine": 554, + "endColumn": 29, + "byteLength": 19 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function quick_exit." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 521, + "startColumn": 12, + "endLine": 521, + "endColumn": 22, + "byteLength": 10 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "never_terminates." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 519, + "startColumn": 28, + "endLine": 519, + "endColumn": 34, + "byteLength": 6 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function quick_exit." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 521, + "startColumn": 12, + "endLine": 521, + "endColumn": 22, + "byteLength": 10 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function rand." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 272, + "startColumn": 11, + "endLine": 272, + "endColumn": 15, + "byteLength": 4 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_range." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 270, + "startColumn": 26, + "endLine": 270, + "endColumn": 55, + "byteLength": 29 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function rand." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 268, + "startColumn": 12, + "endLine": 268, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function rand." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 268, + "startColumn": 12, + "endLine": 268, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term __fc_random_counter in function rand." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 269, + "startColumn": 12, + "endLine": 269, + "endColumn": 31, + "byteLength": 19 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function random." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 281, + "startColumn": 16, + "endLine": 281, + "endColumn": 22, + "byteLength": 6 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_range." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 279, + "startColumn": 24, + "endLine": 279, + "endColumn": 53, + "byteLength": 29 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function random." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 281, + "startColumn": 16, + "endLine": 281, + "endColumn": 22, + "byteLength": 6 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function random." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 278, + "startColumn": 10, + "endLine": 278, + "endColumn": 17, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior allocation in function realloc." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 452, + "startColumn": 12, + "endLine": 452, + "endColumn": 13, + "byteLength": 1 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior deallocation in function realloc." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 452, + "startColumn": 12, + "endLine": 452, + "endColumn": 13, + "byteLength": 1 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function realloc." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 452, + "startColumn": 12, + "endLine": 452, + "endColumn": 13, + "byteLength": 1 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior fail in function realloc." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 452, + "startColumn": 12, + "endLine": 452, + "endColumn": 13, + "byteLength": 1 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "freeable." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 422, + "startColumn": 22, + "endLine": 422, + "endColumn": 52, + "byteLength": 30 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "can_allocate." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 429, + "startColumn": 27, + "endLine": 429, + "endColumn": 45, + "byteLength": 18 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "nonnull_ptr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 435, + "startColumn": 26, + "endLine": 435, + "endColumn": 38, + "byteLength": 12 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "can_allocate." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 436, + "startColumn": 27, + "endLine": 436, + "endColumn": 45, + "byteLength": 18 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "cannot_allocate." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 442, + "startColumn": 30, + "endLine": 442, + "endColumn": 49, + "byteLength": 19 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "allocation." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 432, + "startColumn": 25, + "endLine": 432, + "endColumn": 45, + "byteLength": 20 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "freed." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 438, + "startColumn": 20, + "endLine": 438, + "endColumn": 35, + "byteLength": 15 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "freeable." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 439, + "startColumn": 23, + "endLine": 439, + "endColumn": 61, + "byteLength": 38 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "null_result." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 446, + "startColumn": 26, + "endLine": 446, + "endColumn": 42, + "byteLength": 16 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function realloc." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 452, + "startColumn": 12, + "endLine": 452, + "endColumn": 13, + "byteLength": 1 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function realloc." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 425, + "startColumn": 11, + "endLine": 425, + "endColumn": 27, + "byteLength": 16 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function realloc." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 452, + "startColumn": 12, + "endLine": 452, + "endColumn": 13, + "byteLength": 1 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function realloc." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 431, + "startColumn": 13, + "endLine": 431, + "endColumn": 20, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term __fc_heap_status in function realloc." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 425, + "startColumn": 11, + "endLine": 425, + "endColumn": 27, + "byteLength": 16 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function realloc." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 426, + "startColumn": 11, + "endLine": 426, + "endColumn": 18, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function realloc." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 445, + "startColumn": 13, + "endLine": 445, + "endColumn": 20, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "allocates/frees clause in function realloc." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 430, + "startColumn": 15, + "endLine": 430, + "endColumn": 22, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "allocates/frees clause in function realloc." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 437, + "startColumn": 11, + "endLine": 437, + "endColumn": 14, + "byteLength": 3 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "allocates/frees clause in function realloc." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 424, + "startColumn": 9, + "endLine": 424, + "endColumn": 12, + "byteLength": 3 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "allocates/frees clause in function realloc." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 452, + "startColumn": 12, + "endLine": 452, + "endColumn": 13, + "byteLength": 1 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "complete clause in function realloc." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 452, + "startColumn": 12, + "endLine": 452, + "endColumn": 13, + "byteLength": 1 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "disjoint clause in function realloc." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 452, + "startColumn": 12, + "endLine": 452, + "endColumn": 13, + "byteLength": 1 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "disjoint clause in function realloc." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 452, + "startColumn": 12, + "endLine": 452, + "endColumn": 13, + "byteLength": 1 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function seed48." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 307, + "startColumn": 22, + "endLine": 307, + "endColumn": 23, + "byteLength": 1 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "initialization." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 300, + "startColumn": 47, + "endLine": 300, + "endColumn": 75, + "byteLength": 28 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "random48_initialized." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 304, + "startColumn": 32, + "endLine": 304, + "endColumn": 55, + "byteLength": 23 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_counter." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 305, + "startColumn": 26, + "endLine": 305, + "endColumn": 60, + "byteLength": 34 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function seed48." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 301, + "startColumn": 10, + "endLine": 301, + "endColumn": 37, + "byteLength": 27 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term __fc_random48_counter[0 .. 2] in function seed48." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 301, + "startColumn": 10, + "endLine": 301, + "endColumn": 37, + "byteLength": 27 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term __fc_random48_init in function seed48." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 302, + "startColumn": 10, + "endLine": 302, + "endColumn": 28, + "byteLength": 18 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function seed48." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 303, + "startColumn": 10, + "endLine": 303, + "endColumn": 17, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function setenv." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 507, + "startColumn": 11, + "endLine": 507, + "endColumn": 17, + "byteLength": 6 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_name." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 500, + "startColumn": 23, + "endLine": 500, + "endColumn": 46, + "byteLength": 23 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_value." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 501, + "startColumn": 24, + "endLine": 501, + "endColumn": 48, + "byteLength": 24 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_ok_or_error." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 505, + "startColumn": 30, + "endLine": 505, + "endColumn": 59, + "byteLength": 29 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function setenv." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 502, + "startColumn": 10, + "endLine": 502, + "endColumn": 17, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function setenv." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 502, + "startColumn": 10, + "endLine": 502, + "endColumn": 17, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term __fc_env[0 ..] in function setenv." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 502, + "startColumn": 19, + "endLine": 502, + "endColumn": 32, + "byteLength": 13 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function srand." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 275, + "startColumn": 12, + "endLine": 275, + "endColumn": 17, + "byteLength": 5 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function srand." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 274, + "startColumn": 12, + "endLine": 274, + "endColumn": 31, + "byteLength": 19 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term __fc_random_counter in function srand." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 274, + "startColumn": 12, + "endLine": 274, + "endColumn": 31, + "byteLength": 19 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function srand48." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 297, + "startColumn": 12, + "endLine": 297, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "random48_initialized." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 295, + "startColumn": 32, + "endLine": 295, + "endColumn": 55, + "byteLength": 23 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function srand48." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 293, + "startColumn": 10, + "endLine": 293, + "endColumn": 37, + "byteLength": 27 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term __fc_random48_counter[0 .. 2] in function srand48." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 293, + "startColumn": 10, + "endLine": 293, + "endColumn": 37, + "byteLength": 27 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term __fc_random48_init in function srand48." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 294, + "startColumn": 10, + "endLine": 294, + "endColumn": 28, + "byteLength": 18 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function srandom." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 284, + "startColumn": 12, + "endLine": 284, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function srandom." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 283, + "startColumn": 12, + "endLine": 283, + "endColumn": 31, + "byteLength": 19 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term __fc_random_counter in function srandom." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 283, + "startColumn": 12, + "endLine": 283, + "endColumn": 31, + "byteLength": 19 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function stpcpy." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 405, + "startColumn": 12, + "endLine": 405, + "endColumn": 13, + "byteLength": 1 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_string_src." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 396, + "startColumn": 31, + "endLine": 396, + "endColumn": 53, + "byteLength": 22 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "room_string." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 397, + "startColumn": 26, + "endLine": 397, + "endColumn": 55, + "byteLength": 29 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "separation." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 399, + "startColumn": 4, + "endLine": 399, + "endColumn": 59, + "byteLength": 55 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "equal_contents." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 402, + "startColumn": 28, + "endLine": 402, + "endColumn": 49, + "byteLength": 21 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "points_to_end." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 403, + "startColumn": 27, + "endLine": 403, + "endColumn": 57, + "byteLength": 30 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function stpcpy." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 400, + "startColumn": 12, + "endLine": 400, + "endColumn": 32, + "byteLength": 20 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term *(dest + (0 .. strlen{Old}(src))) in function stpcpy." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 400, + "startColumn": 12, + "endLine": 400, + "endColumn": 32, + "byteLength": 20 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function stpcpy." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 401, + "startColumn": 12, + "endLine": 401, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function strcasecmp." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 167, + "startColumn": 4, + "endLine": 177, + "endColumn": 1, + "byteLength": 284 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_string_s1." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/strings.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 46, + "startColumn": 28, + "endLine": 46, + "endColumn": 49, + "byteLength": 21 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_string_s2." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/strings.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 47, + "startColumn": 28, + "endLine": 47, + "endColumn": 49, + "byteLength": 21 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function strcasecmp." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 167, + "startColumn": 4, + "endLine": 177, + "endColumn": 1, + "byteLength": 284 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function strcasecmp." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/strings.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 48, + "startColumn": 10, + "endLine": 48, + "endColumn": 17, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function strcasestr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 239, + "startColumn": 12, + "endLine": 239, + "endColumn": 13, + "byteLength": 1 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_string_haystack." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 231, + "startColumn": 36, + "endLine": 231, + "endColumn": 63, + "byteLength": 27 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_string_needle." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 232, + "startColumn": 34, + "endLine": 232, + "endColumn": 59, + "byteLength": 25 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_null_or_in_haystack." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 236, + "startColumn": 4, + "endLine": 237, + "endColumn": 65, + "byteLength": 82 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function strcasestr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 239, + "startColumn": 12, + "endLine": 239, + "endColumn": 13, + "byteLength": 1 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function strcasestr." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 233, + "startColumn": 12, + "endLine": 233, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function strcat." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 179, + "startColumn": 4, + "endLine": 188, + "endColumn": 1, + "byteLength": 174 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_string_src." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 408, + "startColumn": 31, + "endLine": 408, + "endColumn": 53, + "byteLength": 22 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_string_dest." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 409, + "startColumn": 32, + "endLine": 409, + "endColumn": 50, + "byteLength": 18 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "room_string." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 410, + "startColumn": 26, + "endLine": 410, + "endColumn": 70, + "byteLength": 44 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "sum_of_lengths." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 413, + "startColumn": 28, + "endLine": 413, + "endColumn": 76, + "byteLength": 48 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "initialization." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 416, + "startColumn": 4, + "endLine": 416, + "endColumn": 60, + "byteLength": 56 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "dest_null_terminated." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 417, + "startColumn": 34, + "endLine": 417, + "endColumn": 77, + "byteLength": 43 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_ptr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 418, + "startColumn": 24, + "endLine": 418, + "endColumn": 39, + "byteLength": 15 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function strcat." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 411, + "startColumn": 12, + "endLine": 411, + "endColumn": 58, + "byteLength": 46 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term *(dest +\n (strlen{Old}(dest) ..\n strlen{Old}(dest) +\n strlen{Old}(src))) in function strcat." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 411, + "startColumn": 12, + "endLine": 411, + "endColumn": 58, + "byteLength": 46 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function strcat." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 414, + "startColumn": 12, + "endLine": 414, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "specialization of valid_string_s at stmt 191." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 182, + "startColumn": 13, + "endLine": 182, + "endColumn": 25, + "byteLength": 12 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "error", + "message": { "text": "reachability of stmt line 182 in strcat." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 182, + "startColumn": 13, + "endLine": 182, + "endColumn": 25, + "byteLength": 12 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default in function strchr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 225, + "startColumn": 5, + "endLine": 232, + "endColumn": 1, + "byteLength": 158 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function strchr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 225, + "startColumn": 5, + "endLine": 232, + "endColumn": 1, + "byteLength": 158 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior found in function strchr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 225, + "startColumn": 5, + "endLine": 232, + "endColumn": 1, + "byteLength": 158 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior not_found in function strchr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 225, + "startColumn": 5, + "endLine": 232, + "endColumn": 1, + "byteLength": 158 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_string_s." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 157, + "startColumn": 29, + "endLine": 157, + "endColumn": 49, + "byteLength": 20 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "char_found." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 160, + "startColumn": 24, + "endLine": 160, + "endColumn": 35, + "byteLength": 11 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "char_not_found." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 167, + "startColumn": 28, + "endLine": 167, + "endColumn": 40, + "byteLength": 12 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_char." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 161, + "startColumn": 25, + "endLine": 161, + "endColumn": 44, + "byteLength": 19 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_same_base." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 162, + "startColumn": 30, + "endLine": 162, + "endColumn": 66, + "byteLength": 36 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_in_length." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 163, + "startColumn": 30, + "endLine": 163, + "endColumn": 59, + "byteLength": 29 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_valid_string." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 164, + "startColumn": 33, + "endLine": 164, + "endColumn": 59, + "byteLength": 26 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_first_occur." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 165, + "startColumn": 32, + "endLine": 165, + "endColumn": 79, + "byteLength": 47 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_null." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 168, + "startColumn": 25, + "endLine": 168, + "endColumn": 41, + "byteLength": 16 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_null_or_same_base." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 171, + "startColumn": 4, + "endLine": 171, + "endColumn": 60, + "byteLength": 56 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function strchr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 225, + "startColumn": 5, + "endLine": 232, + "endColumn": 1, + "byteLength": 158 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function strchr." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 158, + "startColumn": 12, + "endLine": 158, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function strchrnul." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 179, + "startColumn": 12, + "endLine": 179, + "endColumn": 13, + "byteLength": 1 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_string_s." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 175, + "startColumn": 29, + "endLine": 175, + "endColumn": 49, + "byteLength": 20 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_same_base." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 177, + "startColumn": 30, + "endLine": 177, + "endColumn": 64, + "byteLength": 34 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function strchrnul." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 179, + "startColumn": 12, + "endLine": 179, + "endColumn": 13, + "byteLength": 1 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function strchrnul." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 176, + "startColumn": 12, + "endLine": 176, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function strcmp." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 127, + "startColumn": 4, + "endLine": 134, + "endColumn": 1, + "byteLength": 189 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_string_s1." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 137, + "startColumn": 30, + "endLine": 137, + "endColumn": 51, + "byteLength": 21 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_string_s2." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 138, + "startColumn": 30, + "endLine": 138, + "endColumn": 51, + "byteLength": 21 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "acsl_c_equiv." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 140, + "startColumn": 26, + "endLine": 140, + "endColumn": 50, + "byteLength": 24 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function strcmp." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 127, + "startColumn": 4, + "endLine": 134, + "endColumn": 1, + "byteLength": 189 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function strcmp." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 139, + "startColumn": 12, + "endLine": 139, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function strcoll." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 155, + "startColumn": 11, + "endLine": 155, + "endColumn": 18, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_string_s1." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 151, + "startColumn": 30, + "endLine": 151, + "endColumn": 51, + "byteLength": 21 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_string_s2." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 152, + "startColumn": 30, + "endLine": 152, + "endColumn": 51, + "byteLength": 21 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function strcoll." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 155, + "startColumn": 11, + "endLine": 155, + "endColumn": 18, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function strcoll." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 153, + "startColumn": 12, + "endLine": 153, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function strcpy." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 204, + "startColumn": 4, + "endLine": 211, + "endColumn": 1, + "byteLength": 137 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_string_src." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 351, + "startColumn": 31, + "endLine": 351, + "endColumn": 53, + "byteLength": 22 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "room_string." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 352, + "startColumn": 26, + "endLine": 352, + "endColumn": 55, + "byteLength": 29 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "separation." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 354, + "startColumn": 4, + "endLine": 354, + "endColumn": 59, + "byteLength": 55 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "equal_contents." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 357, + "startColumn": 28, + "endLine": 357, + "endColumn": 49, + "byteLength": 21 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_ptr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 358, + "startColumn": 24, + "endLine": 358, + "endColumn": 39, + "byteLength": 15 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function strcpy." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 355, + "startColumn": 12, + "endLine": 355, + "endColumn": 32, + "byteLength": 20 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term *(dest + (0 .. strlen{Old}(src))) in function strcpy." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 355, + "startColumn": 12, + "endLine": 355, + "endColumn": 32, + "byteLength": 20 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function strcpy." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 356, + "startColumn": 12, + "endLine": 356, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function strcspn." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 202, + "startColumn": 14, + "endLine": 202, + "endColumn": 21, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_string_s." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 197, + "startColumn": 29, + "endLine": 197, + "endColumn": 49, + "byteLength": 20 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_string_reject." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 198, + "startColumn": 34, + "endLine": 198, + "endColumn": 59, + "byteLength": 25 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_bounded." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 200, + "startColumn": 28, + "endLine": 200, + "endColumn": 53, + "byteLength": 25 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function strcspn." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 202, + "startColumn": 14, + "endLine": 202, + "endColumn": 21, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function strcspn." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 199, + "startColumn": 12, + "endLine": 199, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior allocation in function strdup." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 290, + "startColumn": 5, + "endLine": 300, + "endColumn": 1, + "byteLength": 159 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function strdup." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 290, + "startColumn": 5, + "endLine": 300, + "endColumn": 1, + "byteLength": 159 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior no_allocation in function strdup." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 290, + "startColumn": 5, + "endLine": 300, + "endColumn": 1, + "byteLength": 159 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_string_s." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 468, + "startColumn": 29, + "endLine": 468, + "endColumn": 49, + "byteLength": 20 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "can_allocate." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 472, + "startColumn": 26, + "endLine": 472, + "endColumn": 49, + "byteLength": 23 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "cannot_allocate." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 479, + "startColumn": 29, + "endLine": 479, + "endColumn": 53, + "byteLength": 24 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "allocation." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 475, + "startColumn": 24, + "endLine": 475, + "endColumn": 49, + "byteLength": 25 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_valid_string_and_same_contents." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 477, + "startColumn": 4, + "endLine": 477, + "endColumn": 51, + "byteLength": 47 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_null." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 482, + "startColumn": 25, + "endLine": 482, + "endColumn": 41, + "byteLength": 16 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function strdup." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 473, + "startColumn": 12, + "endLine": 473, + "endColumn": 28, + "byteLength": 16 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function strdup." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 290, + "startColumn": 5, + "endLine": 300, + "endColumn": 1, + "byteLength": 159 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function strdup." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 290, + "startColumn": 5, + "endLine": 300, + "endColumn": 1, + "byteLength": 159 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term __fc_heap_status in function strdup." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 473, + "startColumn": 12, + "endLine": 473, + "endColumn": 28, + "byteLength": 16 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function strdup." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 474, + "startColumn": 12, + "endLine": 474, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function strdup." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 470, + "startColumn": 12, + "endLine": 470, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function strdup." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 480, + "startColumn": 12, + "endLine": 480, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "allocates/frees clause in function strdup." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 469, + "startColumn": 14, + "endLine": 469, + "endColumn": 21, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "allocates/frees clause in function strdup." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 290, + "startColumn": 5, + "endLine": 300, + "endColumn": 1, + "byteLength": 159 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "specialization of valid_string_s at stmt 353." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 292, + "startColumn": 13, + "endLine": 292, + "endColumn": 22, + "byteLength": 9 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "error", + "message": { "text": "reachability of stmt line 292 in strdup." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 292, + "startColumn": 13, + "endLine": 292, + "endColumn": 22, + "byteLength": 9 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "specialization of valid_dest at stmt 360." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 298, + "startColumn": 2, + "endLine": 298, + "endColumn": 17, + "byteLength": 15 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "specialization of valid_src at stmt 360." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 298, + "startColumn": 2, + "endLine": 298, + "endColumn": 17, + "byteLength": 15 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "specialization of separation at stmt 360." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 298, + "startColumn": 2, + "endLine": 298, + "endColumn": 17, + "byteLength": 15 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "error", + "message": { "text": "reachability of stmt line 298 in strdup." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 298, + "startColumn": 2, + "endLine": 298, + "endColumn": 17, + "byteLength": 15 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function strerror." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 277, + "startColumn": 5, + "endLine": 287, + "endColumn": 1, + "byteLength": 184 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_internal_str." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 343, + "startColumn": 33, + "endLine": 343, + "endColumn": 59, + "byteLength": 26 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_nul_terminated." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 344, + "startColumn": 35, + "endLine": 344, + "endColumn": 51, + "byteLength": 16 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_valid_string." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 345, + "startColumn": 33, + "endLine": 345, + "endColumn": 59, + "byteLength": 26 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function strerror." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 277, + "startColumn": 5, + "endLine": 287, + "endColumn": 1, + "byteLength": 184 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function strerror." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 342, + "startColumn": 12, + "endLine": 342, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "specialization of valid_p at stmt 347." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 281, + "startColumn": 4, + "endLine": 281, + "endColumn": 43, + "byteLength": 39 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "error", + "message": { "text": "reachability of stmt line 281 in strerror." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 281, + "startColumn": 4, + "endLine": 281, + "endColumn": 43, + "byteLength": 39 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function strlcat." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 455, + "startColumn": 14, + "endLine": 455, + "endColumn": 21, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_string_src." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 448, + "startColumn": 31, + "endLine": 448, + "endColumn": 53, + "byteLength": 22 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_string_dest." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 449, + "startColumn": 32, + "endLine": 449, + "endColumn": 50, + "byteLength": 18 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "room_nstring." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 450, + "startColumn": 27, + "endLine": 450, + "endColumn": 48, + "byteLength": 21 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "bounded_result." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 453, + "startColumn": 28, + "endLine": 453, + "endColumn": 65, + "byteLength": 37 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function strlcat." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 451, + "startColumn": 12, + "endLine": 451, + "endColumn": 33, + "byteLength": 21 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term *(dest + (strlen{Old}(dest) .. n)) in function strlcat." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 451, + "startColumn": 12, + "endLine": 451, + "endColumn": 33, + "byteLength": 21 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function strlcat." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 452, + "startColumn": 12, + "endLine": 452, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function strlcpy." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 393, + "startColumn": 7, + "endLine": 393, + "endColumn": 14, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_string_src." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 384, + "startColumn": 31, + "endLine": 384, + "endColumn": 53, + "byteLength": 22 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "room_nstring." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 385, + "startColumn": 27, + "endLine": 385, + "endColumn": 48, + "byteLength": 21 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "separation." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 387, + "startColumn": 4, + "endLine": 387, + "endColumn": 61, + "byteLength": 57 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "initialization." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 390, + "startColumn": 28, + "endLine": 390, + "endColumn": 73, + "byteLength": 45 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "bounded_result." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 391, + "startColumn": 28, + "endLine": 391, + "endColumn": 50, + "byteLength": 22 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function strlcpy." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 388, + "startColumn": 12, + "endLine": 388, + "endColumn": 24, + "byteLength": 12 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term *(dest + (0 .. n - 1)) in function strlcpy." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 388, + "startColumn": 12, + "endLine": 388, + "endColumn": 24, + "byteLength": 12 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function strlcpy." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 389, + "startColumn": 12, + "endLine": 389, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function strlen." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 104, + "startColumn": 7, + "endLine": 109, + "endColumn": 1, + "byteLength": 80 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_string_s." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 125, + "startColumn": 29, + "endLine": 125, + "endColumn": 49, + "byteLength": 20 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "acsl_c_equiv." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 127, + "startColumn": 26, + "endLine": 127, + "endColumn": 46, + "byteLength": 20 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function strlen." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 104, + "startColumn": 7, + "endLine": 109, + "endColumn": 1, + "byteLength": 80 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function strlen." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 126, + "startColumn": 12, + "endLine": 126, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function strncasecmp." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/strings.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 57, + "startColumn": 11, + "endLine": 57, + "endColumn": 22, + "byteLength": 11 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_string_s1." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/strings.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 53, + "startColumn": 28, + "endLine": 53, + "endColumn": 53, + "byteLength": 25 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_string_s2." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/strings.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 54, + "startColumn": 28, + "endLine": 54, + "endColumn": 53, + "byteLength": 25 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function strncasecmp." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/strings.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 57, + "startColumn": 11, + "endLine": 57, + "endColumn": 22, + "byteLength": 11 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function strncasecmp." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/strings.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 55, + "startColumn": 10, + "endLine": 55, + "endColumn": 17, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior complete in function strncat." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 191, + "startColumn": 4, + "endLine": 202, + "endColumn": 1, + "byteLength": 233 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function strncat." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 191, + "startColumn": 4, + "endLine": 202, + "endColumn": 1, + "byteLength": 233 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior partial in function strncat." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 191, + "startColumn": 4, + "endLine": 202, + "endColumn": 1, + "byteLength": 233 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_nstring_src." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 423, + "startColumn": 32, + "endLine": 423, + "endColumn": 58, + "byteLength": 26 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_string_dest." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 424, + "startColumn": 32, + "endLine": 424, + "endColumn": 50, + "byteLength": 18 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "room_string." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 430, + "startColumn": 26, + "endLine": 430, + "endColumn": 74, + "byteLength": 48 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "room_string." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 438, + "startColumn": 26, + "endLine": 438, + "endColumn": 64, + "byteLength": 38 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_string_src_fits." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 429, + "startColumn": 35, + "endLine": 429, + "endColumn": 77, + "byteLength": 42 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_string_src_too_large." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 437, + "startColumn": 4, + "endLine": 437, + "endColumn": 49, + "byteLength": 45 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_ptr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 427, + "startColumn": 24, + "endLine": 427, + "endColumn": 39, + "byteLength": 15 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "sum_of_lengths." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 434, + "startColumn": 28, + "endLine": 434, + "endColumn": 76, + "byteLength": 48 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "sum_of_bounded_lengths." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 442, + "startColumn": 36, + "endLine": 442, + "endColumn": 74, + "byteLength": 38 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function strncat." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 431, + "startColumn": 12, + "endLine": 431, + "endColumn": 58, + "byteLength": 46 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function strncat." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 425, + "startColumn": 12, + "endLine": 425, + "endColumn": 50, + "byteLength": 38 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function strncat." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 439, + "startColumn": 12, + "endLine": 439, + "endColumn": 48, + "byteLength": 36 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term *(dest +\n (strlen{Old}(dest) ..\n strlen{Old}(dest) +\n strlen{Old}(src))) in function strncat." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 431, + "startColumn": 12, + "endLine": 431, + "endColumn": 58, + "byteLength": 46 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function strncat." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 433, + "startColumn": 12, + "endLine": 433, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term *(dest + (strlen{Old}(dest) .. strlen{Old}(dest) + n)) in function strncat." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 425, + "startColumn": 12, + "endLine": 425, + "endColumn": 50, + "byteLength": 38 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function strncat." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 426, + "startColumn": 12, + "endLine": 426, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term *(dest + (strlen{Old}(dest) .. strlen{Old}(dest) + n)) in function strncat." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 439, + "startColumn": 12, + "endLine": 439, + "endColumn": 48, + "byteLength": 36 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function strncat." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 441, + "startColumn": 12, + "endLine": 441, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "specialization of valid_string_s at stmt 204." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 193, + "startColumn": 20, + "endLine": 193, + "endColumn": 32, + "byteLength": 12 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "error", + "message": { "text": "reachability of stmt line 193 in strncat." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 193, + "startColumn": 20, + "endLine": 193, + "endColumn": 32, + "byteLength": 12 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function strncmp." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 136, + "startColumn": 4, + "endLine": 145, + "endColumn": 1, + "byteLength": 267 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_string_s1." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 144, + "startColumn": 30, + "endLine": 144, + "endColumn": 55, + "byteLength": 25 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_string_s2." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 145, + "startColumn": 30, + "endLine": 145, + "endColumn": 55, + "byteLength": 25 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "acsl_c_equiv." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 147, + "startColumn": 26, + "endLine": 147, + "endColumn": 53, + "byteLength": 27 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function strncmp." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 136, + "startColumn": 4, + "endLine": 145, + "endColumn": 1, + "byteLength": 267 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function strncmp." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 146, + "startColumn": 12, + "endLine": 146, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior complete in function strncpy." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 213, + "startColumn": 5, + "endLine": 223, + "endColumn": 1, + "byteLength": 198 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function strncpy." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 213, + "startColumn": 5, + "endLine": 223, + "endColumn": 1, + "byteLength": 198 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior partial in function strncpy." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 213, + "startColumn": 5, + "endLine": 223, + "endColumn": 1, + "byteLength": 198 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_nstring_src." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 363, + "startColumn": 32, + "endLine": 363, + "endColumn": 58, + "byteLength": 26 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "room_nstring." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 364, + "startColumn": 27, + "endLine": 364, + "endColumn": 50, + "byteLength": 23 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "separation." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 366, + "startColumn": 4, + "endLine": 366, + "endColumn": 43, + "byteLength": 39 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "src_fits." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 372, + "startColumn": 22, + "endLine": 372, + "endColumn": 37, + "byteLength": 15 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "src_too_long." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 375, + "startColumn": 26, + "endLine": 375, + "endColumn": 42, + "byteLength": 16 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_ptr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 369, + "startColumn": 24, + "endLine": 369, + "endColumn": 39, + "byteLength": 15 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "initialization." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 370, + "startColumn": 28, + "endLine": 370, + "endColumn": 57, + "byteLength": 29 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "equal_after_copy." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 373, + "startColumn": 30, + "endLine": 373, + "endColumn": 51, + "byteLength": 21 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "equal_prefix." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 376, + "startColumn": 26, + "endLine": 376, + "endColumn": 60, + "byteLength": 34 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function strncpy." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 367, + "startColumn": 12, + "endLine": 367, + "endColumn": 26, + "byteLength": 14 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term *(dest + (0 .. n - 1)) in function strncpy." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 367, + "startColumn": 12, + "endLine": 367, + "endColumn": 26, + "byteLength": 14 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function strncpy." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 368, + "startColumn": 12, + "endLine": 368, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior allocation in function strndup." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 303, + "startColumn": 5, + "endLine": 318, + "endColumn": 1, + "byteLength": 291 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function strndup." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 303, + "startColumn": 5, + "endLine": 318, + "endColumn": 1, + "byteLength": 291 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "behavior no_allocation in function strndup." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 303, + "startColumn": 5, + "endLine": 318, + "endColumn": 1, + "byteLength": 291 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_string_s." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 486, + "startColumn": 29, + "endLine": 486, + "endColumn": 49, + "byteLength": 20 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "can_allocate." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 491, + "startColumn": 26, + "endLine": 491, + "endColumn": 60, + "byteLength": 34 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "cannot_allocate." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 501, + "startColumn": 29, + "endLine": 501, + "endColumn": 64, + "byteLength": 35 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "allocation." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 495, + "startColumn": 24, + "endLine": 495, + "endColumn": 60, + "byteLength": 36 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "result_valid_string_bounded_and_same_prefix." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 497, + "startColumn": 4, + "endLine": 499, + "endColumn": 29, + "byteLength": 124 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_null." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 504, + "startColumn": 25, + "endLine": 504, + "endColumn": 41, + "byteLength": 16 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function strndup." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 492, + "startColumn": 12, + "endLine": 492, + "endColumn": 28, + "byteLength": 16 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function strndup." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 303, + "startColumn": 5, + "endLine": 318, + "endColumn": 1, + "byteLength": 291 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function strndup." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 303, + "startColumn": 5, + "endLine": 318, + "endColumn": 1, + "byteLength": 291 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term __fc_heap_status in function strndup." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 492, + "startColumn": 12, + "endLine": 492, + "endColumn": 28, + "byteLength": 16 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function strndup." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 493, + "startColumn": 12, + "endLine": 493, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function strndup." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 488, + "startColumn": 12, + "endLine": 488, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function strndup." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 502, + "startColumn": 12, + "endLine": 502, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "allocates/frees clause in function strndup." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 487, + "startColumn": 14, + "endLine": 487, + "endColumn": 21, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "allocates/frees clause in function strndup." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 303, + "startColumn": 5, + "endLine": 318, + "endColumn": 1, + "byteLength": 291 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "specialization of valid_dest at stmt 380." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 315, + "startColumn": 2, + "endLine": 315, + "endColumn": 17, + "byteLength": 15 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "specialization of valid_src at stmt 380." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 315, + "startColumn": 2, + "endLine": 315, + "endColumn": 17, + "byteLength": 15 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "specialization of separation at stmt 380." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 315, + "startColumn": 2, + "endLine": 315, + "endColumn": 17, + "byteLength": 15 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "error", + "message": { "text": "reachability of stmt line 315 in strndup." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 315, + "startColumn": 2, + "endLine": 315, + "endColumn": 17, + "byteLength": 15 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function strnlen." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 111, + "startColumn": 7, + "endLine": 116, + "endColumn": 1, + "byteLength": 110 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_string_s." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 131, + "startColumn": 29, + "endLine": 131, + "endColumn": 53, + "byteLength": 24 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_bounded." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 133, + "startColumn": 28, + "endLine": 133, + "endColumn": 64, + "byteLength": 36 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function strnlen." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 111, + "startColumn": 7, + "endLine": 116, + "endColumn": 1, + "byteLength": 110 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function strnlen." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 132, + "startColumn": 12, + "endLine": 132, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function strpbrk." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 218, + "startColumn": 12, + "endLine": 218, + "endColumn": 13, + "byteLength": 1 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_string_s." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 212, + "startColumn": 29, + "endLine": 212, + "endColumn": 49, + "byteLength": 20 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_string_accept." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 213, + "startColumn": 34, + "endLine": 213, + "endColumn": 59, + "byteLength": 25 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_null_or_same_base." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 216, + "startColumn": 4, + "endLine": 216, + "endColumn": 60, + "byteLength": 56 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function strpbrk." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 218, + "startColumn": 12, + "endLine": 218, + "endColumn": 13, + "byteLength": 1 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function strpbrk." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 214, + "startColumn": 12, + "endLine": 214, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default in function strrchr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 234, + "startColumn": 5, + "endLine": 240, + "endColumn": 1, + "byteLength": 165 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function strrchr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 234, + "startColumn": 5, + "endLine": 240, + "endColumn": 1, + "byteLength": 165 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior found in function strrchr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 234, + "startColumn": 5, + "endLine": 240, + "endColumn": 1, + "byteLength": 165 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior not_found in function strrchr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 234, + "startColumn": 5, + "endLine": 240, + "endColumn": 1, + "byteLength": 165 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_string_s." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 181, + "startColumn": 29, + "endLine": 181, + "endColumn": 49, + "byteLength": 20 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "char_found." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 184, + "startColumn": 24, + "endLine": 184, + "endColumn": 35, + "byteLength": 11 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "char_not_found." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 189, + "startColumn": 28, + "endLine": 189, + "endColumn": 40, + "byteLength": 12 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_char." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 185, + "startColumn": 25, + "endLine": 185, + "endColumn": 38, + "byteLength": 13 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_same_base." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 186, + "startColumn": 30, + "endLine": 186, + "endColumn": 66, + "byteLength": 36 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_valid_string." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 187, + "startColumn": 33, + "endLine": 187, + "endColumn": 59, + "byteLength": 26 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_null." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 190, + "startColumn": 25, + "endLine": 190, + "endColumn": 41, + "byteLength": 16 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_null_or_same_base." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 193, + "startColumn": 4, + "endLine": 193, + "endColumn": 60, + "byteLength": 56 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function strrchr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 234, + "startColumn": 5, + "endLine": 240, + "endColumn": 1, + "byteLength": 165 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function strrchr." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 182, + "startColumn": 12, + "endLine": 182, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "specialization of valid_string_s at stmt 269." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 237, + "startColumn": 18, + "endLine": 237, + "endColumn": 27, + "byteLength": 9 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "error", + "message": { "text": "reachability of stmt line 237 in strrchr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 237, + "startColumn": 18, + "endLine": 237, + "endColumn": 27, + "byteLength": 9 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function strsep." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 334, + "startColumn": 12, + "endLine": 334, + "endColumn": 13, + "byteLength": 1 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_string_stringp." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 329, + "startColumn": 35, + "endLine": 329, + "endColumn": 76, + "byteLength": 41 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_string_delim." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 330, + "startColumn": 33, + "endLine": 330, + "endColumn": 57, + "byteLength": 24 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function strsep." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 331, + "startColumn": 12, + "endLine": 331, + "endColumn": 20, + "byteLength": 8 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term *stringp in function strsep." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 331, + "startColumn": 12, + "endLine": 331, + "endColumn": 20, + "byteLength": 8 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function strsep." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 332, + "startColumn": 12, + "endLine": 332, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function strsignal." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 323, + "startColumn": 5, + "endLine": 333, + "endColumn": 1, + "byteLength": 190 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_internal_str." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 519, + "startColumn": 33, + "endLine": 519, + "endColumn": 60, + "byteLength": 27 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_nul_terminated." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 520, + "startColumn": 35, + "endLine": 520, + "endColumn": 51, + "byteLength": 16 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_valid_string." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 521, + "startColumn": 33, + "endLine": 521, + "endColumn": 59, + "byteLength": 26 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function strsignal." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 323, + "startColumn": 5, + "endLine": 333, + "endColumn": 1, + "byteLength": 190 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function strsignal." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 518, + "startColumn": 12, + "endLine": 518, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "specialization of valid_p at stmt 386." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 327, + "startColumn": 4, + "endLine": 327, + "endColumn": 44, + "byteLength": 40 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "error", + "message": { + "text": "reachability of stmt line 327 in strsignal." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 327, + "startColumn": 4, + "endLine": 327, + "endColumn": 44, + "byteLength": 40 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function strspn." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 210, + "startColumn": 14, + "endLine": 210, + "endColumn": 20, + "byteLength": 6 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_string_s." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 204, + "startColumn": 29, + "endLine": 204, + "endColumn": 49, + "byteLength": 20 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_string_accept." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 205, + "startColumn": 34, + "endLine": 205, + "endColumn": 59, + "byteLength": 25 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_bounded." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 208, + "startColumn": 28, + "endLine": 208, + "endColumn": 53, + "byteLength": 25 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function strspn." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 206, + "startColumn": 12, + "endLine": 206, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function strspn." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 206, + "startColumn": 12, + "endLine": 206, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function strspn." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 207, + "startColumn": 12, + "endLine": 207, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function strstr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 260, + "startColumn": 5, + "endLine": 272, + "endColumn": 1, + "byteLength": 380 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_string_haystack." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 220, + "startColumn": 36, + "endLine": 220, + "endColumn": 63, + "byteLength": 27 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_string_needle." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 221, + "startColumn": 34, + "endLine": 221, + "endColumn": 59, + "byteLength": 25 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_null_or_in_haystack." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 225, + "startColumn": 4, + "endLine": 227, + "endColumn": 59, + "byteLength": 141 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function strstr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.c", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 260, + "startColumn": 5, + "endLine": 272, + "endColumn": 1, + "byteLength": 380 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function strstr." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 222, + "startColumn": 12, + "endLine": 222, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function strtod." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 116, + "startColumn": 14, + "endLine": 116, + "endColumn": 20, + "byteLength": 6 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior no_storage in function strtod." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 116, + "startColumn": 14, + "endLine": 116, + "endColumn": 20, + "byteLength": 6 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "behavior store_position in function strtod." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 116, + "startColumn": 14, + "endLine": 116, + "endColumn": 20, + "byteLength": 6 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_nptr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 98, + "startColumn": 23, + "endLine": 98, + "endColumn": 40, + "byteLength": 17 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "separation." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 99, + "startColumn": 23, + "endLine": 99, + "endColumn": 47, + "byteLength": 24 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_endptr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 107, + "startColumn": 27, + "endLine": 107, + "endColumn": 41, + "byteLength": 14 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "null_endptr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 103, + "startColumn": 25, + "endLine": 103, + "endColumn": 40, + "byteLength": 15 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "nonnull_endptr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 106, + "startColumn": 28, + "endLine": 106, + "endColumn": 43, + "byteLength": 15 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "initialization." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 110, + "startColumn": 28, + "endLine": 110, + "endColumn": 48, + "byteLength": 20 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_endptr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 111, + "startColumn": 26, + "endLine": 111, + "endColumn": 45, + "byteLength": 19 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "position_subset." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 112, + "startColumn": 29, + "endLine": 112, + "endColumn": 60, + "byteLength": 31 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function strtod." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 100, + "startColumn": 10, + "endLine": 100, + "endColumn": 17, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function strtod." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 116, + "startColumn": 14, + "endLine": 116, + "endColumn": 20, + "byteLength": 6 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function strtod." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 108, + "startColumn": 12, + "endLine": 108, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function strtod." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 100, + "startColumn": 10, + "endLine": 100, + "endColumn": 17, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term *endptr in function strtod." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 101, + "startColumn": 10, + "endLine": 101, + "endColumn": 17, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function strtod." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 104, + "startColumn": 12, + "endLine": 104, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function strtod." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 108, + "startColumn": 12, + "endLine": 108, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term *endptr in function strtod." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 109, + "startColumn": 12, + "endLine": 109, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "complete clause in function strtod." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 116, + "startColumn": 14, + "endLine": 116, + "endColumn": 20, + "byteLength": 6 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "disjoint clause in function strtod." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 116, + "startColumn": 14, + "endLine": 116, + "endColumn": 20, + "byteLength": 6 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function strtof." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 138, + "startColumn": 13, + "endLine": 138, + "endColumn": 19, + "byteLength": 6 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior no_storage in function strtof." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 138, + "startColumn": 13, + "endLine": 138, + "endColumn": 19, + "byteLength": 6 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "behavior store_position in function strtof." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 138, + "startColumn": 13, + "endLine": 138, + "endColumn": 19, + "byteLength": 6 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_nptr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 120, + "startColumn": 23, + "endLine": 120, + "endColumn": 40, + "byteLength": 17 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "separation." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 121, + "startColumn": 23, + "endLine": 121, + "endColumn": 47, + "byteLength": 24 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_endptr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 129, + "startColumn": 27, + "endLine": 129, + "endColumn": 41, + "byteLength": 14 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "null_endptr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 125, + "startColumn": 25, + "endLine": 125, + "endColumn": 40, + "byteLength": 15 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "nonnull_endptr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 128, + "startColumn": 28, + "endLine": 128, + "endColumn": 43, + "byteLength": 15 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "initialization." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 132, + "startColumn": 28, + "endLine": 132, + "endColumn": 48, + "byteLength": 20 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_endptr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 133, + "startColumn": 26, + "endLine": 133, + "endColumn": 45, + "byteLength": 19 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "position_subset." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 134, + "startColumn": 29, + "endLine": 134, + "endColumn": 60, + "byteLength": 31 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function strtof." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 122, + "startColumn": 10, + "endLine": 122, + "endColumn": 17, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function strtof." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 138, + "startColumn": 13, + "endLine": 138, + "endColumn": 19, + "byteLength": 6 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function strtof." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 130, + "startColumn": 12, + "endLine": 130, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function strtof." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 122, + "startColumn": 10, + "endLine": 122, + "endColumn": 17, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term *endptr in function strtof." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 123, + "startColumn": 10, + "endLine": 123, + "endColumn": 17, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function strtof." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 126, + "startColumn": 12, + "endLine": 126, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function strtof." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 130, + "startColumn": 12, + "endLine": 130, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term *endptr in function strtof." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 131, + "startColumn": 12, + "endLine": 131, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "complete clause in function strtof." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 138, + "startColumn": 13, + "endLine": 138, + "endColumn": 19, + "byteLength": 6 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "disjoint clause in function strtof." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 138, + "startColumn": 13, + "endLine": 138, + "endColumn": 19, + "byteLength": 6 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function strtok." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 283, + "startColumn": 12, + "endLine": 283, + "endColumn": 13, + "byteLength": 1 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior new_str in function strtok." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 283, + "startColumn": 12, + "endLine": 283, + "endColumn": 13, + "byteLength": 1 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior resume_str in function strtok." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 283, + "startColumn": 12, + "endLine": 283, + "endColumn": 13, + "byteLength": 1 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_string_delim." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 245, + "startColumn": 31, + "endLine": 245, + "endColumn": 55, + "byteLength": 24 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_string_s_or_delim_not_found." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 258, + "startColumn": 6, + "endLine": 260, + "endColumn": 70, + "byteLength": 120 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "not_first_call." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 268, + "startColumn": 29, + "endLine": 268, + "endColumn": 53, + "byteLength": 24 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "s_not_null." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 256, + "startColumn": 24, + "endLine": 256, + "endColumn": 34, + "byteLength": 10 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "s_null." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 267, + "startColumn": 20, + "endLine": 267, + "endColumn": 30, + "byteLength": 10 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_subset." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 264, + "startColumn": 27, + "endLine": 264, + "endColumn": 72, + "byteLength": 45 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "ptr_subset." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 265, + "startColumn": 24, + "endLine": 265, + "endColumn": 57, + "byteLength": 33 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_subset." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 277, + "startColumn": 27, + "endLine": 278, + "endColumn": 72, + "byteLength": 92 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "ptr_subset." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 279, + "startColumn": 24, + "endLine": 279, + "endColumn": 77, + "byteLength": 53 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function strtok." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 246, + "startColumn": 10, + "endLine": 246, + "endColumn": 16, + "byteLength": 6 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function strtok." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 261, + "startColumn": 12, + "endLine": 261, + "endColumn": 27, + "byteLength": 15 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function strtok." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 269, + "startColumn": 12, + "endLine": 269, + "endColumn": 32, + "byteLength": 20 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term *(s + (0 ..)) in function strtok." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 246, + "startColumn": 10, + "endLine": 246, + "endColumn": 16, + "byteLength": 6 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term *(__fc_strtok_ptr + (0 ..)) in function strtok." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 248, + "startColumn": 10, + "endLine": 248, + "endColumn": 30, + "byteLength": 20 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function strtok." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 250, + "startColumn": 10, + "endLine": 250, + "endColumn": 17, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term __fc_strtok_ptr in function strtok." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 252, + "startColumn": 10, + "endLine": 252, + "endColumn": 25, + "byteLength": 15 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term __fc_strtok_ptr in function strtok." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 261, + "startColumn": 12, + "endLine": 261, + "endColumn": 27, + "byteLength": 15 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term *(s + (0 ..)) in function strtok." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 262, + "startColumn": 12, + "endLine": 262, + "endColumn": 18, + "byteLength": 6 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function strtok." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 263, + "startColumn": 12, + "endLine": 263, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term *(__fc_strtok_ptr + (0 ..)) in function strtok." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 269, + "startColumn": 12, + "endLine": 269, + "endColumn": 32, + "byteLength": 20 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term __fc_strtok_ptr in function strtok." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 272, + "startColumn": 12, + "endLine": 272, + "endColumn": 27, + "byteLength": 15 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function strtok." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 275, + "startColumn": 12, + "endLine": 275, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "complete clause in function strtok." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 283, + "startColumn": 12, + "endLine": 283, + "endColumn": 13, + "byteLength": 1 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "disjoint clause in function strtok." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 283, + "startColumn": 12, + "endLine": 283, + "endColumn": 13, + "byteLength": 1 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function strtok_r." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 327, + "startColumn": 12, + "endLine": 327, + "endColumn": 13, + "byteLength": 1 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior new_str in function strtok_r." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 327, + "startColumn": 12, + "endLine": 327, + "endColumn": 13, + "byteLength": 1 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior resume_str in function strtok_r." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 327, + "startColumn": 12, + "endLine": 327, + "endColumn": 13, + "byteLength": 1 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_string_delim." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 286, + "startColumn": 31, + "endLine": 286, + "endColumn": 55, + "byteLength": 24 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_saveptr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 287, + "startColumn": 26, + "endLine": 287, + "endColumn": 41, + "byteLength": 15 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_string_s_or_delim_not_found." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 300, + "startColumn": 6, + "endLine": 302, + "endColumn": 70, + "byteLength": 120 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "not_first_call." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 311, + "startColumn": 29, + "endLine": 311, + "endColumn": 46, + "byteLength": 17 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "initialization." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 312, + "startColumn": 37, + "endLine": 312, + "endColumn": 58, + "byteLength": 21 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "s_not_null." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 298, + "startColumn": 24, + "endLine": 298, + "endColumn": 34, + "byteLength": 10 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "s_null." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 310, + "startColumn": 20, + "endLine": 310, + "endColumn": 30, + "byteLength": 10 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_subset." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 306, + "startColumn": 27, + "endLine": 306, + "endColumn": 72, + "byteLength": 45 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "initialization." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 307, + "startColumn": 28, + "endLine": 307, + "endColumn": 49, + "byteLength": 21 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "saveptr_subset." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 308, + "startColumn": 28, + "endLine": 308, + "endColumn": 54, + "byteLength": 26 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_subset." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 321, + "startColumn": 27, + "endLine": 322, + "endColumn": 65, + "byteLength": 85 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "saveptr_subset." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 323, + "startColumn": 28, + "endLine": 323, + "endColumn": 67, + "byteLength": 39 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function strtok_r." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 288, + "startColumn": 10, + "endLine": 288, + "endColumn": 16, + "byteLength": 6 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function strtok_r." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 303, + "startColumn": 12, + "endLine": 303, + "endColumn": 20, + "byteLength": 8 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function strtok_r." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 313, + "startColumn": 12, + "endLine": 313, + "endColumn": 27, + "byteLength": 15 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term *(s + (0 ..)) in function strtok_r." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 288, + "startColumn": 10, + "endLine": 288, + "endColumn": 16, + "byteLength": 6 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term *(*saveptr + (0 ..)) in function strtok_r." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 290, + "startColumn": 10, + "endLine": 290, + "endColumn": 25, + "byteLength": 15 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function strtok_r." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 292, + "startColumn": 10, + "endLine": 292, + "endColumn": 17, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term *saveptr in function strtok_r." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 294, + "startColumn": 10, + "endLine": 294, + "endColumn": 18, + "byteLength": 8 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term *saveptr in function strtok_r." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 303, + "startColumn": 12, + "endLine": 303, + "endColumn": 20, + "byteLength": 8 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term *(s + (0 ..)) in function strtok_r." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 304, + "startColumn": 12, + "endLine": 304, + "endColumn": 18, + "byteLength": 6 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function strtok_r." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 305, + "startColumn": 12, + "endLine": 305, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term *(*saveptr + (0 ..)) in function strtok_r." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 313, + "startColumn": 12, + "endLine": 313, + "endColumn": 27, + "byteLength": 15 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term *saveptr in function strtok_r." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 316, + "startColumn": 12, + "endLine": 316, + "endColumn": 20, + "byteLength": 8 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function strtok_r." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 319, + "startColumn": 12, + "endLine": 319, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "complete clause in function strtok_r." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 327, + "startColumn": 12, + "endLine": 327, + "endColumn": 13, + "byteLength": 1 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "disjoint clause in function strtok_r." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 327, + "startColumn": 12, + "endLine": 327, + "endColumn": 13, + "byteLength": 1 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function strtol." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 184, + "startColumn": 16, + "endLine": 184, + "endColumn": 22, + "byteLength": 6 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior no_storage in function strtol." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 184, + "startColumn": 16, + "endLine": 184, + "endColumn": 22, + "byteLength": 6 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "behavior store_position in function strtol." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 184, + "startColumn": 16, + "endLine": 184, + "endColumn": 22, + "byteLength": 6 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_nptr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 165, + "startColumn": 23, + "endLine": 165, + "endColumn": 40, + "byteLength": 17 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "separation." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 166, + "startColumn": 23, + "endLine": 166, + "endColumn": 47, + "byteLength": 24 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "base_range." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 167, + "startColumn": 23, + "endLine": 167, + "endColumn": 51, + "byteLength": 28 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_endptr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 175, + "startColumn": 27, + "endLine": 175, + "endColumn": 41, + "byteLength": 14 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "null_endptr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 171, + "startColumn": 25, + "endLine": 171, + "endColumn": 40, + "byteLength": 15 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "nonnull_endptr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 174, + "startColumn": 28, + "endLine": 174, + "endColumn": 43, + "byteLength": 15 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "initialization." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 178, + "startColumn": 28, + "endLine": 178, + "endColumn": 48, + "byteLength": 20 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_endptr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 179, + "startColumn": 26, + "endLine": 179, + "endColumn": 45, + "byteLength": 19 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "position_subset." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 180, + "startColumn": 29, + "endLine": 180, + "endColumn": 60, + "byteLength": 31 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function strtol." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 168, + "startColumn": 10, + "endLine": 168, + "endColumn": 17, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function strtol." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 184, + "startColumn": 16, + "endLine": 184, + "endColumn": 22, + "byteLength": 6 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function strtol." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 176, + "startColumn": 12, + "endLine": 176, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function strtol." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 168, + "startColumn": 10, + "endLine": 168, + "endColumn": 17, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term *endptr in function strtol." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 169, + "startColumn": 10, + "endLine": 169, + "endColumn": 17, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function strtol." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 172, + "startColumn": 12, + "endLine": 172, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function strtol." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 176, + "startColumn": 12, + "endLine": 176, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term *endptr in function strtol." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 177, + "startColumn": 12, + "endLine": 177, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "complete clause in function strtol." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 184, + "startColumn": 16, + "endLine": 184, + "endColumn": 22, + "byteLength": 6 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "disjoint clause in function strtol." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 184, + "startColumn": 16, + "endLine": 184, + "endColumn": 22, + "byteLength": 6 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function strtold." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 160, + "startColumn": 19, + "endLine": 160, + "endColumn": 26, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior no_storage in function strtold." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 160, + "startColumn": 19, + "endLine": 160, + "endColumn": 26, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "behavior store_position in function strtold." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 160, + "startColumn": 19, + "endLine": 160, + "endColumn": 26, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_nptr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 142, + "startColumn": 23, + "endLine": 142, + "endColumn": 40, + "byteLength": 17 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "separation." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 143, + "startColumn": 23, + "endLine": 143, + "endColumn": 47, + "byteLength": 24 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_endptr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 151, + "startColumn": 27, + "endLine": 151, + "endColumn": 41, + "byteLength": 14 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "null_endptr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 147, + "startColumn": 25, + "endLine": 147, + "endColumn": 40, + "byteLength": 15 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "nonnull_endptr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 150, + "startColumn": 28, + "endLine": 150, + "endColumn": 43, + "byteLength": 15 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "initialization." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 154, + "startColumn": 28, + "endLine": 154, + "endColumn": 48, + "byteLength": 20 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_endptr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 155, + "startColumn": 26, + "endLine": 155, + "endColumn": 45, + "byteLength": 19 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "position_subset." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 156, + "startColumn": 29, + "endLine": 156, + "endColumn": 60, + "byteLength": 31 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function strtold." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 144, + "startColumn": 10, + "endLine": 144, + "endColumn": 17, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function strtold." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 160, + "startColumn": 19, + "endLine": 160, + "endColumn": 26, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function strtold." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 152, + "startColumn": 12, + "endLine": 152, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function strtold." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 144, + "startColumn": 10, + "endLine": 144, + "endColumn": 17, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term *endptr in function strtold." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 145, + "startColumn": 10, + "endLine": 145, + "endColumn": 17, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function strtold." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 148, + "startColumn": 12, + "endLine": 148, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function strtold." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 152, + "startColumn": 12, + "endLine": 152, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term *endptr in function strtold." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 153, + "startColumn": 12, + "endLine": 153, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "complete clause in function strtold." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 160, + "startColumn": 19, + "endLine": 160, + "endColumn": 26, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "disjoint clause in function strtold." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 160, + "startColumn": 19, + "endLine": 160, + "endColumn": 26, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function strtoll." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 209, + "startColumn": 21, + "endLine": 209, + "endColumn": 28, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior no_storage in function strtoll." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 209, + "startColumn": 21, + "endLine": 209, + "endColumn": 28, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "behavior store_position in function strtoll." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 209, + "startColumn": 21, + "endLine": 209, + "endColumn": 28, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_nptr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 190, + "startColumn": 23, + "endLine": 190, + "endColumn": 40, + "byteLength": 17 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "separation." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 191, + "startColumn": 23, + "endLine": 191, + "endColumn": 47, + "byteLength": 24 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "base_range." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 192, + "startColumn": 23, + "endLine": 192, + "endColumn": 51, + "byteLength": 28 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_endptr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 200, + "startColumn": 27, + "endLine": 200, + "endColumn": 41, + "byteLength": 14 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "null_endptr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 196, + "startColumn": 25, + "endLine": 196, + "endColumn": 40, + "byteLength": 15 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "nonnull_endptr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 199, + "startColumn": 28, + "endLine": 199, + "endColumn": 43, + "byteLength": 15 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "initialization." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 203, + "startColumn": 28, + "endLine": 203, + "endColumn": 48, + "byteLength": 20 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_endptr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 204, + "startColumn": 26, + "endLine": 204, + "endColumn": 45, + "byteLength": 19 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "position_subset." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 205, + "startColumn": 29, + "endLine": 205, + "endColumn": 60, + "byteLength": 31 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function strtoll." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 193, + "startColumn": 10, + "endLine": 193, + "endColumn": 17, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function strtoll." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 209, + "startColumn": 21, + "endLine": 209, + "endColumn": 28, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function strtoll." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 201, + "startColumn": 12, + "endLine": 201, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function strtoll." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 193, + "startColumn": 10, + "endLine": 193, + "endColumn": 17, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term *endptr in function strtoll." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 194, + "startColumn": 10, + "endLine": 194, + "endColumn": 17, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function strtoll." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 197, + "startColumn": 12, + "endLine": 197, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function strtoll." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 201, + "startColumn": 12, + "endLine": 201, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term *endptr in function strtoll." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 202, + "startColumn": 12, + "endLine": 202, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "complete clause in function strtoll." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 209, + "startColumn": 21, + "endLine": 209, + "endColumn": 28, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "disjoint clause in function strtoll." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 209, + "startColumn": 21, + "endLine": 209, + "endColumn": 28, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function strtoul." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 234, + "startColumn": 25, + "endLine": 234, + "endColumn": 32, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior no_storage in function strtoul." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 234, + "startColumn": 25, + "endLine": 234, + "endColumn": 32, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "behavior store_position in function strtoul." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 234, + "startColumn": 25, + "endLine": 234, + "endColumn": 32, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_nptr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 215, + "startColumn": 23, + "endLine": 215, + "endColumn": 40, + "byteLength": 17 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "separation." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 216, + "startColumn": 23, + "endLine": 216, + "endColumn": 47, + "byteLength": 24 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "base_range." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 217, + "startColumn": 23, + "endLine": 217, + "endColumn": 51, + "byteLength": 28 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_endptr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 225, + "startColumn": 27, + "endLine": 225, + "endColumn": 41, + "byteLength": 14 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "null_endptr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 221, + "startColumn": 25, + "endLine": 221, + "endColumn": 40, + "byteLength": 15 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "nonnull_endptr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 224, + "startColumn": 28, + "endLine": 224, + "endColumn": 43, + "byteLength": 15 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "initialization." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 228, + "startColumn": 28, + "endLine": 228, + "endColumn": 48, + "byteLength": 20 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_endptr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 229, + "startColumn": 26, + "endLine": 229, + "endColumn": 45, + "byteLength": 19 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "position_subset." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 230, + "startColumn": 29, + "endLine": 230, + "endColumn": 60, + "byteLength": 31 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function strtoul." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 218, + "startColumn": 10, + "endLine": 218, + "endColumn": 17, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function strtoul." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 234, + "startColumn": 25, + "endLine": 234, + "endColumn": 32, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function strtoul." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 226, + "startColumn": 12, + "endLine": 226, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function strtoul." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 218, + "startColumn": 10, + "endLine": 218, + "endColumn": 17, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term *endptr in function strtoul." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 219, + "startColumn": 10, + "endLine": 219, + "endColumn": 17, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function strtoul." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 222, + "startColumn": 12, + "endLine": 222, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function strtoul." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 226, + "startColumn": 12, + "endLine": 226, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term *endptr in function strtoul." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 227, + "startColumn": 12, + "endLine": 227, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "complete clause in function strtoul." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 234, + "startColumn": 25, + "endLine": 234, + "endColumn": 32, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "disjoint clause in function strtoul." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 234, + "startColumn": 25, + "endLine": 234, + "endColumn": 32, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function strtoull." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 259, + "startColumn": 30, + "endLine": 259, + "endColumn": 38, + "byteLength": 8 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior no_storage in function strtoull." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 259, + "startColumn": 30, + "endLine": 259, + "endColumn": 38, + "byteLength": 8 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "behavior store_position in function strtoull." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 259, + "startColumn": 30, + "endLine": 259, + "endColumn": 38, + "byteLength": 8 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_nptr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 240, + "startColumn": 23, + "endLine": 240, + "endColumn": 40, + "byteLength": 17 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "separation." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 241, + "startColumn": 23, + "endLine": 241, + "endColumn": 47, + "byteLength": 24 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "base_range." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 242, + "startColumn": 23, + "endLine": 242, + "endColumn": 51, + "byteLength": 28 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_endptr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 250, + "startColumn": 27, + "endLine": 250, + "endColumn": 41, + "byteLength": 14 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "null_endptr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 246, + "startColumn": 25, + "endLine": 246, + "endColumn": 40, + "byteLength": 15 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "nonnull_endptr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 249, + "startColumn": 28, + "endLine": 249, + "endColumn": 43, + "byteLength": 15 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "initialization." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 253, + "startColumn": 28, + "endLine": 253, + "endColumn": 48, + "byteLength": 20 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_endptr." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 254, + "startColumn": 26, + "endLine": 254, + "endColumn": 45, + "byteLength": 19 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "position_subset." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 255, + "startColumn": 29, + "endLine": 255, + "endColumn": 60, + "byteLength": 31 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function strtoull." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 243, + "startColumn": 10, + "endLine": 243, + "endColumn": 17, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function strtoull." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 259, + "startColumn": 30, + "endLine": 259, + "endColumn": 38, + "byteLength": 8 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function strtoull." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 251, + "startColumn": 12, + "endLine": 251, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function strtoull." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 243, + "startColumn": 10, + "endLine": 243, + "endColumn": 17, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term *endptr in function strtoull." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 244, + "startColumn": 10, + "endLine": 244, + "endColumn": 17, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function strtoull." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 247, + "startColumn": 12, + "endLine": 247, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function strtoull." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 251, + "startColumn": 12, + "endLine": 251, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term *endptr in function strtoull." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 252, + "startColumn": 12, + "endLine": 252, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "complete clause in function strtoull." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 259, + "startColumn": 30, + "endLine": 259, + "endColumn": 38, + "byteLength": 8 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "disjoint clause in function strtoull." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 259, + "startColumn": 30, + "endLine": 259, + "endColumn": 38, + "byteLength": 8 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function strxfrm." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 463, + "startColumn": 14, + "endLine": 463, + "endColumn": 21, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_dest." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 458, + "startColumn": 25, + "endLine": 458, + "endColumn": 48, + "byteLength": 23 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_string_src." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 459, + "startColumn": 31, + "endLine": 459, + "endColumn": 53, + "byteLength": 22 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function strxfrm." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 460, + "startColumn": 12, + "endLine": 460, + "endColumn": 26, + "byteLength": 14 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term *(dest + (0 .. n - 1)) in function strxfrm." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 460, + "startColumn": 12, + "endLine": 460, + "endColumn": 26, + "byteLength": 14 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function strxfrm." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 461, + "startColumn": 12, + "endLine": 461, + "endColumn": 19, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function system." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 528, + "startColumn": 11, + "endLine": 528, + "endColumn": 17, + "byteLength": 6 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "null_or_valid_string_command." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 525, + "startColumn": 5, + "endLine": 525, + "endColumn": 51, + "byteLength": 46 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function system." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 528, + "startColumn": 11, + "endLine": 528, + "endColumn": 17, + "byteLength": 6 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function system." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 526, + "startColumn": 10, + "endLine": 526, + "endColumn": 17, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function unsetenv." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 515, + "startColumn": 11, + "endLine": 515, + "endColumn": 19, + "byteLength": 8 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "valid_name." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 510, + "startColumn": 23, + "endLine": 510, + "endColumn": 46, + "byteLength": 23 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_ok_or_error." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 513, + "startColumn": 30, + "endLine": 513, + "endColumn": 59, + "byteLength": 29 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function unsetenv." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 511, + "startColumn": 10, + "endLine": 511, + "endColumn": 17, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function unsetenv." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 511, + "startColumn": 10, + "endLine": 511, + "endColumn": 17, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term __fc_env[0 ..] in function unsetenv." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 511, + "startColumn": 19, + "endLine": 511, + "endColumn": 32, + "byteLength": 13 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function wcstombs." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 659, + "startColumn": 14, + "endLine": 659, + "endColumn": 22, + "byteLength": 8 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "separation." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 655, + "startColumn": 23, + "endLine": 655, + "endColumn": 42, + "byteLength": 19 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function wcstombs." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 656, + "startColumn": 10, + "endLine": 656, + "endColumn": 17, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function wcstombs." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 656, + "startColumn": 10, + "endLine": 656, + "endColumn": 17, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term *(s + (0 .. n - 1)) in function wcstombs." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 657, + "startColumn": 10, + "endLine": 657, + "endColumn": 21, + "byteLength": 11 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "behavior default! in function wctomb." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 641, + "startColumn": 11, + "endLine": 641, + "endColumn": 17, + "byteLength": 6 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "assigns clause in function wctomb." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 638, + "startColumn": 10, + "endLine": 638, + "endColumn": 17, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term \\result in function wctomb." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 638, + "startColumn": 10, + "endLine": 638, + "endColumn": 17, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": "from clause of term *(s + (0 ..)) in function wctomb." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 639, + "startColumn": 10, + "endLine": 639, + "endColumn": 17, + "byteLength": 7 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { + "text": + "from clause of term __fc_wctomb_state in function wctomb." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/stdlib.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 639, + "startColumn": 19, + "endLine": 639, + "endColumn": 36, + "byteLength": 17 + } + } + } + ] + } + ], + "defaultSourceLanguage": "C", + "taxonomies": [ + { + "name": "frama-c", + "rules": [ + { + "id": "user-spec", + "shortDescription": { + "text": "User-written ACSL specification." + } + } + ], + "contents": [ "nonLocalizedData" ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/plugins/markdown-report/tests/sarif/oracle/with-libc.sarif b/src/plugins/markdown-report/tests/sarif/oracle/with-libc.sarif index fa8798f3f64f7402378d14b6c3f03f0c37f49400..f9bed3f4deea0fcb4cbf40cb71c14458a221fb72 100644 --- a/src/plugins/markdown-report/tests/sarif/oracle/with-libc.sarif +++ b/src/plugins/markdown-report/tests/sarif/oracle/with-libc.sarif @@ -50,22 +50,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": "from clause of term __fc_strtok_ptr in function strtok." - }, + "message": { "text": "MemChr." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/string.h", + "uri": "libc/__fc_string_axiomatic.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 261, - "startColumn": 12, - "endLine": 261, - "endColumn": 27, - "byteLength": 15 + "startLine": 57, + "startColumn": 4, + "endLine": 59, + "endColumn": 62, + "byteLength": 134 } } } @@ -75,22 +73,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": "from clause of term \\result in function strcpy." - }, + "message": { "text": "MemCmp." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/string.h", + "uri": "libc/__fc_string_axiomatic.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 356, - "startColumn": 12, - "endLine": 356, - "endColumn": 19, - "byteLength": 7 + "startLine": 39, + "startColumn": 4, + "endLine": 42, + "endColumn": 70, + "byteLength": 170 } } } @@ -100,20 +96,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "behavior default! in function strnlen." }, + "message": { "text": "MemSet." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/string.h", + "uri": "libc/__fc_string_axiomatic.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 135, - "startColumn": 14, - "endLine": 135, - "endColumn": 21, - "byteLength": 7 + "startLine": 68, + "startColumn": 4, + "endLine": 70, + "endColumn": 63, + "byteLength": 135 } } } @@ -123,20 +119,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "assigns clause in function strcasecmp." }, + "message": { "text": "StrChr." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/strings.h", + "uri": "libc/__fc_string_axiomatic.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 50, - "startColumn": 11, - "endLine": 50, - "endColumn": 21, - "byteLength": 10 + "startLine": 168, + "startColumn": 4, + "endLine": 170, + "endColumn": 75, + "byteLength": 132 } } } @@ -146,22 +142,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": "from clause of term \\result in function strpbrk." - }, + "message": { "text": "StrCmp." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/string.h", + "uri": "libc/__fc_string_axiomatic.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 214, - "startColumn": 12, - "endLine": 214, - "endColumn": 19, - "byteLength": 7 + "startLine": 143, + "startColumn": 4, + "endLine": 147, + "endColumn": 63, + "byteLength": 170 } } } @@ -171,22 +165,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": "from clause of term \\result in function strncat." - }, + "message": { "text": "StrLen." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/string.h", + "uri": "libc/__fc_string_axiomatic.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 433, - "startColumn": 12, - "endLine": 433, - "endColumn": 19, - "byteLength": 7 + "startLine": 132, + "startColumn": 4, + "endLine": 135, + "endColumn": 38, + "byteLength": 185 } } } @@ -196,22 +188,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": "from clause of term *(s + (0 ..)) in function strtok_r." - }, + "message": { "text": "StrNCmp." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/string.h", + "uri": "libc/__fc_string_axiomatic.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 288, - "startColumn": 10, - "endLine": 288, - "endColumn": 16, - "byteLength": 6 + "startLine": 155, + "startColumn": 4, + "endLine": 159, + "endColumn": 53, + "byteLength": 191 } } } @@ -221,20 +211,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "behavior partial in function strncpy." }, + "message": { "text": "WMemChr." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/string.h", + "uri": "libc/__fc_string_axiomatic.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 378, - "startColumn": 12, - "endLine": 378, - "endColumn": 13, - "byteLength": 1 + "startLine": 183, + "startColumn": 4, + "endLine": 185, + "endColumn": 63, + "byteLength": 143 } } } @@ -244,22 +234,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": "from clause of term \\result in function strcat." - }, + "message": { "text": "WcsChr." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/string.h", + "uri": "libc/__fc_string_axiomatic.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 414, - "startColumn": 12, - "endLine": 414, - "endColumn": 19, - "byteLength": 7 + "startLine": 266, + "startColumn": 4, + "endLine": 269, + "endColumn": 29, + "byteLength": 153 } } } @@ -269,20 +257,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "behavior default in function strrchr." }, + "message": { "text": "WcsCmp." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/string.h", + "uri": "libc/__fc_string_axiomatic.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 195, - "startColumn": 12, - "endLine": 195, - "endColumn": 13, - "byteLength": 1 + "startLine": 240, + "startColumn": 4, + "endLine": 244, + "endColumn": 63, + "byteLength": 173 } } } @@ -292,20 +280,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "dest_null_terminated." }, + "message": { "text": "WcsLen." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/string.h", + "uri": "libc/__fc_string_axiomatic.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 417, - "startColumn": 34, - "endLine": 417, - "endColumn": 77, - "byteLength": 43 + "startLine": 230, + "startColumn": 4, + "endLine": 232, + "endColumn": 63, + "byteLength": 147 } } } @@ -315,20 +303,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "behavior default! in function bzero." }, + "message": { "text": "WcsNCmp." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/strings.h", + "uri": "libc/__fc_string_axiomatic.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 40, - "startColumn": 12, - "endLine": 40, - "endColumn": 17, - "byteLength": 5 + "startLine": 252, + "startColumn": 4, + "endLine": 256, + "endColumn": 53, + "byteLength": 194 } } } @@ -338,20 +326,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "behavior new_str in function strtok_r." }, + "message": { "text": "dynamic_allocation." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/string.h", + "uri": "libc/__fc_alloc_axiomatic.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 327, - "startColumn": 12, - "endLine": 327, - "endColumn": 13, - "byteLength": 1 + "startLine": 39, + "startColumn": 4, + "endLine": 41, + "endColumn": 61, + "byteLength": 110 } } } @@ -361,22 +349,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": "from clause of term __fc_strtok_ptr in function strtok." - }, + "message": { "text": "memchr_def." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/string.h", + "uri": "libc/__fc_string_axiomatic.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 272, - "startColumn": 12, - "endLine": 272, - "endColumn": 27, - "byteLength": 15 + "startLine": 57, + "startColumn": 4, + "endLine": 59, + "endColumn": 62, + "byteLength": 134 } } } @@ -386,23 +372,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": - "from clause of term *(dest + (strlen{Old}(dest) .. strlen{Old}(dest) + n)) in function strncat." - }, + "message": { "text": "memcmp_strlen_left." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/string.h", + "uri": "libc/__fc_string_axiomatic.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 439, - "startColumn": 12, - "endLine": 439, - "endColumn": 48, - "byteLength": 36 + "startLine": 119, + "startColumn": 4, + "endLine": 121, + "endColumn": 77, + "byteLength": 148 } } } @@ -412,20 +395,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "valid_string_s." }, + "message": { "text": "memcmp_strlen_right." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/string.h", + "uri": "libc/__fc_string_axiomatic.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 486, - "startColumn": 29, - "endLine": 486, - "endColumn": 49, - "byteLength": 20 + "startLine": 123, + "startColumn": 4, + "endLine": 125, + "endColumn": 77, + "byteLength": 149 } } } @@ -435,20 +418,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "room_string." }, + "message": { "text": "memcmp_strlen_shift_left." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/string.h", + "uri": "libc/__fc_string_axiomatic.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 438, - "startColumn": 26, - "endLine": 438, - "endColumn": 64, - "byteLength": 38 + "startLine": 127, + "startColumn": 4, + "endLine": 130, + "endColumn": 38, + "byteLength": 184 } } } @@ -458,20 +441,43 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "valid_string_s_or_delim_not_found." }, + "message": { "text": "memcmp_strlen_shift_right." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/string.h", + "uri": "libc/__fc_string_axiomatic.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 258, - "startColumn": 6, - "endLine": 260, + "startLine": 132, + "startColumn": 4, + "endLine": 135, + "endColumn": 38, + "byteLength": 185 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "memcmp_zero." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_string_axiomatic.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 39, + "startColumn": 4, + "endLine": 42, "endColumn": 70, - "byteLength": 120 + "byteLength": 170 } } } @@ -481,7 +487,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "wcslen_create_shift." }, + "message": { "text": "memset_def." }, "locations": [ { "physicalLocation": { @@ -490,11 +496,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 230, + "startLine": 68, "startColumn": 4, - "endLine": 232, + "endLine": 70, "endColumn": 63, - "byteLength": 147 + "byteLength": 135 } } } @@ -504,7 +510,30 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "StrChr." }, + "message": { "text": "never_allocable." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/__fc_alloc_axiomatic.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 39, + "startColumn": 4, + "endLine": 41, + "endColumn": 61, + "byteLength": 110 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "strchr_def." }, "locations": [ { "physicalLocation": { @@ -527,22 +556,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": "from clause of term \\result in function memmove." - }, + "message": { "text": "strcmp_zero." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/string.h", + "uri": "libc/__fc_string_axiomatic.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 107, - "startColumn": 12, - "endLine": 107, - "endColumn": 19, - "byteLength": 7 + "startLine": 143, + "startColumn": 4, + "endLine": 147, + "endColumn": 63, + "byteLength": 170 } } } @@ -552,20 +579,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "assigns clause in function strchr." }, + "message": { "text": "strlen_at_null." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/string.h", + "uri": "libc/__fc_string_axiomatic.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 173, - "startColumn": 12, - "endLine": 173, - "endColumn": 13, - "byteLength": 1 + "startLine": 92, + "startColumn": 4, + "endLine": 93, + "endColumn": 61, + "byteLength": 86 } } } @@ -575,7 +602,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "wcscmp_zero." }, + "message": { "text": "strlen_before_null." }, "locations": [ { "physicalLocation": { @@ -584,11 +611,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 240, + "startLine": 89, "startColumn": 4, - "endLine": 244, - "endColumn": 63, - "byteLength": 173 + "endLine": 90, + "endColumn": 72, + "byteLength": 101 } } } @@ -598,20 +625,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "result_valid_string." }, + "message": { "text": "strlen_create." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/string.h", + "uri": "libc/__fc_string_axiomatic.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 164, - "startColumn": 33, - "endLine": 164, - "endColumn": 59, - "byteLength": 26 + "startLine": 111, + "startColumn": 4, + "endLine": 113, + "endColumn": 51, + "byteLength": 111 } } } @@ -621,20 +648,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "equal_prefix." }, + "message": { "text": "strlen_create_shift." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/string.h", + "uri": "libc/__fc_string_axiomatic.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 376, - "startColumn": 26, - "endLine": 376, - "endColumn": 60, - "byteLength": 34 + "startLine": 115, + "startColumn": 4, + "endLine": 117, + "endColumn": 62, + "byteLength": 143 } } } @@ -644,20 +671,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "result_ptr." }, + "message": { "text": "strlen_neg." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/string.h", + "uri": "libc/__fc_string_axiomatic.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 358, - "startColumn": 24, - "endLine": 358, - "endColumn": 39, - "byteLength": 15 + "startLine": 84, + "startColumn": 4, + "endLine": 87, + "endColumn": 22, + "byteLength": 109 } } } @@ -667,20 +694,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "result_same_base." }, + "message": { "text": "strlen_not_zero." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/string.h", + "uri": "libc/__fc_string_axiomatic.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 177, - "startColumn": 30, - "endLine": 177, - "endColumn": 64, - "byteLength": 34 + "startLine": 95, + "startColumn": 4, + "endLine": 97, + "endColumn": 58, + "byteLength": 120 } } } @@ -690,20 +717,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "valid_nstring_src." }, + "message": { "text": "strlen_pos_or_null." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/string.h", + "uri": "libc/__fc_string_axiomatic.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 423, - "startColumn": 32, - "endLine": 423, - "endColumn": 58, - "byteLength": 26 + "startLine": 78, + "startColumn": 4, + "endLine": 82, + "endColumn": 40, + "byteLength": 169 } } } @@ -713,20 +740,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "assigns clause in function strtok." }, + "message": { "text": "strlen_shift." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/string.h", + "uri": "libc/__fc_string_axiomatic.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 246, - "startColumn": 10, - "endLine": 246, - "endColumn": 16, - "byteLength": 6 + "startLine": 107, + "startColumn": 4, + "endLine": 109, + "endColumn": 59, + "byteLength": 118 } } } @@ -736,20 +763,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "equal_after_copy." }, + "message": { "text": "strlen_sup." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/string.h", + "uri": "libc/__fc_string_axiomatic.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 373, - "startColumn": 30, - "endLine": 373, + "startLine": 103, + "startColumn": 4, + "endLine": 105, "endColumn": 51, - "byteLength": 21 + "byteLength": 108 } } } @@ -759,20 +786,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "result_same_base." }, + "message": { "text": "strlen_zero." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/string.h", + "uri": "libc/__fc_string_axiomatic.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 79, - "startColumn": 30, - "endLine": 79, - "endColumn": 66, - "byteLength": 36 + "startLine": 99, + "startColumn": 4, + "endLine": 101, + "endColumn": 59, + "byteLength": 117 } } } @@ -782,22 +809,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": "from clause of term \\result in function strsignal." - }, + "message": { "text": "strncmp_zero." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/string.h", + "uri": "libc/__fc_string_axiomatic.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 518, - "startColumn": 12, - "endLine": 518, - "endColumn": 19, - "byteLength": 7 + "startLine": 155, + "startColumn": 4, + "endLine": 159, + "endColumn": 53, + "byteLength": 191 } } } @@ -807,20 +832,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "valid_string_src." }, + "message": { "text": "wcschr_def." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/string.h", + "uri": "libc/__fc_string_axiomatic.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 459, - "startColumn": 31, - "endLine": 459, - "endColumn": 53, - "byteLength": 22 + "startLine": 266, + "startColumn": 4, + "endLine": 269, + "endColumn": 29, + "byteLength": 153 } } } @@ -830,22 +855,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": "from clause of term \\result in function strdup." - }, + "message": { "text": "wcscmp_zero." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/string.h", + "uri": "libc/__fc_string_axiomatic.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 480, - "startColumn": 12, - "endLine": 480, - "endColumn": 19, - "byteLength": 7 + "startLine": 240, + "startColumn": 4, + "endLine": 244, + "endColumn": 63, + "byteLength": 173 } } } @@ -855,20 +878,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "assigns clause in function strcoll." }, + "message": { "text": "wcslen_at_null." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/string.h", + "uri": "libc/__fc_string_axiomatic.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 155, - "startColumn": 11, - "endLine": 155, - "endColumn": 18, - "byteLength": 7 + "startLine": 207, + "startColumn": 4, + "endLine": 208, + "endColumn": 65, + "byteLength": 90 } } } @@ -878,20 +901,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "result_null_or_same_base." }, + "message": { "text": "wcslen_before_null." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/string.h", + "uri": "libc/__fc_string_axiomatic.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 171, + "startLine": 204, "startColumn": 4, - "endLine": 171, - "endColumn": 60, - "byteLength": 56 + "endLine": 205, + "endColumn": 76, + "byteLength": 105 } } } @@ -901,20 +924,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "valid_string_s." }, + "message": { "text": "wcslen_create." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/string.h", + "uri": "libc/__fc_string_axiomatic.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 131, - "startColumn": 29, - "endLine": 131, - "endColumn": 53, - "byteLength": 24 + "startLine": 226, + "startColumn": 4, + "endLine": 228, + "endColumn": 52, + "byteLength": 115 } } } @@ -924,22 +947,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": "from clause of term \\result in function strndup." - }, + "message": { "text": "wcslen_create_shift." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/string.h", + "uri": "libc/__fc_string_axiomatic.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 493, - "startColumn": 12, - "endLine": 493, - "endColumn": 19, - "byteLength": 7 + "startLine": 230, + "startColumn": 4, + "endLine": 232, + "endColumn": 63, + "byteLength": 147 } } } @@ -949,20 +970,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "not_first_call." }, + "message": { "text": "wcslen_neg." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/string.h", + "uri": "libc/__fc_string_axiomatic.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 268, - "startColumn": 29, - "endLine": 268, - "endColumn": 53, - "byteLength": 24 + "startLine": 199, + "startColumn": 4, + "endLine": 202, + "endColumn": 22, + "byteLength": 113 } } } @@ -972,20 +993,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "assigns clause in function memchr." }, + "message": { "text": "wcslen_not_zero." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/string.h", + "uri": "libc/__fc_string_axiomatic.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 88, - "startColumn": 12, - "endLine": 88, - "endColumn": 13, - "byteLength": 1 + "startLine": 210, + "startColumn": 4, + "endLine": 212, + "endColumn": 59, + "byteLength": 124 } } } @@ -995,22 +1016,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": "from clause of term *saveptr in function strtok_r." - }, + "message": { "text": "wcslen_pos_or_null." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/string.h", + "uri": "libc/__fc_string_axiomatic.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 316, - "startColumn": 12, - "endLine": 316, - "endColumn": 20, - "byteLength": 8 + "startLine": 193, + "startColumn": 4, + "endLine": 197, + "endColumn": 41, + "byteLength": 174 } } } @@ -1020,20 +1039,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "separation." }, + "message": { "text": "wcslen_shift." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/string.h", + "uri": "libc/__fc_string_axiomatic.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 95, - "startColumn": 4, - "endLine": 95, - "endColumn": 62, - "byteLength": 58 + "startLine": 222, + "startColumn": 4, + "endLine": 224, + "endColumn": 55, + "byteLength": 117 } } } @@ -1043,20 +1062,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "room_nstring." }, + "message": { "text": "wcslen_sup." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/string.h", + "uri": "libc/__fc_string_axiomatic.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 364, - "startColumn": 27, - "endLine": 364, - "endColumn": 50, - "byteLength": 23 + "startLine": 218, + "startColumn": 4, + "endLine": 220, + "endColumn": 52, + "byteLength": 112 } } } @@ -1066,20 +1085,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "acsl_c_equiv." }, + "message": { "text": "wcslen_zero." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/string.h", + "uri": "libc/__fc_string_axiomatic.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 127, - "startColumn": 26, - "endLine": 127, - "endColumn": 46, - "byteLength": 20 + "startLine": 214, + "startColumn": 4, + "endLine": 216, + "endColumn": 60, + "byteLength": 121 } } } @@ -1089,23 +1108,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": - "from clause of term *(dest + (0 .. n - 1)) in function strncpy." - }, + "message": { "text": "wcsncmp_zero." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/string.h", + "uri": "libc/__fc_string_axiomatic.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 367, - "startColumn": 12, - "endLine": 367, - "endColumn": 26, - "byteLength": 14 + "startLine": 252, + "startColumn": 4, + "endLine": 256, + "endColumn": 53, + "byteLength": 194 } } } @@ -1115,20 +1131,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "initialization." }, + "message": { "text": "wmemchr_def." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/string.h", + "uri": "libc/__fc_string_axiomatic.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 370, - "startColumn": 28, - "endLine": 370, - "endColumn": 57, - "byteLength": 29 + "startLine": 183, + "startColumn": 4, + "endLine": 185, + "endColumn": 63, + "byteLength": 143 } } } @@ -1138,20 +1154,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "memcmp_strlen_left." }, + "message": { "text": "behavior default! in function bzero." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/__fc_string_axiomatic.h", + "uri": "libc/strings.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 119, - "startColumn": 4, - "endLine": 121, - "endColumn": 77, - "byteLength": 148 + "startLine": 40, + "startColumn": 12, + "endLine": 40, + "endColumn": 17, + "byteLength": 5 } } } @@ -1161,20 +1177,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "assigns clause in function strlcat." }, + "message": { "text": "valid_memory_area." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/string.h", + "uri": "libc/strings.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 451, - "startColumn": 12, - "endLine": 451, - "endColumn": 33, - "byteLength": 21 + "startLine": 36, + "startColumn": 32, + "endLine": 36, + "endColumn": 63, + "byteLength": 31 } } } @@ -1184,20 +1200,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "danglingness." }, + "message": { "text": "s_initialized." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/string.h", + "uri": "libc/strings.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 74, - "startColumn": 8, - "endLine": 75, - "endColumn": 61, - "byteLength": 80 + "startLine": 38, + "startColumn": 39, + "endLine": 38, + "endColumn": 75, + "byteLength": 36 } } } @@ -1207,20 +1223,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "valid_string_delim." }, + "message": { "text": "zero_initialized." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/string.h", + "uri": "libc/strings.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 245, - "startColumn": 31, - "endLine": 245, - "endColumn": 55, - "byteLength": 24 + "startLine": 39, + "startColumn": 28, + "endLine": 39, + "endColumn": 63, + "byteLength": 35 } } } @@ -1230,20 +1246,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "allocation." }, + "message": { "text": "assigns clause in function bzero." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/string.h", + "uri": "libc/strings.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 475, - "startColumn": 24, - "endLine": 475, - "endColumn": 49, - "byteLength": 25 + "startLine": 37, + "startColumn": 10, + "endLine": 37, + "endColumn": 31, + "byteLength": 21 } } } @@ -1253,20 +1269,23 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "memcmp_strlen_right." }, + "message": { + "text": + "from clause of term *((char *)s + (0 .. n - 1)) in function bzero." + }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/__fc_string_axiomatic.h", + "uri": "libc/strings.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 123, - "startColumn": 4, - "endLine": 125, - "endColumn": 77, - "byteLength": 149 + "startLine": 37, + "startColumn": 10, + "endLine": 37, + "endColumn": 31, + "byteLength": 21 } } } @@ -1276,20 +1295,22 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "result_null." }, + "message": { + "text": "specialization of valid_string_s at stmt 2." + }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/string.h", - "uriBaseId": "FRAMAC_SHARE" + "uri": "tests/sarif/libc.c", + "uriBaseId": "PWD" }, "region": { - "startLine": 190, - "startColumn": 25, - "endLine": 190, - "endColumn": 41, - "byteLength": 16 + "startLine": 13, + "startColumn": 10, + "endLine": 13, + "endColumn": 19, + "byteLength": 9 } } } @@ -1299,10 +1320,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": - "from clause of term *((char *)dest + (0 .. n - 1)) in function memcpy." - }, + "message": { "text": "behavior default! in function memchr." }, "locations": [ { "physicalLocation": { @@ -1311,11 +1329,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 96, + "startLine": 88, "startColumn": 12, - "endLine": 96, - "endColumn": 35, - "byteLength": 23 + "endLine": 88, + "endColumn": 13, + "byteLength": 1 } } } @@ -1325,7 +1343,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "initialization." }, + "message": { "text": "behavior found in function memchr." }, "locations": [ { "physicalLocation": { @@ -1334,11 +1352,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 71, - "startColumn": 8, - "endLine": 72, - "endColumn": 71, - "byteLength": 116 + "startLine": 88, + "startColumn": 12, + "endLine": 88, + "endColumn": 13, + "byteLength": 1 } } } @@ -1348,7 +1366,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "valid_string_s1." }, + "message": { "text": "behavior not_found in function memchr." }, "locations": [ { "physicalLocation": { @@ -1357,11 +1375,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 151, - "startColumn": 30, - "endLine": 151, - "endColumn": 51, - "byteLength": 21 + "startLine": 88, + "startColumn": 12, + "endLine": 88, + "endColumn": 13, + "byteLength": 1 } } } @@ -1371,7 +1389,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "result_null." }, + "message": { "text": "valid." }, "locations": [ { "physicalLocation": { @@ -1380,11 +1398,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 168, - "startColumn": 25, - "endLine": 168, - "endColumn": 41, - "byteLength": 16 + "startLine": 68, + "startColumn": 9, + "endLine": 69, + "endColumn": 74, + "byteLength": 100 } } } @@ -1394,7 +1412,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "danglingness." }, + "message": { "text": "initialization." }, "locations": [ { "physicalLocation": { @@ -1403,11 +1421,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 59, - "startColumn": 30, - "endLine": 59, - "endColumn": 49, - "byteLength": 19 + "startLine": 71, + "startColumn": 8, + "endLine": 72, + "endColumn": 71, + "byteLength": 116 } } } @@ -1417,9 +1435,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": "from clause of term \\result in function strerror." - }, + "message": { "text": "danglingness." }, "locations": [ { "physicalLocation": { @@ -1428,11 +1444,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 342, - "startColumn": 12, - "endLine": 342, - "endColumn": 19, - "byteLength": 7 + "startLine": 74, + "startColumn": 8, + "endLine": 75, + "endColumn": 61, + "byteLength": 80 } } } @@ -1442,20 +1458,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "strlen_shift." }, + "message": { "text": "char_found." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/__fc_string_axiomatic.h", - "uriBaseId": "FRAMAC_SHARE" - }, - "region": { - "startLine": 107, - "startColumn": 4, - "endLine": 109, - "endColumn": 59, - "byteLength": 118 + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 78, + "startColumn": 24, + "endLine": 78, + "endColumn": 44, + "byteLength": 20 } } } @@ -1465,7 +1481,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "behavior not_found in function strrchr." }, + "message": { "text": "char_not_found." }, "locations": [ { "physicalLocation": { @@ -1474,11 +1490,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 195, - "startColumn": 12, - "endLine": 195, - "endColumn": 13, - "byteLength": 1 + "startLine": 85, + "startColumn": 28, + "endLine": 85, + "endColumn": 49, + "byteLength": 21 } } } @@ -1488,7 +1504,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "cannot_allocate." }, + "message": { "text": "result_same_base." }, "locations": [ { "physicalLocation": { @@ -1497,11 +1513,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 501, - "startColumn": 29, - "endLine": 501, - "endColumn": 64, - "byteLength": 35 + "startLine": 79, + "startColumn": 30, + "endLine": 79, + "endColumn": 66, + "byteLength": 36 } } } @@ -1511,7 +1527,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "behavior default! in function strcasestr." }, + "message": { "text": "result_char." }, "locations": [ { "physicalLocation": { @@ -1520,11 +1536,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 239, - "startColumn": 12, - "endLine": 239, - "endColumn": 13, - "byteLength": 1 + "startLine": 80, + "startColumn": 25, + "endLine": 80, + "endColumn": 45, + "byteLength": 20 } } } @@ -1534,7 +1550,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "ptr_subset." }, + "message": { "text": "result_in_str." }, "locations": [ { "physicalLocation": { @@ -1543,11 +1559,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 265, - "startColumn": 24, - "endLine": 265, - "endColumn": 57, - "byteLength": 33 + "startLine": 81, + "startColumn": 27, + "endLine": 83, + "endColumn": 54, + "byteLength": 120 } } } @@ -1557,7 +1573,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "assigns clause in function strncpy." }, + "message": { "text": "result_null." }, "locations": [ { "physicalLocation": { @@ -1566,11 +1582,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 367, - "startColumn": 12, - "endLine": 367, - "endColumn": 26, - "byteLength": 14 + "startLine": 86, + "startColumn": 25, + "endLine": 86, + "endColumn": 41, + "byteLength": 16 } } } @@ -1580,7 +1596,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "valid_s1." }, + "message": { "text": "assigns clause in function memchr." }, "locations": [ { "physicalLocation": { @@ -1589,11 +1605,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 55, - "startColumn": 23, - "endLine": 55, - "endColumn": 49, - "byteLength": 26 + "startLine": 88, + "startColumn": 12, + "endLine": 88, + "endColumn": 13, + "byteLength": 1 } } } @@ -1603,7 +1619,9 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "behavior complete in function strncat." }, + "message": { + "text": "from clause of term \\result in function memchr." + }, "locations": [ { "physicalLocation": { @@ -1612,11 +1630,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 444, + "startLine": 76, "startColumn": 12, - "endLine": 444, - "endColumn": 13, - "byteLength": 1 + "endLine": 76, + "endColumn": 19, + "byteLength": 7 } } } @@ -1626,7 +1644,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "valid_string_s." }, + "message": { "text": "behavior default! in function memcmp." }, "locations": [ { "physicalLocation": { @@ -1635,11 +1653,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 125, - "startColumn": 29, - "endLine": 125, - "endColumn": 49, - "byteLength": 20 + "startLine": 65, + "startColumn": 11, + "endLine": 65, + "endColumn": 17, + "byteLength": 6 } } } @@ -1649,9 +1667,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": "from clause of term \\result in function strcoll." - }, + "message": { "text": "valid_s1." }, "locations": [ { "physicalLocation": { @@ -1660,11 +1676,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 153, - "startColumn": 12, - "endLine": 153, - "endColumn": 19, - "byteLength": 7 + "startLine": 55, + "startColumn": 23, + "endLine": 55, + "endColumn": 49, + "byteLength": 26 } } } @@ -1674,9 +1690,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": "result_valid_string_bounded_and_same_prefix." - }, + "message": { "text": "valid_s2." }, "locations": [ { "physicalLocation": { @@ -1685,11 +1699,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 497, - "startColumn": 4, - "endLine": 499, - "endColumn": 29, - "byteLength": 124 + "startLine": 56, + "startColumn": 23, + "endLine": 56, + "endColumn": 49, + "byteLength": 26 } } } @@ -1699,7 +1713,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "valid_string_s." }, + "message": { "text": "initialization." }, "locations": [ { "physicalLocation": { @@ -1708,11 +1722,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 204, - "startColumn": 29, - "endLine": 204, - "endColumn": 49, - "byteLength": 20 + "startLine": 57, + "startColumn": 32, + "endLine": 57, + "endColumn": 68, + "byteLength": 36 } } } @@ -1722,7 +1736,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "behavior allocation in function strndup." }, + "message": { "text": "initialization." }, "locations": [ { "physicalLocation": { @@ -1731,11 +1745,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 506, - "startColumn": 12, - "endLine": 506, - "endColumn": 13, - "byteLength": 1 + "startLine": 58, + "startColumn": 32, + "endLine": 58, + "endColumn": 68, + "byteLength": 36 } } } @@ -1745,10 +1759,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": - "from clause of term *(__fc_strtok_ptr + (0 ..)) in function strtok." - }, + "message": { "text": "danglingness." }, "locations": [ { "physicalLocation": { @@ -1757,11 +1768,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 248, - "startColumn": 10, - "endLine": 248, - "endColumn": 30, - "byteLength": 20 + "startLine": 59, + "startColumn": 30, + "endLine": 59, + "endColumn": 49, + "byteLength": 19 } } } @@ -1771,7 +1782,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "char_not_found." }, + "message": { "text": "danglingness." }, "locations": [ { "physicalLocation": { @@ -1780,11 +1791,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 189, - "startColumn": 28, - "endLine": 189, - "endColumn": 40, - "byteLength": 12 + "startLine": 60, + "startColumn": 30, + "endLine": 60, + "endColumn": 49, + "byteLength": 19 } } } @@ -1794,7 +1805,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "disjoint clause in function strtok." }, + "message": { "text": "logic_spec." }, "locations": [ { "physicalLocation": { @@ -1803,11 +1814,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 283, - "startColumn": 12, - "endLine": 283, - "endColumn": 13, - "byteLength": 1 + "startLine": 63, + "startColumn": 24, + "endLine": 63, + "endColumn": 73, + "byteLength": 49 } } } @@ -1817,9 +1828,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": "from clause of term \\result in function strndup." - }, + "message": { "text": "assigns clause in function memcmp." }, "locations": [ { "physicalLocation": { @@ -1828,11 +1837,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 488, - "startColumn": 12, - "endLine": 488, - "endColumn": 19, - "byteLength": 7 + "startLine": 65, + "startColumn": 11, + "endLine": 65, + "endColumn": 17, + "byteLength": 6 } } } @@ -1842,7 +1851,9 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "s_not_null." }, + "message": { + "text": "from clause of term \\result in function memcmp." + }, "locations": [ { "physicalLocation": { @@ -1851,11 +1862,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 256, - "startColumn": 24, - "endLine": 256, - "endColumn": 34, - "byteLength": 10 + "startLine": 61, + "startColumn": 12, + "endLine": 61, + "endColumn": 19, + "byteLength": 7 } } } @@ -1865,7 +1876,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "valid." }, + "message": { "text": "behavior default! in function memcpy." }, "locations": [ { "physicalLocation": { @@ -1874,11 +1885,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 68, - "startColumn": 9, - "endLine": 69, - "endColumn": 74, - "byteLength": 100 + "startLine": 101, + "startColumn": 12, + "endLine": 101, + "endColumn": 13, + "byteLength": 1 } } } @@ -1888,7 +1899,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "valid_string_accept." }, + "message": { "text": "valid_dest." }, "locations": [ { "physicalLocation": { @@ -1897,11 +1908,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 213, - "startColumn": 34, - "endLine": 213, - "endColumn": 59, - "byteLength": 25 + "startLine": 92, + "startColumn": 25, + "endLine": 92, + "endColumn": 48, + "byteLength": 23 } } } @@ -1911,7 +1922,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "behavior not_found in function memchr." }, + "message": { "text": "valid_src." }, "locations": [ { "physicalLocation": { @@ -1920,11 +1931,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 88, - "startColumn": 12, - "endLine": 88, - "endColumn": 13, - "byteLength": 1 + "startLine": 93, + "startColumn": 24, + "endLine": 93, + "endColumn": 51, + "byteLength": 27 } } } @@ -1934,7 +1945,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "assigns clause in function strspn." }, + "message": { "text": "separation." }, "locations": [ { "physicalLocation": { @@ -1943,11 +1954,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 206, - "startColumn": 12, - "endLine": 206, - "endColumn": 19, - "byteLength": 7 + "startLine": 95, + "startColumn": 4, + "endLine": 95, + "endColumn": 62, + "byteLength": 58 } } } @@ -1957,7 +1968,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "initialization." }, + "message": { "text": "copied_contents." }, "locations": [ { "physicalLocation": { @@ -1966,11 +1977,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 58, - "startColumn": 32, - "endLine": 58, - "endColumn": 68, - "byteLength": 36 + "startLine": 98, + "startColumn": 29, + "endLine": 98, + "endColumn": 76, + "byteLength": 47 } } } @@ -1980,20 +1991,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "strlen_before_null." }, + "message": { "text": "result_ptr." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/__fc_string_axiomatic.h", + "uri": "libc/string.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 89, - "startColumn": 4, - "endLine": 90, - "endColumn": 72, - "byteLength": 101 + "startLine": 99, + "startColumn": 24, + "endLine": 99, + "endColumn": 39, + "byteLength": 15 } } } @@ -2003,7 +2014,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "assigns clause in function strlen." }, + "message": { "text": "assigns clause in function memcpy." }, "locations": [ { "physicalLocation": { @@ -2012,11 +2023,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 129, - "startColumn": 14, - "endLine": 129, - "endColumn": 20, - "byteLength": 6 + "startLine": 96, + "startColumn": 12, + "endLine": 96, + "endColumn": 35, + "byteLength": 23 } } } @@ -2026,7 +2037,10 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "behavior default! in function strlcpy." }, + "message": { + "text": + "from clause of term *((char *)dest + (0 .. n - 1)) in function memcpy." + }, "locations": [ { "physicalLocation": { @@ -2035,11 +2049,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 393, - "startColumn": 7, - "endLine": 393, - "endColumn": 14, - "byteLength": 7 + "startLine": 96, + "startColumn": 12, + "endLine": 96, + "endColumn": 35, + "byteLength": 23 } } } @@ -2049,7 +2063,9 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "separation." }, + "message": { + "text": "from clause of term \\result in function memcpy." + }, "locations": [ { "physicalLocation": { @@ -2058,11 +2074,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 354, - "startColumn": 4, - "endLine": 354, - "endColumn": 59, - "byteLength": 55 + "startLine": 97, + "startColumn": 12, + "endLine": 97, + "endColumn": 19, + "byteLength": 7 } } } @@ -2072,7 +2088,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "behavior default in function strchr." }, + "message": { "text": "behavior default! in function memmove." }, "locations": [ { "physicalLocation": { @@ -2081,9 +2097,9 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 173, + "startLine": 111, "startColumn": 12, - "endLine": 173, + "endLine": 111, "endColumn": 13, "byteLength": 1 } @@ -2095,7 +2111,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "complete clause in function strtok_r." }, + "message": { "text": "valid_dest." }, "locations": [ { "physicalLocation": { @@ -2104,11 +2120,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 327, - "startColumn": 12, - "endLine": 327, - "endColumn": 13, - "byteLength": 1 + "startLine": 104, + "startColumn": 25, + "endLine": 104, + "endColumn": 48, + "byteLength": 23 } } } @@ -2118,10 +2134,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": - "from clause of term *(dest + (strlen{Old}(dest) .. strlen{Old}(dest) + n)) in function strncat." - }, + "message": { "text": "valid_src." }, "locations": [ { "physicalLocation": { @@ -2130,11 +2143,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 425, - "startColumn": 12, - "endLine": 425, - "endColumn": 50, - "byteLength": 38 + "startLine": 105, + "startColumn": 24, + "endLine": 105, + "endColumn": 51, + "byteLength": 27 } } } @@ -2144,7 +2157,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "behavior no_allocation in function strdup." }, + "message": { "text": "copied_contents." }, "locations": [ { "physicalLocation": { @@ -2153,11 +2166,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 484, - "startColumn": 12, - "endLine": 484, - "endColumn": 13, - "byteLength": 1 + "startLine": 108, + "startColumn": 29, + "endLine": 108, + "endColumn": 76, + "byteLength": 47 } } } @@ -2167,7 +2180,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "behavior default! in function strcat." }, + "message": { "text": "result_ptr." }, "locations": [ { "physicalLocation": { @@ -2176,11 +2189,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 420, - "startColumn": 12, - "endLine": 420, - "endColumn": 13, - "byteLength": 1 + "startLine": 109, + "startColumn": 24, + "endLine": 109, + "endColumn": 39, + "byteLength": 15 } } } @@ -2190,20 +2203,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "StrCmp." }, + "message": { "text": "assigns clause in function memmove." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/__fc_string_axiomatic.h", + "uri": "libc/string.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 143, - "startColumn": 4, - "endLine": 147, - "endColumn": 63, - "byteLength": 170 + "startLine": 106, + "startColumn": 12, + "endLine": 106, + "endColumn": 35, + "byteLength": 23 } } } @@ -2213,20 +2226,23 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "strlen_at_null." }, + "message": { + "text": + "from clause of term *((char *)dest + (0 .. n - 1)) in function memmove." + }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/__fc_string_axiomatic.h", + "uri": "libc/string.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 92, - "startColumn": 4, - "endLine": 93, - "endColumn": 61, - "byteLength": 86 + "startLine": 106, + "startColumn": 12, + "endLine": 106, + "endColumn": 35, + "byteLength": 23 } } } @@ -2237,8 +2253,7 @@ "kind": "pass", "level": "none", "message": { - "text": - "from clause of term *(*saveptr + (0 ..)) in function strtok_r." + "text": "from clause of term \\result in function memmove." }, "locations": [ { @@ -2248,11 +2263,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 290, - "startColumn": 10, - "endLine": 290, - "endColumn": 25, - "byteLength": 15 + "startLine": 107, + "startColumn": 12, + "endLine": 107, + "endColumn": 19, + "byteLength": 7 } } } @@ -2262,7 +2277,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "behavior default! in function strspn." }, + "message": { "text": "behavior default! in function memset." }, "locations": [ { "physicalLocation": { @@ -2271,11 +2286,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 210, - "startColumn": 14, - "endLine": 210, - "endColumn": 20, - "byteLength": 6 + "startLine": 121, + "startColumn": 12, + "endLine": 121, + "endColumn": 13, + "byteLength": 1 } } } @@ -2285,7 +2300,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "valid_string_s2." }, + "message": { "text": "valid_s." }, "locations": [ { "physicalLocation": { @@ -2294,11 +2309,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 138, - "startColumn": 30, - "endLine": 138, - "endColumn": 51, - "byteLength": 21 + "startLine": 115, + "startColumn": 22, + "endLine": 115, + "endColumn": 42, + "byteLength": 20 } } } @@ -2308,7 +2323,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "result_char." }, + "message": { "text": "acsl_c_equiv." }, "locations": [ { "physicalLocation": { @@ -2317,10 +2332,10 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 80, - "startColumn": 25, - "endLine": 80, - "endColumn": 45, + "startLine": 118, + "startColumn": 26, + "endLine": 118, + "endColumn": 46, "byteLength": 20 } } @@ -2331,7 +2346,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "assigns clause in function strlcpy." }, + "message": { "text": "result_ptr." }, "locations": [ { "physicalLocation": { @@ -2340,10 +2355,10 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 388, - "startColumn": 12, - "endLine": 388, - "endColumn": 24, + "startLine": 119, + "startColumn": 24, + "endLine": 119, + "endColumn": 36, "byteLength": 12 } } @@ -2354,23 +2369,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": - "from clause of term *((char *)s + (0 .. n - 1)) in function bzero." - }, + "message": { "text": "assigns clause in function memset." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/strings.h", + "uri": "libc/string.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 37, - "startColumn": 10, - "endLine": 37, - "endColumn": 31, - "byteLength": 21 + "startLine": 116, + "startColumn": 12, + "endLine": 116, + "endColumn": 32, + "byteLength": 20 } } } @@ -2380,7 +2392,10 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "result_in_str." }, + "message": { + "text": + "from clause of term *((char *)s + (0 .. n - 1)) in function memset." + }, "locations": [ { "physicalLocation": { @@ -2389,11 +2404,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 81, - "startColumn": 27, - "endLine": 83, - "endColumn": 54, - "byteLength": 120 + "startLine": 116, + "startColumn": 12, + "endLine": 116, + "endColumn": 32, + "byteLength": 20 } } } @@ -2403,7 +2418,9 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "char_found." }, + "message": { + "text": "from clause of term \\result in function memset." + }, "locations": [ { "physicalLocation": { @@ -2412,11 +2429,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 78, - "startColumn": 24, - "endLine": 78, - "endColumn": 44, - "byteLength": 20 + "startLine": 117, + "startColumn": 12, + "endLine": 117, + "endColumn": 19, + "byteLength": 7 } } } @@ -2426,20 +2443,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "MemChr." }, + "message": { "text": "behavior default! in function stpcpy." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/__fc_string_axiomatic.h", + "uri": "libc/string.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 57, - "startColumn": 4, - "endLine": 59, - "endColumn": 62, - "byteLength": 134 + "startLine": 405, + "startColumn": 12, + "endLine": 405, + "endColumn": 13, + "byteLength": 1 } } } @@ -2449,9 +2466,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": "from clause of term \\result in function strtok_r." - }, + "message": { "text": "valid_string_src." }, "locations": [ { "physicalLocation": { @@ -2460,11 +2475,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 319, - "startColumn": 12, - "endLine": 319, - "endColumn": 19, - "byteLength": 7 + "startLine": 396, + "startColumn": 31, + "endLine": 396, + "endColumn": 53, + "byteLength": 22 } } } @@ -2474,7 +2489,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "char_found." }, + "message": { "text": "room_string." }, "locations": [ { "physicalLocation": { @@ -2483,11 +2498,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 184, - "startColumn": 24, - "endLine": 184, - "endColumn": 35, - "byteLength": 11 + "startLine": 397, + "startColumn": 26, + "endLine": 397, + "endColumn": 55, + "byteLength": 29 } } } @@ -2497,9 +2512,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": "from clause of term \\result in function strtok." - }, + "message": { "text": "separation." }, "locations": [ { "physicalLocation": { @@ -2508,11 +2521,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 250, - "startColumn": 10, - "endLine": 250, - "endColumn": 17, - "byteLength": 7 + "startLine": 399, + "startColumn": 4, + "endLine": 399, + "endColumn": 59, + "byteLength": 55 } } } @@ -2522,7 +2535,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "valid_string_src." }, + "message": { "text": "equal_contents." }, "locations": [ { "physicalLocation": { @@ -2531,11 +2544,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 396, - "startColumn": 31, - "endLine": 396, - "endColumn": 53, - "byteLength": 22 + "startLine": 402, + "startColumn": 28, + "endLine": 402, + "endColumn": 49, + "byteLength": 21 } } } @@ -2545,7 +2558,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "assigns clause in function strtok." }, + "message": { "text": "points_to_end." }, "locations": [ { "physicalLocation": { @@ -2554,11 +2567,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 269, - "startColumn": 12, - "endLine": 269, - "endColumn": 32, - "byteLength": 20 + "startLine": 403, + "startColumn": 27, + "endLine": 403, + "endColumn": 57, + "byteLength": 30 } } } @@ -2568,20 +2581,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "wcslen_at_null." }, + "message": { "text": "assigns clause in function stpcpy." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/__fc_string_axiomatic.h", + "uri": "libc/string.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 207, - "startColumn": 4, - "endLine": 208, - "endColumn": 65, - "byteLength": 90 + "startLine": 400, + "startColumn": 12, + "endLine": 400, + "endColumn": 32, + "byteLength": 20 } } } @@ -2591,7 +2604,10 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "result_valid_string." }, + "message": { + "text": + "from clause of term *(dest + (0 .. strlen{Old}(src))) in function stpcpy." + }, "locations": [ { "physicalLocation": { @@ -2600,11 +2616,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 187, - "startColumn": 33, - "endLine": 187, - "endColumn": 59, - "byteLength": 26 + "startLine": 400, + "startColumn": 12, + "endLine": 400, + "endColumn": 32, + "byteLength": 20 } } } @@ -2614,7 +2630,9 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "valid_string_src_fits." }, + "message": { + "text": "from clause of term \\result in function stpcpy." + }, "locations": [ { "physicalLocation": { @@ -2623,11 +2641,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 429, - "startColumn": 35, - "endLine": 429, - "endColumn": 77, - "byteLength": 42 + "startLine": 401, + "startColumn": 12, + "endLine": 401, + "endColumn": 19, + "byteLength": 7 } } } @@ -2637,20 +2655,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "result_null_or_in_haystack." }, + "message": { "text": "behavior default! in function strcasecmp." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/string.h", + "uri": "libc/strings.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 236, - "startColumn": 4, - "endLine": 237, - "endColumn": 65, - "byteLength": 82 + "startLine": 50, + "startColumn": 11, + "endLine": 50, + "endColumn": 21, + "byteLength": 10 } } } @@ -2660,20 +2678,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "behavior default! in function memset." }, + "message": { "text": "valid_string_s1." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/string.h", + "uri": "libc/strings.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 121, - "startColumn": 12, - "endLine": 121, - "endColumn": 13, - "byteLength": 1 + "startLine": 46, + "startColumn": 28, + "endLine": 46, + "endColumn": 49, + "byteLength": 21 } } } @@ -2683,20 +2701,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "result_first_occur." }, + "message": { "text": "valid_string_s2." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/string.h", + "uri": "libc/strings.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 165, - "startColumn": 32, - "endLine": 165, - "endColumn": 79, - "byteLength": 47 + "startLine": 47, + "startColumn": 28, + "endLine": 47, + "endColumn": 49, + "byteLength": 21 } } } @@ -2706,20 +2724,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "assigns clause in function strtok_r." }, + "message": { "text": "assigns clause in function strcasecmp." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/string.h", + "uri": "libc/strings.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 313, - "startColumn": 12, - "endLine": 313, - "endColumn": 27, - "byteLength": 15 + "startLine": 50, + "startColumn": 11, + "endLine": 50, + "endColumn": 21, + "byteLength": 10 } } } @@ -2729,20 +2747,22 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "room_string." }, + "message": { + "text": "from clause of term \\result in function strcasecmp." + }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/string.h", + "uri": "libc/strings.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 430, - "startColumn": 26, - "endLine": 430, - "endColumn": 74, - "byteLength": 48 + "startLine": 48, + "startColumn": 10, + "endLine": 48, + "endColumn": 17, + "byteLength": 7 } } } @@ -2752,7 +2772,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "initialization." }, + "message": { "text": "behavior default! in function strcasestr." }, "locations": [ { "physicalLocation": { @@ -2761,11 +2781,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 312, - "startColumn": 37, - "endLine": 312, - "endColumn": 58, - "byteLength": 21 + "startLine": 239, + "startColumn": 12, + "endLine": 239, + "endColumn": 13, + "byteLength": 1 } } } @@ -2775,20 +2795,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "WMemChr." }, + "message": { "text": "valid_string_haystack." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/__fc_string_axiomatic.h", + "uri": "libc/string.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 183, - "startColumn": 4, - "endLine": 185, + "startLine": 231, + "startColumn": 36, + "endLine": 231, "endColumn": 63, - "byteLength": 143 + "byteLength": 27 } } } @@ -2798,7 +2818,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "behavior default! in function strcmp." }, + "message": { "text": "valid_string_needle." }, "locations": [ { "physicalLocation": { @@ -2807,11 +2827,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 142, - "startColumn": 11, - "endLine": 142, - "endColumn": 17, - "byteLength": 6 + "startLine": 232, + "startColumn": 34, + "endLine": 232, + "endColumn": 59, + "byteLength": 25 } } } @@ -2821,20 +2841,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "valid_string_s1." }, + "message": { "text": "result_null_or_in_haystack." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/strings.h", + "uri": "libc/string.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 46, - "startColumn": 28, - "endLine": 46, - "endColumn": 49, - "byteLength": 21 + "startLine": 236, + "startColumn": 4, + "endLine": 237, + "endColumn": 65, + "byteLength": 82 } } } @@ -2844,20 +2864,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "assigns clause in function bzero." }, + "message": { "text": "assigns clause in function strcasestr." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/strings.h", + "uri": "libc/string.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 37, - "startColumn": 10, - "endLine": 37, - "endColumn": 31, - "byteLength": 21 + "startLine": 239, + "startColumn": 12, + "endLine": 239, + "endColumn": 13, + "byteLength": 1 } } } @@ -2868,8 +2888,7 @@ "kind": "pass", "level": "none", "message": { - "text": - "from clause of term *(dest + (0 .. strlen{Old}(src))) in function strcpy." + "text": "from clause of term \\result in function strcasestr." }, "locations": [ { @@ -2879,11 +2898,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 355, + "startLine": 233, "startColumn": 12, - "endLine": 355, - "endColumn": 32, - "byteLength": 20 + "endLine": 233, + "endColumn": 19, + "byteLength": 7 } } } @@ -2893,7 +2912,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "valid_string_delim." }, + "message": { "text": "behavior default! in function strcat." }, "locations": [ { "physicalLocation": { @@ -2902,11 +2921,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 286, - "startColumn": 31, - "endLine": 286, - "endColumn": 55, - "byteLength": 24 + "startLine": 420, + "startColumn": 12, + "endLine": 420, + "endColumn": 13, + "byteLength": 1 } } } @@ -2916,7 +2935,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "behavior partial in function strncat." }, + "message": { "text": "valid_string_src." }, "locations": [ { "physicalLocation": { @@ -2925,11 +2944,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 444, - "startColumn": 12, - "endLine": 444, - "endColumn": 13, - "byteLength": 1 + "startLine": 408, + "startColumn": 31, + "endLine": 408, + "endColumn": 53, + "byteLength": 22 } } } @@ -2939,7 +2958,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "result_ptr." }, + "message": { "text": "valid_string_dest." }, "locations": [ { "physicalLocation": { @@ -2948,11 +2967,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 418, - "startColumn": 24, - "endLine": 418, - "endColumn": 39, - "byteLength": 15 + "startLine": 409, + "startColumn": 32, + "endLine": 409, + "endColumn": 50, + "byteLength": 18 } } } @@ -2962,7 +2981,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "result_ptr." }, + "message": { "text": "room_string." }, "locations": [ { "physicalLocation": { @@ -2971,11 +2990,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 109, - "startColumn": 24, - "endLine": 109, - "endColumn": 39, - "byteLength": 15 + "startLine": 410, + "startColumn": 26, + "endLine": 410, + "endColumn": 70, + "byteLength": 44 } } } @@ -2985,7 +3004,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "assigns clause in function strdup." }, + "message": { "text": "sum_of_lengths." }, "locations": [ { "physicalLocation": { @@ -2994,11 +3013,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 484, - "startColumn": 12, - "endLine": 484, - "endColumn": 13, - "byteLength": 1 + "startLine": 413, + "startColumn": 28, + "endLine": 413, + "endColumn": 76, + "byteLength": 48 } } } @@ -3008,7 +3027,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "equal_contents." }, + "message": { "text": "initialization." }, "locations": [ { "physicalLocation": { @@ -3017,11 +3036,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 357, - "startColumn": 28, - "endLine": 357, - "endColumn": 49, - "byteLength": 21 + "startLine": 416, + "startColumn": 4, + "endLine": 416, + "endColumn": 60, + "byteLength": 56 } } } @@ -3031,7 +3050,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "assigns clause in function strstr." }, + "message": { "text": "dest_null_terminated." }, "locations": [ { "physicalLocation": { @@ -3040,11 +3059,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 229, - "startColumn": 12, - "endLine": 229, - "endColumn": 13, - "byteLength": 1 + "startLine": 417, + "startColumn": 34, + "endLine": 417, + "endColumn": 77, + "byteLength": 43 } } } @@ -3054,9 +3073,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": "from clause of term \\result in function strchrnul." - }, + "message": { "text": "result_ptr." }, "locations": [ { "physicalLocation": { @@ -3065,11 +3082,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 176, - "startColumn": 12, - "endLine": 176, - "endColumn": 19, - "byteLength": 7 + "startLine": 418, + "startColumn": 24, + "endLine": 418, + "endColumn": 39, + "byteLength": 15 } } } @@ -3079,7 +3096,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "valid_src." }, + "message": { "text": "assigns clause in function strcat." }, "locations": [ { "physicalLocation": { @@ -3088,11 +3105,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 93, - "startColumn": 24, - "endLine": 93, - "endColumn": 51, - "byteLength": 27 + "startLine": 411, + "startColumn": 12, + "endLine": 411, + "endColumn": 58, + "byteLength": 46 } } } @@ -3102,7 +3119,10 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "valid_string_src." }, + "message": { + "text": + "from clause of term *(dest +\n (strlen{Old}(dest) ..\n strlen{Old}(dest) +\n strlen{Old}(src))) in function strcat." + }, "locations": [ { "physicalLocation": { @@ -3111,11 +3131,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 384, - "startColumn": 31, - "endLine": 384, - "endColumn": 53, - "byteLength": 22 + "startLine": 411, + "startColumn": 12, + "endLine": 411, + "endColumn": 58, + "byteLength": 46 } } } @@ -3126,7 +3146,7 @@ "kind": "pass", "level": "none", "message": { - "text": "from clause of term \\result in function strcmp." + "text": "from clause of term \\result in function strcat." }, "locations": [ { @@ -3136,9 +3156,9 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 139, + "startLine": 414, "startColumn": 12, - "endLine": 139, + "endLine": 414, "endColumn": 19, "byteLength": 7 } @@ -3150,7 +3170,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "behavior default! in function strdup." }, + "message": { "text": "behavior default in function strchr." }, "locations": [ { "physicalLocation": { @@ -3159,9 +3179,9 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 484, + "startLine": 173, "startColumn": 12, - "endLine": 484, + "endLine": 173, "endColumn": 13, "byteLength": 1 } @@ -3173,20 +3193,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "s_initialized." }, + "message": { "text": "behavior default! in function strchr." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/strings.h", + "uri": "libc/string.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 38, - "startColumn": 39, - "endLine": 38, - "endColumn": 75, - "byteLength": 36 + "startLine": 173, + "startColumn": 12, + "endLine": 173, + "endColumn": 13, + "byteLength": 1 } } } @@ -3196,7 +3216,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "s_null." }, + "message": { "text": "behavior found in function strchr." }, "locations": [ { "physicalLocation": { @@ -3205,11 +3225,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 310, - "startColumn": 20, - "endLine": 310, - "endColumn": 30, - "byteLength": 10 + "startLine": 173, + "startColumn": 12, + "endLine": 173, + "endColumn": 13, + "byteLength": 1 } } } @@ -3219,20 +3239,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "WcsLen." }, + "message": { "text": "behavior not_found in function strchr." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/__fc_string_axiomatic.h", + "uri": "libc/string.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 230, - "startColumn": 4, - "endLine": 232, - "endColumn": 63, - "byteLength": 147 + "startLine": 173, + "startColumn": 12, + "endLine": 173, + "endColumn": 13, + "byteLength": 1 } } } @@ -3242,7 +3262,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "result_subset." }, + "message": { "text": "valid_string_s." }, "locations": [ { "physicalLocation": { @@ -3251,11 +3271,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 306, - "startColumn": 27, - "endLine": 306, - "endColumn": 72, - "byteLength": 45 + "startLine": 157, + "startColumn": 29, + "endLine": 157, + "endColumn": 49, + "byteLength": 20 } } } @@ -3265,7 +3285,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "valid_string_dest." }, + "message": { "text": "char_found." }, "locations": [ { "physicalLocation": { @@ -3274,11 +3294,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 424, - "startColumn": 32, - "endLine": 424, - "endColumn": 50, - "byteLength": 18 + "startLine": 160, + "startColumn": 24, + "endLine": 160, + "endColumn": 35, + "byteLength": 11 } } } @@ -3288,7 +3308,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "result_subset." }, + "message": { "text": "char_not_found." }, "locations": [ { "physicalLocation": { @@ -3297,11 +3317,34 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 321, - "startColumn": 27, - "endLine": 322, - "endColumn": 65, - "byteLength": 85 + "startLine": 167, + "startColumn": 28, + "endLine": 167, + "endColumn": 40, + "byteLength": 12 + } + } + } + ] + }, + { + "ruleId": "user-spec", + "kind": "pass", + "level": "none", + "message": { "text": "result_char." }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 161, + "startColumn": 25, + "endLine": 161, + "endColumn": 44, + "byteLength": 19 } } } @@ -3311,7 +3354,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "valid_string_s." }, + "message": { "text": "result_same_base." }, "locations": [ { "physicalLocation": { @@ -3320,11 +3363,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 197, - "startColumn": 29, - "endLine": 197, - "endColumn": 49, - "byteLength": 20 + "startLine": 162, + "startColumn": 30, + "endLine": 162, + "endColumn": 66, + "byteLength": 36 } } } @@ -3334,7 +3377,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "result_ptr." }, + "message": { "text": "result_in_length." }, "locations": [ { "physicalLocation": { @@ -3343,11 +3386,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 99, - "startColumn": 24, - "endLine": 99, - "endColumn": 39, - "byteLength": 15 + "startLine": 163, + "startColumn": 30, + "endLine": 163, + "endColumn": 59, + "byteLength": 29 } } } @@ -3357,7 +3400,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "behavior default! in function strlcat." }, + "message": { "text": "result_valid_string." }, "locations": [ { "physicalLocation": { @@ -3366,11 +3409,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 455, - "startColumn": 14, - "endLine": 455, - "endColumn": 21, - "byteLength": 7 + "startLine": 164, + "startColumn": 33, + "endLine": 164, + "endColumn": 59, + "byteLength": 26 } } } @@ -3380,7 +3423,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "disjoint clause in function strtok_r." }, + "message": { "text": "result_first_occur." }, "locations": [ { "physicalLocation": { @@ -3389,11 +3432,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 327, - "startColumn": 12, - "endLine": 327, - "endColumn": 13, - "byteLength": 1 + "startLine": 165, + "startColumn": 32, + "endLine": 165, + "endColumn": 79, + "byteLength": 47 } } } @@ -3403,10 +3446,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": - "from clause of term *(__fc_strtok_ptr + (0 ..)) in function strtok." - }, + "message": { "text": "result_null." }, "locations": [ { "physicalLocation": { @@ -3415,11 +3455,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 269, - "startColumn": 12, - "endLine": 269, - "endColumn": 32, - "byteLength": 20 + "startLine": 168, + "startColumn": 25, + "endLine": 168, + "endColumn": 41, + "byteLength": 16 } } } @@ -3429,7 +3469,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "valid_nstring_src." }, + "message": { "text": "result_null_or_same_base." }, "locations": [ { "physicalLocation": { @@ -3438,11 +3478,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 363, - "startColumn": 32, - "endLine": 363, - "endColumn": 58, - "byteLength": 26 + "startLine": 171, + "startColumn": 4, + "endLine": 171, + "endColumn": 60, + "byteLength": 56 } } } @@ -3452,9 +3492,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": "from clause of term *saveptr in function strtok_r." - }, + "message": { "text": "assigns clause in function strchr." }, "locations": [ { "physicalLocation": { @@ -3463,11 +3501,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 294, - "startColumn": 10, - "endLine": 294, - "endColumn": 18, - "byteLength": 8 + "startLine": 173, + "startColumn": 12, + "endLine": 173, + "endColumn": 13, + "byteLength": 1 } } } @@ -3478,7 +3516,7 @@ "kind": "pass", "level": "none", "message": { - "text": "from clause of term \\result in function stpcpy." + "text": "from clause of term \\result in function strchr." }, "locations": [ { @@ -3488,9 +3526,9 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 401, + "startLine": 158, "startColumn": 12, - "endLine": 401, + "endLine": 158, "endColumn": 19, "byteLength": 7 } @@ -3502,9 +3540,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": "from clause of term \\result in function memset." - }, + "message": { "text": "behavior default! in function strchrnul." }, "locations": [ { "physicalLocation": { @@ -3513,11 +3549,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 117, + "startLine": 179, "startColumn": 12, - "endLine": 117, - "endColumn": 19, - "byteLength": 7 + "endLine": 179, + "endColumn": 13, + "byteLength": 1 } } } @@ -3527,7 +3563,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "valid_src." }, + "message": { "text": "valid_string_s." }, "locations": [ { "physicalLocation": { @@ -3536,11 +3572,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 105, - "startColumn": 24, - "endLine": 105, - "endColumn": 51, - "byteLength": 27 + "startLine": 175, + "startColumn": 29, + "endLine": 175, + "endColumn": 49, + "byteLength": 20 } } } @@ -3550,20 +3586,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "wcslen_neg." }, + "message": { "text": "result_same_base." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/__fc_string_axiomatic.h", + "uri": "libc/string.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 199, - "startColumn": 4, - "endLine": 202, - "endColumn": 22, - "byteLength": 113 + "startLine": 177, + "startColumn": 30, + "endLine": 177, + "endColumn": 64, + "byteLength": 34 } } } @@ -3573,7 +3609,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "result_internal_str." }, + "message": { "text": "assigns clause in function strchrnul." }, "locations": [ { "physicalLocation": { @@ -3582,11 +3618,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 519, - "startColumn": 33, - "endLine": 519, - "endColumn": 60, - "byteLength": 27 + "startLine": 179, + "startColumn": 12, + "endLine": 179, + "endColumn": 13, + "byteLength": 1 } } } @@ -3596,7 +3632,9 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "behavior default! in function strncpy." }, + "message": { + "text": "from clause of term \\result in function strchrnul." + }, "locations": [ { "physicalLocation": { @@ -3605,11 +3643,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 378, + "startLine": 176, "startColumn": 12, - "endLine": 378, - "endColumn": 13, - "byteLength": 1 + "endLine": 176, + "endColumn": 19, + "byteLength": 7 } } } @@ -3619,7 +3657,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "valid_string_reject." }, + "message": { "text": "behavior default! in function strcmp." }, "locations": [ { "physicalLocation": { @@ -3628,11 +3666,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 198, - "startColumn": 34, - "endLine": 198, - "endColumn": 59, - "byteLength": 25 + "startLine": 142, + "startColumn": 11, + "endLine": 142, + "endColumn": 17, + "byteLength": 6 } } } @@ -3642,20 +3680,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "wcschr_def." }, + "message": { "text": "valid_string_s1." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/__fc_string_axiomatic.h", + "uri": "libc/string.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 266, - "startColumn": 4, - "endLine": 269, - "endColumn": 29, - "byteLength": 153 + "startLine": 137, + "startColumn": 30, + "endLine": 137, + "endColumn": 51, + "byteLength": 21 } } } @@ -3665,20 +3703,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "wcslen_shift." }, + "message": { "text": "valid_string_s2." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/__fc_string_axiomatic.h", + "uri": "libc/string.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 222, - "startColumn": 4, - "endLine": 224, - "endColumn": 55, - "byteLength": 117 + "startLine": 138, + "startColumn": 30, + "endLine": 138, + "endColumn": 51, + "byteLength": 21 } } } @@ -3688,7 +3726,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "not_first_call." }, + "message": { "text": "acsl_c_equiv." }, "locations": [ { "physicalLocation": { @@ -3697,11 +3735,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 311, - "startColumn": 29, - "endLine": 311, - "endColumn": 46, - "byteLength": 17 + "startLine": 140, + "startColumn": 26, + "endLine": 140, + "endColumn": 50, + "byteLength": 24 } } } @@ -3711,7 +3749,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "result_null_or_in_haystack." }, + "message": { "text": "assigns clause in function strcmp." }, "locations": [ { "physicalLocation": { @@ -3720,11 +3758,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 225, - "startColumn": 4, - "endLine": 227, - "endColumn": 59, - "byteLength": 141 + "startLine": 142, + "startColumn": 11, + "endLine": 142, + "endColumn": 17, + "byteLength": 6 } } } @@ -3734,7 +3772,9 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "valid_string_s1." }, + "message": { + "text": "from clause of term \\result in function strcmp." + }, "locations": [ { "physicalLocation": { @@ -3743,11 +3783,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 144, - "startColumn": 30, - "endLine": 144, - "endColumn": 55, - "byteLength": 25 + "startLine": 139, + "startColumn": 12, + "endLine": 139, + "endColumn": 19, + "byteLength": 7 } } } @@ -3757,9 +3797,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": "from clause of term \\result in function strtok." - }, + "message": { "text": "behavior default! in function strcoll." }, "locations": [ { "physicalLocation": { @@ -3768,10 +3806,10 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 263, - "startColumn": 12, - "endLine": 263, - "endColumn": 19, + "startLine": 155, + "startColumn": 11, + "endLine": 155, + "endColumn": 18, "byteLength": 7 } } @@ -3782,7 +3820,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "valid_string_src." }, + "message": { "text": "valid_string_s1." }, "locations": [ { "physicalLocation": { @@ -3791,11 +3829,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 351, - "startColumn": 31, - "endLine": 351, - "endColumn": 53, - "byteLength": 22 + "startLine": 151, + "startColumn": 30, + "endLine": 151, + "endColumn": 51, + "byteLength": 21 } } } @@ -3805,7 +3843,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "result_bounded." }, + "message": { "text": "valid_string_s2." }, "locations": [ { "physicalLocation": { @@ -3814,11 +3852,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 133, - "startColumn": 28, - "endLine": 133, - "endColumn": 64, - "byteLength": 36 + "startLine": 152, + "startColumn": 30, + "endLine": 152, + "endColumn": 51, + "byteLength": 21 } } } @@ -3828,7 +3866,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "acsl_c_equiv." }, + "message": { "text": "assigns clause in function strcoll." }, "locations": [ { "physicalLocation": { @@ -3837,11 +3875,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 147, - "startColumn": 26, - "endLine": 147, - "endColumn": 53, - "byteLength": 27 + "startLine": 155, + "startColumn": 11, + "endLine": 155, + "endColumn": 18, + "byteLength": 7 } } } @@ -3852,7 +3890,7 @@ "kind": "pass", "level": "none", "message": { - "text": "allocates/frees clause in function strndup." + "text": "from clause of term \\result in function strcoll." }, "locations": [ { @@ -3862,11 +3900,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 506, + "startLine": 153, "startColumn": 12, - "endLine": 506, - "endColumn": 13, - "byteLength": 1 + "endLine": 153, + "endColumn": 19, + "byteLength": 7 } } } @@ -3876,7 +3914,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "result_nul_terminated." }, + "message": { "text": "behavior default! in function strcpy." }, "locations": [ { "physicalLocation": { @@ -3885,11 +3923,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 344, - "startColumn": 35, - "endLine": 344, - "endColumn": 51, - "byteLength": 16 + "startLine": 360, + "startColumn": 12, + "endLine": 360, + "endColumn": 13, + "byteLength": 1 } } } @@ -3899,7 +3937,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "valid_string_dest." }, + "message": { "text": "valid_string_src." }, "locations": [ { "physicalLocation": { @@ -3908,11 +3946,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 409, - "startColumn": 32, - "endLine": 409, - "endColumn": 50, - "byteLength": 18 + "startLine": 351, + "startColumn": 31, + "endLine": 351, + "endColumn": 53, + "byteLength": 22 } } } @@ -3922,7 +3960,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "behavior default! in function strcpy." }, + "message": { "text": "room_string." }, "locations": [ { "physicalLocation": { @@ -3931,11 +3969,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 360, - "startColumn": 12, - "endLine": 360, - "endColumn": 13, - "byteLength": 1 + "startLine": 352, + "startColumn": 26, + "endLine": 352, + "endColumn": 55, + "byteLength": 29 } } } @@ -3945,20 +3983,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "strlen_not_zero." }, + "message": { "text": "separation." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/__fc_string_axiomatic.h", + "uri": "libc/string.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 95, + "startLine": 354, "startColumn": 4, - "endLine": 97, - "endColumn": 58, - "byteLength": 120 + "endLine": 354, + "endColumn": 59, + "byteLength": 55 } } } @@ -3968,7 +4006,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "result_null_or_same_base." }, + "message": { "text": "equal_contents." }, "locations": [ { "physicalLocation": { @@ -3977,11 +4015,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 216, - "startColumn": 4, - "endLine": 216, - "endColumn": 60, - "byteLength": 56 + "startLine": 357, + "startColumn": 28, + "endLine": 357, + "endColumn": 49, + "byteLength": 21 } } } @@ -3991,9 +4029,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": "from clause of term \\result in function strncat." - }, + "message": { "text": "result_ptr." }, "locations": [ { "physicalLocation": { @@ -4002,11 +4038,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 441, - "startColumn": 12, - "endLine": 441, - "endColumn": 19, - "byteLength": 7 + "startLine": 358, + "startColumn": 24, + "endLine": 358, + "endColumn": 39, + "byteLength": 15 } } } @@ -4016,7 +4052,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "danglingness." }, + "message": { "text": "assigns clause in function strcpy." }, "locations": [ { "physicalLocation": { @@ -4025,11 +4061,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 60, - "startColumn": 30, - "endLine": 60, - "endColumn": 49, - "byteLength": 19 + "startLine": 355, + "startColumn": 12, + "endLine": 355, + "endColumn": 32, + "byteLength": 20 } } } @@ -4041,7 +4077,7 @@ "level": "none", "message": { "text": - "from clause of term *(*saveptr + (0 ..)) in function strtok_r." + "from clause of term *(dest + (0 .. strlen{Old}(src))) in function strcpy." }, "locations": [ { @@ -4051,11 +4087,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 313, + "startLine": 355, "startColumn": 12, - "endLine": 313, - "endColumn": 27, - "byteLength": 15 + "endLine": 355, + "endColumn": 32, + "byteLength": 20 } } } @@ -4065,7 +4101,9 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "can_allocate." }, + "message": { + "text": "from clause of term \\result in function strcpy." + }, "locations": [ { "physicalLocation": { @@ -4074,11 +4112,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 491, - "startColumn": 26, - "endLine": 491, - "endColumn": 60, - "byteLength": 34 + "startLine": 356, + "startColumn": 12, + "endLine": 356, + "endColumn": 19, + "byteLength": 7 } } } @@ -4088,7 +4126,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "valid_string_s." }, + "message": { "text": "behavior default! in function strcspn." }, "locations": [ { "physicalLocation": { @@ -4097,11 +4135,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 175, - "startColumn": 29, - "endLine": 175, - "endColumn": 49, - "byteLength": 20 + "startLine": 202, + "startColumn": 14, + "endLine": 202, + "endColumn": 21, + "byteLength": 7 } } } @@ -4111,7 +4149,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "valid_string_haystack." }, + "message": { "text": "valid_string_s." }, "locations": [ { "physicalLocation": { @@ -4120,11 +4158,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 231, - "startColumn": 36, - "endLine": 231, - "endColumn": 63, - "byteLength": 27 + "startLine": 197, + "startColumn": 29, + "endLine": 197, + "endColumn": 49, + "byteLength": 20 } } } @@ -4134,9 +4172,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": "from clause of term \\result in function memchr." - }, + "message": { "text": "valid_string_reject." }, "locations": [ { "physicalLocation": { @@ -4145,11 +4181,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 76, - "startColumn": 12, - "endLine": 76, - "endColumn": 19, - "byteLength": 7 + "startLine": 198, + "startColumn": 34, + "endLine": 198, + "endColumn": 59, + "byteLength": 25 } } } @@ -4159,7 +4195,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "assigns clause in function strtok_r." }, + "message": { "text": "result_bounded." }, "locations": [ { "physicalLocation": { @@ -4168,11 +4204,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 288, - "startColumn": 10, - "endLine": 288, - "endColumn": 16, - "byteLength": 6 + "startLine": 200, + "startColumn": 28, + "endLine": 200, + "endColumn": 53, + "byteLength": 25 } } } @@ -4182,7 +4218,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "complete clause in function strtok." }, + "message": { "text": "assigns clause in function strcspn." }, "locations": [ { "physicalLocation": { @@ -4191,11 +4227,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 283, - "startColumn": 12, - "endLine": 283, - "endColumn": 13, - "byteLength": 1 + "startLine": 202, + "startColumn": 14, + "endLine": 202, + "endColumn": 21, + "byteLength": 7 } } } @@ -4206,8 +4242,7 @@ "kind": "pass", "level": "none", "message": { - "text": - "from clause of term __fc_heap_status in function strdup." + "text": "from clause of term \\result in function strcspn." }, "locations": [ { @@ -4217,34 +4252,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 473, + "startLine": 199, "startColumn": 12, - "endLine": 473, - "endColumn": 28, - "byteLength": 16 - } - } - } - ] - }, - { - "ruleId": "user-spec", - "kind": "pass", - "level": "none", - "message": { "text": "valid_string_s2." }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "libc/strings.h", - "uriBaseId": "FRAMAC_SHARE" - }, - "region": { - "startLine": 47, - "startColumn": 28, - "endLine": 47, - "endColumn": 49, - "byteLength": 21 + "endLine": 199, + "endColumn": 19, + "byteLength": 7 } } } @@ -4254,7 +4266,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "assigns clause in function memset." }, + "message": { "text": "behavior allocation in function strdup." }, "locations": [ { "physicalLocation": { @@ -4263,11 +4275,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 116, + "startLine": 484, "startColumn": 12, - "endLine": 116, - "endColumn": 32, - "byteLength": 20 + "endLine": 484, + "endColumn": 13, + "byteLength": 1 } } } @@ -4277,7 +4289,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "logic_spec." }, + "message": { "text": "behavior default! in function strdup." }, "locations": [ { "physicalLocation": { @@ -4286,11 +4298,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 63, - "startColumn": 24, - "endLine": 63, - "endColumn": 73, - "byteLength": 49 + "startLine": 484, + "startColumn": 12, + "endLine": 484, + "endColumn": 13, + "byteLength": 1 } } } @@ -4300,7 +4312,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "behavior default! in function strxfrm." }, + "message": { "text": "behavior no_allocation in function strdup." }, "locations": [ { "physicalLocation": { @@ -4309,11 +4321,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 463, - "startColumn": 14, - "endLine": 463, - "endColumn": 21, - "byteLength": 7 + "startLine": 484, + "startColumn": 12, + "endLine": 484, + "endColumn": 13, + "byteLength": 1 } } } @@ -4323,7 +4335,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "valid_string_accept." }, + "message": { "text": "valid_string_s." }, "locations": [ { "physicalLocation": { @@ -4332,11 +4344,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 205, - "startColumn": 34, - "endLine": 205, - "endColumn": 59, - "byteLength": 25 + "startLine": 468, + "startColumn": 29, + "endLine": 468, + "endColumn": 49, + "byteLength": 20 } } } @@ -4346,10 +4358,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": - "from clause of term *(dest + (0 .. n - 1)) in function strxfrm." - }, + "message": { "text": "can_allocate." }, "locations": [ { "physicalLocation": { @@ -4358,11 +4367,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 460, - "startColumn": 12, - "endLine": 460, - "endColumn": 26, - "byteLength": 14 + "startLine": 472, + "startColumn": 26, + "endLine": 472, + "endColumn": 49, + "byteLength": 23 } } } @@ -4372,7 +4381,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "behavior resume_str in function strtok." }, + "message": { "text": "cannot_allocate." }, "locations": [ { "physicalLocation": { @@ -4381,11 +4390,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 283, - "startColumn": 12, - "endLine": 283, - "endColumn": 13, - "byteLength": 1 + "startLine": 479, + "startColumn": 29, + "endLine": 479, + "endColumn": 53, + "byteLength": 24 } } } @@ -4395,20 +4404,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "wcslen_create." }, + "message": { "text": "allocation." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/__fc_string_axiomatic.h", + "uri": "libc/string.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 226, - "startColumn": 4, - "endLine": 228, - "endColumn": 52, - "byteLength": 115 + "startLine": 475, + "startColumn": 24, + "endLine": 475, + "endColumn": 49, + "byteLength": 25 } } } @@ -4418,20 +4427,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "memchr_def." }, + "message": { "text": "result_valid_string_and_same_contents." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/__fc_string_axiomatic.h", + "uri": "libc/string.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 57, + "startLine": 477, "startColumn": 4, - "endLine": 59, - "endColumn": 62, - "byteLength": 134 + "endLine": 477, + "endColumn": 51, + "byteLength": 47 } } } @@ -4441,7 +4450,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "s_null." }, + "message": { "text": "result_null." }, "locations": [ { "physicalLocation": { @@ -4450,11 +4459,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 267, - "startColumn": 20, - "endLine": 267, - "endColumn": 30, - "byteLength": 10 + "startLine": 482, + "startColumn": 25, + "endLine": 482, + "endColumn": 41, + "byteLength": 16 } } } @@ -4464,7 +4473,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "assigns clause in function memcmp." }, + "message": { "text": "assigns clause in function strdup." }, "locations": [ { "physicalLocation": { @@ -4473,11 +4482,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 65, - "startColumn": 11, - "endLine": 65, - "endColumn": 17, - "byteLength": 6 + "startLine": 473, + "startColumn": 12, + "endLine": 473, + "endColumn": 28, + "byteLength": 16 } } } @@ -4487,7 +4496,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "assigns clause in function strerror." }, + "message": { "text": "assigns clause in function strdup." }, "locations": [ { "physicalLocation": { @@ -4496,9 +4505,9 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 347, + "startLine": 484, "startColumn": 12, - "endLine": 347, + "endLine": 484, "endColumn": 13, "byteLength": 1 } @@ -4510,7 +4519,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "behavior complete in function strncpy." }, + "message": { "text": "assigns clause in function strdup." }, "locations": [ { "physicalLocation": { @@ -4519,9 +4528,9 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 378, + "startLine": 484, "startColumn": 12, - "endLine": 378, + "endLine": 484, "endColumn": 13, "byteLength": 1 } @@ -4533,7 +4542,10 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "valid_dest." }, + "message": { + "text": + "from clause of term __fc_heap_status in function strdup." + }, "locations": [ { "physicalLocation": { @@ -4542,11 +4554,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 92, - "startColumn": 25, - "endLine": 92, - "endColumn": 48, - "byteLength": 23 + "startLine": 473, + "startColumn": 12, + "endLine": 473, + "endColumn": 28, + "byteLength": 16 } } } @@ -4556,7 +4568,9 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "char_not_found." }, + "message": { + "text": "from clause of term \\result in function strdup." + }, "locations": [ { "physicalLocation": { @@ -4565,11 +4579,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 85, - "startColumn": 28, - "endLine": 85, - "endColumn": 49, - "byteLength": 21 + "startLine": 474, + "startColumn": 12, + "endLine": 474, + "endColumn": 19, + "byteLength": 7 } } } @@ -4580,7 +4594,7 @@ "kind": "pass", "level": "none", "message": { - "text": "from clause of term \\result in function strtok_r." + "text": "from clause of term \\result in function strdup." }, "locations": [ { @@ -4590,9 +4604,9 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 305, + "startLine": 470, "startColumn": 12, - "endLine": 305, + "endLine": 470, "endColumn": 19, "byteLength": 7 } @@ -4604,7 +4618,9 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "behavior default! in function strpbrk." }, + "message": { + "text": "from clause of term \\result in function strdup." + }, "locations": [ { "physicalLocation": { @@ -4613,11 +4629,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 218, + "startLine": 480, "startColumn": 12, - "endLine": 218, - "endColumn": 13, - "byteLength": 1 + "endLine": 480, + "endColumn": 19, + "byteLength": 7 } } } @@ -4650,7 +4666,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "result_bounded." }, + "message": { "text": "allocates/frees clause in function strdup." }, "locations": [ { "physicalLocation": { @@ -4659,11 +4675,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 200, - "startColumn": 28, - "endLine": 200, - "endColumn": 53, - "byteLength": 25 + "startLine": 484, + "startColumn": 12, + "endLine": 484, + "endColumn": 13, + "byteLength": 1 } } } @@ -4673,9 +4689,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": "from clause of term *(s + (0 ..)) in function strtok_r." - }, + "message": { "text": "behavior default! in function strerror." }, "locations": [ { "physicalLocation": { @@ -4684,11 +4698,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 304, + "startLine": 347, "startColumn": 12, - "endLine": 304, - "endColumn": 18, - "byteLength": 6 + "endLine": 347, + "endColumn": 13, + "byteLength": 1 } } } @@ -4698,7 +4712,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "assigns clause in function strcmp." }, + "message": { "text": "result_internal_str." }, "locations": [ { "physicalLocation": { @@ -4707,11 +4721,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 142, - "startColumn": 11, - "endLine": 142, - "endColumn": 17, - "byteLength": 6 + "startLine": 343, + "startColumn": 33, + "endLine": 343, + "endColumn": 59, + "byteLength": 26 } } } @@ -4721,7 +4735,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "char_found." }, + "message": { "text": "result_nul_terminated." }, "locations": [ { "physicalLocation": { @@ -4730,11 +4744,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 160, - "startColumn": 24, - "endLine": 160, - "endColumn": 35, - "byteLength": 11 + "startLine": 344, + "startColumn": 35, + "endLine": 344, + "endColumn": 51, + "byteLength": 16 } } } @@ -4744,7 +4758,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "saveptr_subset." }, + "message": { "text": "result_valid_string." }, "locations": [ { "physicalLocation": { @@ -4753,11 +4767,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 323, - "startColumn": 28, - "endLine": 323, - "endColumn": 67, - "byteLength": 39 + "startLine": 345, + "startColumn": 33, + "endLine": 345, + "endColumn": 59, + "byteLength": 26 } } } @@ -4767,7 +4781,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "valid_saveptr." }, + "message": { "text": "assigns clause in function strerror." }, "locations": [ { "physicalLocation": { @@ -4776,11 +4790,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 287, - "startColumn": 26, - "endLine": 287, - "endColumn": 41, - "byteLength": 15 + "startLine": 347, + "startColumn": 12, + "endLine": 347, + "endColumn": 13, + "byteLength": 1 } } } @@ -4790,7 +4804,9 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "behavior default! in function strndup." }, + "message": { + "text": "from clause of term \\result in function strerror." + }, "locations": [ { "physicalLocation": { @@ -4799,11 +4815,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 506, + "startLine": 342, "startColumn": 12, - "endLine": 506, - "endColumn": 13, - "byteLength": 1 + "endLine": 342, + "endColumn": 19, + "byteLength": 7 } } } @@ -4813,20 +4829,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "strlen_sup." }, + "message": { "text": "behavior default! in function strlcat." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/__fc_string_axiomatic.h", + "uri": "libc/string.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 103, - "startColumn": 4, - "endLine": 105, - "endColumn": 51, - "byteLength": 108 + "startLine": 455, + "startColumn": 14, + "endLine": 455, + "endColumn": 21, + "byteLength": 7 } } } @@ -4836,20 +4852,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "StrLen." }, + "message": { "text": "valid_string_src." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/__fc_string_axiomatic.h", + "uri": "libc/string.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 132, - "startColumn": 4, - "endLine": 135, - "endColumn": 38, - "byteLength": 185 + "startLine": 448, + "startColumn": 31, + "endLine": 448, + "endColumn": 53, + "byteLength": 22 } } } @@ -4859,7 +4875,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "assigns clause in function strncat." }, + "message": { "text": "valid_string_dest." }, "locations": [ { "physicalLocation": { @@ -4868,11 +4884,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 431, - "startColumn": 12, - "endLine": 431, - "endColumn": 58, - "byteLength": 46 + "startLine": 449, + "startColumn": 32, + "endLine": 449, + "endColumn": 50, + "byteLength": 18 } } } @@ -4882,20 +4898,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "dynamic_allocation." }, + "message": { "text": "room_nstring." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/__fc_alloc_axiomatic.h", + "uri": "libc/string.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 39, - "startColumn": 4, - "endLine": 41, - "endColumn": 61, - "byteLength": 110 + "startLine": 450, + "startColumn": 27, + "endLine": 450, + "endColumn": 48, + "byteLength": 21 } } } @@ -4905,7 +4921,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "s_not_null." }, + "message": { "text": "bounded_result." }, "locations": [ { "physicalLocation": { @@ -4914,11 +4930,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 298, - "startColumn": 24, - "endLine": 298, - "endColumn": 34, - "byteLength": 10 + "startLine": 453, + "startColumn": 28, + "endLine": 453, + "endColumn": 65, + "byteLength": 37 } } } @@ -4928,7 +4944,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "room_string." }, + "message": { "text": "assigns clause in function strlcat." }, "locations": [ { "physicalLocation": { @@ -4937,11 +4953,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 397, - "startColumn": 26, - "endLine": 397, - "endColumn": 55, - "byteLength": 29 + "startLine": 451, + "startColumn": 12, + "endLine": 451, + "endColumn": 33, + "byteLength": 21 } } } @@ -4951,7 +4967,10 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "saveptr_subset." }, + "message": { + "text": + "from clause of term *(dest + (strlen{Old}(dest) .. n)) in function strlcat." + }, "locations": [ { "physicalLocation": { @@ -4960,11 +4979,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 308, - "startColumn": 28, - "endLine": 308, - "endColumn": 54, - "byteLength": 26 + "startLine": 451, + "startColumn": 12, + "endLine": 451, + "endColumn": 33, + "byteLength": 21 } } } @@ -4974,7 +4993,9 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "behavior default! in function strsignal." }, + "message": { + "text": "from clause of term \\result in function strlcat." + }, "locations": [ { "physicalLocation": { @@ -4983,11 +5004,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 523, + "startLine": 452, "startColumn": 12, - "endLine": 523, - "endColumn": 13, - "byteLength": 1 + "endLine": 452, + "endColumn": 19, + "byteLength": 7 } } } @@ -4997,7 +5018,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "behavior default! in function strlen." }, + "message": { "text": "behavior default! in function strlcpy." }, "locations": [ { "physicalLocation": { @@ -5006,11 +5027,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 129, - "startColumn": 14, - "endLine": 129, - "endColumn": 20, - "byteLength": 6 + "startLine": 393, + "startColumn": 7, + "endLine": 393, + "endColumn": 14, + "byteLength": 7 } } } @@ -5020,7 +5041,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "assigns clause in function strsep." }, + "message": { "text": "valid_string_src." }, "locations": [ { "physicalLocation": { @@ -5029,11 +5050,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 331, - "startColumn": 12, - "endLine": 331, - "endColumn": 20, - "byteLength": 8 + "startLine": 384, + "startColumn": 31, + "endLine": 384, + "endColumn": 53, + "byteLength": 22 } } } @@ -5043,7 +5064,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "result_internal_str." }, + "message": { "text": "room_nstring." }, "locations": [ { "physicalLocation": { @@ -5052,11 +5073,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 343, - "startColumn": 33, - "endLine": 343, - "endColumn": 59, - "byteLength": 26 + "startLine": 385, + "startColumn": 27, + "endLine": 385, + "endColumn": 48, + "byteLength": 21 } } } @@ -5066,20 +5087,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "MemSet." }, + "message": { "text": "separation." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/__fc_string_axiomatic.h", + "uri": "libc/string.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 68, + "startLine": 387, "startColumn": 4, - "endLine": 70, - "endColumn": 63, - "byteLength": 135 + "endLine": 387, + "endColumn": 61, + "byteLength": 57 } } } @@ -5089,10 +5110,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": - "from clause of term *((char *)s + (0 .. n - 1)) in function memset." - }, + "message": { "text": "initialization." }, "locations": [ { "physicalLocation": { @@ -5101,11 +5119,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 116, - "startColumn": 12, - "endLine": 116, - "endColumn": 32, - "byteLength": 20 + "startLine": 390, + "startColumn": 28, + "endLine": 390, + "endColumn": 73, + "byteLength": 45 } } } @@ -5115,7 +5133,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "assigns clause in function strrchr." }, + "message": { "text": "bounded_result." }, "locations": [ { "physicalLocation": { @@ -5124,11 +5142,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 195, - "startColumn": 12, - "endLine": 195, - "endColumn": 13, - "byteLength": 1 + "startLine": 391, + "startColumn": 28, + "endLine": 391, + "endColumn": 50, + "byteLength": 22 } } } @@ -5138,7 +5156,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "assigns clause in function strndup." }, + "message": { "text": "assigns clause in function strlcpy." }, "locations": [ { "physicalLocation": { @@ -5147,11 +5165,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 506, + "startLine": 388, "startColumn": 12, - "endLine": 506, - "endColumn": 13, - "byteLength": 1 + "endLine": 388, + "endColumn": 24, + "byteLength": 12 } } } @@ -5161,7 +5179,10 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "result_subset." }, + "message": { + "text": + "from clause of term *(dest + (0 .. n - 1)) in function strlcpy." + }, "locations": [ { "physicalLocation": { @@ -5170,11 +5191,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 264, - "startColumn": 27, - "endLine": 264, - "endColumn": 72, - "byteLength": 45 + "startLine": 388, + "startColumn": 12, + "endLine": 388, + "endColumn": 24, + "byteLength": 12 } } } @@ -5185,7 +5206,7 @@ "kind": "pass", "level": "none", "message": { - "text": "behavior no_allocation in function strndup." + "text": "from clause of term \\result in function strlcpy." }, "locations": [ { @@ -5195,11 +5216,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 506, + "startLine": 389, "startColumn": 12, - "endLine": 506, - "endColumn": 13, - "byteLength": 1 + "endLine": 389, + "endColumn": 19, + "byteLength": 7 } } } @@ -5209,9 +5230,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": "allocates/frees clause in function strndup." - }, + "message": { "text": "behavior default! in function strlen." }, "locations": [ { "physicalLocation": { @@ -5220,11 +5239,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 487, + "startLine": 129, "startColumn": 14, - "endLine": 487, - "endColumn": 21, - "byteLength": 7 + "endLine": 129, + "endColumn": 20, + "byteLength": 6 } } } @@ -5234,7 +5253,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "behavior default! in function strchr." }, + "message": { "text": "valid_string_s." }, "locations": [ { "physicalLocation": { @@ -5243,11 +5262,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 173, - "startColumn": 12, - "endLine": 173, - "endColumn": 13, - "byteLength": 1 + "startLine": 125, + "startColumn": 29, + "endLine": 125, + "endColumn": 49, + "byteLength": 20 } } } @@ -5257,20 +5276,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "wcsncmp_zero." }, + "message": { "text": "acsl_c_equiv." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/__fc_string_axiomatic.h", + "uri": "libc/string.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 252, - "startColumn": 4, - "endLine": 256, - "endColumn": 53, - "byteLength": 194 + "startLine": 127, + "startColumn": 26, + "endLine": 127, + "endColumn": 46, + "byteLength": 20 } } } @@ -5280,9 +5299,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": "from clause of term \\result in function strcspn." - }, + "message": { "text": "assigns clause in function strlen." }, "locations": [ { "physicalLocation": { @@ -5291,11 +5308,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 199, - "startColumn": 12, - "endLine": 199, - "endColumn": 19, - "byteLength": 7 + "startLine": 129, + "startColumn": 14, + "endLine": 129, + "endColumn": 20, + "byteLength": 6 } } } @@ -5305,7 +5322,9 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "behavior default! in function strchrnul." }, + "message": { + "text": "from clause of term \\result in function strlen." + }, "locations": [ { "physicalLocation": { @@ -5314,11 +5333,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 179, + "startLine": 126, "startColumn": 12, - "endLine": 179, - "endColumn": 13, - "byteLength": 1 + "endLine": 126, + "endColumn": 19, + "byteLength": 7 } } } @@ -5328,20 +5347,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "result_char." }, + "message": { "text": "behavior default! in function strncasecmp." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/string.h", + "uri": "libc/strings.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 161, - "startColumn": 25, - "endLine": 161, - "endColumn": 44, - "byteLength": 19 + "startLine": 57, + "startColumn": 11, + "endLine": 57, + "endColumn": 22, + "byteLength": 11 } } } @@ -5351,20 +5370,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "WcsChr." }, + "message": { "text": "valid_string_s1." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/__fc_string_axiomatic.h", + "uri": "libc/strings.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 266, - "startColumn": 4, - "endLine": 269, - "endColumn": 29, - "byteLength": 153 + "startLine": 53, + "startColumn": 28, + "endLine": 53, + "endColumn": 53, + "byteLength": 25 } } } @@ -5374,22 +5393,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": "from clause of term \\result in function strlcat." - }, + "message": { "text": "valid_string_s2." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/string.h", + "uri": "libc/strings.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 452, - "startColumn": 12, - "endLine": 452, - "endColumn": 19, - "byteLength": 7 + "startLine": 54, + "startColumn": 28, + "endLine": 54, + "endColumn": 53, + "byteLength": 25 } } } @@ -5399,20 +5416,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "result_same_base." }, + "message": { "text": "assigns clause in function strncasecmp." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/string.h", + "uri": "libc/strings.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 162, - "startColumn": 30, - "endLine": 162, - "endColumn": 66, - "byteLength": 36 + "startLine": 57, + "startColumn": 11, + "endLine": 57, + "endColumn": 22, + "byteLength": 11 } } } @@ -5422,20 +5439,22 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "valid_string_s." }, + "message": { + "text": "from clause of term \\result in function strncasecmp." + }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/string.h", + "uri": "libc/strings.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 157, - "startColumn": 29, - "endLine": 157, - "endColumn": 49, - "byteLength": 20 + "startLine": 55, + "startColumn": 10, + "endLine": 55, + "endColumn": 17, + "byteLength": 7 } } } @@ -5445,7 +5464,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "assigns clause in function strcspn." }, + "message": { "text": "behavior complete in function strncat." }, "locations": [ { "physicalLocation": { @@ -5454,11 +5473,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 202, - "startColumn": 14, - "endLine": 202, - "endColumn": 21, - "byteLength": 7 + "startLine": 444, + "startColumn": 12, + "endLine": 444, + "endColumn": 13, + "byteLength": 1 } } } @@ -5468,7 +5487,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "bounded_result." }, + "message": { "text": "behavior default! in function strncat." }, "locations": [ { "physicalLocation": { @@ -5477,11 +5496,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 453, - "startColumn": 28, - "endLine": 453, - "endColumn": 65, - "byteLength": 37 + "startLine": 444, + "startColumn": 12, + "endLine": 444, + "endColumn": 13, + "byteLength": 1 } } } @@ -5491,7 +5510,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "copied_contents." }, + "message": { "text": "behavior partial in function strncat." }, "locations": [ { "physicalLocation": { @@ -5500,11 +5519,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 98, - "startColumn": 29, - "endLine": 98, - "endColumn": 76, - "byteLength": 47 + "startLine": 444, + "startColumn": 12, + "endLine": 444, + "endColumn": 13, + "byteLength": 1 } } } @@ -5514,7 +5533,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "result_valid_string." }, + "message": { "text": "valid_nstring_src." }, "locations": [ { "physicalLocation": { @@ -5523,10 +5542,10 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 345, - "startColumn": 33, - "endLine": 345, - "endColumn": 59, + "startLine": 423, + "startColumn": 32, + "endLine": 423, + "endColumn": 58, "byteLength": 26 } } @@ -5537,7 +5556,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "room_string." }, + "message": { "text": "valid_string_dest." }, "locations": [ { "physicalLocation": { @@ -5546,11 +5565,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 410, - "startColumn": 26, - "endLine": 410, - "endColumn": 70, - "byteLength": 44 + "startLine": 424, + "startColumn": 32, + "endLine": 424, + "endColumn": 50, + "byteLength": 18 } } } @@ -5560,20 +5579,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "strlen_zero." }, + "message": { "text": "room_string." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/__fc_string_axiomatic.h", + "uri": "libc/string.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 99, - "startColumn": 4, - "endLine": 101, - "endColumn": 59, - "byteLength": 117 + "startLine": 430, + "startColumn": 26, + "endLine": 430, + "endColumn": 74, + "byteLength": 48 } } } @@ -5583,9 +5602,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": "from clause of term \\result in function strdup." - }, + "message": { "text": "room_string." }, "locations": [ { "physicalLocation": { @@ -5594,11 +5611,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 470, - "startColumn": 12, - "endLine": 470, - "endColumn": 19, - "byteLength": 7 + "startLine": 438, + "startColumn": 26, + "endLine": 438, + "endColumn": 64, + "byteLength": 38 } } } @@ -5608,7 +5625,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "assigns clause in function strcasestr." }, + "message": { "text": "valid_string_src_fits." }, "locations": [ { "physicalLocation": { @@ -5617,11 +5634,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 239, - "startColumn": 12, - "endLine": 239, - "endColumn": 13, - "byteLength": 1 + "startLine": 429, + "startColumn": 35, + "endLine": 429, + "endColumn": 77, + "byteLength": 42 } } } @@ -5631,20 +5648,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "behavior default! in function strcasecmp." }, + "message": { "text": "valid_string_src_too_large." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/strings.h", + "uri": "libc/string.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 50, - "startColumn": 11, - "endLine": 50, - "endColumn": 21, - "byteLength": 10 + "startLine": 437, + "startColumn": 4, + "endLine": 437, + "endColumn": 49, + "byteLength": 45 } } } @@ -5654,7 +5671,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "bounded_result." }, + "message": { "text": "result_ptr." }, "locations": [ { "physicalLocation": { @@ -5663,11 +5680,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 391, - "startColumn": 28, - "endLine": 391, - "endColumn": 50, - "byteLength": 22 + "startLine": 427, + "startColumn": 24, + "endLine": 427, + "endColumn": 39, + "byteLength": 15 } } } @@ -5677,7 +5694,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "assigns clause in function strncat." }, + "message": { "text": "sum_of_lengths." }, "locations": [ { "physicalLocation": { @@ -5686,11 +5703,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 439, - "startColumn": 12, - "endLine": 439, - "endColumn": 48, - "byteLength": 36 + "startLine": 434, + "startColumn": 28, + "endLine": 434, + "endColumn": 76, + "byteLength": 48 } } } @@ -5700,10 +5717,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": - "from clause of term *(dest + (strlen{Old}(dest) .. n)) in function strlcat." - }, + "message": { "text": "sum_of_bounded_lengths." }, "locations": [ { "physicalLocation": { @@ -5712,11 +5726,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 451, - "startColumn": 12, - "endLine": 451, - "endColumn": 33, - "byteLength": 21 + "startLine": 442, + "startColumn": 36, + "endLine": 442, + "endColumn": 74, + "byteLength": 38 } } } @@ -5726,20 +5740,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "strlen_create." }, + "message": { "text": "assigns clause in function strncat." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/__fc_string_axiomatic.h", + "uri": "libc/string.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 111, - "startColumn": 4, - "endLine": 113, - "endColumn": 51, - "byteLength": 111 + "startLine": 431, + "startColumn": 12, + "endLine": 431, + "endColumn": 58, + "byteLength": 46 } } } @@ -5749,22 +5763,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": "from clause of term \\result in function strcasecmp." - }, + "message": { "text": "assigns clause in function strncat." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/strings.h", + "uri": "libc/string.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 48, - "startColumn": 10, - "endLine": 48, - "endColumn": 17, - "byteLength": 7 + "startLine": 425, + "startColumn": 12, + "endLine": 425, + "endColumn": 50, + "byteLength": 38 } } } @@ -5774,7 +5786,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "behavior resume_str in function strtok_r." }, + "message": { "text": "assigns clause in function strncat." }, "locations": [ { "physicalLocation": { @@ -5783,11 +5795,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 327, + "startLine": 439, "startColumn": 12, - "endLine": 327, - "endColumn": 13, - "byteLength": 1 + "endLine": 439, + "endColumn": 48, + "byteLength": 36 } } } @@ -5797,7 +5809,10 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "behavior default! in function memmove." }, + "message": { + "text": + "from clause of term *(dest +\n (strlen{Old}(dest) ..\n strlen{Old}(dest) +\n strlen{Old}(src))) in function strncat." + }, "locations": [ { "physicalLocation": { @@ -5806,11 +5821,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 111, + "startLine": 431, "startColumn": 12, - "endLine": 111, - "endColumn": 13, - "byteLength": 1 + "endLine": 431, + "endColumn": 58, + "byteLength": 46 } } } @@ -5820,7 +5835,9 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "assigns clause in function strtok_r." }, + "message": { + "text": "from clause of term \\result in function strncat." + }, "locations": [ { "physicalLocation": { @@ -5829,11 +5846,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 303, + "startLine": 433, "startColumn": 12, - "endLine": 303, - "endColumn": 20, - "byteLength": 8 + "endLine": 433, + "endColumn": 19, + "byteLength": 7 } } } @@ -5843,7 +5860,10 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "behavior found in function strrchr." }, + "message": { + "text": + "from clause of term *(dest + (strlen{Old}(dest) .. strlen{Old}(dest) + n)) in function strncat." + }, "locations": [ { "physicalLocation": { @@ -5852,11 +5872,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 195, + "startLine": 425, "startColumn": 12, - "endLine": 195, - "endColumn": 13, - "byteLength": 1 + "endLine": 425, + "endColumn": 50, + "byteLength": 38 } } } @@ -5866,7 +5886,9 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "valid_string_dest." }, + "message": { + "text": "from clause of term \\result in function strncat." + }, "locations": [ { "physicalLocation": { @@ -5875,11 +5897,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 449, - "startColumn": 32, - "endLine": 449, - "endColumn": 50, - "byteLength": 18 + "startLine": 426, + "startColumn": 12, + "endLine": 426, + "endColumn": 19, + "byteLength": 7 } } } @@ -5889,7 +5911,10 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "valid_string_s." }, + "message": { + "text": + "from clause of term *(dest + (strlen{Old}(dest) .. strlen{Old}(dest) + n)) in function strncat." + }, "locations": [ { "physicalLocation": { @@ -5898,11 +5923,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 212, - "startColumn": 29, - "endLine": 212, - "endColumn": 49, - "byteLength": 20 + "startLine": 439, + "startColumn": 12, + "endLine": 439, + "endColumn": 48, + "byteLength": 36 } } } @@ -5912,7 +5937,9 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "cannot_allocate." }, + "message": { + "text": "from clause of term \\result in function strncat." + }, "locations": [ { "physicalLocation": { @@ -5921,11 +5948,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 479, - "startColumn": 29, - "endLine": 479, - "endColumn": 53, - "byteLength": 24 + "startLine": 441, + "startColumn": 12, + "endLine": 441, + "endColumn": 19, + "byteLength": 7 } } } @@ -5935,20 +5962,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "strlen_create_shift." }, + "message": { "text": "behavior default! in function strncmp." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/__fc_string_axiomatic.h", + "uri": "libc/string.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 115, - "startColumn": 4, - "endLine": 117, - "endColumn": 62, - "byteLength": 143 + "startLine": 149, + "startColumn": 11, + "endLine": 149, + "endColumn": 18, + "byteLength": 7 } } } @@ -5958,9 +5985,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": "from clause of term \\result in function strtok_r." - }, + "message": { "text": "valid_string_s1." }, "locations": [ { "physicalLocation": { @@ -5969,11 +5994,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 292, - "startColumn": 10, - "endLine": 292, - "endColumn": 17, - "byteLength": 7 + "startLine": 144, + "startColumn": 30, + "endLine": 144, + "endColumn": 55, + "byteLength": 25 } } } @@ -5983,7 +6008,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "result_nul_terminated." }, + "message": { "text": "valid_string_s2." }, "locations": [ { "physicalLocation": { @@ -5992,11 +6017,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 520, - "startColumn": 35, - "endLine": 520, - "endColumn": 51, - "byteLength": 16 + "startLine": 145, + "startColumn": 30, + "endLine": 145, + "endColumn": 55, + "byteLength": 25 } } } @@ -6006,7 +6031,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "sum_of_lengths." }, + "message": { "text": "acsl_c_equiv." }, "locations": [ { "physicalLocation": { @@ -6015,11 +6040,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 413, - "startColumn": 28, - "endLine": 413, - "endColumn": 76, - "byteLength": 48 + "startLine": 147, + "startColumn": 26, + "endLine": 147, + "endColumn": 53, + "byteLength": 27 } } } @@ -6029,7 +6054,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "result_null." }, + "message": { "text": "assigns clause in function strncmp." }, "locations": [ { "physicalLocation": { @@ -6038,11 +6063,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 86, - "startColumn": 25, - "endLine": 86, - "endColumn": 41, - "byteLength": 16 + "startLine": 149, + "startColumn": 11, + "endLine": 149, + "endColumn": 18, + "byteLength": 7 } } } @@ -6053,8 +6078,7 @@ "kind": "pass", "level": "none", "message": { - "text": - "from clause of term __fc_heap_status in function strndup." + "text": "from clause of term \\result in function strncmp." }, "locations": [ { @@ -6064,11 +6088,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 492, + "startLine": 146, "startColumn": 12, - "endLine": 492, - "endColumn": 28, - "byteLength": 16 + "endLine": 146, + "endColumn": 19, + "byteLength": 7 } } } @@ -6078,7 +6102,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "valid_string_s2." }, + "message": { "text": "behavior complete in function strncpy." }, "locations": [ { "physicalLocation": { @@ -6087,11 +6111,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 152, - "startColumn": 30, - "endLine": 152, - "endColumn": 51, - "byteLength": 21 + "startLine": 378, + "startColumn": 12, + "endLine": 378, + "endColumn": 13, + "byteLength": 1 } } } @@ -6101,7 +6125,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "separation." }, + "message": { "text": "behavior default! in function strncpy." }, "locations": [ { "physicalLocation": { @@ -6110,11 +6134,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 366, - "startColumn": 4, - "endLine": 366, - "endColumn": 43, - "byteLength": 39 + "startLine": 378, + "startColumn": 12, + "endLine": 378, + "endColumn": 13, + "byteLength": 1 } } } @@ -6124,9 +6148,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": "from clause of term \\result in function strchr." - }, + "message": { "text": "behavior partial in function strncpy." }, "locations": [ { "physicalLocation": { @@ -6135,11 +6157,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 158, + "startLine": 378, "startColumn": 12, - "endLine": 158, - "endColumn": 19, - "byteLength": 7 + "endLine": 378, + "endColumn": 13, + "byteLength": 1 } } } @@ -6149,7 +6171,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "valid_dest." }, + "message": { "text": "valid_nstring_src." }, "locations": [ { "physicalLocation": { @@ -6158,11 +6180,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 104, - "startColumn": 25, - "endLine": 104, - "endColumn": 48, - "byteLength": 23 + "startLine": 363, + "startColumn": 32, + "endLine": 363, + "endColumn": 58, + "byteLength": 26 } } } @@ -6172,9 +6194,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": "from clause of term *saveptr in function strtok_r." - }, + "message": { "text": "room_nstring." }, "locations": [ { "physicalLocation": { @@ -6183,11 +6203,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 303, - "startColumn": 12, - "endLine": 303, - "endColumn": 20, - "byteLength": 8 + "startLine": 364, + "startColumn": 27, + "endLine": 364, + "endColumn": 50, + "byteLength": 23 } } } @@ -6197,9 +6217,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": "from clause of term \\result in function strtok." - }, + "message": { "text": "separation." }, "locations": [ { "physicalLocation": { @@ -6208,11 +6226,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 275, - "startColumn": 12, - "endLine": 275, - "endColumn": 19, - "byteLength": 7 + "startLine": 366, + "startColumn": 4, + "endLine": 366, + "endColumn": 43, + "byteLength": 39 } } } @@ -6222,7 +6240,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "copied_contents." }, + "message": { "text": "src_fits." }, "locations": [ { "physicalLocation": { @@ -6231,11 +6249,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 108, - "startColumn": 29, - "endLine": 108, - "endColumn": 76, - "byteLength": 47 + "startLine": 372, + "startColumn": 22, + "endLine": 372, + "endColumn": 37, + "byteLength": 15 } } } @@ -6245,7 +6263,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "behavior default! in function strsep." }, + "message": { "text": "src_too_long." }, "locations": [ { "physicalLocation": { @@ -6254,11 +6272,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 334, - "startColumn": 12, - "endLine": 334, - "endColumn": 13, - "byteLength": 1 + "startLine": 375, + "startColumn": 26, + "endLine": 375, + "endColumn": 42, + "byteLength": 16 } } } @@ -6268,10 +6286,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": - "from clause of term *(dest +\n (strlen{Old}(dest) ..\n strlen{Old}(dest) +\n strlen{Old}(src))) in function strncat." - }, + "message": { "text": "result_ptr." }, "locations": [ { "physicalLocation": { @@ -6280,11 +6295,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 431, - "startColumn": 12, - "endLine": 431, - "endColumn": 58, - "byteLength": 46 + "startLine": 369, + "startColumn": 24, + "endLine": 369, + "endColumn": 39, + "byteLength": 15 } } } @@ -6294,7 +6309,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "sum_of_lengths." }, + "message": { "text": "initialization." }, "locations": [ { "physicalLocation": { @@ -6303,11 +6318,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 434, + "startLine": 370, "startColumn": 28, - "endLine": 434, - "endColumn": 76, - "byteLength": 48 + "endLine": 370, + "endColumn": 57, + "byteLength": 29 } } } @@ -6317,7 +6332,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "assigns clause in function strcpy." }, + "message": { "text": "equal_after_copy." }, "locations": [ { "physicalLocation": { @@ -6326,11 +6341,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 355, - "startColumn": 12, - "endLine": 355, - "endColumn": 32, - "byteLength": 20 + "startLine": 373, + "startColumn": 30, + "endLine": 373, + "endColumn": 51, + "byteLength": 21 } } } @@ -6340,10 +6355,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": - "from clause of term *((char *)dest + (0 .. n - 1)) in function memmove." - }, + "message": { "text": "equal_prefix." }, "locations": [ { "physicalLocation": { @@ -6352,11 +6364,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 106, - "startColumn": 12, - "endLine": 106, - "endColumn": 35, - "byteLength": 23 + "startLine": 376, + "startColumn": 26, + "endLine": 376, + "endColumn": 60, + "byteLength": 34 } } } @@ -6366,20 +6378,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "wcslen_before_null." }, + "message": { "text": "assigns clause in function strncpy." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/__fc_string_axiomatic.h", + "uri": "libc/string.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 204, - "startColumn": 4, - "endLine": 205, - "endColumn": 76, - "byteLength": 105 + "startLine": 367, + "startColumn": 12, + "endLine": 367, + "endColumn": 26, + "byteLength": 14 } } } @@ -6389,7 +6401,10 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "ptr_subset." }, + "message": { + "text": + "from clause of term *(dest + (0 .. n - 1)) in function strncpy." + }, "locations": [ { "physicalLocation": { @@ -6398,11 +6413,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 279, - "startColumn": 24, - "endLine": 279, - "endColumn": 77, - "byteLength": 53 + "startLine": 367, + "startColumn": 12, + "endLine": 367, + "endColumn": 26, + "byteLength": 14 } } } @@ -6413,7 +6428,7 @@ "kind": "pass", "level": "none", "message": { - "text": "from clause of term \\result in function strcasestr." + "text": "from clause of term \\result in function strncpy." }, "locations": [ { @@ -6423,9 +6438,9 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 233, + "startLine": 368, "startColumn": 12, - "endLine": 233, + "endLine": 368, "endColumn": 19, "byteLength": 7 } @@ -6437,7 +6452,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "allocates/frees clause in function strdup." }, + "message": { "text": "behavior allocation in function strndup." }, "locations": [ { "physicalLocation": { @@ -6446,9 +6461,9 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 484, + "startLine": 506, "startColumn": 12, - "endLine": 484, + "endLine": 506, "endColumn": 13, "byteLength": 1 } @@ -6460,7 +6475,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "behavior default! in function strncat." }, + "message": { "text": "behavior default! in function strndup." }, "locations": [ { "physicalLocation": { @@ -6469,9 +6484,9 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 444, + "startLine": 506, "startColumn": 12, - "endLine": 444, + "endLine": 506, "endColumn": 13, "byteLength": 1 } @@ -6483,7 +6498,9 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "assigns clause in function memmove." }, + "message": { + "text": "behavior no_allocation in function strndup." + }, "locations": [ { "physicalLocation": { @@ -6492,11 +6509,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 106, + "startLine": 506, "startColumn": 12, - "endLine": 106, - "endColumn": 35, - "byteLength": 23 + "endLine": 506, + "endColumn": 13, + "byteLength": 1 } } } @@ -6506,7 +6523,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "valid_string_src." }, + "message": { "text": "valid_string_s." }, "locations": [ { "physicalLocation": { @@ -6515,11 +6532,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 448, - "startColumn": 31, - "endLine": 448, - "endColumn": 53, - "byteLength": 22 + "startLine": 486, + "startColumn": 29, + "endLine": 486, + "endColumn": 49, + "byteLength": 20 } } } @@ -6529,7 +6546,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "behavior default! in function strcspn." }, + "message": { "text": "can_allocate." }, "locations": [ { "physicalLocation": { @@ -6538,11 +6555,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 202, - "startColumn": 14, - "endLine": 202, - "endColumn": 21, - "byteLength": 7 + "startLine": 491, + "startColumn": 26, + "endLine": 491, + "endColumn": 60, + "byteLength": 34 } } } @@ -6552,7 +6569,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "behavior default! in function memcmp." }, + "message": { "text": "cannot_allocate." }, "locations": [ { "physicalLocation": { @@ -6561,11 +6578,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 65, - "startColumn": 11, - "endLine": 65, - "endColumn": 17, - "byteLength": 6 + "startLine": 501, + "startColumn": 29, + "endLine": 501, + "endColumn": 64, + "byteLength": 35 } } } @@ -6575,7 +6592,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "assigns clause in function strncmp." }, + "message": { "text": "allocation." }, "locations": [ { "physicalLocation": { @@ -6584,11 +6601,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 149, - "startColumn": 11, - "endLine": 149, - "endColumn": 18, - "byteLength": 7 + "startLine": 495, + "startColumn": 24, + "endLine": 495, + "endColumn": 60, + "byteLength": 36 } } } @@ -6599,44 +6616,21 @@ "kind": "pass", "level": "none", "message": { - "text": "from clause of term \\result in function strncasecmp." + "text": "result_valid_string_bounded_and_same_prefix." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/strings.h", - "uriBaseId": "FRAMAC_SHARE" - }, - "region": { - "startLine": 55, - "startColumn": 10, - "endLine": 55, - "endColumn": 17, - "byteLength": 7 - } - } - } - ] - }, - { - "ruleId": "user-spec", - "kind": "pass", - "level": "none", - "message": { "text": "memcmp_strlen_shift_left." }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "libc/__fc_string_axiomatic.h", + "uri": "libc/string.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 127, + "startLine": 497, "startColumn": 4, - "endLine": 130, - "endColumn": 38, - "byteLength": 184 + "endLine": 499, + "endColumn": 29, + "byteLength": 124 } } } @@ -6646,9 +6640,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": "from clause of term \\result in function memcmp." - }, + "message": { "text": "result_null." }, "locations": [ { "physicalLocation": { @@ -6657,11 +6649,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 61, - "startColumn": 12, - "endLine": 61, - "endColumn": 19, - "byteLength": 7 + "startLine": 504, + "startColumn": 25, + "endLine": 504, + "endColumn": 41, + "byteLength": 16 } } } @@ -6671,20 +6663,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "src_fits." }, + "message": { "text": "assigns clause in function strndup." }, "locations": [ { "physicalLocation": { "artifactLocation": { "uri": "libc/string.h", - "uriBaseId": "FRAMAC_SHARE" - }, - "region": { - "startLine": 372, - "startColumn": 22, - "endLine": 372, - "endColumn": 37, - "byteLength": 15 + "uriBaseId": "FRAMAC_SHARE" + }, + "region": { + "startLine": 492, + "startColumn": 12, + "endLine": 492, + "endColumn": 28, + "byteLength": 16 } } } @@ -6694,9 +6686,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": "from clause of term \\result in function strncmp." - }, + "message": { "text": "assigns clause in function strndup." }, "locations": [ { "physicalLocation": { @@ -6705,11 +6695,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 146, + "startLine": 506, "startColumn": 12, - "endLine": 146, - "endColumn": 19, - "byteLength": 7 + "endLine": 506, + "endColumn": 13, + "byteLength": 1 } } } @@ -6719,20 +6709,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "memcmp_zero." }, + "message": { "text": "assigns clause in function strndup." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/__fc_string_axiomatic.h", + "uri": "libc/string.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 39, - "startColumn": 4, - "endLine": 42, - "endColumn": 70, - "byteLength": 170 + "startLine": 506, + "startColumn": 12, + "endLine": 506, + "endColumn": 13, + "byteLength": 1 } } } @@ -6742,7 +6732,10 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "result_in_length." }, + "message": { + "text": + "from clause of term __fc_heap_status in function strndup." + }, "locations": [ { "physicalLocation": { @@ -6751,11 +6744,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 163, - "startColumn": 30, - "endLine": 163, - "endColumn": 59, - "byteLength": 29 + "startLine": 492, + "startColumn": 12, + "endLine": 492, + "endColumn": 28, + "byteLength": 16 } } } @@ -6765,7 +6758,9 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "initialization." }, + "message": { + "text": "from clause of term \\result in function strndup." + }, "locations": [ { "physicalLocation": { @@ -6774,11 +6769,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 57, - "startColumn": 32, - "endLine": 57, - "endColumn": 68, - "byteLength": 36 + "startLine": 493, + "startColumn": 12, + "endLine": 493, + "endColumn": 19, + "byteLength": 7 } } } @@ -6788,20 +6783,22 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "StrNCmp." }, + "message": { + "text": "from clause of term \\result in function strndup." + }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/__fc_string_axiomatic.h", + "uri": "libc/string.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 155, - "startColumn": 4, - "endLine": 159, - "endColumn": 53, - "byteLength": 191 + "startLine": 488, + "startColumn": 12, + "endLine": 488, + "endColumn": 19, + "byteLength": 7 } } } @@ -6836,20 +6833,22 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "behavior default! in function strncasecmp." }, + "message": { + "text": "allocates/frees clause in function strndup." + }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/strings.h", + "uri": "libc/string.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 57, - "startColumn": 11, - "endLine": 57, - "endColumn": 22, - "byteLength": 11 + "startLine": 487, + "startColumn": 14, + "endLine": 487, + "endColumn": 21, + "byteLength": 7 } } } @@ -6859,7 +6858,9 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "behavior default! in function strcoll." }, + "message": { + "text": "allocates/frees clause in function strndup." + }, "locations": [ { "physicalLocation": { @@ -6868,11 +6869,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 155, - "startColumn": 11, - "endLine": 155, - "endColumn": 18, - "byteLength": 7 + "startLine": 506, + "startColumn": 12, + "endLine": 506, + "endColumn": 13, + "byteLength": 1 } } } @@ -6882,10 +6883,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": - "from clause of term *(dest +\n (strlen{Old}(dest) ..\n strlen{Old}(dest) +\n strlen{Old}(src))) in function strcat." - }, + "message": { "text": "behavior default! in function strnlen." }, "locations": [ { "physicalLocation": { @@ -6894,11 +6892,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 411, - "startColumn": 12, - "endLine": 411, - "endColumn": 58, - "byteLength": 46 + "startLine": 135, + "startColumn": 14, + "endLine": 135, + "endColumn": 21, + "byteLength": 7 } } } @@ -6908,7 +6906,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "behavior default! in function memcpy." }, + "message": { "text": "valid_string_s." }, "locations": [ { "physicalLocation": { @@ -6917,11 +6915,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 101, - "startColumn": 12, - "endLine": 101, - "endColumn": 13, - "byteLength": 1 + "startLine": 131, + "startColumn": 29, + "endLine": 131, + "endColumn": 53, + "byteLength": 24 } } } @@ -6931,7 +6929,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "separation." }, + "message": { "text": "result_bounded." }, "locations": [ { "physicalLocation": { @@ -6940,11 +6938,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 399, - "startColumn": 4, - "endLine": 399, - "endColumn": 59, - "byteLength": 55 + "startLine": 133, + "startColumn": 28, + "endLine": 133, + "endColumn": 64, + "byteLength": 36 } } } @@ -6954,7 +6952,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "behavior new_str in function strtok." }, + "message": { "text": "assigns clause in function strnlen." }, "locations": [ { "physicalLocation": { @@ -6963,11 +6961,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 283, - "startColumn": 12, - "endLine": 283, - "endColumn": 13, - "byteLength": 1 + "startLine": 135, + "startColumn": 14, + "endLine": 135, + "endColumn": 21, + "byteLength": 7 } } } @@ -6977,7 +6975,9 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "behavior default! in function memchr." }, + "message": { + "text": "from clause of term \\result in function strnlen." + }, "locations": [ { "physicalLocation": { @@ -6986,11 +6986,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 88, + "startLine": 132, "startColumn": 12, - "endLine": 88, - "endColumn": 13, - "byteLength": 1 + "endLine": 132, + "endColumn": 19, + "byteLength": 7 } } } @@ -7000,20 +7000,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "wcslen_sup." }, + "message": { "text": "behavior default! in function strpbrk." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/__fc_string_axiomatic.h", + "uri": "libc/string.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { "startLine": 218, - "startColumn": 4, - "endLine": 220, - "endColumn": 52, - "byteLength": 112 + "startColumn": 12, + "endLine": 218, + "endColumn": 13, + "byteLength": 1 } } } @@ -7023,9 +7023,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": "from clause of term *(s + (0 ..)) in function strtok." - }, + "message": { "text": "valid_string_s." }, "locations": [ { "physicalLocation": { @@ -7034,11 +7032,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 262, - "startColumn": 12, - "endLine": 262, - "endColumn": 18, - "byteLength": 6 + "startLine": 212, + "startColumn": 29, + "endLine": 212, + "endColumn": 49, + "byteLength": 20 } } } @@ -7048,7 +7046,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "valid_string_s1." }, + "message": { "text": "valid_string_accept." }, "locations": [ { "physicalLocation": { @@ -7057,11 +7055,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 137, - "startColumn": 30, - "endLine": 137, - "endColumn": 51, - "byteLength": 21 + "startLine": 213, + "startColumn": 34, + "endLine": 213, + "endColumn": 59, + "byteLength": 25 } } } @@ -7071,7 +7069,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "valid_string_haystack." }, + "message": { "text": "result_null_or_same_base." }, "locations": [ { "physicalLocation": { @@ -7080,11 +7078,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 220, - "startColumn": 36, - "endLine": 220, - "endColumn": 63, - "byteLength": 27 + "startLine": 216, + "startColumn": 4, + "endLine": 216, + "endColumn": 60, + "byteLength": 56 } } } @@ -7094,9 +7092,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": "from clause of term *stringp in function strsep." - }, + "message": { "text": "assigns clause in function strpbrk." }, "locations": [ { "physicalLocation": { @@ -7105,11 +7101,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 331, + "startLine": 218, "startColumn": 12, - "endLine": 331, - "endColumn": 20, - "byteLength": 8 + "endLine": 218, + "endColumn": 13, + "byteLength": 1 } } } @@ -7119,7 +7115,9 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "separation." }, + "message": { + "text": "from clause of term \\result in function strpbrk." + }, "locations": [ { "physicalLocation": { @@ -7128,11 +7126,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 387, - "startColumn": 4, - "endLine": 387, - "endColumn": 61, - "byteLength": 57 + "startLine": 214, + "startColumn": 12, + "endLine": 214, + "endColumn": 19, + "byteLength": 7 } } } @@ -7142,7 +7140,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "behavior found in function strchr." }, + "message": { "text": "behavior default in function strrchr." }, "locations": [ { "physicalLocation": { @@ -7151,9 +7149,9 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 173, + "startLine": 195, "startColumn": 12, - "endLine": 173, + "endLine": 195, "endColumn": 13, "byteLength": 1 } @@ -7165,20 +7163,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "strcmp_zero." }, + "message": { "text": "behavior default! in function strrchr." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/__fc_string_axiomatic.h", + "uri": "libc/string.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 143, - "startColumn": 4, - "endLine": 147, - "endColumn": 63, - "byteLength": 170 + "startLine": 195, + "startColumn": 12, + "endLine": 195, + "endColumn": 13, + "byteLength": 1 } } } @@ -7188,7 +7186,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "valid_string_s." }, + "message": { "text": "behavior found in function strrchr." }, "locations": [ { "physicalLocation": { @@ -7197,11 +7195,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 468, - "startColumn": 29, - "endLine": 468, - "endColumn": 49, - "byteLength": 20 + "startLine": 195, + "startColumn": 12, + "endLine": 195, + "endColumn": 13, + "byteLength": 1 } } } @@ -7211,7 +7209,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "behavior not_found in function strchr." }, + "message": { "text": "behavior not_found in function strrchr." }, "locations": [ { "physicalLocation": { @@ -7220,9 +7218,9 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 173, + "startLine": 195, "startColumn": 12, - "endLine": 173, + "endLine": 195, "endColumn": 13, "byteLength": 1 } @@ -7234,20 +7232,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "WcsCmp." }, + "message": { "text": "valid_string_s." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/__fc_string_axiomatic.h", + "uri": "libc/string.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 240, - "startColumn": 4, - "endLine": 244, - "endColumn": 63, - "byteLength": 173 + "startLine": 181, + "startColumn": 29, + "endLine": 181, + "endColumn": 49, + "byteLength": 20 } } } @@ -7257,7 +7255,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "behavior default! in function strtok_r." }, + "message": { "text": "char_found." }, "locations": [ { "physicalLocation": { @@ -7266,11 +7264,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 327, - "startColumn": 12, - "endLine": 327, - "endColumn": 13, - "byteLength": 1 + "startLine": 184, + "startColumn": 24, + "endLine": 184, + "endColumn": 35, + "byteLength": 11 } } } @@ -7280,7 +7278,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "result_null_or_same_base." }, + "message": { "text": "char_not_found." }, "locations": [ { "physicalLocation": { @@ -7289,11 +7287,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 193, - "startColumn": 4, - "endLine": 193, - "endColumn": 60, - "byteLength": 56 + "startLine": 189, + "startColumn": 28, + "endLine": 189, + "endColumn": 40, + "byteLength": 12 } } } @@ -7303,7 +7301,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "initialization." }, + "message": { "text": "result_char." }, "locations": [ { "physicalLocation": { @@ -7312,11 +7310,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 416, - "startColumn": 4, - "endLine": 416, - "endColumn": 60, - "byteLength": 56 + "startLine": 185, + "startColumn": 25, + "endLine": 185, + "endColumn": 38, + "byteLength": 13 } } } @@ -7326,7 +7324,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "equal_contents." }, + "message": { "text": "result_same_base." }, "locations": [ { "physicalLocation": { @@ -7335,11 +7333,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 402, - "startColumn": 28, - "endLine": 402, - "endColumn": 49, - "byteLength": 21 + "startLine": 186, + "startColumn": 30, + "endLine": 186, + "endColumn": 66, + "byteLength": 36 } } } @@ -7349,20 +7347,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "strlen_pos_or_null." }, + "message": { "text": "result_valid_string." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/__fc_string_axiomatic.h", + "uri": "libc/string.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 78, - "startColumn": 4, - "endLine": 82, - "endColumn": 40, - "byteLength": 169 + "startLine": 187, + "startColumn": 33, + "endLine": 187, + "endColumn": 59, + "byteLength": 26 } } } @@ -7372,7 +7370,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "assigns clause in function strdup." }, + "message": { "text": "result_null." }, "locations": [ { "physicalLocation": { @@ -7381,11 +7379,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 484, - "startColumn": 12, - "endLine": 484, - "endColumn": 13, - "byteLength": 1 + "startLine": 190, + "startColumn": 25, + "endLine": 190, + "endColumn": 41, + "byteLength": 16 } } } @@ -7395,7 +7393,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "assigns clause in function strdup." }, + "message": { "text": "result_null_or_same_base." }, "locations": [ { "physicalLocation": { @@ -7404,11 +7402,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 473, - "startColumn": 12, - "endLine": 473, - "endColumn": 28, - "byteLength": 16 + "startLine": 193, + "startColumn": 4, + "endLine": 193, + "endColumn": 60, + "byteLength": 56 } } } @@ -7418,7 +7416,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "result_valid_string_and_same_contents." }, + "message": { "text": "assigns clause in function strrchr." }, "locations": [ { "physicalLocation": { @@ -7427,11 +7425,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 477, - "startColumn": 4, - "endLine": 477, - "endColumn": 51, - "byteLength": 47 + "startLine": 195, + "startColumn": 12, + "endLine": 195, + "endColumn": 13, + "byteLength": 1 } } } @@ -7441,7 +7439,9 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "behavior default! in function strtok." }, + "message": { + "text": "from clause of term \\result in function strrchr." + }, "locations": [ { "physicalLocation": { @@ -7450,11 +7450,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 283, + "startLine": 182, "startColumn": 12, - "endLine": 283, - "endColumn": 13, - "byteLength": 1 + "endLine": 182, + "endColumn": 19, + "byteLength": 7 } } } @@ -7464,7 +7464,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "room_nstring." }, + "message": { "text": "behavior default! in function strsep." }, "locations": [ { "physicalLocation": { @@ -7473,11 +7473,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 450, - "startColumn": 27, - "endLine": 450, - "endColumn": 48, - "byteLength": 21 + "startLine": 334, + "startColumn": 12, + "endLine": 334, + "endColumn": 13, + "byteLength": 1 } } } @@ -7487,20 +7487,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "memcmp_strlen_shift_right." }, + "message": { "text": "valid_string_stringp." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/__fc_string_axiomatic.h", + "uri": "libc/string.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 132, - "startColumn": 4, - "endLine": 135, - "endColumn": 38, - "byteLength": 185 + "startLine": 329, + "startColumn": 35, + "endLine": 329, + "endColumn": 76, + "byteLength": 41 } } } @@ -7510,7 +7510,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "src_too_long." }, + "message": { "text": "valid_string_delim." }, "locations": [ { "physicalLocation": { @@ -7519,11 +7519,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 375, - "startColumn": 26, - "endLine": 375, - "endColumn": 42, - "byteLength": 16 + "startLine": 330, + "startColumn": 33, + "endLine": 330, + "endColumn": 57, + "byteLength": 24 } } } @@ -7533,7 +7533,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "assigns clause in function strsignal." }, + "message": { "text": "assigns clause in function strsep." }, "locations": [ { "physicalLocation": { @@ -7542,11 +7542,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 523, + "startLine": 331, "startColumn": 12, - "endLine": 523, - "endColumn": 13, - "byteLength": 1 + "endLine": 331, + "endColumn": 20, + "byteLength": 8 } } } @@ -7556,7 +7556,9 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "can_allocate." }, + "message": { + "text": "from clause of term *stringp in function strsep." + }, "locations": [ { "physicalLocation": { @@ -7565,11 +7567,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 472, - "startColumn": 26, - "endLine": 472, - "endColumn": 49, - "byteLength": 23 + "startLine": 331, + "startColumn": 12, + "endLine": 331, + "endColumn": 20, + "byteLength": 8 } } } @@ -7579,20 +7581,22 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "wcslen_pos_or_null." }, + "message": { + "text": "from clause of term \\result in function strsep." + }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/__fc_string_axiomatic.h", + "uri": "libc/string.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 193, - "startColumn": 4, - "endLine": 197, - "endColumn": 41, - "byteLength": 174 + "startLine": 332, + "startColumn": 12, + "endLine": 332, + "endColumn": 19, + "byteLength": 7 } } } @@ -7602,20 +7606,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "strncmp_zero." }, + "message": { "text": "behavior default! in function strsignal." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/__fc_string_axiomatic.h", + "uri": "libc/string.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 155, - "startColumn": 4, - "endLine": 159, - "endColumn": 53, - "byteLength": 191 + "startLine": 523, + "startColumn": 12, + "endLine": 523, + "endColumn": 13, + "byteLength": 1 } } } @@ -7625,20 +7629,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "valid_string_s1." }, + "message": { "text": "result_internal_str." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/strings.h", + "uri": "libc/string.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 53, - "startColumn": 28, - "endLine": 53, - "endColumn": 53, - "byteLength": 25 + "startLine": 519, + "startColumn": 33, + "endLine": 519, + "endColumn": 60, + "byteLength": 27 } } } @@ -7648,9 +7652,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": "from clause of term \\result in function strsep." - }, + "message": { "text": "result_nul_terminated." }, "locations": [ { "physicalLocation": { @@ -7659,11 +7661,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 332, - "startColumn": 12, - "endLine": 332, - "endColumn": 19, - "byteLength": 7 + "startLine": 520, + "startColumn": 35, + "endLine": 520, + "endColumn": 51, + "byteLength": 16 } } } @@ -7673,7 +7675,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "behavior allocation in function strdup." }, + "message": { "text": "result_valid_string." }, "locations": [ { "physicalLocation": { @@ -7682,11 +7684,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 484, - "startColumn": 12, - "endLine": 484, - "endColumn": 13, - "byteLength": 1 + "startLine": 521, + "startColumn": 33, + "endLine": 521, + "endColumn": 59, + "byteLength": 26 } } } @@ -7696,7 +7698,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "valid_string_s." }, + "message": { "text": "assigns clause in function strsignal." }, "locations": [ { "physicalLocation": { @@ -7705,11 +7707,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 181, - "startColumn": 29, - "endLine": 181, - "endColumn": 49, - "byteLength": 20 + "startLine": 523, + "startColumn": 12, + "endLine": 523, + "endColumn": 13, + "byteLength": 1 } } } @@ -7719,7 +7721,9 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "char_not_found." }, + "message": { + "text": "from clause of term \\result in function strsignal." + }, "locations": [ { "physicalLocation": { @@ -7728,11 +7732,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 167, - "startColumn": 28, - "endLine": 167, - "endColumn": 40, - "byteLength": 12 + "startLine": 518, + "startColumn": 12, + "endLine": 518, + "endColumn": 19, + "byteLength": 7 } } } @@ -7742,7 +7746,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "valid_string_needle." }, + "message": { "text": "behavior default! in function strspn." }, "locations": [ { "physicalLocation": { @@ -7751,11 +7755,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 232, - "startColumn": 34, - "endLine": 232, - "endColumn": 59, - "byteLength": 25 + "startLine": 210, + "startColumn": 14, + "endLine": 210, + "endColumn": 20, + "byteLength": 6 } } } @@ -7765,7 +7769,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "behavior found in function memchr." }, + "message": { "text": "valid_string_s." }, "locations": [ { "physicalLocation": { @@ -7774,11 +7778,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 88, - "startColumn": 12, - "endLine": 88, - "endColumn": 13, - "byteLength": 1 + "startLine": 204, + "startColumn": 29, + "endLine": 204, + "endColumn": 49, + "byteLength": 20 } } } @@ -7788,7 +7792,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "result_same_base." }, + "message": { "text": "valid_string_accept." }, "locations": [ { "physicalLocation": { @@ -7797,11 +7801,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 186, - "startColumn": 30, - "endLine": 186, - "endColumn": 66, - "byteLength": 36 + "startLine": 205, + "startColumn": 34, + "endLine": 205, + "endColumn": 59, + "byteLength": 25 } } } @@ -7834,7 +7838,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "acsl_c_equiv." }, + "message": { "text": "assigns clause in function strspn." }, "locations": [ { "physicalLocation": { @@ -7843,11 +7847,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 140, - "startColumn": 26, - "endLine": 140, - "endColumn": 50, - "byteLength": 24 + "startLine": 206, + "startColumn": 12, + "endLine": 206, + "endColumn": 19, + "byteLength": 7 } } } @@ -7857,20 +7861,22 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "wcslen_not_zero." }, + "message": { + "text": "from clause of term \\result in function strspn." + }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/__fc_string_axiomatic.h", + "uri": "libc/string.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 210, - "startColumn": 4, - "endLine": 212, - "endColumn": 59, - "byteLength": 124 + "startLine": 206, + "startColumn": 12, + "endLine": 206, + "endColumn": 19, + "byteLength": 7 } } } @@ -7881,7 +7887,7 @@ "kind": "pass", "level": "none", "message": { - "text": "from clause of term \\result in function strdup." + "text": "from clause of term \\result in function strspn." }, "locations": [ { @@ -7891,9 +7897,9 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 474, + "startLine": 207, "startColumn": 12, - "endLine": 474, + "endLine": 207, "endColumn": 19, "byteLength": 7 } @@ -7905,7 +7911,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "behavior default! in function strrchr." }, + "message": { "text": "behavior default! in function strstr." }, "locations": [ { "physicalLocation": { @@ -7914,9 +7920,9 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 195, + "startLine": 229, "startColumn": 12, - "endLine": 195, + "endLine": 229, "endColumn": 13, "byteLength": 1 } @@ -7928,7 +7934,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "allocation." }, + "message": { "text": "valid_string_haystack." }, "locations": [ { "physicalLocation": { @@ -7937,11 +7943,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 495, - "startColumn": 24, - "endLine": 495, - "endColumn": 60, - "byteLength": 36 + "startLine": 220, + "startColumn": 36, + "endLine": 220, + "endColumn": 63, + "byteLength": 27 } } } @@ -7951,7 +7957,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "valid_string_s2." }, + "message": { "text": "valid_string_needle." }, "locations": [ { "physicalLocation": { @@ -7960,10 +7966,10 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 145, - "startColumn": 30, - "endLine": 145, - "endColumn": 55, + "startLine": 221, + "startColumn": 34, + "endLine": 221, + "endColumn": 59, "byteLength": 25 } } @@ -7974,7 +7980,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "assigns clause in function strncat." }, + "message": { "text": "result_null_or_in_haystack." }, "locations": [ { "physicalLocation": { @@ -7983,11 +7989,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 425, - "startColumn": 12, - "endLine": 425, - "endColumn": 50, - "byteLength": 38 + "startLine": 225, + "startColumn": 4, + "endLine": 227, + "endColumn": 59, + "byteLength": 141 } } } @@ -7997,20 +8003,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "never_allocable." }, + "message": { "text": "assigns clause in function strstr." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/__fc_alloc_axiomatic.h", + "uri": "libc/string.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 39, - "startColumn": 4, - "endLine": 41, - "endColumn": 61, - "byteLength": 110 + "startLine": 229, + "startColumn": 12, + "endLine": 229, + "endColumn": 13, + "byteLength": 1 } } } @@ -8020,7 +8026,9 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "result_null." }, + "message": { + "text": "from clause of term \\result in function strstr." + }, "locations": [ { "physicalLocation": { @@ -8029,11 +8037,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 504, - "startColumn": 25, - "endLine": 504, - "endColumn": 41, - "byteLength": 16 + "startLine": 222, + "startColumn": 12, + "endLine": 222, + "endColumn": 19, + "byteLength": 7 } } } @@ -8043,7 +8051,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "assigns clause in function strndup." }, + "message": { "text": "behavior default! in function strtok." }, "locations": [ { "physicalLocation": { @@ -8052,9 +8060,9 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 506, + "startLine": 283, "startColumn": 12, - "endLine": 506, + "endLine": 283, "endColumn": 13, "byteLength": 1 } @@ -8066,7 +8074,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "initialization." }, + "message": { "text": "behavior new_str in function strtok." }, "locations": [ { "physicalLocation": { @@ -8075,11 +8083,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 307, - "startColumn": 28, - "endLine": 307, - "endColumn": 49, - "byteLength": 21 + "startLine": 283, + "startColumn": 12, + "endLine": 283, + "endColumn": 13, + "byteLength": 1 } } } @@ -8089,7 +8097,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "result_valid_string." }, + "message": { "text": "behavior resume_str in function strtok." }, "locations": [ { "physicalLocation": { @@ -8098,34 +8106,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 521, - "startColumn": 33, - "endLine": 521, - "endColumn": 59, - "byteLength": 26 - } - } - } - ] - }, - { - "ruleId": "user-spec", - "kind": "pass", - "level": "none", - "message": { "text": "WcsNCmp." }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "libc/__fc_string_axiomatic.h", - "uriBaseId": "FRAMAC_SHARE" - }, - "region": { - "startLine": 252, - "startColumn": 4, - "endLine": 256, - "endColumn": 53, - "byteLength": 194 + "startLine": 283, + "startColumn": 12, + "endLine": 283, + "endColumn": 13, + "byteLength": 1 } } } @@ -8135,7 +8120,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "sum_of_bounded_lengths." }, + "message": { "text": "valid_string_delim." }, "locations": [ { "physicalLocation": { @@ -8144,11 +8129,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 442, - "startColumn": 36, - "endLine": 442, - "endColumn": 74, - "byteLength": 38 + "startLine": 245, + "startColumn": 31, + "endLine": 245, + "endColumn": 55, + "byteLength": 24 } } } @@ -8158,7 +8143,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "points_to_end." }, + "message": { "text": "valid_string_s_or_delim_not_found." }, "locations": [ { "physicalLocation": { @@ -8167,11 +8152,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 403, - "startColumn": 27, - "endLine": 403, - "endColumn": 57, - "byteLength": 30 + "startLine": 258, + "startColumn": 6, + "endLine": 260, + "endColumn": 70, + "byteLength": 120 } } } @@ -8181,7 +8166,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "valid_s." }, + "message": { "text": "not_first_call." }, "locations": [ { "physicalLocation": { @@ -8190,11 +8175,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 115, - "startColumn": 22, - "endLine": 115, - "endColumn": 42, - "byteLength": 20 + "startLine": 268, + "startColumn": 29, + "endLine": 268, + "endColumn": 53, + "byteLength": 24 } } } @@ -8204,9 +8189,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": "from clause of term \\result in function strxfrm." - }, + "message": { "text": "s_not_null." }, "locations": [ { "physicalLocation": { @@ -8215,11 +8198,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 461, - "startColumn": 12, - "endLine": 461, - "endColumn": 19, - "byteLength": 7 + "startLine": 256, + "startColumn": 24, + "endLine": 256, + "endColumn": 34, + "byteLength": 10 } } } @@ -8229,9 +8212,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": "from clause of term \\result in function memcpy." - }, + "message": { "text": "s_null." }, "locations": [ { "physicalLocation": { @@ -8240,11 +8221,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 97, - "startColumn": 12, - "endLine": 97, - "endColumn": 19, - "byteLength": 7 + "startLine": 267, + "startColumn": 20, + "endLine": 267, + "endColumn": 30, + "byteLength": 10 } } } @@ -8254,20 +8235,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "wmemchr_def." }, + "message": { "text": "result_subset." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/__fc_string_axiomatic.h", + "uri": "libc/string.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 183, - "startColumn": 4, - "endLine": 185, - "endColumn": 63, - "byteLength": 143 + "startLine": 264, + "startColumn": 27, + "endLine": 264, + "endColumn": 72, + "byteLength": 45 } } } @@ -8277,7 +8258,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "assigns clause in function strtok." }, + "message": { "text": "ptr_subset." }, "locations": [ { "physicalLocation": { @@ -8286,11 +8267,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 261, - "startColumn": 12, - "endLine": 261, - "endColumn": 27, - "byteLength": 15 + "startLine": 265, + "startColumn": 24, + "endLine": 265, + "endColumn": 57, + "byteLength": 33 } } } @@ -8300,9 +8281,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": "from clause of term \\result in function strnlen." - }, + "message": { "text": "result_subset." }, "locations": [ { "physicalLocation": { @@ -8311,11 +8290,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 132, - "startColumn": 12, - "endLine": 132, - "endColumn": 19, - "byteLength": 7 + "startLine": 277, + "startColumn": 27, + "endLine": 278, + "endColumn": 72, + "byteLength": 92 } } } @@ -8325,10 +8304,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": - "from clause of term *(dest + (0 .. strlen{Old}(src))) in function stpcpy." - }, + "message": { "text": "ptr_subset." }, "locations": [ { "physicalLocation": { @@ -8337,11 +8313,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 400, - "startColumn": 12, - "endLine": 400, - "endColumn": 32, - "byteLength": 20 + "startLine": 279, + "startColumn": 24, + "endLine": 279, + "endColumn": 77, + "byteLength": 53 } } } @@ -8351,7 +8327,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "result_subset." }, + "message": { "text": "assigns clause in function strtok." }, "locations": [ { "physicalLocation": { @@ -8360,11 +8336,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 277, - "startColumn": 27, - "endLine": 278, - "endColumn": 72, - "byteLength": 92 + "startLine": 246, + "startColumn": 10, + "endLine": 246, + "endColumn": 16, + "byteLength": 6 } } } @@ -8374,7 +8350,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "assigns clause in function strxfrm." }, + "message": { "text": "assigns clause in function strtok." }, "locations": [ { "physicalLocation": { @@ -8383,11 +8359,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 460, + "startLine": 261, "startColumn": 12, - "endLine": 460, - "endColumn": 26, - "byteLength": 14 + "endLine": 261, + "endColumn": 27, + "byteLength": 15 } } } @@ -8397,20 +8373,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "assigns clause in function strncasecmp." }, + "message": { "text": "assigns clause in function strtok." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/strings.h", + "uri": "libc/string.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 57, - "startColumn": 11, - "endLine": 57, - "endColumn": 22, - "byteLength": 11 + "startLine": 269, + "startColumn": 12, + "endLine": 269, + "endColumn": 32, + "byteLength": 20 } } } @@ -8420,7 +8396,9 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "room_nstring." }, + "message": { + "text": "from clause of term *(s + (0 ..)) in function strtok." + }, "locations": [ { "physicalLocation": { @@ -8429,11 +8407,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 385, - "startColumn": 27, - "endLine": 385, - "endColumn": 48, - "byteLength": 21 + "startLine": 246, + "startColumn": 10, + "endLine": 246, + "endColumn": 16, + "byteLength": 6 } } } @@ -8443,7 +8421,10 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "room_string." }, + "message": { + "text": + "from clause of term *(__fc_strtok_ptr + (0 ..)) in function strtok." + }, "locations": [ { "physicalLocation": { @@ -8452,11 +8433,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 352, - "startColumn": 26, - "endLine": 352, - "endColumn": 55, - "byteLength": 29 + "startLine": 248, + "startColumn": 10, + "endLine": 248, + "endColumn": 30, + "byteLength": 20 } } } @@ -8466,7 +8447,9 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "result_ptr." }, + "message": { + "text": "from clause of term \\result in function strtok." + }, "locations": [ { "physicalLocation": { @@ -8475,11 +8458,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 427, - "startColumn": 24, - "endLine": 427, - "endColumn": 39, - "byteLength": 15 + "startLine": 250, + "startColumn": 10, + "endLine": 250, + "endColumn": 17, + "byteLength": 7 } } } @@ -8489,7 +8472,9 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "valid_dest." }, + "message": { + "text": "from clause of term __fc_strtok_ptr in function strtok." + }, "locations": [ { "physicalLocation": { @@ -8498,11 +8483,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 458, - "startColumn": 25, - "endLine": 458, - "endColumn": 48, - "byteLength": 23 + "startLine": 252, + "startColumn": 10, + "endLine": 252, + "endColumn": 25, + "byteLength": 15 } } } @@ -8513,7 +8498,7 @@ "kind": "pass", "level": "none", "message": { - "text": "from clause of term \\result in function strspn." + "text": "from clause of term __fc_strtok_ptr in function strtok." }, "locations": [ { @@ -8523,11 +8508,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 206, + "startLine": 261, "startColumn": 12, - "endLine": 206, - "endColumn": 19, - "byteLength": 7 + "endLine": 261, + "endColumn": 27, + "byteLength": 15 } } } @@ -8537,7 +8522,9 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "behavior default! in function strerror." }, + "message": { + "text": "from clause of term *(s + (0 ..)) in function strtok." + }, "locations": [ { "physicalLocation": { @@ -8546,11 +8533,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 347, + "startLine": 262, "startColumn": 12, - "endLine": 347, - "endColumn": 13, - "byteLength": 1 + "endLine": 262, + "endColumn": 18, + "byteLength": 6 } } } @@ -8560,7 +8547,9 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "valid_string_src_too_large." }, + "message": { + "text": "from clause of term \\result in function strtok." + }, "locations": [ { "physicalLocation": { @@ -8569,11 +8558,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 437, - "startColumn": 4, - "endLine": 437, - "endColumn": 49, - "byteLength": 45 + "startLine": 263, + "startColumn": 12, + "endLine": 263, + "endColumn": 19, + "byteLength": 7 } } } @@ -8583,20 +8572,23 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "MemCmp." }, + "message": { + "text": + "from clause of term *(__fc_strtok_ptr + (0 ..)) in function strtok." + }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/__fc_string_axiomatic.h", + "uri": "libc/string.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 39, - "startColumn": 4, - "endLine": 42, - "endColumn": 70, - "byteLength": 170 + "startLine": 269, + "startColumn": 12, + "endLine": 269, + "endColumn": 32, + "byteLength": 20 } } } @@ -8606,20 +8598,22 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "wcslen_zero." }, + "message": { + "text": "from clause of term __fc_strtok_ptr in function strtok." + }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/__fc_string_axiomatic.h", + "uri": "libc/string.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 214, - "startColumn": 4, - "endLine": 216, - "endColumn": 60, - "byteLength": 121 + "startLine": 272, + "startColumn": 12, + "endLine": 272, + "endColumn": 27, + "byteLength": 15 } } } @@ -8630,7 +8624,7 @@ "kind": "pass", "level": "none", "message": { - "text": "from clause of term \\result in function strncpy." + "text": "from clause of term \\result in function strtok." }, "locations": [ { @@ -8640,9 +8634,9 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 368, + "startLine": 275, "startColumn": 12, - "endLine": 368, + "endLine": 275, "endColumn": 19, "byteLength": 7 } @@ -8654,7 +8648,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "assigns clause in function memcpy." }, + "message": { "text": "complete clause in function strtok." }, "locations": [ { "physicalLocation": { @@ -8663,11 +8657,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 96, + "startLine": 283, "startColumn": 12, - "endLine": 96, - "endColumn": 35, - "byteLength": 23 + "endLine": 283, + "endColumn": 13, + "byteLength": 1 } } } @@ -8677,22 +8671,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": "specialization of valid_string_s at stmt 2." - }, + "message": { "text": "disjoint clause in function strtok." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "tests/sarif/libc.c", - "uriBaseId": "PWD" + "uri": "libc/string.h", + "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 13, - "startColumn": 10, - "endLine": 13, - "endColumn": 19, - "byteLength": 9 + "startLine": 283, + "startColumn": 12, + "endLine": 283, + "endColumn": 13, + "byteLength": 1 } } } @@ -8702,7 +8694,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "valid_string_stringp." }, + "message": { "text": "behavior default! in function strtok_r." }, "locations": [ { "physicalLocation": { @@ -8711,11 +8703,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 329, - "startColumn": 35, - "endLine": 329, - "endColumn": 76, - "byteLength": 41 + "startLine": 327, + "startColumn": 12, + "endLine": 327, + "endColumn": 13, + "byteLength": 1 } } } @@ -8725,20 +8717,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "strlen_neg." }, + "message": { "text": "behavior new_str in function strtok_r." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/__fc_string_axiomatic.h", + "uri": "libc/string.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 84, - "startColumn": 4, - "endLine": 87, - "endColumn": 22, - "byteLength": 109 + "startLine": 327, + "startColumn": 12, + "endLine": 327, + "endColumn": 13, + "byteLength": 1 } } } @@ -8748,7 +8740,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "behavior default! in function strstr." }, + "message": { "text": "behavior resume_str in function strtok_r." }, "locations": [ { "physicalLocation": { @@ -8757,9 +8749,9 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 229, + "startLine": 327, "startColumn": 12, - "endLine": 229, + "endLine": 327, "endColumn": 13, "byteLength": 1 } @@ -8771,7 +8763,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "valid_string_needle." }, + "message": { "text": "valid_string_delim." }, "locations": [ { "physicalLocation": { @@ -8780,11 +8772,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 221, - "startColumn": 34, - "endLine": 221, - "endColumn": 59, - "byteLength": 25 + "startLine": 286, + "startColumn": 31, + "endLine": 286, + "endColumn": 55, + "byteLength": 24 } } } @@ -8794,7 +8786,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "initialization." }, + "message": { "text": "valid_saveptr." }, "locations": [ { "physicalLocation": { @@ -8803,11 +8795,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 390, - "startColumn": 28, - "endLine": 390, - "endColumn": 73, - "byteLength": 45 + "startLine": 287, + "startColumn": 26, + "endLine": 287, + "endColumn": 41, + "byteLength": 15 } } } @@ -8817,20 +8809,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "memset_def." }, + "message": { "text": "valid_string_s_or_delim_not_found." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/__fc_string_axiomatic.h", + "uri": "libc/string.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 68, - "startColumn": 4, - "endLine": 70, - "endColumn": 63, - "byteLength": 135 + "startLine": 300, + "startColumn": 6, + "endLine": 302, + "endColumn": 70, + "byteLength": 120 } } } @@ -8840,7 +8832,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "result_ptr." }, + "message": { "text": "not_first_call." }, "locations": [ { "physicalLocation": { @@ -8849,11 +8841,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 369, - "startColumn": 24, - "endLine": 369, - "endColumn": 39, - "byteLength": 15 + "startLine": 311, + "startColumn": 29, + "endLine": 311, + "endColumn": 46, + "byteLength": 17 } } } @@ -8863,9 +8855,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": "from clause of term \\result in function strncat." - }, + "message": { "text": "initialization." }, "locations": [ { "physicalLocation": { @@ -8874,11 +8864,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 426, - "startColumn": 12, - "endLine": 426, - "endColumn": 19, - "byteLength": 7 + "startLine": 312, + "startColumn": 37, + "endLine": 312, + "endColumn": 58, + "byteLength": 21 } } } @@ -8888,9 +8878,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": "from clause of term \\result in function strlcpy." - }, + "message": { "text": "s_not_null." }, "locations": [ { "physicalLocation": { @@ -8899,11 +8887,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 389, - "startColumn": 12, - "endLine": 389, - "endColumn": 19, - "byteLength": 7 + "startLine": 298, + "startColumn": 24, + "endLine": 298, + "endColumn": 34, + "byteLength": 10 } } } @@ -8913,7 +8901,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "assigns clause in function strchrnul." }, + "message": { "text": "s_null." }, "locations": [ { "physicalLocation": { @@ -8922,11 +8910,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 179, - "startColumn": 12, - "endLine": 179, - "endColumn": 13, - "byteLength": 1 + "startLine": 310, + "startColumn": 20, + "endLine": 310, + "endColumn": 30, + "byteLength": 10 } } } @@ -8936,7 +8924,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "acsl_c_equiv." }, + "message": { "text": "result_subset." }, "locations": [ { "physicalLocation": { @@ -8945,11 +8933,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 118, - "startColumn": 26, - "endLine": 118, - "endColumn": 46, - "byteLength": 20 + "startLine": 306, + "startColumn": 27, + "endLine": 306, + "endColumn": 72, + "byteLength": 45 } } } @@ -8959,9 +8947,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": "from clause of term \\result in function strlen." - }, + "message": { "text": "initialization." }, "locations": [ { "physicalLocation": { @@ -8970,11 +8956,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 126, - "startColumn": 12, - "endLine": 126, - "endColumn": 19, - "byteLength": 7 + "startLine": 307, + "startColumn": 28, + "endLine": 307, + "endColumn": 49, + "byteLength": 21 } } } @@ -8984,10 +8970,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": - "from clause of term *(dest + (0 .. n - 1)) in function strlcpy." - }, + "message": { "text": "saveptr_subset." }, "locations": [ { "physicalLocation": { @@ -8996,11 +8979,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 388, - "startColumn": 12, - "endLine": 388, - "endColumn": 24, - "byteLength": 12 + "startLine": 308, + "startColumn": 28, + "endLine": 308, + "endColumn": 54, + "byteLength": 26 } } } @@ -9010,7 +8993,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "behavior default! in function strncmp." }, + "message": { "text": "result_subset." }, "locations": [ { "physicalLocation": { @@ -9019,11 +9002,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 149, - "startColumn": 11, - "endLine": 149, - "endColumn": 18, - "byteLength": 7 + "startLine": 321, + "startColumn": 27, + "endLine": 322, + "endColumn": 65, + "byteLength": 85 } } } @@ -9033,7 +9016,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "assigns clause in function strndup." }, + "message": { "text": "saveptr_subset." }, "locations": [ { "physicalLocation": { @@ -9042,11 +9025,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 492, - "startColumn": 12, - "endLine": 492, - "endColumn": 28, - "byteLength": 16 + "startLine": 323, + "startColumn": 28, + "endLine": 323, + "endColumn": 67, + "byteLength": 39 } } } @@ -9056,7 +9039,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "valid_string_delim." }, + "message": { "text": "assigns clause in function strtok_r." }, "locations": [ { "physicalLocation": { @@ -9065,11 +9048,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 330, - "startColumn": 33, - "endLine": 330, - "endColumn": 57, - "byteLength": 24 + "startLine": 288, + "startColumn": 10, + "endLine": 288, + "endColumn": 16, + "byteLength": 6 } } } @@ -9079,7 +9062,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "assigns clause in function strpbrk." }, + "message": { "text": "assigns clause in function strtok_r." }, "locations": [ { "physicalLocation": { @@ -9088,11 +9071,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 218, - "startColumn": 12, - "endLine": 218, - "endColumn": 13, - "byteLength": 1 + "startLine": 303, + "startColumn": 12, + "endLine": 303, + "endColumn": 20, + "byteLength": 8 } } } @@ -9102,7 +9085,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "result_null." }, + "message": { "text": "assigns clause in function strtok_r." }, "locations": [ { "physicalLocation": { @@ -9111,11 +9094,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 482, - "startColumn": 25, - "endLine": 482, - "endColumn": 41, - "byteLength": 16 + "startLine": 313, + "startColumn": 12, + "endLine": 313, + "endColumn": 27, + "byteLength": 15 } } } @@ -9125,20 +9108,22 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "valid_memory_area." }, + "message": { + "text": "from clause of term *(s + (0 ..)) in function strtok_r." + }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/strings.h", + "uri": "libc/string.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 36, - "startColumn": 32, - "endLine": 36, - "endColumn": 63, - "byteLength": 31 + "startLine": 288, + "startColumn": 10, + "endLine": 288, + "endColumn": 16, + "byteLength": 6 } } } @@ -9148,7 +9133,10 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "valid_string_s_or_delim_not_found." }, + "message": { + "text": + "from clause of term *(*saveptr + (0 ..)) in function strtok_r." + }, "locations": [ { "physicalLocation": { @@ -9157,11 +9145,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 300, - "startColumn": 6, - "endLine": 302, - "endColumn": 70, - "byteLength": 120 + "startLine": 290, + "startColumn": 10, + "endLine": 290, + "endColumn": 25, + "byteLength": 15 } } } @@ -9172,7 +9160,7 @@ "kind": "pass", "level": "none", "message": { - "text": "from clause of term \\result in function strspn." + "text": "from clause of term \\result in function strtok_r." }, "locations": [ { @@ -9182,10 +9170,10 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 207, - "startColumn": 12, - "endLine": 207, - "endColumn": 19, + "startLine": 292, + "startColumn": 10, + "endLine": 292, + "endColumn": 17, "byteLength": 7 } } @@ -9196,7 +9184,9 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "result_ptr." }, + "message": { + "text": "from clause of term *saveptr in function strtok_r." + }, "locations": [ { "physicalLocation": { @@ -9205,11 +9195,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 119, - "startColumn": 24, - "endLine": 119, - "endColumn": 36, - "byteLength": 12 + "startLine": 294, + "startColumn": 10, + "endLine": 294, + "endColumn": 18, + "byteLength": 8 } } } @@ -9220,7 +9210,7 @@ "kind": "pass", "level": "none", "message": { - "text": "from clause of term __fc_strtok_ptr in function strtok." + "text": "from clause of term *saveptr in function strtok_r." }, "locations": [ { @@ -9230,11 +9220,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 252, - "startColumn": 10, - "endLine": 252, - "endColumn": 25, - "byteLength": 15 + "startLine": 303, + "startColumn": 12, + "endLine": 303, + "endColumn": 20, + "byteLength": 8 } } } @@ -9244,7 +9234,9 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "assigns clause in function strcat." }, + "message": { + "text": "from clause of term *(s + (0 ..)) in function strtok_r." + }, "locations": [ { "physicalLocation": { @@ -9253,11 +9245,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 411, + "startLine": 304, "startColumn": 12, - "endLine": 411, - "endColumn": 58, - "byteLength": 46 + "endLine": 304, + "endColumn": 18, + "byteLength": 6 } } } @@ -9267,7 +9259,9 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "behavior default! in function stpcpy." }, + "message": { + "text": "from clause of term \\result in function strtok_r." + }, "locations": [ { "physicalLocation": { @@ -9276,11 +9270,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 405, + "startLine": 305, "startColumn": 12, - "endLine": 405, - "endColumn": 13, - "byteLength": 1 + "endLine": 305, + "endColumn": 19, + "byteLength": 7 } } } @@ -9290,20 +9284,23 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "zero_initialized." }, + "message": { + "text": + "from clause of term *(*saveptr + (0 ..)) in function strtok_r." + }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/strings.h", + "uri": "libc/string.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 39, - "startColumn": 28, - "endLine": 39, - "endColumn": 63, - "byteLength": 35 + "startLine": 313, + "startColumn": 12, + "endLine": 313, + "endColumn": 27, + "byteLength": 15 } } } @@ -9313,7 +9310,9 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "result_char." }, + "message": { + "text": "from clause of term *saveptr in function strtok_r." + }, "locations": [ { "physicalLocation": { @@ -9322,11 +9321,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 185, - "startColumn": 25, - "endLine": 185, - "endColumn": 38, - "byteLength": 13 + "startLine": 316, + "startColumn": 12, + "endLine": 316, + "endColumn": 20, + "byteLength": 8 } } } @@ -9336,7 +9335,9 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "valid_s2." }, + "message": { + "text": "from clause of term \\result in function strtok_r." + }, "locations": [ { "physicalLocation": { @@ -9345,11 +9346,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 56, - "startColumn": 23, - "endLine": 56, - "endColumn": 49, - "byteLength": 26 + "startLine": 319, + "startColumn": 12, + "endLine": 319, + "endColumn": 19, + "byteLength": 7 } } } @@ -9359,7 +9360,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "assigns clause in function stpcpy." }, + "message": { "text": "complete clause in function strtok_r." }, "locations": [ { "physicalLocation": { @@ -9368,11 +9369,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 400, + "startLine": 327, "startColumn": 12, - "endLine": 400, - "endColumn": 32, - "byteLength": 20 + "endLine": 327, + "endColumn": 13, + "byteLength": 1 } } } @@ -9382,9 +9383,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": "from clause of term \\result in function strstr." - }, + "message": { "text": "disjoint clause in function strtok_r." }, "locations": [ { "physicalLocation": { @@ -9393,11 +9392,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 222, + "startLine": 327, "startColumn": 12, - "endLine": 222, - "endColumn": 19, - "byteLength": 7 + "endLine": 327, + "endColumn": 13, + "byteLength": 1 } } } @@ -9407,9 +9406,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": "from clause of term \\result in function strrchr." - }, + "message": { "text": "behavior default! in function strxfrm." }, "locations": [ { "physicalLocation": { @@ -9418,10 +9415,10 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 182, - "startColumn": 12, - "endLine": 182, - "endColumn": 19, + "startLine": 463, + "startColumn": 14, + "endLine": 463, + "endColumn": 21, "byteLength": 7 } } @@ -9432,7 +9429,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "assigns clause in function strnlen." }, + "message": { "text": "valid_dest." }, "locations": [ { "physicalLocation": { @@ -9441,11 +9438,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 135, - "startColumn": 14, - "endLine": 135, - "endColumn": 21, - "byteLength": 7 + "startLine": 458, + "startColumn": 25, + "endLine": 458, + "endColumn": 48, + "byteLength": 23 } } } @@ -9455,20 +9452,20 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "valid_string_s2." }, + "message": { "text": "valid_string_src." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/strings.h", + "uri": "libc/string.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 54, - "startColumn": 28, - "endLine": 54, + "startLine": 459, + "startColumn": 31, + "endLine": 459, "endColumn": 53, - "byteLength": 25 + "byteLength": 22 } } } @@ -9478,9 +9475,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { - "text": "from clause of term *(s + (0 ..)) in function strtok." - }, + "message": { "text": "assigns clause in function strxfrm." }, "locations": [ { "physicalLocation": { @@ -9489,11 +9484,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 246, - "startColumn": 10, - "endLine": 246, - "endColumn": 16, - "byteLength": 6 + "startLine": 460, + "startColumn": 12, + "endLine": 460, + "endColumn": 26, + "byteLength": 14 } } } @@ -9503,7 +9498,10 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "valid_string_src." }, + "message": { + "text": + "from clause of term *(dest + (0 .. n - 1)) in function strxfrm." + }, "locations": [ { "physicalLocation": { @@ -9512,11 +9510,11 @@ "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 408, - "startColumn": 31, - "endLine": 408, - "endColumn": 53, - "byteLength": 22 + "startLine": 460, + "startColumn": 12, + "endLine": 460, + "endColumn": 26, + "byteLength": 14 } } } @@ -9526,20 +9524,22 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "strchr_def." }, + "message": { + "text": "from clause of term \\result in function strxfrm." + }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "libc/__fc_string_axiomatic.h", + "uri": "libc/string.h", "uriBaseId": "FRAMAC_SHARE" }, "region": { - "startLine": 168, - "startColumn": 4, - "endLine": 170, - "endColumn": 75, - "byteLength": 132 + "startLine": 461, + "startColumn": 12, + "endLine": 461, + "endColumn": 19, + "byteLength": 7 } } } diff --git a/src/plugins/markdown-report/tests/sarif/std_string.c b/src/plugins/markdown-report/tests/sarif/std_string.c new file mode 100644 index 0000000000000000000000000000000000000000..bc2bc89d0f4adc5bca5dddf01b9bbb17ad7f228d --- /dev/null +++ b/src/plugins/markdown-report/tests/sarif/std_string.c @@ -0,0 +1,8 @@ +/* run.config* +LOG: @PTEST_NAME@.sarif +OPT: -eva -then -mdr-sarif-deterministic -mdr-gen sarif -mdr-out @PTEST_DIR@/result/@PTEST_NAME@.sarif +*/ + +#include "string.c" + +int main() { } diff --git a/src/plugins/metrics/Metrics.mli b/src/plugins/metrics/Metrics.mli index f796b946e2f1989820fc0c0d2fc753f89b8ad175..c1a0c72ade4a75f886c678bb95df2ae81be4c216 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 08ec7e085475585f48ea6f9bcacf6ed218c33e36..6bdb85d6f80f914f00a5947c49d02e10dfba38e0 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 6a7960d6e597a6b14e366713122d7ad35e9bdd41..75acb89eb4d1ed53cd438c23c2e0af51e3e6fcd8 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 dff924ad0384ec822c35719ef8acc81c18fe63f3..75e6aa62b80336568edb387347b0e7b0dd0c8bed 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 e1cc6633a3aaf5a0da94b4553690eb766ec501cc..ca172c1db4a5526ba842ee1dbedcc1782d57307b 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 6e4b361b7bfa7c4b5d26e0234ff54b1973211aea..f4c84845ca1c4ca177dd1c2fbd555e0cec255d88 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 0ee28935119b5b65477e1f84412621210133792c..788ecf4c98d882147f792e67097184e1abec56c6 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 0cc17c3cb9dbf18c9e53646a386d9ed4e3bb9be9..92c05039aed56b342382534a10c3b603945fa6a7 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 bbc73b7f5df2665503791f61581f254e42e9590c..962ed38461e91ff9f4f4e810d6cd14f4b026b7bb 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -322,7 +322,7 @@ class slocVisitor ~libc : sloc_visitor = object(self) | Dvolatile (_, _, _, _, _) -> " (Volatile) " | Daxiomatic (s, _, _, _) -> s | Dtype (lti, _) -> lti.lt_name - | Dlemma (ln, _, _, _, _, _, _) -> ln + | Dlemma (ln, _, _, _, _, _) -> ln | Dinvariant (toto, _) -> toto.l_var_info.lv_name | Dtype_annot (ta, _) -> ta.l_var_info.lv_name | Dmodel_annot (mi, _) -> mi.mi_name diff --git a/src/plugins/metrics/metrics_cilast.mli b/src/plugins/metrics/metrics_cilast.mli index e7dcd86abb58e8e9e5e8a9b9099a577fd08fe685..5a54f1ef8b35afd7fc6a8661e2e4ecf274fb37e0 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 0ccc7d7bf860eb8020cfc1959598f27e2a3c3ddf..21a82a7fa2f115c33b30a09534d50a746271c9e4 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 988eece5e282171cdc70ab951192567e0e70d969..d9bb2e0513dc396bf6cabbeed060fa9e9e3dcf72 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 c544bf91e8efdc3ab3b85c591bd1a45cbb6207e7..e8360699d1289248a937da17658f7bca1f559748 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 4e59363b5d289d7326dc2214495270d99b12b706..95e23b804182684f9afbd7e9e8755675a6967a80 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 5d9bd963dbf2187682089cc8b9581ef220e9c366..30ae2ef4d389e1a3db3a9e0f5e8fe3e35c7ac1bd 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 911779ce0c8af6dc782ddcc2d29cced35c5e2b40..bc9a5e556236fb042b721a5f4bed701c44b00db8 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/metrics/register.ml b/src/plugins/metrics/register.ml index 1c392c0e283f2cf87426ca385ea63001ca24bed4..c074b9fa5ea1597c01e857d5dca5203c2b682ad7 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 c953b64590a9659c26d59c262533b625709bd449..f424d2004526263cdefd35d9e2427fc2c74b0eef 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/nonterm/Makefile.in b/src/plugins/nonterm/Makefile.in index 94773d2aab31734f2445af0efba31b0181fc137f..f245c193dae897e89ee7a4d6a683826a13e11048 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-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/src/plugins/nonterm/Nonterm.mli b/src/plugins/nonterm/Nonterm.mli index 4984a8c23667c91e86f6eb9aa83d000e8c25385c..80b007bc8e8bc1d094527c840fedddaef01c39aa 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/nonterm/configure.ac b/src/plugins/nonterm/configure.ac index 03072275f7684618f7cd619cead7c6105bee11ae..3b767f4b96894edc91ba46016f0629b4f9273350 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-2020 # +# Copyright (C) 2007-2021 # # 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 a4f74bc205af61d14b74d1eb2858549055584bd5..23d5aa7635938046ba7d24391cc8e6bbdfb613d9 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -104,13 +104,17 @@ let pp_numbered_stacks fmt callstacks = Format.pp_print_int Value_types.Callstack.pretty)) numbered_callstacks +let wkey_stmt = Self.register_warn_category "stmt" + let warn_nonterminating_statement stmt callstacks = - Self.warning ~source:(fst (Stmt.loc stmt)) + Self.warning ~wkey:wkey_stmt ~source:(fst (Stmt.loc stmt)) "non-terminating %a@\n%a" pretty_stmt_kind stmt pp_numbered_stacks callstacks +let wkey_dead = Self.register_warn_category "dead-code" + let warn_dead_code stmt = - Self.warning ~source:(fst (Stmt.loc stmt)) + Self.warning ~wkey:wkey_dead ~source:(fst (Stmt.loc stmt)) "%a is syntactically unreachable" pretty_stmt_kind stmt class dead_cc_collector kf = object @@ -155,8 +159,10 @@ class dead_cc_collector kf = object Cil.DoChildren end +let wkey_unreachable = Self.register_warn_category "unreachable" + let warn_unreachable_statement stmt = - Self.warning ~source:(fst (Stmt.loc stmt)) + Self.warning ~wkey:wkey_unreachable ~source:(fst (Stmt.loc stmt)) "unreachable %a" pretty_stmt_kind stmt class unreachable_stmt_visitor kf to_ignore = object diff --git a/src/plugins/nonterm/tests/nonterm/oracle/builtin_termination.res.oracle b/src/plugins/nonterm/tests/nonterm/oracle/builtin_termination.res.oracle index 3effbe4d066c62ee129194af9c2a28fd2f2ac30d..c6094d433be6a22ba0a726a907edfb32aca2f336 100644 --- a/src/plugins/nonterm/tests/nonterm/oracle/builtin_termination.res.oracle +++ b/src/plugins/nonterm/tests/nonterm/oracle/builtin_termination.res.oracle @@ -25,7 +25,7 @@ len1 ∈ {2} or UNINITIALIZED len2 ∈ UNINITIALIZED __retres ∈ {0} -[nonterm] tests/nonterm/builtin_termination.c:16: Warning: +[nonterm:stmt] tests/nonterm/builtin_termination.c:16: Warning: non-terminating function call stack: main [nonterm] Analysis done. diff --git a/src/plugins/nonterm/tests/nonterm/oracle/callstack.res.oracle b/src/plugins/nonterm/tests/nonterm/oracle/callstack.res.oracle index 93e52b1abcc2748f95222a8ff3613add99c96c80..047945a4f21d86ba5c7dc65baebd1a2dbb8448bf 100644 --- a/src/plugins/nonterm/tests/nonterm/oracle/callstack.res.oracle +++ b/src/plugins/nonterm/tests/nonterm/oracle/callstack.res.oracle @@ -21,13 +21,13 @@ NON TERMINATING FUNCTION [eva:final-states] Values at end of function main: NON TERMINATING FUNCTION -[nonterm] tests/nonterm/callstack.i:2: Warning: +[nonterm:stmt] tests/nonterm/callstack.i:2: Warning: non-terminating loop stack: f :: tests/nonterm/callstack.i:7 <- g :: tests/nonterm/callstack.i:12 <- main -[nonterm] tests/nonterm/callstack.i:7: Warning: unreachable return -[nonterm] tests/nonterm/callstack.i:11: Warning: +[nonterm:unreachable] tests/nonterm/callstack.i:7: Warning: unreachable return +[nonterm:stmt] tests/nonterm/callstack.i:11: Warning: non-terminating loop stack: main [nonterm] Analysis done. diff --git a/src/plugins/nonterm/tests/nonterm/oracle/callstacks.res.oracle b/src/plugins/nonterm/tests/nonterm/oracle/callstacks.res.oracle index 9a01fe807254cee654a6e998bc2e653d7b12e692..a5ab5b9714ab240b3f8b2ab473dc2117564240ec 100644 --- a/src/plugins/nonterm/tests/nonterm/oracle/callstacks.res.oracle +++ b/src/plugins/nonterm/tests/nonterm/oracle/callstacks.res.oracle @@ -37,15 +37,15 @@ NON TERMINATING FUNCTION [eva:final-states] Values at end of function main: NON TERMINATING FUNCTION -[nonterm] tests/nonterm/callstacks.i:4: Warning: +[nonterm:stmt] tests/nonterm/callstacks.i:4: Warning: non-terminating loop stack: nt :: tests/nonterm/callstacks.i:8 <- f :: tests/nonterm/callstacks.i:13 <- g :: tests/nonterm/callstacks.i:18 <- h :: tests/nonterm/callstacks.i:23 <- main -[nonterm] tests/nonterm/callstacks.i:8: Warning: unreachable return -[nonterm] tests/nonterm/callstacks.i:13: Warning: unreachable return -[nonterm] tests/nonterm/callstacks.i:18: Warning: unreachable return -[nonterm] tests/nonterm/callstacks.i:23: Warning: unreachable return +[nonterm:unreachable] tests/nonterm/callstacks.i:8: Warning: unreachable return +[nonterm:unreachable] tests/nonterm/callstacks.i:13: Warning: unreachable return +[nonterm:unreachable] tests/nonterm/callstacks.i:18: Warning: unreachable return +[nonterm:unreachable] tests/nonterm/callstacks.i:23: Warning: unreachable return [nonterm] Analysis done. diff --git a/src/plugins/nonterm/tests/nonterm/oracle/n2.res.oracle b/src/plugins/nonterm/tests/nonterm/oracle/n2.res.oracle index 7797397288f88f4d9aa29f330f4d245361a633c6..ce4cbfc9afe42e40b5a03448145b96148a882b5d 100644 --- a/src/plugins/nonterm/tests/nonterm/oracle/n2.res.oracle +++ b/src/plugins/nonterm/tests/nonterm/oracle/n2.res.oracle @@ -10,7 +10,7 @@ [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function main: NON TERMINATING FUNCTION -[nonterm] tests/nonterm/n2.i:6: Warning: +[nonterm:stmt] tests/nonterm/n2.i:6: Warning: non-terminating loop stack: main [nonterm] Analysis done. diff --git a/src/plugins/nonterm/tests/nonterm/oracle/n5.res.oracle b/src/plugins/nonterm/tests/nonterm/oracle/n5.res.oracle index 57e276f11f9467e0c4f5a33b49a071cdc76f2311..7b9e1bf31b5eda3d69ff4fe9ffa83ef84b4d56ee 100644 --- a/src/plugins/nonterm/tests/nonterm/oracle/n5.res.oracle +++ b/src/plugins/nonterm/tests/nonterm/oracle/n5.res.oracle @@ -30,10 +30,10 @@ NON TERMINATING FUNCTION [eva:final-states] Values at end of function main: NON TERMINATING FUNCTION -[nonterm] tests/nonterm/n5.i:12: Warning: +[nonterm:stmt] tests/nonterm/n5.i:12: Warning: non-terminating function call stack: f :: tests/nonterm/n5.i:22 <- main -[nonterm] tests/nonterm/n5.i:23: Warning: +[nonterm:stmt] tests/nonterm/n5.i:23: Warning: non-terminating function call stack: main [nonterm] Analysis done. diff --git a/src/plugins/nonterm/tests/nonterm/oracle/n7.res.oracle b/src/plugins/nonterm/tests/nonterm/oracle/n7.res.oracle index 49675ab4fccdb6e01ffacc1f686da9e2b97922c8..e9a783d35685e30928b1d5b8d0370455859ef39f 100644 --- a/src/plugins/nonterm/tests/nonterm/oracle/n7.res.oracle +++ b/src/plugins/nonterm/tests/nonterm/oracle/n7.res.oracle @@ -10,7 +10,7 @@ [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function main: NON TERMINATING FUNCTION -[nonterm] tests/nonterm/n7.i:4: Warning: +[nonterm:stmt] tests/nonterm/n7.i:4: Warning: non-terminating loop stack: main [nonterm] Analysis done. diff --git a/src/plugins/nonterm/tests/nonterm/oracle/n8.0.res.oracle b/src/plugins/nonterm/tests/nonterm/oracle/n8.0.res.oracle index 4453db08d9a9bffda693c320c9bc85bfc86e7787..0833b2378663ce10410b692011ac6a4c80d37927 100644 --- a/src/plugins/nonterm/tests/nonterm/oracle/n8.0.res.oracle +++ b/src/plugins/nonterm/tests/nonterm/oracle/n8.0.res.oracle @@ -35,11 +35,13 @@ NON TERMINATING FUNCTION [eva:final-states] Values at end of function main: NON TERMINATING FUNCTION -[nonterm] tests/nonterm/n8.i:17: Warning: unreachable return -[nonterm] tests/nonterm/n8.i:22: Warning: unreachable implicit return -[nonterm] tests/nonterm/n8.i:31: Warning: unreachable implicit return -[nonterm] tests/nonterm/n8.i:37: Warning: unreachable return -[nonterm] tests/nonterm/n8.i:41: Warning: +[nonterm:unreachable] tests/nonterm/n8.i:17: Warning: unreachable return +[nonterm:unreachable] tests/nonterm/n8.i:22: Warning: + unreachable implicit return +[nonterm:unreachable] tests/nonterm/n8.i:31: Warning: + unreachable implicit return +[nonterm:unreachable] tests/nonterm/n8.i:37: Warning: unreachable return +[nonterm:stmt] tests/nonterm/n8.i:41: Warning: non-terminating loop stack: main [nonterm] Analysis done. diff --git a/src/plugins/nonterm/tests/nonterm/oracle/n8.1.res.oracle b/src/plugins/nonterm/tests/nonterm/oracle/n8.1.res.oracle index 7ee52d4f41fd5e63583581bf4b121a37350d4e15..84c5cfc9d017e899cf421c36b1a91ce03f60b65e 100644 --- a/src/plugins/nonterm/tests/nonterm/oracle/n8.1.res.oracle +++ b/src/plugins/nonterm/tests/nonterm/oracle/n8.1.res.oracle @@ -35,15 +35,17 @@ NON TERMINATING FUNCTION [eva:final-states] Values at end of function main: NON TERMINATING FUNCTION -[nonterm] tests/nonterm/n8.i:13: Warning: statement is syntactically unreachable -[nonterm] tests/nonterm/n8.i:17: Warning: statement is syntactically unreachable -[nonterm] tests/nonterm/n8.i:22: Warning: +[nonterm:dead-code] tests/nonterm/n8.i:13: Warning: + statement is syntactically unreachable +[nonterm:dead-code] tests/nonterm/n8.i:17: Warning: + statement is syntactically unreachable +[nonterm:dead-code] tests/nonterm/n8.i:22: Warning: implicit return is syntactically unreachable -[nonterm] tests/nonterm/n8.i:31: Warning: +[nonterm:dead-code] tests/nonterm/n8.i:31: Warning: implicit return is syntactically unreachable -[nonterm] tests/nonterm/n8.i:41: Warning: +[nonterm:stmt] tests/nonterm/n8.i:41: Warning: non-terminating loop stack: main -[nonterm] tests/nonterm/n8.i:41: Warning: +[nonterm:dead-code] tests/nonterm/n8.i:41: Warning: implicit return is syntactically unreachable [nonterm] Analysis done. diff --git a/src/plugins/nonterm/tests/nonterm/oracle/n9.res.oracle b/src/plugins/nonterm/tests/nonterm/oracle/n9.res.oracle index 953c368367b25393e3cfccc1d03af8f3fc451e07..b7c8d4b8ebc483ea74462d4bbb2692d1398ab7ec 100644 --- a/src/plugins/nonterm/tests/nonterm/oracle/n9.res.oracle +++ b/src/plugins/nonterm/tests/nonterm/oracle/n9.res.oracle @@ -28,13 +28,13 @@ [eva:final-states] Values at end of function main: res ∈ {0} __retres ∈ {0} -[nonterm] tests/nonterm/n9.i:7: Warning: +[nonterm:stmt] tests/nonterm/n9.i:7: Warning: non-terminating loop stack: f :: tests/nonterm/n9.i:41 <- main -[nonterm] tests/nonterm/n9.i:19: Warning: +[nonterm:stmt] tests/nonterm/n9.i:19: Warning: non-terminating loop stack: g :: tests/nonterm/n9.i:42 <- main -[nonterm] tests/nonterm/n9.i:29: Warning: +[nonterm:stmt] tests/nonterm/n9.i:29: Warning: non-terminating loop stack: f_explicit_break :: tests/nonterm/n9.i:43 <- main [nonterm] Analysis done. diff --git a/src/plugins/nonterm/tests/nonterm/oracle/output_to_file.res.oracle b/src/plugins/nonterm/tests/nonterm/oracle/output_to_file.res.oracle index 3909a9be3aa54c712a5918a0fc61ca99953eff8d..1cc9c3c067048bf58487640a9ed879261bf139c4 100644 --- a/src/plugins/nonterm/tests/nonterm/oracle/output_to_file.res.oracle +++ b/src/plugins/nonterm/tests/nonterm/oracle/output_to_file.res.oracle @@ -15,8 +15,9 @@ NON TERMINATING FUNCTION [eva:final-states] Values at end of function main: NON TERMINATING FUNCTION -[nonterm] tests/nonterm/output_to_file.i:7: Warning: +[nonterm:stmt] tests/nonterm/output_to_file.i:7: Warning: non-terminating loop stack: loop :: tests/nonterm/output_to_file.i:11 <- main -[nonterm] tests/nonterm/output_to_file.i:12: Warning: unreachable return +[nonterm:unreachable] tests/nonterm/output_to_file.i:12: Warning: + unreachable return [nonterm] Analysis done. diff --git a/src/plugins/nonterm/tests/nonterm/oracle/output_to_file.txt b/src/plugins/nonterm/tests/nonterm/oracle/output_to_file.txt index 6dd97cd6bff2dbb61792a7ce65fd78fc724e8751..79d03dcb1a11b98ab4a2493468208709fd70b70e 100644 --- a/src/plugins/nonterm/tests/nonterm/oracle/output_to_file.txt +++ b/src/plugins/nonterm/tests/nonterm/oracle/output_to_file.txt @@ -1,3 +1,3 @@ -tests/nonterm/output_to_file.i:7:[nonterm] warning: non-terminating loop +tests/nonterm/output_to_file.i:7:[nonterm:stmt] warning: non-terminating loop stack: loop :: tests/nonterm/output_to_file.i:11 <- main -tests/nonterm/output_to_file.i:12:[nonterm] warning: unreachable return +tests/nonterm/output_to_file.i:12:[nonterm:unreachable] warning: unreachable return diff --git a/src/plugins/obfuscator/Makefile.in b/src/plugins/obfuscator/Makefile.in index 6f074af8bc91a0220b7a5a7ea7461da82cd019ce..c3de5cecd0d8a014625a349141e23fa7f4cb13fa 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-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/src/plugins/obfuscator/Obfuscator.mli b/src/plugins/obfuscator/Obfuscator.mli index 2a262595197d6299f62b9dec9f2700d9f9bbedc4..d588646b32d2a20a3aa258cbf855b38aa074e880 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/obfuscator/configure.ac b/src/plugins/obfuscator/configure.ac index a5405afbc19f04a17bbe4b111b7de4c03c7101c0..a2091cf6dba1f57039008041176ab63302d2bc8b 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-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/src/plugins/obfuscator/dictionary.ml b/src/plugins/obfuscator/dictionary.ml index d5beca24f7ef8abf348401ab9e3364c233a6ad8f..b103dfa7adf60b4a569892033c963aeb97a3a8fd 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/obfuscator/dictionary.mli b/src/plugins/obfuscator/dictionary.mli index 7da95be167c976757ec8eebf105614d6f019b05f..6e0e14920e6d6952ca91782be0fc01e1efc8b6f5 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/obfuscator/obfuscate.ml b/src/plugins/obfuscator/obfuscate.ml index 06708db6d2f1ea32046517cf036ab18462c9f004..29ac575f1351bd484af3c203a4d113f82da83507 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -169,8 +169,8 @@ class visitor = object | Daxiomatic(str, _, _, _) -> warn "axiomatic" str; Cil.DoChildren - | Dlemma(str, axiom, _, _, _, _, _) -> - warn (if axiom then "axiom" else "lemma") str; + | Dlemma(str, _, _, { tp_kind }, _, _) -> + warn (Cil_printer.string_of_lemma tp_kind) str; Cil.DoChildren | _ -> Cil.DoChildren diff --git a/src/plugins/obfuscator/obfuscate.mli b/src/plugins/obfuscator/obfuscate.mli index 1cbd8e34c261db913417965b6630c2806320f579..b69ed9695e6c16f5a6b5c18b90d60bf368cdc6c8 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 4567b97fe13a42312c094644f9f538fe97d21590..e1f1513784abd71faf1fb5af430a702c31b49a48 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 98e526134b4c1168a8be848d5123b604fb97b063..75fd6bb8af5a3a00662520b265423f5bbab6a2e2 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 5d544869b3bbe02b3b854d5e867d29d0960d497c..f56fedfb16e0c45c5383b8474d61d37e64f43852 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/obfuscator/options.ml b/src/plugins/obfuscator/options.ml index 4d21cc7d16dabc4c02db477ec4165f2470cac019..55829fcf7bc0581d06764a6974646746fbe6247a 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/obfuscator/options.mli b/src/plugins/obfuscator/options.mli index e9ce7c477e4e3f6298b005ea51c9bf62a92d9e8a..af6a8597188423384288c78915504d8be81c203c 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/occurrence/Occurrence.mli b/src/plugins/occurrence/Occurrence.mli index f34ddc18afbf5bc33113ebb00fe27659ae077706..54e5e73932fba43f2400f41606c7efc6dc468aff 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/occurrence/options.ml b/src/plugins/occurrence/options.ml index 60cd8370490b8772b681664617641cb799461bcc..81c60ea7e4612dd9408b4cf2484c99ae850e93cb 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/occurrence/options.mli b/src/plugins/occurrence/options.mli index 00778a4c60e06d0b890904900af3cccec150909a..5ccf48794342f976edc0bc759bcca585834b647d 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/occurrence/register.ml b/src/plugins/occurrence/register.ml index 2e6ba069d392f4eac67c74d943f136cd0baa1f56..8fb2758b0404f0d601b34183b64fc6f14b5792bf 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 749c7fcfa329c7b8fee8dc6347b53d0be93e87a8..2263f173e76207b6451bbff2a4aa8c809fa81c42 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 41160e20c06cf2bf341e23bc55c5dbc3840ba9a7..0636fd8f87e358f70a0d6ea7db3612c8b94a569b 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/pdg/Pdg.mli b/src/plugins/pdg/Pdg.mli index aab15c1df357e3f1a6623ce51d593ae67230b598..0c651b2d6e41942144d31a44125d6ed34c29aefd 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/pdg/annot.ml b/src/plugins/pdg/annot.ml index df835941929634c79f55d758fe48abb93a6bea6d..e660ddae5513f5ed58430dec0d5cb3ad0f590f9c 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/pdg/annot.mli b/src/plugins/pdg/annot.mli index a0b3e5f85a072f9aff31fd67ca29273b60c70e58..2c324e817440a36b3f1d443e7dc5d6dde8ea34c9 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/pdg/build.ml b/src/plugins/pdg/build.ml index e3e490fb9720377a5490d1831b638750161d54d1..77b36a3e72c447c5aa2f8e8a937ef3f3332ce2b5 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/pdg/build.mli b/src/plugins/pdg/build.mli index a762cb59bb2188d14db78390a8f065096d94a992..b7c9ddddc4bce8a35d60e5fe133adc9ef6fcf0c3 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/pdg/ctrlDpds.ml b/src/plugins/pdg/ctrlDpds.ml index cdbd7f9bdbcf3001de2b4b8a0477de5d76cf9c80..68a40418a8d3a06c3dff03a20fa82144655243a1 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/pdg/ctrlDpds.mli b/src/plugins/pdg/ctrlDpds.mli index 5f67bd55146387206f9571f2ebc8f2e042b6d29d..bb9ed13c5bb161676e3a06cf4ebcea1321624b31 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/pdg/marks.ml b/src/plugins/pdg/marks.ml index 40be4e7046f0a03775a3c134cbf0ac91535016e2..aa18138de6c3363b90bac91a67f588019fc1043e 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/pdg/marks.mli b/src/plugins/pdg/marks.mli index 130a2785fe1b1c7a47d0c345397144d2bb7c8c3f..04b0dbf66575cae3e65421866d6e38453e0fc9f1 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 851e678746e5784716d97169fd7b8195a8e5859c..e2ce648f9323faa61a35853d979872baafc51e0d 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 cdc6acc3e651cc11dac7b83f39a6c6434b692ed9..e0cc4b3458c0846831d1c4f28bc3f272fac7730c 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 2c38b99c036892c393aa7a772cc1b973ae1de26c..3ca4c8dd556f86318cfe76ba300571f6997cc3d8 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 da80cdd1bfdcac5275c82f16bd084c0e704341ee..5e22c11b991e8285ee87698cb690e9f3785ac451 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/pdg/register.ml b/src/plugins/pdg/register.ml index 3a6cb8de399b01b47519408165a976494a8b584c..85544202f3650b1e5772ea8205e46e6b9c89bb78 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/pdg/sets.ml b/src/plugins/pdg/sets.ml index d61e391db1cfed9323ab2f5686635839b7849051..e353ca9ec7595607789f12573dc015fb94f653a5 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/pdg/sets.mli b/src/plugins/pdg/sets.mli index f70f78d176b3eb51e89415d52a4b08379a60129a..d7a883585ce39b77949f8ccbccf5b745272f06e3 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 8116dc4a2b26c3441aa367453433ac10c4d6b9d5..bd2714e513f4da2552eb945ba9a9549984738741 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 bbc64f4faf47a6002f9c4971f1db42f8e8447371..c210aad1e1b42b275b00cd9fe9eec9b57307d2c6 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 f4fe4b68de1412e372fd422602c1dbd9582d9909..cd4cba14dc88af865db27da6e3b26c061bc49d7a 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 a45cb4cfb0b8629d23ac9638c82c77f497d11a97..1b7822dbbbfb716ebc997e05ad961c8b01f78a03 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 8034eb93a3b74e14d40b6fc12b4df40bdcc7463c..5e2b4bfa1985ecbcc60aaa1abdcec3eb32ff5021 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 51ed2259fad885d6c63490cd657697e22c22d40d..f5ec0ab386a8a615a447d7cb155961d43f1aaa06 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/postdominators/Postdominators.mli b/src/plugins/postdominators/Postdominators.mli index f1555e8935a51effd019117dee41259bd328578a..6810582398bb82ad946a388492c5f86521cb3de2 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/postdominators/compute.ml b/src/plugins/postdominators/compute.ml index cc3e2b3e42a9293168af7bb299ab5eb5cbfd2c46..2fc9cffe53925443c03a451393ece34559638b75 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 47492d86a98cff9290bc3cf15776598ad043a21d..66ab4e5328782845e6b2933e80348bceed65eb0c 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 5f07b3e8489b52908c9663285063fe619177f034..7262c31e2debe1d79b02ffd0483e86db73186b32 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/postdominators/print.ml b/src/plugins/postdominators/print.ml index 30c22565570bbdd0f17c74c12754a625fd7f29f8..a2318de5f1660e200b2cf0fe0394293f8c64e366 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/print_api/Makefile b/src/plugins/print_api/Makefile index a0506ace5a7cd3e0fb27c5aca53beeb53b04e254..b57b6d0708ab981b7daa329f5812639f0143c8c6 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-2020 # +# Copyright (C) 2007-2021 # # 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 dc3a583fdfc185221b336ca69718a4b82ea3ea20..203d133b793eeadfba717ae51a58dccdd75e2534 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 e272b390ad2dbf0d168a08fda3566cb623cc02db..bd02132205ce518cb5055817a2470c19e38a47e5 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-2020 */ +/* Copyright (C) 2007-2021 */ /* 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 c926493918e03d296476d8a349629eb84f3e5ddf..b4bfed68464b41173019fbf44d3affe36c5d6f9e 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 539a3f6376782a6d764193a6a1e9b740513e8f68..a6fc68dc4308cbc2ba14c482e0da1a6f0b9fe699 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/qed/Makefile b/src/plugins/qed/Makefile index 2e1acdeb34a56318d99d26b5b667284a9699ca18..21d114d352f63d8252a7f9481e0e40c0e1d57f19 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-2020 # +# Copyright (C) 2007-2021 # # 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 4a8452db1ec31d97e77bc1e63784376effcebb8c..40db8a1c9750d4c5ba4d950adc1fbc5628140596 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 5fe9a3513f3fab74a9174fd7c0b68ce999591d32..66fc468c8fc9e5991c8ad1af0c98fcd4de93a381 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 237f47314a27422978f4975611f5e2b25464bf6a..48ff38d4bdb42ca3e094c476c221af48aeddfce5 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 143a56a17314df5fe3de109f6e5271a8d5cb2c60..39b9b0d7d6b1cb7837f477232a5880a53ad862b1 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 49e1dea14edccd9198b7e1ffbaefab29f11ffc9a..74725cb9000937c75b1ac616914604f232dbeac3 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 c2c3ad0c920f5efd892d5fb3d3a4a202d4d2f118..13c8e85f7ce148017eacc4825dcb2c3218426036 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 e481428d4b6784797514641dddbd134ab92c8fbe..e1eed50aa00f078539d78339cc5d969ec7b2da4b 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 56bd28dc69364c91ae336608193fc4e04c468b89..65dbd5cad466935c7e185b7d2445dda48014b449 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 f0ab696d75cb71ce45d2fe696ab6a7dd8af8d10d..c1d37be39205f67ce351c45b0c892c3b08db3656 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 cf273f58c28739e13281185b64280e531b1558ce..1db81873dcfb43d9b0eae7618cb422852b5b997c 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 42893a7e2381845fb615d438da16835d8bea532b..d779b1f827c4600c0f33f77f5009e2a226aa9cc3 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 8c67cabebb00bf36f78dadee5cfa5f38fc09a684..ec036440e67261ec32333fa965bd1efd08584978 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 a933098402e396fd90ecfacffdc234b9200e9bc1..aa39074635d604c21455ec6561e9b7675bf43797 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 e9d63254744b9c545866870817a37a0d652ad647..1ae4f8c41367b7497c744aadf9e0c22c99c804f4 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 634cb610a22d98225ca4f2dee3d20a4aa39d81a0..6ed4f1b2e7b448e78d4efabac0a73d73d8626404 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 aab95ee281dd89842def75a5a50fdec8b74055d5..101012dfc89ec1be23a6f88fde468dfec25205b5 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 17effa3d5fb9d1ac8f5bdcfcca7837a146e83e1d..251bb091a8e7e248b49430bc980c1de6ce3532aa 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 aadd2868db1ee768e860a4dfda174aec812e1e7b..bfa5869eca2127851f346d395efb2c54d95bdde5 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 b93adfc4d502e39cb65201505f4e57592354672d..a95b21fe013c1952ddc2983d970e661997869a76 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 875202b1fca52bbfe60deea5896c6f6697a7e5d0..602ea239160e7beaa54f037c8f6e9b858022904b 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 d16f3d5817ba2cd20667c70f8fc615900ff6837e..72878d20ab7821b0a9a389d86964f3cbf3c68f18 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 af8b31922bfc40221d6663473153fe2f23aebd65..0378e3d916c6c186d0012029204d87516481f5fe 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 47718d941d4ff8178d6287f3458b3e1924bcf068..475cb2683c898ba22a9418303b4333da70f2ab51 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 85dd1c57d9037de542d37045c6683019a202cc10..79fb02aabcffa90b1124805dce66f3c8703998ed 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 8aa8b46723aa628f4be0f2511b590dd4d0c850ca..58a2618a66b845ef29877e755deee3869423110f 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 4e6c2d22485952ab7b2ca686851ad019613558c0..0173b3ef5727cdc6966dcd92cee88e5257273fbd 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 3e5121c5aaf5627affd478e412940cac41e5d856..3cb33ffa6bd6eb97870ed8593c91b7e46d01180f 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 6509ec6d20abb08d311ddb76c56835f8b8643a1e..30de4944c1a8d078830b5af47cf0cf5004c3ab8f 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 c2c5e20d2b2d716dc86383c45cb3d3c9dd5d6f67..aeff97808721c82ff7940b8e8c6cc205a5490f66 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 180e5c606a0b663788fbcaf473838ae5ca178ee9..1a8bcf914e1c1818692d6eebd5fe52f7397645f5 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 155ad934186cd85ad56c2e83b8190597dd786c36..e118becc75c1a6616d91413cb17a4a2d90425730 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 97e6abe6f940bb4faec8aec4d3c69e3f1af30e2f..94d3282bab818cc69bc7da02d6c78de132bc7b4b 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 e7df1047762f19f4e8f3e1149ebea5444ff9c879..2143a31039be34ada361f407784093ad69ec850e 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 09646e91d7662c5764dca788b62c9a333c9eb7f8..f2c14f191a05efadb924842a48ea329535e94bf9 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 53ebca7474d19a9b992487b4c3e177f3e01054d0..5cd8f1ea2c67a4efeef4a309966bf4f776a3bc4b 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 7917df66e8694682d2287e8af2fc8869ef9016de..7b9465b0337a47688aec7e310b1f86dfa0dde4cc 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 073b763ed734478b00f33b34cf61a9e4cb260294..a0003a15bfa204718a1f97904bbe1b0bb11798f2 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 fdaf57e16fa3fafdb606cad5d4caa3a52652cd41..8a7f2d89617198154ba5669c38dda4c51db8c0f6 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 7cc7cabde94297f3e44d58f1cae562f198b97592..a4e000feeb8b723fe605b25fb217bc1ca68a6feb 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 0df13824e63801d5728d540a30f8ca9a33bed509..8ca27dd0361af5ddc92118a51a826c59a96e41ff 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 0cbf1051fadb3864da53a0ad34f074f92895c344..715507fb07ca238ab00e0d4b5a11316e7d86eba1 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 7dabf6331776d6dcbf408c59691d0adfbb179d1b..5010f6b25232dd7772bbd8c48a4b390152eb2540 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 01a5f36883f763361eee19ecb3c4fdea02d002e6..6a6f53a23c0f9c2bf37b8c559214cfc2c72b35a4 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 7671548f9cf3af414fbc47324688c9e2df9451d2..085cd3603f54b4641e627d92e3111bfc38077cf6 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 a3821955bb19548c00e9b3436b82e6094dabf021..e1397ac481a5fd996fa47c10396da5dca0110f07 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 09d83735442b06ccaea318b5d39ec846b0448d2e..b1d52e4c93666efd3ec2ef56c2883b89b60334c2 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 b4302464751ce035271a94481ba94b6afa921161..a749c5b4c4e3ce79ac746a5735d50c19913186ea 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 cb613d9f70fea864b32f8dd7eabf445ab238b4f3..dcd554f5ad9cf4ffec7c4de049cfcb0219f5937c 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/qed/term.mli b/src/plugins/qed/term.mli index 20e68173867ce13d1c70424461daf945f6ab421f..22d526a3bd0e36066580cca77292e419d4b00286 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 28447d1cbe9982419553d37a87b6acff63e4d582..317c5e1034f620a26a2dc31ebf8d5339dcadbbdd 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-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/src/plugins/report/Report.mli b/src/plugins/report/Report.mli index 490b4da4e93c51eff763002c59963bccd289303b..71da9870dbffee53c684ea0e94380d1161449648 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/report/classify.ml b/src/plugins/report/classify.ml index 08e198b764dd8a9392443d780850e9d7b04ef02d..1c6c22f3d644838f5ab6dbbe6e833784f446642e 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -432,7 +432,7 @@ let rec monitored_property ip = | IPDisjoint _ -> true | IPReachable {ir_kf=None} -> false | IPReachable {ir_kf=Some _} -> true - | IPAxiomatic _ | IPAxiom _ -> false + | IPAxiomatic _ -> false | IPLemma _ -> true | IPTypeInvariant _ | IPGlobalInvariant _ -> true | IPOther _ -> true diff --git a/src/plugins/report/classify.mli b/src/plugins/report/classify.mli index c9a81a79e12e38f2ba6663bf5115338221aa814f..4b4595e64f04dd6855668addf1f53c78a4efd652 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/report/configure.ac b/src/plugins/report/configure.ac index 0f46b66ee20df840f98ac517b9e0e12d01661330..c98dbf658942985a6338f420de128ddb233b524d 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-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/src/plugins/report/csv.ml b/src/plugins/report/csv.ml index 7d50b76be8d88a410e194c2d9a81f5c7152cdf45..bd6becb61a8ef9dbb6b4dde3387827fcfec7fa71 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/report/csv.mli b/src/plugins/report/csv.mli index 4984a8c23667c91e86f6eb9aa83d000e8c25385c..80b007bc8e8bc1d094527c840fedddaef01c39aa 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/report/dump.ml b/src/plugins/report/dump.ml index e56f0edd24a23a6489602d1f0e31c2a314ed2bbd..00f6f5881f3c5cc8657f119fbcb61d70d5139ef1 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/report/dump.mli b/src/plugins/report/dump.mli index 24dcc842b07514cc44ce79783b42456aeea08f38..8b31492fcea766dc97bd18bfedb4e130cc2d4d45 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/report/register.ml b/src/plugins/report/register.ml index c3ca77e7a91d6c2d87b2bc567c5af411ba93b703..843d97bc8d5445066aad2a3b9d946e3d7b707137 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/report/register.mli b/src/plugins/report/register.mli index 3553285864bede331442eab43882f61fb129bdd7..cdf1735ea92ba9c20d88562574270ca5d06cb3d5 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 6d20e0933f3e42525189881eb7432741d0c65df6..b7f24343af6f4afc0dc5e609f2d6e535c0e3e42a 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 7868e9ffc58ba51209e57ec14c64d01e94a31e6b..0f806eeed28e8f2741737097c5079fa667404ac9 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/report/scan.ml b/src/plugins/report/scan.ml index 20b39c16207619626ee929685e26f1d25c2d5bdb..aee6947f089c00594e4dd41b3f17394116f37266 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/report/scan.mli b/src/plugins/report/scan.mli index 9fffa3e26ea9dddadd3604b424e880ae3379617e..6d293b3c5b3e30db9d9aad1a307bc5c73ad3c80c 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/rte/RteGen.mli b/src/plugins/rte/RteGen.mli index 00deef91d8c9be834fa95672b0c0782e2e10d38f..38c5e2d519ff222e33d6a708272ca7992202b9b4 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/rte/flags.ml b/src/plugins/rte/flags.ml index fea846e8b1989abd969c2b70363767b2379fd136..36198afe973c165629266594f7690e1093b2c23f 100644 --- a/src/plugins/rte/flags.ml +++ b/src/plugins/rte/flags.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/rte/flags.mli b/src/plugins/rte/flags.mli index fc1a7b6f4d7cf274a86954c51a4cf4c900b0e7e5..f294c8f49d5b3a34650919af663909c3ec8d8cd8 100644 --- a/src/plugins/rte/flags.mli +++ b/src/plugins/rte/flags.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/rte/generator.ml b/src/plugins/rte/generator.ml index 4c84ce9c126543da6535ca91d6b455e1624eb830..293a7fb216df6213661b897b4bc9038e1927a35b 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/rte/generator.mli b/src/plugins/rte/generator.mli index 0116b9d7698346c6a8811defdb08ceb55039adb7..d2b544bd49359d23a447d2594d7b1825d66202f9 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/rte/options.ml b/src/plugins/rte/options.ml index e5ad90472cfc4dd5a71691dbb0acc58a811c234d..3b962761670da3de9b97e252709370605e9f1781 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/rte/options.mli b/src/plugins/rte/options.mli index a68fb843ccb4418dbfe1b72cdc650a3b1759adde..9dea4f6c0af9730d05bff45e197441555317dfa7 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/rte/register.ml b/src/plugins/rte/register.ml index cb4f763b97e52d084b722c3e6422f778ad03e0e7..984734d10d4f48c9efec18dca89db440091b85c0 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/rte/rte.ml b/src/plugins/rte/rte.ml index 8dc11f2e796e4e7dffba1812d9cedc8d4bbf644e..a18ad38795dd189971f39328df512a561bc61a45 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/rte/rte.mli b/src/plugins/rte/rte.mli index c7a292c92cad6f05ceb1b015448c85c4ccbf9e26..675206e56931f73b8a4706d13fe9a50c9d298849 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/rte/visit.ml b/src/plugins/rte/visit.ml index 5d8f2564def70f0b69f299d634a23fb4fc02d2bf..aaa5dc814d71be46decfdcb5cae92da1f7ed51f9 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/rte/visit.mli b/src/plugins/rte/visit.mli index 96ab37d15ed10b72383cf6e56cadc0f21d0949f5..e380e78acd9b86ae223d35f1aa2e30cca71ecaaa 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/scope/Scope.mli b/src/plugins/scope/Scope.mli index 6fcce5df2b8df895a9a7493e6ba1d2a1d71d0a41..91c4f01f1f0d94f274a4f423e305780a57470bce 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/scope/datascope.ml b/src/plugins/scope/datascope.ml index d1ae61bceb9d7ad0c1225d9d3d9029404079986c..ea5c4fabe53a95c3963a27b73c003213933861a7 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/scope/datascope.mli b/src/plugins/scope/datascope.mli index 2a54ac58409430c0ac59401fa9609248a4915c4f..b34a8589757f06d20c613002c3b5d11828773d93 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/scope/defs.ml b/src/plugins/scope/defs.ml index 8074c8ac1e50ed4e470b29fefc43381b18f717b5..15fd69d4199dcd1e5004f43bb91aaaf309eb6f2f 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/scope/defs.mli b/src/plugins/scope/defs.mli index ff743feca3a08adbecabec25d3bcc71dd0dbcd27..951da3f41623140d2a097eec1adf5c365572bd01 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 a8b8529b1919ee786695080e7938f04dbe9a3228..99e71b97d3a4444afea3e9682169463bc5bd216e 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/scope/zones.ml b/src/plugins/scope/zones.ml index bb4292562c0cb6b5afabf476bfc9acae85ec9f47..c31538198cd8bfb24dc050a52ebe36b32180f70a 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/scope/zones.mli b/src/plugins/scope/zones.mli index cfd90ef66d532bcc59477aaef30ba8a8a45d7ba6..bc805f1a338a859a25c2e7c3f2ad1cbe59419881 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 471db4ebf36ea76989c5f5c8f4d5750c27c58f53..279bbe9fb7ec6403e99b3b96af011bcc23293f95 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-2020 # +# Copyright (C) 2007-2021 # # 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 1e737a35f81b78689622f08941da2578df7048b0..29c2c9db53a2b1f07fe6bcf8464527de3016dd70 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 0768f1a60ca6c6c95edba53e6adab484b10162e0..371eadc8fb7d157cd6f8cd053325fdf6ad0aa620 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 2decfa6f6542c4e2c11a1d0d994d7334d2ed86d6..8945d1317f6196d2cc8159cd80ad08bddf808ea6 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 5f818bc105c77f223b5dacd4a5b0a1b153a95c31..1eddf469e1997e1204c8ed3d909f69c74c041fe8 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-2020 # +# Copyright (C) 2007-2021 # # 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 ef22c6150b029ab221bdcbee0e8321310c5ed8d1..e7722b7cce1e9ce022488f01eb187c4c95be3136 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 97da8ad4c82b5c156307aec95e1e411080058444..39ff7e39d7dcc3ac2d473fb9deb67f7d5efd1361 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 9bf51d66557e2c1e1a43fb4c3b2fd0e3ba64c248..30d9d101f9ff76e0ca53c906e6396c2653de3bfd 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 98e74986b8641c7de26dac32e1e185cb92478081..7e5d03019d434b66556c1d2b9d54890007a57c94 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/server/Makefile.in b/src/plugins/server/Makefile.in index 1fca7533e8446537747338ca3ffe3bc83eb281e5..1c00c79b8609999042fe6023274499198ebf22bb 100644 --- a/src/plugins/server/Makefile.in +++ b/src/plugins/server/Makefile.in @@ -2,7 +2,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/src/plugins/server/configure.ac b/src/plugins/server/configure.ac index 5a4ce645369ec2d6a78cef9a1f709aa52fd2ff3e..5a98a8cb9318b7722f569e459221a0aa336a3172 100644 --- a/src/plugins/server/configure.ac +++ b/src/plugins/server/configure.ac @@ -2,7 +2,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/src/plugins/server/data.ml b/src/plugins/server/data.ml index 1f20d6d4c36fb901dfa0745f3250418c76edc568..94d38a13b406b54f2fdee565bf9de5221d806f3a 100644 --- a/src/plugins/server/data.ml +++ b/src/plugins/server/data.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/server/data.mli b/src/plugins/server/data.mli index 9cd4625aa81d0bd2c126be7a1eb55bc408a9deea..eedb803fd428f4fc231caa9bc145300d26e57f12 100644 --- a/src/plugins/server/data.mli +++ b/src/plugins/server/data.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/server/jbuffer.ml b/src/plugins/server/jbuffer.ml index f7ca9ebbfe05418e06440810bca2103881afd3b3..73cfb15fe318e1561e66ef5c61f1535976142641 100644 --- a/src/plugins/server/jbuffer.ml +++ b/src/plugins/server/jbuffer.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/server/jbuffer.mli b/src/plugins/server/jbuffer.mli index 2a825a04f0f8f0fbc42efba13991bb55d88c6ac6..fbf2ac0387e7b738ce29567028fe9b1e6fad5ced 100644 --- a/src/plugins/server/jbuffer.mli +++ b/src/plugins/server/jbuffer.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/server/kernel_ast.ml b/src/plugins/server/kernel_ast.ml index dfc1510305d2ee0835c65483225a72f20f85c703..463499a6e5af2ab46a9cc9f20b3a192e16d49c6b 100644 --- a/src/plugins/server/kernel_ast.ml +++ b/src/plugins/server/kernel_ast.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/server/kernel_ast.mli b/src/plugins/server/kernel_ast.mli index f9e56c08f27a90fa306f789c5453704a690176c5..aa917218f410d85d2ade7922da578687cffe8355 100644 --- a/src/plugins/server/kernel_ast.mli +++ b/src/plugins/server/kernel_ast.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/server/kernel_main.ml b/src/plugins/server/kernel_main.ml index f57033cb1366c7c76c3e10849634fd9e213c2261..acc91d128b903d2e83c8276b410346effc5fb6d3 100644 --- a/src/plugins/server/kernel_main.ml +++ b/src/plugins/server/kernel_main.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/server/kernel_main.mli b/src/plugins/server/kernel_main.mli index 112dc65beff3aaf8745f5a074e318e99dae505ad..ead76ffab68c5141d8c8c01a9db4bceb9d09a883 100644 --- a/src/plugins/server/kernel_main.mli +++ b/src/plugins/server/kernel_main.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/server/kernel_project.ml b/src/plugins/server/kernel_project.ml index 3dcc1454374bcd3d1176d1ae15eb708683372888..e6c5242f6e76f70a669aa75ce4400627b82e5613 100644 --- a/src/plugins/server/kernel_project.ml +++ b/src/plugins/server/kernel_project.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/server/kernel_project.mli b/src/plugins/server/kernel_project.mli index 59e18b95b4045ec2b55a2405edc84769cfce2f69..50bee356bc05787c132095bdaa27f2ea144a64ba 100644 --- a/src/plugins/server/kernel_project.mli +++ b/src/plugins/server/kernel_project.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/server/kernel_properties.ml b/src/plugins/server/kernel_properties.ml index cc2f4484a24428ea79f7153d9fd78eee4fe2ee2b..082623df4cebc301120cad492e68bd270ef5bb88 100644 --- a/src/plugins/server/kernel_properties.ml +++ b/src/plugins/server/kernel_properties.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -82,6 +82,7 @@ struct let t_axiomatic = t_kind "axiomatic" "Axiomatic definitions" let t_axiom = t_kind "axiom" "Logical axiom" let t_lemma = t_kind "lemma" "Logical lemma" + let t_check_lemma = t_kind "check_lemma" "Logical check lemma" let p_ext = Enum.prefix kinds ~name:"ext" ~var:"<clause>" ~descr:(Md.plain "ACSL extension `<clause>`") @@ -108,8 +109,9 @@ struct end | IPExtended { ie_ext={ ext_name } } -> Enum.instance p_ext ext_name | IPAxiomatic _ -> t_axiomatic - | IPAxiom _ -> t_axiom - | IPLemma _ -> t_lemma + | IPLemma { il_pred = { tp_kind = Admit } } -> t_axiom + | IPLemma { il_pred = { tp_kind = Assert } } -> t_lemma + | IPLemma { il_pred = { tp_kind = Check } } -> t_check_lemma | IPBehavior _ -> t_behavior | IPComplete _ -> t_complete | IPDisjoint _ -> t_disjoint diff --git a/src/plugins/server/kernel_properties.mli b/src/plugins/server/kernel_properties.mli index 8ecc7d4e9017265141dc77c57f2c338ebbe2c968..e129e5e9d82885fb25a45ec82fc52a8a301c650f 100644 --- a/src/plugins/server/kernel_properties.mli +++ b/src/plugins/server/kernel_properties.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/server/main.ml b/src/plugins/server/main.ml index 39de5801cd5a37da7994106e87fd2261263af201..e7e65dd1658ef8215048344441c4c166fca6ff71 100644 --- a/src/plugins/server/main.ml +++ b/src/plugins/server/main.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/server/main.mli b/src/plugins/server/main.mli index eec63fefa2bfe2d5debac3a3db51c5f15f1f1269..1ea574e07374afd04946d9fbe08e6ff5e95c6128 100644 --- a/src/plugins/server/main.mli +++ b/src/plugins/server/main.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/server/package.ml b/src/plugins/server/package.ml index bb87b1da3d58d915060b0455fa705ae855e78eba..5acf76ffc994df47c00934d36bd454911dbb74e2 100644 --- a/src/plugins/server/package.ml +++ b/src/plugins/server/package.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/server/package.mli b/src/plugins/server/package.mli index 30075f6243c419aca7d1e4e98ba70462c1704d1d..73da7e4d3d60ea9453f7a3e07ddee213fd034c14 100644 --- a/src/plugins/server/package.mli +++ b/src/plugins/server/package.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/server/request.ml b/src/plugins/server/request.ml index 24a94eb02af6333e5462cff3f29ef2ba0fdf11d1..d885343ad3987f35099442375f98b0ec27c8f27a 100644 --- a/src/plugins/server/request.ml +++ b/src/plugins/server/request.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/server/request.mli b/src/plugins/server/request.mli index 2ad33bcacf350678facf25ed8029f866f81ab9c8..a4a6c4596bfad053ffb11cbc7be435e67c13d51b 100644 --- a/src/plugins/server/request.mli +++ b/src/plugins/server/request.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/server/server_batch.ml b/src/plugins/server/server_batch.ml index 4fc37a40aa6850f9a8dfcbf01313317f67356436..273d9a3c5094aed4371eb641846dc821a18ce182 100644 --- a/src/plugins/server/server_batch.ml +++ b/src/plugins/server/server_batch.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/server/server_doc.ml b/src/plugins/server/server_doc.ml index 9b7365eb82294c163c339f797c5139ba077d938e..f38f08705f929dc2d66c7b02a8acd4678acee133 100644 --- a/src/plugins/server/server_doc.ml +++ b/src/plugins/server/server_doc.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/server/server_doc.mli b/src/plugins/server/server_doc.mli index 498ef90e74ce66ea17f54867b32dbaf04336c8c9..6bb0462554ea7348d1133a53bd925ed4f62098ab 100644 --- a/src/plugins/server/server_doc.mli +++ b/src/plugins/server/server_doc.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/server/server_parameters.ml b/src/plugins/server/server_parameters.ml index 74a07c43b7f08e171044e3fd0c8c0c1d8a98adff..3eedff1c7280142bea5b0bdd536b36eb50a384d6 100644 --- a/src/plugins/server/server_parameters.ml +++ b/src/plugins/server/server_parameters.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/server/server_parameters.mli b/src/plugins/server/server_parameters.mli index ba41ba164c75e313f8a74a78dd710e1e5273d704..4186a397421ee6135487e34a06ad7b1bc90b3f13 100644 --- a/src/plugins/server/server_parameters.mli +++ b/src/plugins/server/server_parameters.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/server/server_zmq.ml b/src/plugins/server/server_zmq.ml index a0c4928434bdc7dbfae02dba7594ee427f1b84bf..6a7ca917cdd0fb2d6c84ad9fbd8292e6b0982804 100644 --- a/src/plugins/server/server_zmq.ml +++ b/src/plugins/server/server_zmq.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/server/states.ml b/src/plugins/server/states.ml index 52a682f2bc7b854e86c8435201fa231ebcc3c4e6..04bb0f80b730a06a05a5b2666c61529369204ca4 100644 --- a/src/plugins/server/states.ml +++ b/src/plugins/server/states.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/server/states.mli b/src/plugins/server/states.mli index 1f38038f83ee1d2b4ea80a1fb1704119e9bf9021..1285874ffe93828ccebc0362f28d4abb65ad5cd1 100644 --- a/src/plugins/server/states.mli +++ b/src/plugins/server/states.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/slicing/Slicing.mli b/src/plugins/slicing/Slicing.mli index 67a5f2f7094c1f92f3ae50248de53a56bcd71596..5cd8c31e3ce95837ff49eaf5768bcc6aefe40b69 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/slicing/api.ml b/src/plugins/slicing/api.ml index 3158f4fe3d6169feb087678f41491a7ae4f196d8..7765c1ef09cceead21e7ed56178dec8fbbe5d405 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 f8b02ee705d24ebb79408ffa4e7e2e056aaf0b8a..16ace53c0ec8ce6f7bc36a53cfb8da478e4fed80 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 45069322f5fcf1dcc700638d898cfc2c4f9c9499..b7081df617ff412450f9c5bb5d276ce23857cfbe 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/slicing/printSlice.ml b/src/plugins/slicing/printSlice.ml index 8c4bae8bc798a259e19c413ffccffd05d5e508df..648e2c13f10efe11e93a0d97791876a88538061b 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/slicing/printSlice.mli b/src/plugins/slicing/printSlice.mli index 8cab265ac59ef9f72586e0f5161041399c16a3be..dfe773827a05dc0c14aacc62f0bffae95ff555ac 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/slicing/register.ml b/src/plugins/slicing/register.ml index d121f859e09154a6df058672a360fe38e2b94606..e5c2ea11b52c99b3e44bac298f015c168b21dfc0 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 ff195d5618e70461462f3b858f75110d20eda9ce..0ae02753447e6cab4259bbc5fc6394bf9a2d4130 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 86260b88d0a7be045df45a5b51a1dd1018f2d49b..d32b1b74b38c3c62feb44950db6cc77afd4b8091 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/slicing/slicingActions.ml b/src/plugins/slicing/slicingActions.ml index 61e00a5f2e1764962bc1246bdd5ee4b0f9ecb2f0..65f7db4a109668d8872ecd8553e2510807a97d07 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/slicing/slicingActions.mli b/src/plugins/slicing/slicingActions.mli index 1e039ab0198fb51dcb9d389c2d1ca0cb87ce4630..589f1265d209455fd76bfc85c368faa6be3a1421 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/slicing/slicingCmds.ml b/src/plugins/slicing/slicingCmds.ml index f4f31d5622ae6f8614aff90945b21ee9aa54ed87..baf6611fd150ab641bc6d75cd3d76324cd700fdd 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/slicing/slicingCmds.mli b/src/plugins/slicing/slicingCmds.mli index b6b1e65f01f18dbc6a6d58e648083d61a94fb4e2..7c87d8ad9eba833f7af7f42aea377c579b8f9d72 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/slicing/slicingInternals.ml b/src/plugins/slicing/slicingInternals.ml index 41267c6f72097fe50b3824f1961fc64f9a010988..9560cb8fa714de00cf901193035484ca159700fe 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/slicing/slicingMacros.ml b/src/plugins/slicing/slicingMacros.ml index 12fb5dd69dffb8d09424670da5db15c5da5b44ca..28963bcf6e87a3ac9516d0cfe0f95316df91389d 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/slicing/slicingMacros.mli b/src/plugins/slicing/slicingMacros.mli index 1b48cd4dd7fe32f8a9725146496b8c6464652c57..066f79ba4eccfaf52bfd9a61004b40b260b92216 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/slicing/slicingMarks.ml b/src/plugins/slicing/slicingMarks.ml index 7f9d481ad0b94c17c1875bb42933549ee8795ae0..a227088653198fe59914c3251c72b2a843ee3e48 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/slicing/slicingMarks.mli b/src/plugins/slicing/slicingMarks.mli index cd0d87968803c79d07819105dcd6593a9586dcfc..42cbaf3cb8a28db4470e7f17068e631412f2a270 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/slicing/slicingParameters.ml b/src/plugins/slicing/slicingParameters.ml index 1ebc341358300782080310fc3f3f6c16d27956e6..0c0249ec4f27130faa706c0578a844c0a728c0cc 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/slicing/slicingParameters.mli b/src/plugins/slicing/slicingParameters.mli index e394c5aa45e4d43062848a90a4cf8b95a0602bbc..c068df5f46facca2e8796aa21a3b811af4fb00aa 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/slicing/slicingProject.ml b/src/plugins/slicing/slicingProject.ml index 92459375ac99f5ad0594d5c11fedd9e4954a06c1..7e419edaac8d1745e5801609aa4b017d6b32bb72 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/slicing/slicingProject.mli b/src/plugins/slicing/slicingProject.mli index 8792c6ff1607eb301132947e2e428d1f883328f1..0903a058f90794bc459a8e9c45ead9ee2a793fc3 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/slicing/slicingSelect.ml b/src/plugins/slicing/slicingSelect.ml index 50795e5e4c62e4e649c6ed0a3834ad0448f7508f..2917260339a3c0c826200f3cc302640583d74282 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/slicing/slicingState.ml b/src/plugins/slicing/slicingState.ml index 6a9408e18dec8c0996e25aa0b59336d8664ca1d0..6c8a30151c5aec4448b8fc57e1ed906e64623547 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/slicing/slicingState.mli b/src/plugins/slicing/slicingState.mli index fd224768c0caee5cbf79906bc94e438c1dc6d69f..d9ba1776afbc697e7fe98ce713170173e075ecd8 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/slicing/slicingTransform.ml b/src/plugins/slicing/slicingTransform.ml index d1b286e8d10e3c1cdfa31fadc48c974ba5388efa..293395efa39b1531298c927f2911c2dc1fd05364 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/slicing/slicingTransform.mli b/src/plugins/slicing/slicingTransform.mli index a73f435369a9846dc774ff8eabecb69ba268a9d3..1b6ff238d48e778fdd8368b177a29827d2635c29 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/slicing/slicingTypes.ml b/src/plugins/slicing/slicingTypes.ml index a19199d0e5dfa31de5e6368b0d75330a7b8652f3..6ca13c15e24af00e6e0db7017d09f2aeb349e8bd 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/sparecode/Sparecode.mli b/src/plugins/sparecode/Sparecode.mli index aeb2a63de80d5bf14de961086b53a731acf31714..b189a7f0ca98a61b4ce65aca5f87a8e3e7ee426c 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/sparecode/globs.ml b/src/plugins/sparecode/globs.ml index 60b2535c517afc6887b362d762c5df1d9ad0dab6..90e6bc0f738e8566a4900cf2a537cb85653c118a 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/sparecode/register.ml b/src/plugins/sparecode/register.ml index 8c1fdae4f36644782acd620d1f4a6c911d760890..f6fb81585c6a57262e084a0530863fb3f7a815e7 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 409c6b654ea44638112fcdd277d358d4e2918674..c72ff8e7b3bb5f80585c69eb56751c9cc6e5003d 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 4c0ecd563165e1c4e45ba91144134f2f9e1ee068..ddb633e867604d10663dd304d1adf1c8fff37023 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 ed95a49d319eeb8391d5c993a83c8ded032f7ca1..cc9393966663c1f80bb1860db002930f5f7dd336 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 d38df13bbda4d6145687bb3bada080f4bc8543e9..8e71b62d80d9adf1c337240de3accf787aa6334d 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/sparecode/transform.ml b/src/plugins/sparecode/transform.ml index 24e7de12f6cc2f8d7b7ce0f1e495bf3ec901ab94..4faf0e40d73832051a4b22f871e3fb642ab426df 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/studia/Makefile.in b/src/plugins/studia/Makefile.in index c49e1893f2ea65bb13148d6189f58c7b667a2de0..fa02d22136234dca2550b7868cf83dbd1b201160 100644 --- a/src/plugins/studia/Makefile.in +++ b/src/plugins/studia/Makefile.in @@ -2,7 +2,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/src/plugins/studia/Studia.mli b/src/plugins/studia/Studia.mli index 0d6d4ead926007792f326ac84d47d3469b781e24..0a60a3dc63668b1c97a0f3b1973a413bcc6cc80b 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/studia/configure.ac b/src/plugins/studia/configure.ac index b4d031aab1a19f217014dce87b0429d6cc0e294f..7c9e8142d7aa9f034366c1c6c9f4f1616a448829 100644 --- a/src/plugins/studia/configure.ac +++ b/src/plugins/studia/configure.ac @@ -2,7 +2,7 @@ # # # This file is part of Frama-C. # # # -# Copyright (C) 2007-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # @@ -39,6 +39,7 @@ check_plugin(studia,PLUGIN_RELATIVE_PATH(plugin_file), [support for studia plug-in],yes) plugin_require(studia,eva) +plugin_require(studia,server) ####################### # Generating Makefile # diff --git a/src/plugins/studia/options.ml b/src/plugins/studia/options.ml index 452835f0141d3842de1c83b3998b8807833c539e..fe49c4960b64c529f6b15715b262ad646ebe674d 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/studia/options.mli b/src/plugins/studia/options.mli index 8867468d6bb6134fcf81e4c4a4340ff5b5b562ab..b769eb489400648eead41539c87703d0bf4d66ed 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/studia/reads.ml b/src/plugins/studia/reads.ml index 6a17e2cafe4fb2d7bdba0f57e0f92b81b1588a00..3685d8cba7b689b4e0ee46f1408db61985065d61 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/studia/reads.mli b/src/plugins/studia/reads.mli index 0ecc273649c8d6877f092d4678b10eff8250318b..3a4ae016432d660186993782665f928f1e1209e9 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 65638eed8780190662e21de733954378956fda8c..c5b4df28f3b23c8d82aa47f1fbafc3e2b9ca52fb 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 802d951f78eefe4f03c6863e909971ec356bf3cd..676dc9b6fa4483a8132c3939540f520efd3df9dc 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/studia/studia_request.ml b/src/plugins/studia/studia_request.ml index 0297777d9b0147d901414f4702bc43368b01fef8..ff3f94c3d1061bc178020507cb565241d5cb20dc 100644 --- a/src/plugins/studia/studia_request.ml +++ b/src/plugins/studia/studia_request.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/studia/studia_request.mli b/src/plugins/studia/studia_request.mli index 182bc40a8e1af00f6d1329952d449d0f2e6808e1..6f3514109ea9004e8eea683e5b2e6f92848b19cf 100644 --- a/src/plugins/studia/studia_request.mli +++ b/src/plugins/studia/studia_request.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -19,3 +19,5 @@ (* for more details (enclosed in the file licenses/LGPLv2.1). *) (* *) (**************************************************************************) + +(* Studia API for Frama-C server. Nothing is exported. *) diff --git a/src/plugins/studia/writes.ml b/src/plugins/studia/writes.ml index 938c3f01dae0f66c54c4551dd469b895f224c5a4..fa29b18e974c25b9234fa1e95b11f4f3fd8005aa 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/studia/writes.mli b/src/plugins/studia/writes.mli index d0340ef80e76ea869e4fd77a3fcaca36d041bddc..5010fcae30991e89995394515ae424d2eeff3b08 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/users/Users.mli b/src/plugins/users/Users.mli index b5d7b5c25e96b011c60a2a242a5eaa1b0fe889bd..5bc2ca44a5fffc8df95ba3ebe700a9f49e0554f8 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 1dc6450465e9dbbb45de2d0e1c657ebc415afde5..665ad85911ef9816a572ba93daefd5867ae6949e 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/Eva.mli b/src/plugins/value/Eva.mli index dc8c0bae4f7a55464e4331bbacf81ef69aa63e0e..fc8b622ad39830cb5a8912b7908f011d198ffb76 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -40,6 +40,10 @@ module Value_parameters: sig to interpret calls to function [kf]. Raises [Not_found] if there is no builtin of name [name]. *) val use_builtin: Cil_types.kernel_function -> string -> unit + + (** [use_global_value_partitioning vi] instructs the analysis to use + value partitioning on the global variable [vi]. *) + val use_global_value_partitioning: Cil_types.varinfo -> unit end module Eval_terms: sig diff --git a/src/plugins/value/alarmset.ml b/src/plugins/value/alarmset.ml index 3f94efd96e9bb25f502870f9e30110caef784d15..c2db72bb383b623cb8a8ddbe46313ce49a322703 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/alarmset.mli b/src/plugins/value/alarmset.mli index b756f8a2cb5c2750114e2b3f87ddbe91764621ce..e2017f8cfdd3a87e4a9d206ab9a87c5588115c64 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/api/general_requests.ml b/src/plugins/value/api/general_requests.ml index bbb5c95724375e6306e6e47c70497fcd2c28e9f5..66c110104c2f5047316685b75c2adfa0f3bddffa 100644 --- a/src/plugins/value/api/general_requests.ml +++ b/src/plugins/value/api/general_requests.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/api/general_requests.mli b/src/plugins/value/api/general_requests.mli index 6568b925a92d2cd9bfb6896e3487b64f3736be10..6a2cd7dfeac3ce686fe559480c825592eafca8b4 100644 --- a/src/plugins/value/api/general_requests.mli +++ b/src/plugins/value/api/general_requests.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/api/values_request.ml b/src/plugins/value/api/values_request.ml index e6587ea85824ad563a6d556b6d85d5c615992eda..5255b073cb68c0b0ef716e2e3c8dfc86c5e07516 100644 --- a/src/plugins/value/api/values_request.ml +++ b/src/plugins/value/api/values_request.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/api/values_request.mli b/src/plugins/value/api/values_request.mli index 182bc40a8e1af00f6d1329952d449d0f2e6808e1..006a29467118c7c3ad37a163911f9c815ab61b29 100644 --- a/src/plugins/value/api/values_request.mli +++ b/src/plugins/value/api/values_request.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -19,3 +19,5 @@ (* for more details (enclosed in the file licenses/LGPLv2.1). *) (* *) (**************************************************************************) + +(* Eva API to Frama-C server. Nothing is exported. *) diff --git a/src/plugins/value/domains/abstract_domain.mli b/src/plugins/value/domains/abstract_domain.mli index c6093135e2a977f3e25c1e8ccea6dc94977a6b66..d45f5d4a2dbeeafe55f6acadc9af88fd7dee4a24 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/apron/apron_domain.ml b/src/plugins/value/domains/apron/apron_domain.ml index 0fdcc234bf9fe9526b0f8d8eb6647d09eef361c1..3e3fb679f2888aeaa05d88ff27636c648b649703 100644 --- a/src/plugins/value/domains/apron/apron_domain.ml +++ b/src/plugins/value/domains/apron/apron_domain.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 24703ead6f16909ec84f3ec840806cf297f2fee7..aada194ddefdc3b0c7ce50e1ec6222b7807e603f 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/cvalue/builtins.ml b/src/plugins/value/domains/cvalue/builtins.ml index ba5c2f99bb99deed6fa3ad25c6140ab5359c25db..f21513bf138ab55f4549da24607745400b5a7e68 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 cc4241afa041e9ccdfff55956c648f07f0e26c56..d4c8e217ac82dc4059ba3e4b32208fb4cf8972d5 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 3981a1f063c0076ad8cb69fa80ea45d0473fb675..8194285d1c601ae0bb9a120e7a87a233dbd7a427 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 ff5c4d45a88c4c05f2431829019429d246bb857b..6f9f922d51bccaa6b9a457a3cf883fbf5098f3a8 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 2868e1b1bfbd2f7dcd28441d173cb8f87412f716..60a35cc4c72b208110f8a378f6f869508b15a22c 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 9033945113ff2b677379fafe36e8a2a829001601..fecaa6ca53cc987d818429bd810e6671263d6097 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 b3a237f7d07205c16d9243002a4a9eb59ddacd72..8aea7089f54d77dd6bccf7b5a0d5ac052bf7e3f5 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 08cddd002fde18643a07973647f0cc6f3db40276..9ecb26cab14a2b6aac35120c2a8c29fdc7ac6e92 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 8617ae7119a1c2a89067005bbdc5ff6549b1c511..7b2e54d5fa9e1bf50b927908f683065923cb20fe 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 6fd3000fc99e7858dd3c2f4126d312546b6d0d2d..c3d1ae15933a70c4b6f947af0afc849f973986c0 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 1ac0850f13ad7937f856416fc5ea43ade0a44e74..28c2180087e06c2dc1993768818a08933439bac1 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/cvalue/builtins_print_c.mli b/src/plugins/value/domains/cvalue/builtins_print_c.mli index 39bdb488068aced852acbdb07887125033c68915..3a90498ca757b867e18b924035663f3a81e046a9 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 9c9d6c0cc1d8a48e5e182c7f6a7f52b82f2fb621..eabc8ced8ace46ec1af4b4055c39b35995f15e26 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 24418bb6cc0cf70c86b1fe33184b660a24ca00eb..00ab84e9a1ddf2acd11b79d2ee6bbb3489e0ec55 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 f5ecbc9c136338a14d037c771107aee4a1a9c3db..d479ad1dca70ae6fde9c20075f2611ba92a99b79 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 632d0f94b394612b20ab82c1ca8c6444737a83d5..feea3c2719fbae80a462531a671a89bc02fe46da 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 4fede94153ea77aa6b983329bda6e16fa1657f5f..d7b0df933a864380c577ea0c1143bd2517255360 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/cvalue/builtins_watchpoint.mli b/src/plugins/value/domains/cvalue/builtins_watchpoint.mli index 6b2390b440d0ed4bcd978b67299cf1ef75f8456e..cfc2fd2f4ee72ed043b344cd0bd7f370423c6c7b 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 5257e966b8729ffd4b3223a17080b80706964655..bc7868a1f805d6190468624a1ef56e91f041df07 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 dda36548c70302ef430de149729d6b318114175a..d8961aa52b4fd15976a3d77f228469b617e088d4 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 b3552f45e727f9556dbf6d4a04e73060d7b85155..d0470699ed5248b3e780ba5997ce89d184d76799 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 bb0c5875ba441e9011075a8d28065de95063a9c7..de795df863dec6d0ebf7e5ff0c46e5797a38d78c 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 9968ee64271a62d21dbf1074f4d8afb2a46b9b42..79f3f846a0ec8b16813e10583f0b44ce27da3f1f 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 6b98b1886592ea86371ed9d869df29707f308e69..b94f619280bd329129c4d046cf992bb8cbf3de4b 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 84609e39c11e60890e0e4a020dd948ffd8e514b7..d198f89c337ac656f7298b461a56def9dc6eb925 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 51fc5d40d29ed0995a803a9453ed04741643d8a8..3fd173c89592d26ece8f493563fd1248f23a1598 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 eca8881948b1a38333e25cf6f95779ba8cd2d0b5..1f2c66726233a8357c3b4bb193f38263caafd06b 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 b74f2266bebc6c722c9ae1c946c947b47a20e752..68359b9a1b60a376655ae73bb26d57c0d7e724a4 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 f0a3f4dfd103bbb768f88e2ef244d261bcca2235..4dd0181e5d2bd153c4455415880c1b1b4b9e1826 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 3c54a127f1fcabfc81a248bb184b3e08799157fe..bc78ce6973d84ed9fd0ff586c7612cd468ac2104 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 9ec670d30b5bc62d86cd585a95e0861ff3b9dcde..9f931b0f3c75ab5baf3b8161250f52f08d613e2a 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 fbe11cc3ec55c0c8577b2ee4e2225e239c2a4250..d5cda03557b10c4de830b823e1688ef4b6fda640 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 b5561d8fea2702377cc4fea563e46bd4deb46337..090ec84a602a7c9abc8082d368c70d16c1738105 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 66613b44d545a3e0ed7fbfe1d6b41e6f93ee8d73..0da4e4cd7b33288d2c8b929956d520164d62d986 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 46331911138dce10ab88edc059e32d695b44c0ac..1b0b7938ca82df8cea92695051efbf27b1d3babd 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 2ecc19615db6c57116982ffa85a5786a0efae113..2190f852399e5e15ed97211e78285d2583089700 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/domain_mode.ml b/src/plugins/value/domains/domain_mode.ml index 2d0788ba113800847d38ef598287acdadce0e407..548024f86491fb087aa1da07b43e8dbb3ee31dd6 100644 --- a/src/plugins/value/domains/domain_mode.ml +++ b/src/plugins/value/domains/domain_mode.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/domain_mode.mli b/src/plugins/value/domains/domain_mode.mli index cbb9a07e2c7ef60b0e39379690049951244070b2..1502ae6a30d41dbc37f65a4d02aa99f7b4dff664 100644 --- a/src/plugins/value/domains/domain_mode.mli +++ b/src/plugins/value/domains/domain_mode.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 391b3b6a801715fbe473c2fdbcb1e0b555594202..875cf9c4b655252059f607be6aed23572e7388e7 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 f2b1550980d6c04dfe9a76e6831e003b4702d944..49ca1c6a62b2deb26400060de5a11a55929c08a8 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 544e0e7ab08ad219b63fd30cbe69f65b92b5b117..bc9c7ee8c08e613d9b159ca8517167ae422f0f41 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 b5c4439c959e59a733800fee0e4b725c43176716..2996416a978942904eebcfa0ae59da95107c2864 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 705cb62c1c2ef9fbfe65e0fb731653a062770f13..0e4d6957809b5c2f94b7fa2e7ac76ca51f07ad60 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 8d19f7d3e84a54d0b8efd0e86b2df4443e707d19..87ef746f453b17bf99e21e3dfe59610aa01c1a0c 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 6475f861d9faca3cd2f4d47ffa940e38e16e1c6b..45d2dd6562d0c784db4f6980fae40aae866ea40c 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/equality/equality_domain.mli b/src/plugins/value/domains/equality/equality_domain.mli index 39aa467891ec2acd8550a16e05a6cdf9c46a0ca3..7adbbb6f9e6e6e267581c54e845c2e79271e92e1 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 543688032b0413be769eeb7218dbadf009597c92..2617cd55e4d2209f8ba7f71db8b619a5832baf30 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/gauges/gauges_domain.mli b/src/plugins/value/domains/gauges/gauges_domain.mli index 86cf280f40ca1e5db738f364fe6969eeac398b6e..eca9dfef455e9519101b8b218e232376ea2bd165 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 d2e6e30cf79dd3fbcb54958251754c24cedb71d7..b4fa7fa020a46b1932ba121a8e38cfbb284bca91 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 bc7328702f0a40ed353175adc90b8a31c7d7bfb7..9df6cc5cf9a719b042d09c910c0ed96d51025ca4 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 5bbf25ba1ff5dc18b3f392d07d6d25b5d35c4fcf..15e5f00ee7c0766b97dfdb24037f082111de299c 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 cb9049e93feeae161d83884070bb9efc4509f7e0..cabe1a43694d7c1373f99abe77e7076c1d5d0cdc 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/numerors/numerors_domain.ml b/src/plugins/value/domains/numerors/numerors_domain.ml index 6fe3f9da06ad0730570a32512d780c7de505d3ea..cafa9a5f1da9f06c0be6fedbffbec0f6e4117543 100644 --- a/src/plugins/value/domains/numerors/numerors_domain.ml +++ b/src/plugins/value/domains/numerors/numerors_domain.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 7d1a78bc4f0d0ae2f6e65660566e2a5773749cf5..8f8c7aa04dd88952d78db0aca081611336971fe3 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/octagons.ml b/src/plugins/value/domains/octagons.ml index b1faca4b4d688ab17f84382b814b3b23c4206a6b..efce9ddb734dfa03ed131be2f42a91678b8b9243 100644 --- a/src/plugins/value/domains/octagons.ml +++ b/src/plugins/value/domains/octagons.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/octagons.mli b/src/plugins/value/domains/octagons.mli index 886e8c5f969d947f0de0392ab0130b2280dbe9bf..de7e2068dc1ea65d6c7b5c88b287ff56301fa629 100644 --- a/src/plugins/value/domains/octagons.mli +++ b/src/plugins/value/domains/octagons.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/offsm_domain.ml b/src/plugins/value/domains/offsm_domain.ml index 3a09bd25906bc63d5b3ffc834b6b224af85af20a..2a4d4854be35e24a2e61f2971f7871f7c3996e9e 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 41dac4592a369fcd910284a8c64be493eea67c08..9a5a802f2b706d264e4bc02c93acd36e487e8894 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 41d64ba83cfd7949ae8f38ec529e6f190fce71b0..d9bd4652c5557ee7a2cf48799e36673b9dd6cfd6 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 973b989214c4d7d481894d997c295dcc3f35b835..7b1d0a56f6449a901ae6276e077e1f6663d415d3 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 1cbaaffae5a6a4bab3db7841641161197fa750bf..9bbed31dc02d6b498b8bfa60ae5b0af1424d3392 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 26467d6f235036b9f7930903ab2894476c5d5b25..3f1f986eff1fdfaa6ff1a8b5a56fcfc56fab5d8c 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 9f6eb1f302dac4ec58fe16ba34d5e68e23ed1d14..54a97a9f678d3dfec1a4c78bfd1ed173d919f44d 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 b60f222267cf928a95b030d2ec53b139785ab8c8..6e86c06b09f3bdb3837ac07b2f5c02b6c641c216 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 f2e84f2c345451919a483d69b896082546acb526..6cabd4da3f2b5a85ee3fc9759ee9b3e4bae2ba1c 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 e6b39e6151bdf85553cdf1dfd8647ba118d3ce38..fec2e4c8388ba4d49ecc99119d8efc898776c06e 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 55bd03ccca6f28c7636c3e5283a447cc89da0f40..37a1209a79b929a90d05f63ff1c3afd2adf57773 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 9464308a6e2d57bed2ad1a649186983298815d56..61a33252c51d31025f65854ce43d425e7979d5cd 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 6dcd99b01a60276f4ccd10693b8dd6ed771987eb..0cd8a8b410d9885c8186407ab237c86088817676 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/domains/traces_domain.ml b/src/plugins/value/domains/traces_domain.ml index 6006597e3a143f45b6b8c79988f9786bc30980df..5dd2ac5bb9d925a853d14ac89d3c1fdb904bed86 100644 --- a/src/plugins/value/domains/traces_domain.ml +++ b/src/plugins/value/domains/traces_domain.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -1128,7 +1128,7 @@ let rec stmts_of_cfg cfg current var_map locals return_exp acc = let exp = subst_in_exp var_map exp in let exp = if bloop then exp else Cil.new_exp ~loc:dummy_loc (UnOp(LNot,exp,Cil.intType)) in let body = stmts_of_cfg g nloop var_map locals None [] in - let acc = (List.rev (Cil.mkLoop ?sattr:None ~guard:exp ~body)) @ acc in + let acc = (List.rev (Cil.mkLoop ~guard:exp ~body ())) @ acc in stmts_of_cfg cfg n2 var_map locals return_exp acc end | l -> diff --git a/src/plugins/value/domains/traces_domain.mli b/src/plugins/value/domains/traces_domain.mli index aed49cad6c7b8e291c75643843b5883fefbedc80..365ae83e371c11b7fd39db20192951b1dc095a79 100644 --- a/src/plugins/value/domains/traces_domain.mli +++ b/src/plugins/value/domains/traces_domain.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 c12cdfc9f3cfa03bc6b7b3ac6ef2001b96513110..75a3db212865817be796939c17f668328012e533 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 3ccbbc5d6830297d5d96cc90c4e997d9cdb13c68..97ede0e6e89e6e197d0c0d0361c00af97e59cf68 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 67159ad19c084c224c05344e3ecb315b9988a4d4..5c01025c3d8f4772df6b90084451bb5efa0c2feb 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 8c98ee9b149502b409bf94985cf756d302a7b3e0..2ba4de799b6923e7aa8c019804e4488eb81426fb 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 d1d807098e3f571860d4221bbc4f5c2912f6e10a..93fd504680369faf45e68100017c4acf5552ea39 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -173,6 +173,10 @@ let reset_analyzer () = let force_compute () = Ast.compute (); Value_parameters.configure_precision (); + if not (Filepath.Normalized.is_unknown (Kernel.AuditCheck.get ())) + then Eva_audit.check_configuration (Kernel.AuditCheck.get ()); + if not (Filepath.Normalized.is_unknown (Kernel.AuditPrepare.get ())) + then Eva_audit.print_configuration (Kernel.AuditPrepare.get ()); let kf, lib_entry = Globals.entry_point () in reset_analyzer (); let module Analyzer = (val snd !ref_analyzer) in diff --git a/src/plugins/value/engine/analysis.mli b/src/plugins/value/engine/analysis.mli index 50b943ccad73a30eb0d8e41ab94a60e334e471ef..732d307bd553273534ddd69ed306215b42a5a19e 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 de253c37eb857c9121e644bbc185c3defd8002e2..b41b8cc4851e0eb6063887946f3b6d5dd4276c16 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 f882469735e876b334d85d0ed2fc3c1d6b517781..b4c26c4f4f790d081349cc2ef8fcdde274d1f662 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 51439e74e98003d30fd65779367e96e5072b5876..5e0eee53d7c87d3dd5bdff036883af2071653046 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/engine/evaluation.mli b/src/plugins/value/engine/evaluation.mli index f7a263cab8c9dbe76053804759bfb5eb169f62ad..5af7f90ddec5104b2731e6fddb3b9106dcc370cc 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 15fa2d09c749278bca530e5b7713f79ba446126a..2be609d248deefa31267b01fa294f57f0c96186d 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 b663ecbdfa1baf84b529c9be6b30fb24f9c6b12b..55e5eb2fde4957a990fcf319264c93c70752b637 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/engine/iterator.ml b/src/plugins/value/engine/iterator.ml index a7862968059399ccb8f624c7bfe34393d633bbc4..8de2b35637636c8fb659923ce0c9cb30b2a33084 100644 --- a/src/plugins/value/engine/iterator.ml +++ b/src/plugins/value/engine/iterator.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/engine/iterator.mli b/src/plugins/value/engine/iterator.mli index 0c534749680df8d6ff9c2262595db68814092afa..d11bb54625270b285e09ce0e6fd051deb55caf7c 100644 --- a/src/plugins/value/engine/iterator.mli +++ b/src/plugins/value/engine/iterator.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 31f4b9fb2150d5bcdfc16ca79fe671b187d99dbc..816dfc26121a394a1fa365e8e5e0639e2ec8f5b8 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 c9d8b2c628d4e6339d1db9ba82d6d988ead5ffb3..40884cad99035d2602b13291c8699398b2af12c0 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 b68df50c08481dfcf81000acc973502a8e250887..99d150435c7d019f1cb0bd1a88f5ecb76e347f02 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 e27c583d25192edcd0aa9f699077bd38c62c5a56..3a3255c47d1b22827ef20c36d711d349c5cd1492 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/engine/subdivided_evaluation.ml b/src/plugins/value/engine/subdivided_evaluation.ml index f8cd150852485631688939f48782d496a9463ce4..5add03da573e8305fdd83712ab66e1b276f5c563 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 fb365b9a7666d2ef0a7fb01b784dd89fe2817f72..490832670d52a3fbd60822e8f1a7256a6da5bc03 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 2293ed64aefdfa541a1b00c069a631ebb15bac70..df303b0e2fc37676efd55611aa1699d2494b4365 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -588,9 +588,7 @@ module Make let code_annotation_text ca = match ca.annot_content with - | AAssert (_,{tp_kind = Assert}) -> "assertion" - | AAssert (_,{tp_kind = Check}) -> "check" - | AAssert (_,{tp_kind = Admit}) -> "admit" + | AAssert (_,{tp_kind}) -> Cil_printer.name_of_assert tp_kind | AInvariant _ -> "loop invariant" | APragma _ | AVariant _ | AAssigns _ | AAllocation _ | AStmtSpec _ | AExtended _ -> diff --git a/src/plugins/value/engine/transfer_logic.mli b/src/plugins/value/engine/transfer_logic.mli index f77631a91647118e6cbfa5a518b0aac725ea907b..798cb8a99cc270c06eb45e19c48c01d15d2a88fc 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 331556aa7aef345953d08eda98b8e79f934f3d90..835e5401bc4d296e67fc39426ff91cb60bd0037f 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 c867f008f32d2db98069d7b6bf422f4171830917..06af47c468ce3f30d5eeb4acc8d9f8e8f63e79df 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 953d273cd33cae2924f0fdfe75dee013a2491739..34ea9d023571c31f42450e6c07ff4c34d3e85d2b 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 8b0055ab0f7e8afe5c7b35f0618190cabbcb0365..c280d047b07afa5c60902dadb7b1de0880d81d02 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/eval.ml b/src/plugins/value/eval.ml index 6aa0b6a0fe071bb8e1af643cac64c0a5e31918fc..2702268a75fcfe979f8c8060fcf866574e88fc1c 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/eval.mli b/src/plugins/value/eval.mli index b7de21de5c9b8b4e12c3e0ce40d4250965ad965d..28301c46e79ddeb64d84603b5f97f584fc34ca63 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 7faeecbb965625490550e3674bacf98928cf3dd3..45159125a7a1be14c6c3e98a0fa0c2eb6674f6d5 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 42aca42f2bc1c40fd8e5baca1f7eadfe53c25dc1..852fa0e8e888b97feb96f0fe056748bec5c3c28a 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 10331bacd8e173dfa5e8479d97af336b19c5ca30..08358dda36a4c638cdebc0ca6990fdfd5948b74c 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/gui_files/gui_callstacks_manager.mli b/src/plugins/value/gui_files/gui_callstacks_manager.mli index 6d55a563e6c4f4d2bc67604c1978c8f414532ab8..831e089c6a7e445a6ce25c2cdd095d4fb2c964dc 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 37fcedc58ed72221be5c9391242e4f617c2ee035..5888b1bbe9b9c204ecae7582dd2e0eed4c86c9c6 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -41,7 +41,7 @@ let classify_pre_post kf ip = let open Property in match ip with | IPPredicate {ip_kind = PKEnsures (_, Normal)} -> Some (GL_Post kf) - | IPPredicate {ip_kind=PKEnsures _} | IPAxiom _ | IPAxiomatic _ | IPLemma _ + | IPPredicate {ip_kind=PKEnsures _} | IPAxiomatic _ | IPLemma _ | IPTypeInvariant _ | IPGlobalInvariant _ | IPOther _ | IPCodeAnnot _ | IPAllocation _ | IPReachable _ | IPExtended _ diff --git a/src/plugins/value/gui_files/gui_eval.mli b/src/plugins/value/gui_files/gui_eval.mli index 4ea436f61b746533299d9ddbb84b6409eaea54dd..4c978cb1e612d69cd48bd4aa46e4b581d0f61285 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 f0b81cb0d842fcce673f5c358f2cd698143f6d34..b0b1538a7e793a70adf5bd676bdccf1c9cfb9893 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 8e6af4ec5429cb6927f83d4bf81de107ca05c16e..240cb5ae33e6192484b5127c7ce16ac4f6ae2908 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 e6b64d5a8e73e16f6e43b4dfbfc6f70458b5b6ee..5c9a7d6d9c86ace114b395120d5188870e1529df 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 132a55b5e27bb6d04800f1fa6968284e513605cc..11acc2e01e8c00a8afd298d02da821ba101084cf 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 3e6c0551b74a9198e481e71ee9f6572ffc520511..5adf217e9f95053da29b3c13851e32527318dae4 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 906ed74c2c3543792e448621867b8eddf8a5ce36..2149cd3cb50a84cc1164cb508dc76fceb0f8e1f8 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 f9c730b433d7558be89d8ba2b6c066f545400d2e..cb3647e4fde810b6212ce0a8e0351d24e2ee3a2f 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -29,9 +29,7 @@ let has_requires spec = let code_annotation_text ca = match ca.annot_content with - | AAssert (_, {tp_kind=Assert}) -> "assertion" - | AAssert (_, {tp_kind=Check}) -> "check" - | AAssert (_, {tp_kind=Admit}) -> "admit" + | AAssert (_, {tp_kind}) -> Cil_printer.name_of_assert tp_kind | AInvariant _ -> "loop invariant" | APragma _ | AVariant _ | AAssigns _ | AAllocation _ | AStmtSpec _ | AExtended _ -> diff --git a/src/plugins/value/legacy/eval_annots.mli b/src/plugins/value/legacy/eval_annots.mli index 7364ded3309e235c2a8f8f2ee4eb007607c9c593..03fbb8c51541c594f3d7954bc53a77ce0460f303 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 2e8edeb2562065ebd4bb54b7d5acb4211bdcf524..1cc14743aa781c7880a58f42a98e8842b606f937 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 d1c052ac8f081e18195618778763bacb371afd9f..9e0e02ed42f34a5d75b917bae0189bfc1a0b6d28 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 462e57405d35859dd5e0aeb0028e6412250685ef..4a19ba063da93259551138260379081ece972574 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 4e61b9d1ad3a02b6725a61ad4f11cb49e8e58a70..e63e6a531800d52ccbbbfc1ca29564cb2e27ef70 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 a85212df5aa2409042b51cf1f33712b5f443f2e5..316201b1fd52de26cabeddb68f86f98dab3bde25 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 71e72a90a708d018c5800c43d07f5618176f972e..5afc0f74bf7d9ad2bd081ef5822d2d293f022713 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/partitioning/auto_loop_unroll.ml b/src/plugins/value/partitioning/auto_loop_unroll.ml index b2c114233e6414c9ea5823d06d9abe7f2cd0a7f2..ec5d1936afa118b8fd245b5986cd08baec9078be 100644 --- a/src/plugins/value/partitioning/auto_loop_unroll.ml +++ b/src/plugins/value/partitioning/auto_loop_unroll.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/partitioning/auto_loop_unroll.mli b/src/plugins/value/partitioning/auto_loop_unroll.mli index 096074a44a9017253491b5aff2bee88a06ce3bf2..81d4ccab98ea289445603b30a1f57888f8ab68b5 100644 --- a/src/plugins/value/partitioning/auto_loop_unroll.mli +++ b/src/plugins/value/partitioning/auto_loop_unroll.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/partitioning/partition.ml b/src/plugins/value/partitioning/partition.ml index f51bc89c5e108f5a29c2a3b8751d5141d6cf050a..fe65ccb612ebd7959501e935c6f8ede9cbe58063 100644 --- a/src/plugins/value/partitioning/partition.ml +++ b/src/plugins/value/partitioning/partition.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/partitioning/partition.mli b/src/plugins/value/partitioning/partition.mli index 5e674a0764a9f5cd6037bc21ad8540043b586772..a5a3a569b37aa90168a42418279e6918552c9450 100644 --- a/src/plugins/value/partitioning/partition.mli +++ b/src/plugins/value/partitioning/partition.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/partitioning/partitioning_index.ml b/src/plugins/value/partitioning/partitioning_index.ml index abb4f9421031fdaffed2ea535a0f100a0e5f7b24..f586b6cd20e4991be8477613a1a0fe8cb93fd8b0 100644 --- a/src/plugins/value/partitioning/partitioning_index.ml +++ b/src/plugins/value/partitioning/partitioning_index.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/partitioning/partitioning_index.mli b/src/plugins/value/partitioning/partitioning_index.mli index 81f323cd28f228a18a8f2e87cc6d55a32ef30798..844b40468b98ed5125934cd225c3c8e79cdd323b 100644 --- a/src/plugins/value/partitioning/partitioning_index.mli +++ b/src/plugins/value/partitioning/partitioning_index.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/partitioning/partitioning_parameters.ml b/src/plugins/value/partitioning/partitioning_parameters.ml index 22658b485c9c1ccf9cb4a8a4aeece5a4ecfeb2df..ae5d526381bc09b86f3b8da13677eda5816d3ec1 100644 --- a/src/plugins/value/partitioning/partitioning_parameters.ml +++ b/src/plugins/value/partitioning/partitioning_parameters.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/partitioning/partitioning_parameters.mli b/src/plugins/value/partitioning/partitioning_parameters.mli index 12155e2638fc1114f8ce0575ffa0b4e8d9257610..891a2b72b6f988cd8a56f2495f90d55f87a71be1 100644 --- a/src/plugins/value/partitioning/partitioning_parameters.mli +++ b/src/plugins/value/partitioning/partitioning_parameters.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/partitioning/per_stmt_slevel.ml b/src/plugins/value/partitioning/per_stmt_slevel.ml index cf9f8d15a7497032db2e87127515d4fe91d1ec36..8ee8d668fcd7656eb067d52483726c4cdf643214 100644 --- a/src/plugins/value/partitioning/per_stmt_slevel.ml +++ b/src/plugins/value/partitioning/per_stmt_slevel.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/partitioning/per_stmt_slevel.mli b/src/plugins/value/partitioning/per_stmt_slevel.mli index 393f1c427809324016efbbe97188dab3fa7ed082..080c384c42fe008614613d2063856ddae8e163ba 100644 --- a/src/plugins/value/partitioning/per_stmt_slevel.mli +++ b/src/plugins/value/partitioning/per_stmt_slevel.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/partitioning/split_return.ml b/src/plugins/value/partitioning/split_return.ml index fd693fcffd67ea16a311cdbfd74005e57db0dcba..c705fb09d4c455f65a48b83a8388a0f1c2828136 100644 --- a/src/plugins/value/partitioning/split_return.ml +++ b/src/plugins/value/partitioning/split_return.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/partitioning/split_return.mli b/src/plugins/value/partitioning/split_return.mli index a0d0f630d4d1d673ac96de9bc5366c4fdcb62a8f..0f0c1e674e54a41b2f11ae20ec0fe468ffaddcbc 100644 --- a/src/plugins/value/partitioning/split_return.mli +++ b/src/plugins/value/partitioning/split_return.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/partitioning/split_strategy.ml b/src/plugins/value/partitioning/split_strategy.ml index 2ddccb40e8881ef025a4aed257dc405eca93dcb9..513143595d0cfae4f2595bc9c6b14b06baa5d18b 100644 --- a/src/plugins/value/partitioning/split_strategy.ml +++ b/src/plugins/value/partitioning/split_strategy.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/partitioning/split_strategy.mli b/src/plugins/value/partitioning/split_strategy.mli index 9ddb08e5912da4797f1e811868bcc00c00cf7fe4..f7b1dfe85e209cd46619728b7eb51791d58c55dd 100644 --- a/src/plugins/value/partitioning/split_strategy.mli +++ b/src/plugins/value/partitioning/split_strategy.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/partitioning/trace_partitioning.ml b/src/plugins/value/partitioning/trace_partitioning.ml index e84524ecd9f9ec1303a0b329ddd869a16a84f32d..9ba46bb5eefd06b26813c24013ac7fa535c1911b 100644 --- a/src/plugins/value/partitioning/trace_partitioning.ml +++ b/src/plugins/value/partitioning/trace_partitioning.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/partitioning/trace_partitioning.mli b/src/plugins/value/partitioning/trace_partitioning.mli index 4e2325b3b965624dc5b22c7f945ffdaaaf49d919..0fbd96f2888d225aa4c01880e71f5b51c9ecfcef 100644 --- a/src/plugins/value/partitioning/trace_partitioning.mli +++ b/src/plugins/value/partitioning/trace_partitioning.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/register.ml b/src/plugins/value/register.ml index 8679669d8ecd06b45559f4c4c73016125022d21f..9d8b1c670b115a38ca2c74ef4f56001aaa153a9c 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/register.mli b/src/plugins/value/register.mli index 7c409155bf2fb43449eec2a4cb9f135888611cf1..c27dd17263fd3f5deb3581b5ebdd0f6c3b2674f5 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/utils/abstract.ml b/src/plugins/value/utils/abstract.ml index cf1199cb7e388e3f5ab80a4ea190531be825bb5d..b7158ae6e3f5c13f22e31e947a78e864a08b6471 100644 --- a/src/plugins/value/utils/abstract.ml +++ b/src/plugins/value/utils/abstract.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/utils/abstract.mli b/src/plugins/value/utils/abstract.mli index cd76719aafff5117498a933e213b1166f2d79805..643159a7b0008376843b36481d5f04a784d2aaae 100644 --- a/src/plugins/value/utils/abstract.mli +++ b/src/plugins/value/utils/abstract.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/utils/backward_formals.ml b/src/plugins/value/utils/backward_formals.ml index ccf5ade43cbcfe71bbb62f952eb426d6aea73f89..e01d275dd7f2c3555e384886330b9afcd7476e0f 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 4f6e930e466305f5e24dfa59eafd01f20084d226..08e9451f5a628b84e7aa63ff1a5bab0404be72b4 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/utils/eva_annotations.ml b/src/plugins/value/utils/eva_annotations.ml index 7fea184b5381034aae7a5889cad6705fdfe740ab..e17f1d03ffd4006f53ee6a704fa8748efa115c6a 100644 --- a/src/plugins/value/utils/eva_annotations.ml +++ b/src/plugins/value/utils/eva_annotations.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/utils/eva_annotations.mli b/src/plugins/value/utils/eva_annotations.mli index ab29469ee7102d9232128475653456b1e7fbaff2..84f1480bdadd632330878d15ba8130a907ba5a93 100644 --- a/src/plugins/value/utils/eva_annotations.mli +++ b/src/plugins/value/utils/eva_annotations.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/utils/eva_audit.ml b/src/plugins/value/utils/eva_audit.ml new file mode 100644 index 0000000000000000000000000000000000000000..f7e10c46cf07a9449a120bde4371bba451f75233 --- /dev/null +++ b/src/plugins/value/utils/eva_audit.ml @@ -0,0 +1,146 @@ +(**************************************************************************) +(* *) +(* This file is part of Frama-C. *) +(* *) +(* Copyright (C) 2007-2021 *) +(* 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_correctness_parameters () = + let get param = + let name = param.Typed_parameter.name in + let value = Typed_parameter.get_value param in + (name, value) + in + List.map get (Value_parameters.parameters_correctness) + +let parameters_of_json json = + try + let open Yojson.Basic.Util in + let params = + json |> member "eva" |> member "correctness-parameters" |> to_assoc + in + List.map (fun (key, value) -> (key, to_string value)) params + with + | Yojson.Json_error msg -> + Kernel.abort "error reading JSON file: %s" msg + | Yojson.Basic.Util.Type_error (msg, v) -> + Kernel.abort "error reading JSON file: %s - %s" msg + (Yojson.Basic.pretty_to_string v) + +let print_correctness_parameters path = + let parameters = get_correctness_parameters () in + if Filepath.Normalized.is_special_stdout path then begin + Value_parameters.feedback "Correctness parameters of the analysis:"; + let print (name, value) = Value_parameters.printf " %s: %s" name value in + List.iter print parameters + end else begin + let json = List.map (fun (name, value) -> name, `String value) parameters in + let params_json = `Assoc [("correctness-parameters", `Assoc json)] in + let eva_json = `Assoc [("eva", params_json)] in + Json.merge_object path eva_json + end + +let check_correctness_parameters json = + let parameters = get_correctness_parameters () in + let expected_parameters = parameters_of_json json in + (* Note: we could compare lengths and use a two-list iterator on sorted lists, + but in case of divergence, the error messages would be less clear. *) + List.iter (fun (exp_p, exp_v) -> + try + let v = List.assoc exp_p parameters in + if exp_v <> v then + Kernel.warning ~wkey:Kernel.wkey_audit + "correctness parameter %s: expected value %s, but got %s" exp_p + exp_v v + with Not_found -> + Kernel.warning ~wkey:Kernel.wkey_audit + "expected correctness parameter %s, but not found" exp_p + ) expected_parameters + +let compute_warning_status (module Plugin: Log.Messages) = + let warning_categories = Plugin.get_all_warn_categories_status () in + let is_active = function + | Log.Winactive | Wfeedback_once | Wfeedback -> false + | Wonce | Wactive | Werror_once | Werror | Wabort -> true + in + let is_enabled (_key, status) = is_active status in + let enabled, disabled = List.partition is_enabled warning_categories in + let pp_fst = List.map (fun (c, s) -> Plugin.wkey_name c, s) in + (pp_fst enabled, pp_fst disabled) + +let json_of_warning_statuses wkeys key_name = + let json_of_wkey = List.map (fun (c, _) -> `String c) in + (key_name, `List (json_of_wkey wkeys)) + +let enabled_warning_of_json name json = + try + let open Yojson.Basic.Util in + json |> member name |> member "warning-categories" |> + member "enabled" |> to_list |> filter_string + with + | Yojson.Json_error msg -> + Kernel.abort "error reading JSON file: %s" msg + | Yojson.Basic.Util.Type_error (msg, v) -> + Kernel.abort "error reading JSON file: %s - %s" msg + (Yojson.Basic.pretty_to_string v) + +let print_warning_status path name (module Plugin: Log.Messages) = + let enabled, disabled = compute_warning_status (module Plugin) in + if Filepath.Normalized.is_special_stdout path then + begin + let pp_categories = + Pretty_utils.pp_list ~sep:",@ " Format.pp_print_string + in + Value_parameters.feedback "Audit: %s warning categories:" name; + Value_parameters.printf " Enabled: @[%a@]" + pp_categories (List.map fst enabled); + Value_parameters.printf " Disabled: @[%a@]" + pp_categories (List.map fst disabled) + end + else begin + let enabled_json = json_of_warning_statuses enabled "enabled" + and disabled_json = json_of_warning_statuses disabled "disabled" in + let warning_json = `Assoc [enabled_json; disabled_json] in + let name = Stdlib.String.lowercase_ascii name in + let json = `Assoc [(name, `Assoc [("warning-categories", warning_json)])] in + Json.merge_object path json + end + +let check_warning_status json name (module Plugin: Log.Messages) = + let name = Stdlib.String.lowercase_ascii name in + let enabled, _disabled = compute_warning_status (module Plugin) in + let enabled = List.map fst enabled in + let expected_enabled = enabled_warning_of_json name json in + let diff l1 l2 = List.filter (fun k -> not (List.mem k l2)) l1 in + let should_be_enabled = diff expected_enabled enabled in + if should_be_enabled <> [] then + Kernel.warning ~wkey:Kernel.wkey_audit + "the following warning categories were expected to be enabled,@ \ + but are disabled: %a" + (Pretty_utils.pp_list ~sep:", " Format.pp_print_string) should_be_enabled + +let check_configuration path = + let json = Json.from_file path in + check_correctness_parameters json; + check_warning_status json "Kernel" (module Kernel); + check_warning_status json "Eva" (module Value_parameters) + +let print_configuration path = + print_correctness_parameters path; + print_warning_status path "Kernel" (module Kernel); + print_warning_status path "Eva" (module Value_parameters) diff --git a/src/plugins/value/utils/eva_audit.mli b/src/plugins/value/utils/eva_audit.mli new file mode 100644 index 0000000000000000000000000000000000000000..7cd6bff0d6ef912d07cb6db454a0c80c9b5458e9 --- /dev/null +++ b/src/plugins/value/utils/eva_audit.mli @@ -0,0 +1,24 @@ +(**************************************************************************) +(* *) +(* This file is part of Frama-C. *) +(* *) +(* Copyright (C) 2007-2021 *) +(* 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 check_configuration: Filepath.Normalized.t -> unit +val print_configuration: Filepath.Normalized.t -> unit diff --git a/src/plugins/value/utils/eval_typ.ml b/src/plugins/value/utils/eval_typ.ml index 9fa86ff780d4df1ce2c536a76b3d2913867a4931..bbd8633c2eda4f042b8857d2be1b298d2ba48f87 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 de900fa153f92d69f28ca367937277e3a15d0722..e3d24e61829ff601e31d2a5abdf56db0a16d1053 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 7e5ff93a01825c7e3b0b25586ca30b45e734ee59..d78a8601b1a5a5120ce24da68e4d4d48f88f2ff2 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 656e1256f41493093cde954a36be1e3d9927b26d..3e1e41a97128b90320a12276f2f82fe8022bc05a 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 cbd00d938af5ab36b507bc77aba0f3be6cd6a162..0c31fbf0eda5e2154995879b8f7f7e7d501c1741 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 b9c26d535b40e9b0ddb538f72237b4afa0f77c73..8657a9dae7c99b77cd9bb5e7c11f0b9d33a708bb 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 8010d9635fcdbf12562ba5567b3f1eb6794eab71..b8443410be9fd6fa73169dfc9f436216640c759c 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 a3920f589d46a3a9d9579f9b16983de8209e6cb4..3af1e2b88560cde0e6e4692868a199522bd243b6 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 96555303c0f1139131ae32877f80e65806b3583c..af7619b22a1ec9711bd11c466762a56435f1aa4f 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/utils/unit_tests.ml b/src/plugins/value/utils/unit_tests.ml index 043a2a726fa93a52dba15278fa6a4ca2881935e0..50ef12be9835c4b409339706e9f370ed91d7a363 100644 --- a/src/plugins/value/utils/unit_tests.ml +++ b/src/plugins/value/utils/unit_tests.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/utils/unit_tests.mli b/src/plugins/value/utils/unit_tests.mli index 8783260b33accee3d55c8edf0a5002e41d3ed89b..cf1fae9cef81e5104e4e6cb886c7a5170a7caa51 100644 --- a/src/plugins/value/utils/unit_tests.mli +++ b/src/plugins/value/utils/unit_tests.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 de12cb45574f55de6f26fcacb0b4d585c7fdfff1..e8f0be51619f58a5a7003874680638b01b43d8a4 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 565d30cf375f7f49393f688d8faf873225cb161b..67accb6199ab7f7242ef04abaea0403364bcd75d 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 8a30f2895b3ebbfb4028458a8a10dcf4d9756dae..9ca7a64e5c07ea32af4db09682dae6ed5049fc82 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 fad2755468acdadf731d8ad999acbd3d17fc58e0..512f45ebeb52538dd4963d1f659172fd9e1c56b2 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 6a31f40a376c9bebb12bd3bab67714ca9bb6725a..b6826afb7ea3f80eabdabd2850acb5f8de10a757 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -186,7 +186,7 @@ let zero e = | TPtr _ -> let ik = Cil.(theMachine.upointKind) in let zero = Cil.new_exp ~loc (Const (CInt64 (Integer.zero, ik, None))) in - Cil.mkCast ~force:true ~e:zero ~newt:typ + Cil.mkCast ~force:true ~newt:typ zero | typ -> Value_parameters.fatal ~current:true "non-scalar type %a" Printer.pp_typ typ diff --git a/src/plugins/value/utils/value_util.mli b/src/plugins/value/utils/value_util.mli index dc1e6de459c694620bcf04c667a406cad9b85874..3ae37341f50d8a81d2ad457387c3cb93f789a6f3 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/utils/widen.ml b/src/plugins/value/utils/widen.ml index 81628376ac0c5e4c4b665d70fe4d9cd6be032dbc..602702acd66bbaaab44efbb5d1bf7e70b024278a 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 96c5579306f43a38e6a3a8a5097afa7c86a2e8b3..4e3e0ffc615c6bfd1b8600b461e0c122a130f518 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 449c0c6752086703c4c64693744deefdf8414abd..f7e2aef59a10a8b4e7fbeb9e7e6525009917ee39 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 6d08a8cc100abf35035695243c3dd8cb5d17acdf..e17c19f6d0115b790c6d44f537670af206b4e0e1 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 df4428ee75a433d53cc23d1ced1a4a1525d9a02f..7714801f87bdc613d7a694f723c721172a12bfbf 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -800,6 +800,9 @@ module ValuePartitioning = end) let () = add_precision_dep ValuePartitioning.parameter +let use_global_value_partitioning vi = + ValuePartitioning.add vi.Cil_types.vname + let () = Parameter_customize.set_group precision_tuning module SplitLimit = Int diff --git a/src/plugins/value/value_parameters.mli b/src/plugins/value/value_parameters.mli index 573e922bde59f3540e00a19d85516740c142acdd..0a294b1e8c116567bfb723b1843c173484228d91 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -228,6 +228,10 @@ val enabled_domains: unit -> (string * string) list builtin `b`. *) val use_builtin: Cil_types.kernel_function -> string -> unit +(** [use_global_value_partitioning vi] enable value partitioning on the global + variable `vi`. *) +val use_global_value_partitioning: Cil_types.varinfo -> unit + (* Local Variables: compile-command: "make -C ../../.." diff --git a/src/plugins/value/values/abstract_location.mli b/src/plugins/value/values/abstract_location.mli index 40be2cbe942e17d0acb7855337baebdb0bcf10c9..df2247048bea90ea926809c6af7823d35c41f879 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 bd42be08f83a7ba1e603712d610a01bfe4865297..05e465434ffa50ad28ba262aeceb2c599fd111bc 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 c62d074837875f584808bb5e3e2b0b0547fb0ebf..63d54e258d38fb1f4430e97f5435e076b62e3a03 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/values/cvalue_backward.mli b/src/plugins/value/values/cvalue_backward.mli index 5eb0872b0e4ccc59df1f9f5f539d4acce7ed828c..7118e2f14ac927c4a3920f11cdccccbaffae5f54 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 91263cb385821059a3a9b72b50ad514a788a35f0..532fc15103f28adfd9229b2e5cdc5fd94b3a28b7 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/values/cvalue_forward.mli b/src/plugins/value/values/cvalue_forward.mli index 07fb2ef75915314f21d06964eaecb79275586f9a..9a28e13333f33d3b9d7d777e2df20c902dac7474 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 3ae974cdcb1147ad4b66a04713bc1d1f3da7862f..a952772571a69db00250f4b70e110d111adc24bc 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 69b00baa7e97fccace37d43deb75cd0caf64a5b9..2eae797b70847474f04f2df0b276073f68a2f499 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 298f1b1698650bbc4b667439083ee6c96c211b04..7aab78471dfd377d2cd409d4313505a8bfee7363 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 84f9bb50cce26caa51ed9204d7b0f6426f969a10..43eea48d8f94d6506c8a8f63b2b63f4cdc4f2e5d 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 9218b0a03a3487a1a5db9ebe2458e0f0685c7c63..b21f868739e43063cf196d40e5aa1ebea5b3b811 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 5b3ac9d1bb9d04faf7b93c3e48d79c7a704ebb1c..58c564b1f1515058917723356c22847cb890f700 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 776f7edf3f331d218466e3c50dbb52188d0cb611..85320659dbd099c51e367d1299da251ac2434872 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -331,16 +331,16 @@ module Exact : Arithmetic with type forward = I.t = struct I.narrow x.exact (I.neg r.exact) let add x y r = [x ; y ; r] >>+ fun _ -> - I.backward_add ~prec:P.Real ~left:x.exact ~right:y.exact ~result:r.exact + I.backward_add ~prec:P.Real ~left:x.exact ~right:y.exact ~result:r.exact () let sub x y r = [x ; y ; r] >>+ fun _ -> - I.backward_sub ~prec:P.Real ~left:x.exact ~right:y.exact ~result:r.exact + I.backward_sub ~prec:P.Real ~left:x.exact ~right:y.exact ~result:r.exact () let mul x y r = [x ; y ; r] >>+ fun _ -> - I.backward_mul ~prec:P.Real ~left:x.exact ~right:y.exact ~result:r.exact + I.backward_mul ~prec:P.Real ~left:x.exact ~right:y.exact ~result:r.exact () let div x y r = [x ; y ; r] >>+ fun _ -> - I.backward_div ~prec:P.Real ~left:x.exact ~right:y.exact ~result:r.exact + I.backward_div ~prec:P.Real ~left:x.exact ~right:y.exact ~result:r.exact () end @@ -378,16 +378,16 @@ module Approx : Arithmetic with type forward = I.t = struct I.narrow x.approx (I.neg r.approx) let add x y r = [x ; y ; r] >>+ fun prec -> - I.backward_add ~prec ~left:x.approx ~right:y.approx ~result:r.approx + I.backward_add ~prec ~left:x.approx ~right:y.approx ~result:r.approx () let sub x y r = [x ; y ; r] >>+ fun prec -> - I.backward_sub ~prec ~left:x.approx ~right:y.approx ~result:r.approx + I.backward_sub ~prec ~left:x.approx ~right:y.approx ~result:r.approx () let mul x y r = [x ; y ; r] >>+ fun prec -> - I.backward_mul ~prec ~left:x.approx ~right:y.approx ~result:r.approx + I.backward_mul ~prec ~left:x.approx ~right:y.approx ~result:r.approx () let div x y r = [x ; y ; r] >>+ fun prec -> - I.backward_div ~prec ~left:x.approx ~right:y.approx ~result:r.approx + I.backward_div ~prec ~left:x.approx ~right:y.approx ~result:r.approx () end diff --git a/src/plugins/value/values/numerors/numerors_arithmetics.mli b/src/plugins/value/values/numerors/numerors_arithmetics.mli index 7fcad901cc418314eee51ea537cbf6035338b199..2c628a6766fa28a9a2ac51fad5c19bebfaa3f019 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 5df291e63cf61d7a8939a016c1629ea957777508..b3816466d613ffa59d20e3cb82ac9b2440565814 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 06bdbcb58bcd08f29127ad0b2bd80159e69d7d89..51119e835c2d2934684c1fec5f23567fcad5cefc 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 7f1e0f63bf46db8409b8cec9ab3b9d09e114a71b..98d2563bc6b30001d51b728256078f51a8a029a4 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -441,7 +441,7 @@ let finite_values ~prec = function let max = F.min (F.maximal_pos_float prec) y in if max < min then None else Some (min, max) -let backward_op (op : operator) fnan ?(prec = Precisions.Real) value result = +let backward_op (op : operator) fnan ?(prec = Precisions.Real) value result () = if contains_infinity result || (contains_nan value && contains_nan result) then `Value (top prec) else @@ -471,7 +471,7 @@ let synthetize left right = | `Value left, `Value right -> `Value (left, right) [@@inline] -let backward_add ?(prec = Precisions.Real) ~left ~right ~result = +let backward_add ?(prec = Precisions.Real) ~left ~right ~result () = let reduce_for_nan value = match contains_pos_infinity value, contains_neg_infinity value with | true , true -> I (F.neg_inf prec, F.pos_inf prec, true) @@ -479,38 +479,38 @@ let backward_add ?(prec = Precisions.Real) ~left ~right ~result = | false, true -> I (F.pos_inf prec, F.pos_inf prec, true) | false, false -> NaN prec in - let right' = backward_op F.sub reduce_for_nan ~prec left result in - let left' = backward_op F.sub reduce_for_nan ~prec right result in + let right' = backward_op F.sub reduce_for_nan ~prec left result () in + let left' = backward_op F.sub reduce_for_nan ~prec right result () in synthetize left' right' -let backward_sub ?(prec = Precisions.Real) ~left ~right ~result = - match backward_add ~prec ~left ~right:(neg right) ~result with +let backward_sub ?(prec = Precisions.Real) ~left ~right ~result () = + match backward_add ~prec ~left ~right:(neg right) ~result () with | `Bottom -> `Bottom | `Value (left, right) -> `Value (left, neg right) -let backward_mul ?(prec = Precisions.Real) ~left ~right ~result = +let backward_mul ?(prec = Precisions.Real) ~left ~right ~result () = let reduce_for_nan value = match contains_infinity value, contains_a_zero value with | true, _ | _, true -> I (F.neg_inf prec, F.pos_inf prec, true) | false, false -> NaN prec in - let right' = backward_op F.div reduce_for_nan ~prec left result in - let left' = backward_op F.div reduce_for_nan ~prec right result in + let right' = backward_op F.div reduce_for_nan ~prec left result () in + let left' = backward_op F.div reduce_for_nan ~prec right result () in synthetize left' right' -let backward_div ?(prec = Precisions.Real) ~left ~right ~result = +let backward_div ?(prec = Precisions.Real) ~left ~right ~result () = let reduce_for_nan value = match contains_infinity value, contains_a_zero value with | true, _ | _, true -> I (F.neg_inf prec, F.pos_inf prec, true) | false, false -> NaN prec in let right' = - match backward_op F.div reduce_for_nan ~prec left result with + match backward_op F.div reduce_for_nan ~prec left result () with | `Value right' -> let one = F.of_int ~prec 1 in let one = I (one, one, false) in `Value (div ~prec one right') | `Bottom -> `Bottom in - let left' = backward_op F.div reduce_for_nan ~prec right result in + let left' = backward_op F.div reduce_for_nan ~prec right result () in synthetize left' right' diff --git a/src/plugins/value/values/numerors/numerors_interval.mli b/src/plugins/value/values/numerors/numerors_interval.mli index badb0a2d25a77c3ae4f863831264060c0277beb9..453326ea42422a26e54021a74812e8621b0d08ec 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -182,10 +182,10 @@ val backward_gt : ?prec:Precisions.t -> t -> t -> t Bottom.or_bottom (** These functions perform backward propagation for arithmetic *) val backward_add : ?prec:Precisions.t -> left:t -> right:t -> - result:t -> (t * t) Bottom.or_bottom + result:t -> unit -> (t * t) Bottom.or_bottom val backward_sub : ?prec:Precisions.t -> left:t -> right:t -> - result:t -> (t * t) Bottom.or_bottom + result:t -> unit -> (t * t) Bottom.or_bottom val backward_mul : ?prec:Precisions.t -> left:t -> right:t -> - result:t -> (t * t) Bottom.or_bottom + result:t -> unit -> (t * t) Bottom.or_bottom val backward_div : ?prec:Precisions.t -> left:t -> right:t -> - result:t -> (t * t) Bottom.or_bottom + result:t -> unit -> (t * t) Bottom.or_bottom diff --git a/src/plugins/value/values/numerors/numerors_utils.ml b/src/plugins/value/values/numerors/numerors_utils.ml index 41d0d26e91ec68440dff2d5433b6afa7217a0efe..a58c8c8d170d7d26fbb485e8bf1a851ddcb52d4b 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 4a2ad32e1d8218f34ea4400efb4e5ca0868e32bc..ac1f5ae3e0d53038fe5f43faa07695778cc0f943 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 443a2dd4434c76dadcaf3a6cf0f9b5131db5be81..2832d06cb3586316b5fe2fa311b2cb2f05e7a3ce 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 1a20cd917ed8ff95f3ae8932e626fb135138d4bc..7a9b334f2ec5437b415b4e025bb99f43764c6b5f 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 d6d7995ae35610386a32b37fe3a7bf6b3c5c6740..b46b11002e82269573247c93bebfb48e5e102bb7 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value/values/offsm_value.mli b/src/plugins/value/values/offsm_value.mli index b99aabdacb0f896f330a0a948241ee504424727b..b2a963bb8380f82ab85ddd7820d2503900c9fc74 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 1a119b7433829124d0aab9784e0611a2baf90ee4..b9f59f90e277c5ef875801640ea6f98d3987a801 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 94dd0faa8383c843fc97a7e8093f992c51f74bd5..6b65d1dd98639942a7bf372efd48cdfa764778f6 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 99d6ff34751be79fb0497c2969ab6b8a4ecf1963..7e89f1fc751c739bdd1e262ae99ab1b6871f2136 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 4ac4f1fdc61ddfbd5ae23ef3888e8a54e446b079..b3bda1aa499dcd21b0049bda1d1455c520b7b5bb 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 2eac416c71b620af8e341185f9af48e442c05ac9..30bd4bf569db96191dec4434a144e2babc09b5d5 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 c1618e8154b728a3d292715ee911b7fba2990f1d..f649b3afaec0933f38dca69a78d1c427d9ec9f27 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 21270215c447bb13db449dfdc217555106b93c7f..a545314edfe9d57bca80a5b37ab7d504a507f032 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value_types/cvalue.mli b/src/plugins/value_types/cvalue.mli index 0b55de0ca3eea5e22593c6429141846bdc3f222e..a5c93243c0b2de1d3eeea18c3f4882e641652a3c 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/value_types/function_Froms.ml b/src/plugins/value_types/function_Froms.ml index 22972547f685f36d307b39a040a85557fc975bab..1828c61c02b8a292deb31a79b03a486f8d06ec1a 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 621de68ad767391902f57a6fe06e2479f53cc288..5ee9b0da8b699c87ca022627a010fddeb5a2f788 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 3d51f3fc5e659bdea41eb99ddf39b3913ec06df5..195934ed5d122f0c65f4f7588937b01c82ac3a2f 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 70cdd0134e692ec93f52d50d86f710c203f194b2..b9d9b89ea38bdbb6a58d283396e0af703b9d5667 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 d32bce7d3a8638327e8ff6b5b70a871d7c360739..63faec349a5f9d1741de1363f98e5dee1ed6ab9d 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 84d1ab8c0b913091639fa9f92320524d14666662..ba93233b11aecd14f15cb2d1cc2f355e6ee8d90a 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 4ad6d92e4a173af3dbd2fc44aba6e9f0baa88d3e..724f9d5b835abcaad649f350df881c8371fc8f52 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 cdd8f86c51b15e072ea718a42cf62740ba5e5143..f3226b1161b4a4a3d6dd83ec8e1de742b24188c8 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 92f57f012f4572c7efb29e6096013f40b7afcfe5..b08263306f6a9d8ac5964789283e2a0c0a50cf63 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 087b1a15b917b8d942367fe152f1a464e71903a3..57a6ae50df9ec3a551fbb382f493388a2e55dcff 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/variadic/Makefile.in b/src/plugins/variadic/Makefile.in index 09aa6cf0ce8edd403a348c7589fba305bcfa2e99..cd2531c7381dacebaf1137c1713a5056a41416b6 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-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/src/plugins/variadic/Variadic.mli b/src/plugins/variadic/Variadic.mli index 63877bb09234d9e8181597f6295fea645e065ae7..6fc2387eec6a8963e29eea1b53b5fb954a7d6d14 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/variadic/classify.ml b/src/plugins/variadic/classify.ml index a7fd07bd903055bc33815aa8928b0413ae558fff..fbe8497770d7b38725a7b4332cc0b06e50dada25 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -110,6 +110,20 @@ let mk_format_fun vi f_kind f_buffer ~format_pos = (* Classification *) (* ************************************************************************ *) +let is_frama_c_builtin name = + Ast_info.is_frama_c_builtin name || + Cil_builtins.Builtin_functions.mem name || + Extlib.string_prefix "__FRAMAC_" name (* Mthread prefixes *) + +let va_builtins = [ + "__builtin_va_start"; + "__builtin_va_copy"; + "__builtin_va_arg"; + "__builtin_va_end"; +] + +let is_va_builtin s = List.mem s va_builtins + let classify_std env vi = match vi.vname with (* fcntl.h - Overloads of functions *) | "fcntl" -> mk_overload env @@ -148,7 +162,9 @@ let classify_std env vi = match vi.vname with (* stropts.h *) | "ioctl" -> mk_overload env ["__va_ioctl_void" ; "__va_ioctl_int" ; "__va_ioctl_ptr"] - + | n when Extlib.string_prefix "__sync_" n -> Misc + | n when is_va_builtin n -> Misc + | n when is_frama_c_builtin n -> Builtin (* Anything else *) | _ -> Unknown diff --git a/src/plugins/variadic/configure.ac b/src/plugins/variadic/configure.ac index d73ff9e14c8b6a8cb1a578aa46423aa8be82fdef..efb25c160a0154bb50a5da27cc7f57dee7e13301 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-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat à l'énergie atomique et aux énergies # # alternatives) # # # diff --git a/src/plugins/variadic/environment.ml b/src/plugins/variadic/environment.ml index c00e98d5d201115637138a8ac91a90392a780070..a7b9b7e3441cc622b2429f6df79e168cf63d13a0 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/variadic/extends.ml b/src/plugins/variadic/extends.ml index 3cfcf413dd4e8aed69df19878834c2b6edbeb3aa..ad679c5785747e520d46810dcc1e14ef9f54832b 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/variadic/extends.mli b/src/plugins/variadic/extends.mli index 901713d331edb90f2bb2a34afe896ea4c6f49fa8..41c562c705b6a4ca3301976e8285e59048f8210c 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 045e562125866e1012f8dbc7f19b82ee0b67018d..eba2d018d3d56f4eb9b63bda8121a2c519e1e4dd 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 10218a76d6b724d37131f218c33535f982f0cafc..f70f54a50cc0fe14de08f185ea50e1df23990825 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 9f78468ae6bcd6d571396d6edf847baca99134cc..18a9daf1f5baa83d54d5f6be3ed0fe86cb8e841a 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 cf97574b1b291d5361dbaf3d5c18e79d81d75cc1..8c90c8331cc2fe1cafeeb449ff8496608ac59e93 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 f27b7431f4c47877fd5d507e623bd58776764d5c..0497eb14be710eda19092e54cbb26bf3114c1ad2 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 e7f0ff59522ab5a5417b451cd95cc2ed0a566ba8..4dda0922241558da4c10d237d6906aad2ebb61b6 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 cb83a6fb9fbaf5c6bccbfb2325b294a588413385..264a2b7b899adb2e234dde81cfe23f3351bc24e3 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 3bd4808e6122c543124a146408bcdb1974e45cf5..92a84573f51fc5410367898d0a894f22dc472a30 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/variadic/generic.ml b/src/plugins/variadic/generic.ml index 586d6041d62af0615c852996638b45362bfb81e5..556507ffe1fff4362f040a8fb8d7d4264190c233 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -120,7 +120,7 @@ let translate_va_builtin caller inst = (* Build the replacing instruction *) let mk_lval_exp lval = Cil.new_exp ~loc (Lval lval) in let mk_mem exp = mk_lval_exp (Cil.mkMem ~addr:exp ~off:NoOffset) in - let mk_cast exp typ = Cil.mkCast ~force:false ~e:exp ~newt:typ in + let mk_cast exp typ = Cil.mkCast ~force:false ~newt:typ exp in let src = mk_mem (mk_cast (mk_mem (mk_lval_exp va_list)) (TPtr (typ,[]))) in [ Set (lval, src, loc); @@ -173,7 +173,7 @@ let translate_call ~fundec ~ghost block loc mk_call callee pars = (* Translate the call *) let exp_vargs = Cil.mkAddrOrStartOf ~loc (Cil.var vargs) in - let new_arg = Cil.mkCast ~force:false ~e:exp_vargs ~newt:(vpar_typ []) in + let new_arg = Cil.mkCast ~force:false ~newt:(vpar_typ []) exp_vargs in let new_args = s_exps @ [new_arg] @ g_exps in let call = mk_call callee new_args in instrs @ [call] diff --git a/src/plugins/variadic/options.ml b/src/plugins/variadic/options.ml index 352a1faf08f2cb92b8667558b43e1e39593ecf64..9aef64f8ad3fd374a97f6ca8922009d5f45eda12 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/variadic/options.mli b/src/plugins/variadic/options.mli index 66476a9af69cd61eee146c75102b3a8e06418b9e..d5d963658af1415da29669d0096db47a0b8006db 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/variadic/register.ml b/src/plugins/variadic/register.ml index 73bf842cff4eaf7e93329f53df1a748f4308012e..63d76a324da37afe988e7ad0a76ccece7cc95cbd 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/variadic/replacements.ml b/src/plugins/variadic/replacements.ml index ff16032054668bb851749277de87c1587f946a07..9c8a6d241b345216d27ba706bf49ef9b7543369d 100644 --- a/src/plugins/variadic/replacements.ml +++ b/src/plugins/variadic/replacements.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/variadic/replacements.mli b/src/plugins/variadic/replacements.mli index 09539a4ab346b9dcc539cb77787ce186b32abb0e..492ceb9cc11a40e1817db470b1112e0f062b3b18 100644 --- a/src/plugins/variadic/replacements.mli +++ b/src/plugins/variadic/replacements.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) diff --git a/src/plugins/variadic/standard.ml b/src/plugins/variadic/standard.ml index 1db894c1d19b942e2cdf30e141e92f11ab772613..b454f7f11e4cd911d76231fe36be3c7c9652f246 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -134,7 +134,7 @@ let cast_arg i paramtyp exp = (i + 1) pretty_typ argtyp pretty_typ paramtyp end; - Cil.mkCast ~force:false ~e:exp ~newt:paramtyp + Cil.mkCast ~force:false ~newt:paramtyp exp (* cast a list of args to the tparams list of types and remove unused args *) diff --git a/src/plugins/variadic/tests/erroneous/oracle/variadic-builtin.res.oracle b/src/plugins/variadic/tests/erroneous/oracle/variadic-builtin.res.oracle index 348e8c477dabbdd59001acfa7a657eb14cb7aa1b..bf189af5926715a5665d71211f84b792dbffd641 100644 --- a/src/plugins/variadic/tests/erroneous/oracle/variadic-builtin.res.oracle +++ b/src/plugins/variadic/tests/erroneous/oracle/variadic-builtin.res.oracle @@ -1,5 +1,9 @@ +[variadic] tests/erroneous/variadic-builtin.i:1: + Declaration of variadic function Frama_C_show_each_warning. [variadic] tests/erroneous/variadic-builtin.i:1: Variadic builtin Frama_C_show_each_warning left untransformed. +[variadic] tests/erroneous/variadic-builtin.i:5: + Call to variadic builtin Frama_C_show_each_warning left untransformed. [kernel] tests/erroneous/variadic-builtin.i:6: Plug-in variadic aborted: unimplemented feature. You may send a feature request at https://git.frama-c.com/pub/frama-c/issues with: '[Plug-in variadic] The variadic plugin doesn't handle calls to a pointer to the variadic builtin Frama_C_show_each_warning.'. diff --git a/src/plugins/variadic/tests/known/oracle/printf.res.oracle b/src/plugins/variadic/tests/known/oracle/printf.res.oracle index cac34c3b81106e48fc46ce258937ba54cea5230e..b8b4149310dcfd70df60ca7b42a8bfa05e53588e 100644 --- a/src/plugins/variadic/tests/known/oracle/printf.res.oracle +++ b/src/plugins/variadic/tests/known/oracle/printf.res.oracle @@ -1,14 +1,14 @@ -[variadic] FRAMAC_SHARE/libc/wchar.h:265: +[variadic] FRAMAC_SHARE/libc/wchar.h:272: Declaration of variadic function fwprintf. -[variadic] FRAMAC_SHARE/libc/wchar.h:267: +[variadic] FRAMAC_SHARE/libc/wchar.h:274: Declaration of variadic function swprintf. -[variadic] FRAMAC_SHARE/libc/wchar.h:269: +[variadic] FRAMAC_SHARE/libc/wchar.h:276: Declaration of variadic function wprintf. -[variadic] FRAMAC_SHARE/libc/wchar.h:272: +[variadic] FRAMAC_SHARE/libc/wchar.h:279: Declaration of variadic function wscanf. -[variadic] FRAMAC_SHARE/libc/wchar.h:274: +[variadic] FRAMAC_SHARE/libc/wchar.h:281: Declaration of variadic function fwscanf. -[variadic] FRAMAC_SHARE/libc/wchar.h:276: +[variadic] FRAMAC_SHARE/libc/wchar.h:283: Declaration of variadic function swscanf. [variadic] FRAMAC_SHARE/libc/stdio.h:207: Declaration of variadic function fprintf. diff --git a/src/plugins/variadic/tests/known/oracle/printf_garbled_mix.res.oracle b/src/plugins/variadic/tests/known/oracle/printf_garbled_mix.res.oracle index 3cecd8f9b1e42365b8af2c9e3217c941bd59aea4..3ba86d9da3ae971fb31c76d3bfd3a967be0ddb5c 100644 --- a/src/plugins/variadic/tests/known/oracle/printf_garbled_mix.res.oracle +++ b/src/plugins/variadic/tests/known/oracle/printf_garbled_mix.res.oracle @@ -14,8 +14,6 @@ Declaration of variadic function sscanf. [variadic] FRAMAC_SHARE/libc/stdio.h:541: Declaration of variadic function dprintf. -[variadic] tests/known/printf_garbled_mix.c:8: - Variadic builtin Frama_C_show_each_nb_printed left untransformed. [variadic] tests/known/printf_garbled_mix.c:7: Translating call to printf to a call to the specialized version printf_va_1. [eva] Analyzing a complete application starting at main diff --git a/src/plugins/variadic/tests/known/oracle/swprintf.res.oracle b/src/plugins/variadic/tests/known/oracle/swprintf.res.oracle index 505fe9d8346afc035f367aaf1005fad87644e19c..326508d6ec1331114c74ad831beef0dcf890958c 100644 --- a/src/plugins/variadic/tests/known/oracle/swprintf.res.oracle +++ b/src/plugins/variadic/tests/known/oracle/swprintf.res.oracle @@ -1,14 +1,14 @@ -[variadic] FRAMAC_SHARE/libc/wchar.h:265: +[variadic] FRAMAC_SHARE/libc/wchar.h:272: Declaration of variadic function fwprintf. -[variadic] FRAMAC_SHARE/libc/wchar.h:267: +[variadic] FRAMAC_SHARE/libc/wchar.h:274: Declaration of variadic function swprintf. -[variadic] FRAMAC_SHARE/libc/wchar.h:269: +[variadic] FRAMAC_SHARE/libc/wchar.h:276: Declaration of variadic function wprintf. -[variadic] FRAMAC_SHARE/libc/wchar.h:272: +[variadic] FRAMAC_SHARE/libc/wchar.h:279: Declaration of variadic function wscanf. -[variadic] FRAMAC_SHARE/libc/wchar.h:274: +[variadic] FRAMAC_SHARE/libc/wchar.h:281: Declaration of variadic function fwscanf. -[variadic] FRAMAC_SHARE/libc/wchar.h:276: +[variadic] FRAMAC_SHARE/libc/wchar.h:283: Declaration of variadic function swscanf. [variadic] FRAMAC_SHARE/libc/stdio.h:207: Declaration of variadic function fprintf. diff --git a/src/plugins/variadic/tests/known/oracle/wchar.res.oracle b/src/plugins/variadic/tests/known/oracle/wchar.res.oracle index b0188cdf1525b78c8f76532497dad499c2bfd2ff..fb03056d82e92a3bd583652a7ce2d7835c903477 100644 --- a/src/plugins/variadic/tests/known/oracle/wchar.res.oracle +++ b/src/plugins/variadic/tests/known/oracle/wchar.res.oracle @@ -1,14 +1,14 @@ -[variadic] FRAMAC_SHARE/libc/wchar.h:265: +[variadic] FRAMAC_SHARE/libc/wchar.h:272: Declaration of variadic function fwprintf. -[variadic] FRAMAC_SHARE/libc/wchar.h:267: +[variadic] FRAMAC_SHARE/libc/wchar.h:274: Declaration of variadic function swprintf. -[variadic] FRAMAC_SHARE/libc/wchar.h:269: +[variadic] FRAMAC_SHARE/libc/wchar.h:276: Declaration of variadic function wprintf. -[variadic] FRAMAC_SHARE/libc/wchar.h:272: +[variadic] FRAMAC_SHARE/libc/wchar.h:279: Declaration of variadic function wscanf. -[variadic] FRAMAC_SHARE/libc/wchar.h:274: +[variadic] FRAMAC_SHARE/libc/wchar.h:281: Declaration of variadic function fwscanf. -[variadic] FRAMAC_SHARE/libc/wchar.h:276: +[variadic] FRAMAC_SHARE/libc/wchar.h:283: Declaration of variadic function swscanf. [variadic] FRAMAC_SHARE/libc/stdio.h:207: Declaration of variadic function fprintf. diff --git a/src/plugins/variadic/translate.ml b/src/plugins/variadic/translate.ml index 7508c434ecc9a43c3de56d6f184157739d8e8dac..7fbe6729bd9905c99560892afe5febe429201c58 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -27,16 +27,7 @@ module Typ = Extends.Typ (* List of builtin function names to translate *) -let va_builtins = [ - "__builtin_va_start"; - "__builtin_va_copy"; - "__builtin_va_arg"; - "__builtin_va_end"] - -let is_framac_builtin vi = - Ast_info.is_frama_c_builtin vi.vname || - Extlib.string_prefix "__FRAMAC_" vi.vname (* Mthread prefixes *) - +let is_framac_builtin vi = Classify.is_frama_c_builtin vi.vname (* In place visitor for translation *) @@ -53,8 +44,7 @@ let translate_variadics (file : file) = method! vglob glob = begin match glob with - | GFunDecl(_, vi, _) | GFun ({svar = vi}, _) - when not (is_framac_builtin vi) -> + | GFunDecl(_, vi, _) | GFun ({svar = vi}, _) -> if not (Table.mem classification vi) then begin let vf = Classify.classify env vi in Option.iter (Table.add classification vi) vf @@ -87,15 +77,16 @@ let translate_variadics (file : file) = (* Translate types and signatures *) method! vglob glob = begin match glob with - | GFunDecl(_, vi, _) when is_framac_builtin vi -> - Self.result ~level:2 ~current:true - "Variadic builtin %s left untransformed." vi.vname; - Cil.SkipChildren - | GFunDecl(_, vi, _) -> - if Table.mem classification vi then - Generic.add_vpar vi; - Cil.DoChildren + (match Table.find_opt classification vi with + | None -> Cil.DoChildren (* may transform the type *) + | Some { vf_class = Builtin } -> + Self.result ~level:2 ~current:true + "Variadic builtin %s left untransformed." vi.vname; + Cil.SkipChildren + | Some _ -> + Generic.add_vpar vi; + Cil.DoChildren) | GFun ({svar = vi} as fundec, _) -> if Table.mem classification vi then begin @@ -147,6 +138,10 @@ let translate_variadics (file : file) = | Overload o -> Standard.overloaded_call ~fundec o | Aggregator a -> Standard.aggregator_call ~fundec ~ghost a | FormatFun f -> Standard.format_fun_call ~fundec env f + | Builtin -> + Self.result ~level:2 ~current:true + "Call to variadic builtin %s left untransformed." f.vname; + raise Not_found | _ -> raise Standard.Translate_call_exn in call_translator block loc mk_call vf args @@ -156,7 +151,7 @@ let translate_variadics (file : file) = in begin match i with | Call(_, {enode = Lval(Var vi, _)}, _, _) - when List.mem vi.vname va_builtins -> + when Classify.is_va_builtin vi.vname -> File.must_recompute_cfg fundec; Cil.ChangeTo (Generic.translate_va_builtin fundec i) | Call(lv, {enode = Lval(Var vi, NoOffset)}, args, loc) -> diff --git a/src/plugins/variadic/va_build.ml b/src/plugins/variadic/va_build.ml index 2fd7c9f260379054ac9af4fb6371e12d047d4e70..b9d805e6c3cff55ce526755739d1d5eb04648b56 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 70063338550ae6ea4ca452d6c679b1c8649128ae..46306d5736beb689c2deb1a6243877c295487d29 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) @@ -26,6 +26,8 @@ open Cil_types type variadic_class = | Unknown (** Function declared and not known by Frama-C *) + | Builtin + (** Function registered as a builtin function in Cil_builtins *) | Defined (** Function for which we have the definition in the project *) | Misc diff --git a/src/plugins/wp/AssignsCompleteness.ml b/src/plugins/wp/AssignsCompleteness.ml index 25db9a6e85e9a6a4157343361a9aaeca4d4a7ffe..e3454c40692c3fdd2910334565fdef1b3e17a476 100644 --- a/src/plugins/wp/AssignsCompleteness.ml +++ b/src/plugins/wp/AssignsCompleteness.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/AssignsCompleteness.mli b/src/plugins/wp/AssignsCompleteness.mli index 8fa55bec1d546c61fddd6cdd9e6a7bc65c2ee968..e76b56dfc4acf0d9300d5663a48b663cde10e285 100644 --- a/src/plugins/wp/AssignsCompleteness.mli +++ b/src/plugins/wp/AssignsCompleteness.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Auto.ml b/src/plugins/wp/Auto.ml index 289a57693634753e49b439b0cde5da0c16f90895..ee0fe1759f47e01cebf45c413895292b308c2019 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Auto.mli b/src/plugins/wp/Auto.mli index 6b5234198a8d8392f8666e32b77c33cfaf0047fa..5b152472550863ebfd12f467341177e9ddd6d2c8 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 -> strategy +val havoc : ?priority:float -> 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/Cache.ml b/src/plugins/wp/Cache.ml index afbda25944dc4577d6197d92ec775b88976c69d3..be67d7fbc64588fa81f58958e7106147cdac3753 100644 --- a/src/plugins/wp/Cache.ml +++ b/src/plugins/wp/Cache.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Cache.mli b/src/plugins/wp/Cache.mli index 62ce8ec540b2696d7a8fd52eaa9fd1a5ec1695e4..7e40ca25e52f63f33dfdfda8c61d0b212b2a7e67 100644 --- a/src/plugins/wp/Cache.mli +++ b/src/plugins/wp/Cache.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/CfgCompiler.ml b/src/plugins/wp/CfgCompiler.ml index 5c445134f3cd8ab06163481f63a13d3397ad68d2..bd12d7d76ce4e0043b660f22c7da46c18b53e8f7 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 18cae95917740113d3b85346859604f50983682c..5f931e50dfe305fd06e13e210df84fd086b4dee5 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 27904b616258b6a4b9830974c0a6dee8cc32b874..5f5c5ad8df01dd8e53c3756ee62c26eae3b72846 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Cfloat.mli b/src/plugins/wp/Cfloat.mli index c685e9139ea638eadb6cf2a49ddc946c0033e8f1..3d605ec0411d2d9d5473832150cd44be2ae75f03 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Cint.ml b/src/plugins/wp/Cint.ml index dbba575d2a09e5b5a7d8186869eaeece7f6c9c95..a796a6045df2e579cdd00f58e6e40d76d997cf0c 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Cint.mli b/src/plugins/wp/Cint.mli index 99820019697107cb134debd9a10eb84b85b664ed..b4868c855f417c28f2984ccc3c879795ef2540d1 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 5168461000456cd1bbf1eba64856206c6d7706ed..8307a1c8861648878ca793c587c617f00377e31e 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 e0f21dee6dd8b4d8508ce384d796d051159f3142..4048aa51bff9f2ed941459fe69b1053b2b425a22 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 96b326d43d9dffbadd0e8b9d0631ebae354f2c03..bb51d8d1d63c55ec236320720d4bad3babdc0ad9 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 b20b1b7cf5057b354237eb16a68cddd63c491a92..eea72f1e896279dd5ce3c2f4f44d78c8cd1d852f 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 487949a2712c7442b03d46830af062890017d121..2a089e418a406d92bb4eab9cd2ed4d275108a84f 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/CodeSemantics.mli b/src/plugins/wp/CodeSemantics.mli index f24b00de4bc66153c3ae96094bbb5b2e48e8cacc..122552cdb98279338e315017acf777f8b7dbd0ce 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 1ff6550e70594e0042b4520ed530a9c3a98ef8cd..f7386b5cf3ba2b1baab0718e6c4e62c3809332cd 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 3e6aa0e00a2f60811af8053cbc273ec3539c9538..9920a7c62d51da0a5685be8062930e839c835d6a 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 f1e2210e1908d8f97bd2660404d664ba09968074..5cfc864f614b1301775c79c98eacd4c9414b650a 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 bd44d7dd8961f543b51077cf41c9f2b37f41ad6a..8c785d649f05d0692308eb288347db21c6952cfd 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 47574ee58370f4c26c1de04f4ff2dccd581f2e3d..c61a714a1297b48227d80514487246a51f880d35 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -76,7 +76,7 @@ module LIT = WpContext.Generator(STR) define_lemma { l_name = prefix ^ "_literal" ; l_cluster = cluster () ; - l_kind = `Axiom ; + l_kind = Admit ; l_types = 0 ; l_forall = [] ; l_triggers = [] ; diff --git a/src/plugins/wp/Cstring.mli b/src/plugins/wp/Cstring.mli index 13a49663e99d64e242b0de50fe51d03b4f094b8a..af4f5f6c0af1ff101db91c01cfa45836acc48652 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 1e0e459349b902e0cfca8761ebd0e9f1d3f2358a..5c8b21c9784d4b7ad35602673189459350cb5cae 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -157,7 +157,7 @@ module OPAQUE_COMP_BYTES_LENGTH = WpContext.Generator(Cil_datatype.Compinfo) } ; let min_size = if Cil.acceptEmptyCompinfo () then e_zero else e_one in Definitions.define_lemma { - l_kind = `Axiom ; l_name ; + l_kind = Admit ; l_name ; l_types = 0 ; l_triggers = [] ; l_forall = [] ; l_cluster = Definitions.compinfo c ; l_lemma = Lang.F.(p_leq min_size (e_fun size [])) diff --git a/src/plugins/wp/Cvalues.mli b/src/plugins/wp/Cvalues.mli index 85276cb83150fc24443ec88f4ec74f72a058fbce..01fd0ed8bdff0d9922e7dca7b4f84b41701d5838 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 b8bd00cd0e652d904b8ba5831a58fb8dc445377b..57c44a2ff26ae2f58260256a85c5c249c0801f79 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -53,7 +53,7 @@ type cluster = { and dlemma = { l_name : string ; l_cluster : cluster ; - l_kind : lkind ; + l_kind : predicate_kind ; l_types : int ; l_forall : var list ; l_triggers : trigger list list (* OR of AND triggers *) ; diff --git a/src/plugins/wp/Definitions.mli b/src/plugins/wp/Definitions.mli index 4955747af42bdcc150ba05656f7178c419aeefcb..4bfe3071b85c5983d75af0e16cb4aa9835eadc73 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -48,7 +48,7 @@ type typedef = (tau,field,lfun) Qed.Engine.ftypedef type dlemma = { l_name : string ; l_cluster : cluster ; - l_kind : lkind ; + l_kind : predicate_kind ; l_types : int ; l_forall : var list ; l_triggers : trigger list list ; (** OR of AND-triggers *) diff --git a/src/plugins/wp/Factory.ml b/src/plugins/wp/Factory.ml index 8fea80af863b6d2c7203f5b57d4e5937d3167322..cdb4593efb4ac2c9aa6813f5dab05f961a3730df 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 e45f966ff83524b06b9706fab9436b7a648242e8..07df6d8730678c5a7341340e388aafc76db23630 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 a85fd1ba447d204072a9d4a7647bd25d7cd7def7..bfa668f2ab61f0d6c9939d4df21b47a47daf2db7 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Filtering.mli b/src/plugins/wp/Filtering.mli index eb49f594fe7bffa9e5a4596ca7c8136d38994398..dc2fd0907f9e4930a96cd032529bb12eb6ead432 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 0198e11baab73ddf075ac879d968a21867a0e00a..04438cad7bb6d9916e6091d372b3e96a95e6495c 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 9e2e9a739a4c629dd7af9e0d3ef293b7de53281d..6a803dd964f6d6dc26b9fd070b3d807c2c7589a4 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 839738d3d159100d04001ef4e46dab1f2d9a77fb..4b5d51804c65821460d0d5ee8397f6c39468e130 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 ef3b2b2dcee2e94f35251f971a83798e795bf564..aba5b739ecae6a2ef8452a8b8ed58bd6735cf2cd 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 143a4b102091f3b14c9f42c623da65b5358c9ad6..69f26e46f87ebc74cf41b20ba1e004c129c15c28 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/GuiComposer.mli b/src/plugins/wp/GuiComposer.mli index 0da767fdef2725a78d0902b9623eb303be7b7974..8859bd5847a2fa41ff0d422e67cffc4cbf7887d1 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 4e28f2e8957422a891e016663e4e583ec0d5c2fb..1110ca3cdaf26f0de514c28f13e0783807879895 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 9d912d61ffe92012713f45d0e91441d23b6a5c29..2deacd26956ff3257821861af92d3fe2f1108263 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 324803ba8444f4b4f6fdc610bee0474e68ef4406..f4ddd156c273631c73bb02b8cd47e8c5bce39ea7 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/GuiGoal.mli b/src/plugins/wp/GuiGoal.mli index 6c3c7f81ac292cdb30ae96f2ed7c9459182377a7..b4ae60c306702e636cba1f634c78d4301a29384d 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 17d2f761fce3d0b0203071e2d2d0ba99fc66f515..5bd26da272aae9c91b796182fc56c58b73e91fb9 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 40c0ce443ddaf8a41a46550caa040e23f7fbb1b6..9145d95ec95ab1b509ba18834e9df4a2a9500f88 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 5c04d8a2c0b6904ea815f6e2ebf5b983bdfca50f..890ac610af824bce32e788d3345a17bf97a7755b 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 aff35692ff6d35fad12bc05b08699727d07b4016..efc6964f8e491956c5dc7c08857fbb676dd545cf 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 320b6ed8d9d8b5cede3955092bc39d4e63381c2e..aebf56abb66ae105467c5a63c4667bcc9c9f9fed 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/GuiPanel.mli b/src/plugins/wp/GuiPanel.mli index 8b631a0a1d14d16316f7dfd99dc4f3c99601f37b..8228c3661b1b49037f47f3719f303659f7ddd806 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 244933459f1d31e77a82754a9195632e0e64f65c..70314a4e68e2d656bfc01ba45362f1de042456ee 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 f82f6b0edef297903eacd99c29f93aa93a558926..b784c9e553dd4e4d9ab6cd2e4b328763cec75314 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 e89389d6cdf08deac6f6f1b7f749121863b9e658..2105cb52f7956f16fab36c63e30a3c9c88599b01 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 6cc37b2e8be081e06ae2ded0f0c9dc1fe9e58b26..3065fcd6751be71382b89983638ba12313c61a10 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 8792a599e948d846679b987f97d91a0f52fa1649..fdb29988b39ecae1b81bc3f91b8cd17ccadb008c 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/GuiSequent.mli b/src/plugins/wp/GuiSequent.mli index d61727ffce9236feee89588a5b94d0257237bce4..c1b0a2a4f32bf4c0379817ac3b7e8534829ab853 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/GuiSource.ml b/src/plugins/wp/GuiSource.ml index 48daaecbb9ba83ddd65eac09c3e8be7d4066a658..93478aa47612a66c288aaf0fe89f1f56de2d358c 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 a1fb0251ed1d50a46e85602e7829346d9782e8b9..41f9f46a5897a1baa3b92c8e2c793bd8a45064cf 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 550a6caed14f304d3c20aae06570cec7a5b2f9ed..cd14d8126cfd5ca69012706ae4ba04ef3ff8c631 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/GuiTactic.mli b/src/plugins/wp/GuiTactic.mli index 26ad3ff67a81099e8dbd620bd3706b434e73b173..bd880f03e2248f7db55eb0026f9f4023f8398609 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Lang.ml b/src/plugins/wp/Lang.ml index 61a8123ba9d1609fb81a18b3de54a51154c9d124..4e5934aecd7ab1aea3c6254f8b40793c8159f9c6 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Lang.mli b/src/plugins/wp/Lang.mli index 0b9750495aa7d679cb4a1b61c8be1f222de1820b..d712813651f3837d6abaa02872976305425a8189 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Layout.ml b/src/plugins/wp/Layout.ml index e7246abceb43a05edbd0625d2b67cf9fa7082488..f001bf763bb000df5c4e3e6c3ca774711c7c3fbf 100644 --- a/src/plugins/wp/Layout.ml +++ b/src/plugins/wp/Layout.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Layout.mli b/src/plugins/wp/Layout.mli index 32453d081f33ec6ada826a828db85173123d28c4..71bfa8c7ac95cdc7d7e1780696fab3758ef43d1d 100644 --- a/src/plugins/wp/Layout.mli +++ b/src/plugins/wp/Layout.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 d45c2972b5e56da059fee553b1cc137f43a7bb32..5d26dea8e0d2d894051787e19ceefe134df84ad1 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 87116a58b21ee94fe3e23e689e2376a3a97fd8dc..fc7d2f723d45cdbb5a47d85e153eb2bf96de630b 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 05023456bacf60a05e351d3447abe7b03d2b1822..e5f68039c692a7b87e7853dfc76e18b8bc3c6a73 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 fae1f554c4f0caef9b095d2f80382e0f700caa65..99b91b3f0d3cd7b25a8e957d6bea37552eb6b7a0 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 e08114243391f957a51271c62bc30c5e258145dd..5808c304bcfa208cdfd8a5cb7d34bf2f999b9536 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 eb0c6d9045dd42be3f14bf07e440d8c4b3e1da23..2ae96f291fc9cf31a4a5700ed3d4dc41a3be472b 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 668d62a29af65aba6c17c1650a2172fb786f1d27..d2689aaefd605a6f52d8158f6d0807766fa581a4 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -543,7 +543,7 @@ struct let trigger = Trigger.of_term result in Definitions.define_lemma { l_name = name ; - l_kind = `Axiom ; + l_kind = Admit ; l_types = ldef.d_types ; l_forall = ldef.d_params ; l_triggers = [[trigger]] ; @@ -725,7 +725,7 @@ struct (* Re-compile final cases *) let cases = List.map (fun (case,labels,types,lemma) -> - compile_lemma cluster ~kind:`Axiom case types labels lemma) + compile_lemma cluster ~kind:Admit case types labels lemma) cases in Definitions.update_symbol { ldef with d_definition = Inductive cases } ; type_for_signature l ldef sigp (* sufficient *) ; SIG sigm @@ -774,7 +774,7 @@ struct { l_name ; l_types = 0 ; - l_kind = `Axiom ; + l_kind = Admit ; l_triggers = [frame.triggers] ; l_forall = vs ; l_cluster = cluster ; @@ -805,9 +805,9 @@ struct Wp_parameters.warning ~source:l.lem_position "Lemma '%s' has labels, consider using global invariant instead." l.lem_name ; + let { tp_kind = kind ; tp_statement = p } = l.lem_predicate in Definitions.define_lemma - (compile_lemma c ~kind:l.lem_kind - l.lem_name l.lem_types l.lem_labels l.lem_property) + (compile_lemma c ~kind l.lem_name l.lem_types l.lem_labels p) let define_axiomatic cluster ax = begin diff --git a/src/plugins/wp/LogicCompiler.mli b/src/plugins/wp/LogicCompiler.mli index c99371121b6f6c0244ba24909dd7d777cdbb20f3..a93d2f9da01a0a9ae4143667c3e3774e43f9bee1 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 2f18879a02c939e8fbde0266c9c982a3888bbec7..654ecfa161c9ec36f57379ff101be547cecbecc1 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 f50fa7e27823cd26eb347be6b007b9a436ab9a64..464da213ab597c15b8b493ef05f8c9ea23948ff4 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 b3533aefe3d26836aebd9905f78071ee46374e4f..c499f8273512dfd0d37bdadeb87968c4c66e8366 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -57,15 +57,12 @@ let trim name = (* --- Definition Blocks --- *) (* -------------------------------------------------------------------------- *) -type lkind = [ `Axiom | `Check | `Lemma ] - type logic_lemma = { lem_name : string ; - lem_kind : lkind ; lem_position : Filepath.position ; lem_types : string list ; lem_labels : logic_label list ; - lem_property : predicate ; + lem_predicate : toplevel_predicate ; lem_depends : logic_lemma list ; (* global lemmas declared before in AST order (in reverse order) *) lem_attrs : attributes ; @@ -194,30 +191,21 @@ let pp_profile fmt l = (* -------------------------------------------------------------------------- *) let ip_lemma l = - let open Property in - let mk_prop, kind = - match l.lem_kind with - | `Axiom -> Property.ip_axiom, Admit - | `Lemma -> Property.ip_lemma, Assert - | `Check -> Property.ip_lemma, Check - in - mk_prop - {il_name = l.lem_name; il_labels = l.lem_labels; - il_args = l.lem_types; il_loc = (l.lem_position, l.lem_position); - il_attrs = l.lem_attrs; - il_pred = Logic_const.toplevel_predicate ~kind l.lem_property} + Property.ip_lemma { + il_name = l.lem_name; il_labels = l.lem_labels; + il_args = l.lem_types; il_loc = (l.lem_position, l.lem_position); + il_attrs = l.lem_attrs; + il_pred = l.lem_predicate; + } let lemma_of_global ~context = function - | Dlemma(name,axiom,labels,types,pred,attrs,loc) -> - let kind = if axiom then `Axiom else - if pred.tp_kind = Check then `Check else `Lemma in + | Dlemma(name,labels,types,pred,attrs,loc) -> { lem_name = name ; lem_position = fst loc ; lem_types = types ; lem_labels = labels ; - lem_kind = kind ; - lem_property = pred.tp_statement ; + lem_predicate = pred ; lem_depends = context ; lem_attrs = attrs ; } @@ -418,7 +406,7 @@ class visitor = | Dlemma _ -> let lem = lemma_of_global database.proofcontext global in register_lemma database self#section lem ; - if lem.lem_kind <> `Check then + if Logic_utils.use_predicate lem.lem_predicate.tp_kind then database.proofcontext <- lem :: database.proofcontext ; SkipChildren @@ -555,13 +543,9 @@ let pp_decl fmt d l = pp_sig fmt kind l ; end -let pp_kind fmt = function - | `Axiom -> Format.pp_print_string fmt "axiom" - | `Lemma -> Format.pp_print_string fmt "lemma" - | `Check -> Format.pp_print_string fmt "check lemma" - let pp_lemma fmt l = - Format.fprintf fmt " * %a '%s'@\n" pp_kind l.lem_kind l.lem_name + Format.fprintf fmt " * %a '%s'@\n" + Cil_printer.pp_lemma_kind l.lem_predicate.tp_kind l.lem_name let get_name l = compute () ; compute_logicname l @@ -596,7 +580,7 @@ let dump () = SMap.iter (fun l (lem,s) -> Format.fprintf fmt " * %a '%s' in %a@\n" - pp_kind lem.lem_kind + Cil_printer.pp_lemma_kind lem.lem_predicate.tp_kind l pp_section s) d.lemmas ; Format.fprintf fmt "-------------------------------------------------@." ; diff --git a/src/plugins/wp/LogicUsage.mli b/src/plugins/wp/LogicUsage.mli index 3874d985157677f4047e258138dcc1e628a3f4cb..cc925fa2ff2bddb3b19ce76e79c014cca0839ebe 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -30,15 +30,12 @@ open Clabels val basename : varinfo -> string (** Trims the original name *) -type lkind = [ `Axiom | `Check | `Lemma ] - type logic_lemma = { lem_name : string ; - lem_kind : lkind ; lem_position : Filepath.position ; lem_types : string list ; lem_labels : logic_label list ; - lem_property : predicate ; + lem_predicate : toplevel_predicate ; lem_depends : logic_lemma list ; (** in reverse order *) lem_attrs : attributes ; } diff --git a/src/plugins/wp/Makefile.in b/src/plugins/wp/Makefile.in index 5fbddfa3c16148ddf51a7f458ace805463df93ec..d78ac2bd27308ea2531701755545426636c607eb 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-2020 # +# Copyright (C) 2007-2021 # # CEA (Commissariat a l'energie atomique et aux energies # # alternatives) # # # diff --git a/src/plugins/wp/Matrix.ml b/src/plugins/wp/Matrix.ml index 4c4cdad80fcafd8afc30db6c4bda4fc1b939f621..3b1ca91772e1ebbeb8d3f8ea4d875257bbc6040f 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 7ee7ac37f5589fbeff28cd3d565086f878014624..277f469bdda6a6f83be0cd506ecc59008053fbd4 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 1edfc12dcab461720cf3ec55016ba44aacfadb89..b69ac15ba6b43f85c140595c3a0889cb83b85dac 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/MemEmpty.mli b/src/plugins/wp/MemEmpty.mli index 2da968fa507399ed39bb1b3e8c106425ee1477b6..34bd3d5c91376cb6645361bdd09bb024c008d6e0 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/MemLoader.ml b/src/plugins/wp/MemLoader.ml index 9711954f9aa5c0adb3b10230c7cd1567a9bb147d..f3c129e00646eae99fa6f829d360c8066caeeb39 100644 --- a/src/plugins/wp/MemLoader.ml +++ b/src/plugins/wp/MemLoader.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -155,7 +155,7 @@ struct prefix name Chunk.pretty chunk i in let l_lemma = F.p_hyps conditions (p_equal value1 value2) in Definitions.define_lemma { - l_kind = `Axiom ; + l_kind = Admit ; l_name ; l_types = 0 ; l_triggers ; l_forall = F.p_vars l_lemma ; @@ -293,7 +293,7 @@ struct d_cluster = cluster ; } ; Definitions.define_lemma { - l_kind = `Axiom ; + l_kind = Admit ; l_name = name ; l_types = 0 ; l_forall = F.p_vars lemma ; l_triggers = [[Trigger.of_term va]] ; @@ -390,7 +390,7 @@ struct let is_init_r = M.is_init_range sigma obj loc e_one in let lemma = p_equiv is_init_p is_init_r in Definitions.define_lemma { - l_kind = `Axiom ; + l_kind = Admit ; l_name = name ^ "_range" ; l_types = 0 ; l_forall = params ; l_triggers = [] ; @@ -438,7 +438,7 @@ struct let is_init_r = M.is_init_range sigma obj loc len in let lemma = p_equiv is_init_p is_init_r in Definitions.define_lemma { - l_kind = `Axiom ; + l_kind = Admit ; l_name = name ^ "_range" ; l_types = 0 ; l_forall = params ; l_triggers = [] ; diff --git a/src/plugins/wp/MemLoader.mli b/src/plugins/wp/MemLoader.mli index 706c697ee04e17f556e86f946203f9537ef87077..a9e1e89c9885214ca1410311f3f440a68a71bcb7 100644 --- a/src/plugins/wp/MemLoader.mli +++ b/src/plugins/wp/MemLoader.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/MemMemory.ml b/src/plugins/wp/MemMemory.ml index 3455e01468dc4cfa72173d8501ece03aa9fbf023..cc27b7e46b1b1fabf531ae155d018ae3b8fce248 100644 --- a/src/plugins/wp/MemMemory.ml +++ b/src/plugins/wp/MemMemory.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/MemMemory.mli b/src/plugins/wp/MemMemory.mli index 318d4483ddd1481e4ac9306b25da910fc8f8cb88..a9e0a79f381915296972c235ce116074fe3696c8 100644 --- a/src/plugins/wp/MemMemory.mli +++ b/src/plugins/wp/MemMemory.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/MemRegion.ml b/src/plugins/wp/MemRegion.ml index c5a388526d6ca292e7b1026f07f821f7b87b7672..074692a5c4436985a790dd7d94dbcab7db1fc48d 100644 --- a/src/plugins/wp/MemRegion.ml +++ b/src/plugins/wp/MemRegion.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -193,14 +193,14 @@ let constructor ~basename ~params ~index ~addrof ~consistent = } ; Definitions.define_lemma { l_cluster = cluster ; - l_kind = `Axiom ; + l_kind = Admit ; l_name = Printf.sprintf "addrof_%s_%d" basename id ; l_forall = params ; l_types = 0 ; l_triggers = [] ; l_lemma = p_addrof ; } ; Definitions.define_lemma { l_cluster = cluster ; - l_kind = `Axiom ; + l_kind = Admit ; l_name = Printf.sprintf "consistent_%s_%d" basename id ; l_forall = params ; l_types = 0 ; l_triggers = [] ; l_lemma = p_consistent ; @@ -208,7 +208,7 @@ let constructor ~basename ~params ~index ~addrof ~consistent = if p_index != F.p_true then Definitions.define_lemma { l_cluster = cluster ; - l_kind = `Axiom ; + l_kind = Admit ; l_name = Printf.sprintf "index_%s_%d" basename id ; l_forall = params @ [k] ; l_types = 0 ; l_triggers = [] ; l_lemma = p_index ; diff --git a/src/plugins/wp/MemRegion.mli b/src/plugins/wp/MemRegion.mli index 2da968fa507399ed39bb1b3e8c106425ee1477b6..34bd3d5c91376cb6645361bdd09bb024c008d6e0 100644 --- a/src/plugins/wp/MemRegion.mli +++ b/src/plugins/wp/MemRegion.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 224fdad715bf2141892206b531aec6e1461acb2e..6eb29aa7425b3634b0d6844c9d3c8d8747dfbedd 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -241,7 +241,7 @@ module OPAQUE_COMP_LENGTH = WpContext.Generator(Cil_datatype.Compinfo) d_definition = Logic result ; } ; Definitions.define_lemma { - l_kind = `Axiom ; + l_kind = Admit ; l_name = "Positive_Length_of_" ^ Lang.comp_id c ; l_types = 0 ; l_triggers = [] ; l_forall = [] ; l_cluster = Definitions.compinfo c ; @@ -460,7 +460,7 @@ module STRING = WpContext.Generator(LITERAL) let alloc = F.e_get m base in (* The size is alloc-1 *) let sized = Cstring.str_len cst (F.e_add alloc F.e_minus_one) in Definitions.define_lemma { - l_kind = `Axiom ; + l_kind = Admit ; l_name = name ; l_types = 0 ; l_triggers = [] ; l_forall = [] ; l_lemma = p_forall [a] (p_imply m_linked sized) ; @@ -471,7 +471,7 @@ module STRING = WpContext.Generator(LITERAL) let name = prefix ^ "_region" in let re = - Cstring.str_id cst in Definitions.define_lemma { - l_kind = `Axiom ; + l_kind = Admit ; l_name = name ; l_types = 0 ; l_triggers = [] ; l_forall = [] ; l_lemma = p_equal (e_fun f_region [base]) (e_int re) ; l_cluster = Cstring.cluster () ; @@ -488,7 +488,7 @@ module STRING = WpContext.Generator(LITERAL) let v = F.e_get (e_var m) addr in let read = F.p_equal c v in Definitions.define_lemma { - l_kind = `Axiom ; + l_kind = Admit ; l_name = name ; l_types = 0 ; l_triggers = [] ; l_forall = [m;i] ; l_cluster = Cstring.cluster () ; @@ -512,7 +512,7 @@ module STRING = WpContext.Generator(LITERAL) } ; Definitions.define_lemma { l_name = prefix ^ "_base" ; - l_kind = `Axiom ; + l_kind = Admit ; l_types = 0 ; l_triggers = [] ; l_forall = [] ; l_lemma = F.p_lt base F.e_zero ; l_cluster = Cstring.cluster () ; @@ -546,7 +546,7 @@ module BASE = WpContext.Generator(Varinfo) let name = prefix ^ "_region" in let re = if x.vglob then 0 else if x.vformal then 1 else 2 in Definitions.define_lemma { - l_kind = `Axiom ; + l_kind = Admit ; l_name = name ; l_types = 0 ; l_triggers = [] ; l_forall = [] ; l_lemma = p_equal (e_fun f_region [base]) (e_int re) ; l_cluster = cluster_globals () ; @@ -570,7 +570,7 @@ module BASE = WpContext.Generator(Varinfo) let m_linked = p_call p_linked [m] in let base_size = p_equal (F.e_get m base) size in Definitions.define_lemma { - l_kind = `Axiom ; + l_kind = Admit ; l_name = name ; l_types = 0 ; l_triggers = [] ; l_forall = [] ; l_lemma = p_forall [a] (p_imply m_linked base_size) ; @@ -591,7 +591,7 @@ module BASE = WpContext.Generator(Varinfo) let m_init = p_call p_cinits [m] in let init_prop = p_forall [a] (p_imply m_init init_access) in Definitions.define_lemma { - l_kind = `Axiom ; + l_kind = Admit ; l_name = prefix ^ "_init" ; l_types = 0 ; l_triggers = [] ; l_forall = [] ; l_lemma = init_prop ; diff --git a/src/plugins/wp/MemTyped.mli b/src/plugins/wp/MemTyped.mli index 1f0c64d951389d60e8df519d52063a5b07aa3c48..f4b183d92417284656c53e87feb0867ec76c1d67 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 ddaef66c490c6877fd3924018671d699c41614f9..2776f437fd700dead55fdce850beec4d888f95fb 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/MemVar.mli b/src/plugins/wp/MemVar.mli index 45c063aa9f41fe0d907f93f9910f107e0256a34e..41de1b22611dff79ff7246913afeb93c37388d2b 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 ebfae47bf09c5fddcd2f80bb06b6adc478061602..d460cccd7f124c2c0840ec7db27d66ccd05d5677 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/MemZeroAlias.mli b/src/plugins/wp/MemZeroAlias.mli index 2da968fa507399ed39bb1b3e8c106425ee1477b6..34bd3d5c91376cb6645361bdd09bb024c008d6e0 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 b9074b52fab472f4d6611bd53490b8a1f4bc573a..e337a19633147beae582c55553e6e252bbd5da89 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 95cb1638ff8af641e39d534643fb16147dea8a44..c0698fa9ea1d38761283b3d675fb82ca29cc1375 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 682744de3ff1e09c0ff147228f5075afddcf4d8c..4bf5971e1de591ca9a5fb77d77dfc7e9feeee532 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 0133d75c44b2921ab65387472cf1d3bb92eea566..b2ff770e42c3e88615bb6d5d206ca0dfb6de6f87 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 d4f2f14be65ebe50ed4366eb09eb04021a17730b..90f0d8dd947345d777ad4efdee2dbd1a2a29d955 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 26ce6569a67af3572931f1ff5aaff58839614270..0f36df7e0c30bb8cdd9d6c9a85f7298e31b61687 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 d837200d523ec79fbd16a4112c5e9a452e839fbf..d85f26a5de85fa223ce8040e3728f3721f62d08d 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 7420c3fe33154caaed9369b7b4148955e613d831..c00306ff4c17f1e75841c2d4a2408a615ff5cc85 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 c3fe43ec6ead0d5cc027160ce378f0fb2ddbc656..eab22c58d4b6952d1b672ac18c5dc8ccd171c100 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 cb7c4c44b6fec3484eb7eb17716a9cb1573afe26..593ad81ed4e61b91cc4f923ac3aff1bab56997d5 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 c9344db308befda275172e9289436abd19f06864..5f2fac2bd0077b367c7aaa3733fad26bc04b0853 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Plang.mli b/src/plugins/wp/Plang.mli index e1bcff3f22f2f23d8eeb8892545fb2004c75d29b..8bb4335527bf1fa85615332b80082d2c81605a96 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 714b170998037ebafd474f101107c79c290b6e12..fc339fef85eb6063ff2ff29b293bf6c508d764e4 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/ProofEngine.mli b/src/plugins/wp/ProofEngine.mli index 764064f9df937ab639fcfa91a16a7a0764728cca..d4932440aee509e988f3afd11271aacf3f79b6cd 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/ProofScript.ml b/src/plugins/wp/ProofScript.ml index 4ad9bd70305c577c20e833482bf6419f7a3cb5b3..3e0bcc83cc2e0545b379335b14211c9397578161 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/ProofScript.mli b/src/plugins/wp/ProofScript.mli index 4b5bcbf97f67891e29065fadc2fdaa610ee1fda9..b129ecbd39206b27eb5f3f56f57ab7d2eff5ab2c 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/ProofSession.ml b/src/plugins/wp/ProofSession.ml index 05e69ee8fa429acacd8f148a514344fe93374df2..106f45f28e311adb88b4b21e701426c6a8a56aac 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/ProofSession.mli b/src/plugins/wp/ProofSession.mli index fa686725ec66536fdeac7dc93e5490fff27a8a96..86372425758114ec4fbe5d1c68a7d2f44162418c 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/ProverCoq.ml b/src/plugins/wp/ProverCoq.ml index ea01cad796b581823abea594d9406963515fdf0d..f261a580dd75e40ef1ba245c2637c389722f5cf7 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/ProverCoq.mli b/src/plugins/wp/ProverCoq.mli index 5e0f94b63ef20ea1fafd69b553859a86ccfeadc1..35287cc626049deb497a95353d6737e3e44b587a 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 b5a32ca5d3a7f756d2d6db4f6d9a4702f80d67d2..f217f28fc42c4b4e3a7b8df7eedd7ccd6d45683d 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 96f2d912b74d1a9466f34755d59167f0b87464b8..6355a6e1b81c47b26e11890a6737d478bf024a4e 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 e5fb8cc0b8fece4ef3cc087cbee71d13e94d0e1d..42df16bc22dd513045b5d209ea11bf4ccb0eb601 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/ProverScript.mli b/src/plugins/wp/ProverScript.mli index b89e4a896ca352ca11446569ca7dab47d0c305cd..773bd4f84563d8e015fc33036ce53c7e2cad666a 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 85abe2d171a6276f6f6ab54d16b4d430fd557b75..a1fc5c156eff8d4ac5b5c0d763aed49821958f53 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/ProverSearch.mli b/src/plugins/wp/ProverSearch.mli index b99ca1ce85cd924b5a4562f24285adc085e87abd..8dc1f1391a5dd453cdef1cd52d08aabb126c5786 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 724cb237f7ccf9e12801e503530b77b1da0a171d..1811bf0a2bb5d253b8cd144f23ca4b5a5cf0a5cf 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 f964e61ea1075dcf09fa133e9028b7f14a88c2dc..8cbbe52fa0e8f0f5e0b6012817413217fb6faf46 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 54e5d9d0cbf24f3a2768a07a0f1a8a0dccca85a8..803bf87115076503721d2446610b4cb13265dc57 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -945,11 +945,12 @@ class visitor (ctx:context) c = id, t method on_dlemma l = - let kind = Why3.Decl.(if l.l_kind = `Axiom then Paxiom else Plemma) in - let cnv = empty_cnv ctx in - let id, t = self#make_lemma cnv l in - let decl = Why3.Decl.create_prop_decl kind id t in - ctx.th <- Why3.Theory.add_decl ~warn:false ctx.th decl + if l.l_kind <> Check then + let kind = Why3.Decl.(if l.l_kind = Admit then Paxiom else Plemma) in + let cnv = empty_cnv ctx in + let id, t = self#make_lemma cnv l in + let decl = Why3.Decl.create_prop_decl kind id t in + ctx.th <- Why3.Theory.add_decl ~warn:false ctx.th decl method on_dfun d = Wp_parameters.debug ~dkey:dkey_api "Define %a@." Lang.Fun.pretty d.d_lfun ; @@ -1088,7 +1089,7 @@ let prove_goal ~id ~title ~name ?axioms t = end; th, decl -let prove_prop ?axioms ~pid ~prop = +let prove_prop ?axioms ~pid prop = let id = WpPropId.get_propid pid in let title = Pretty_utils.to_string WpPropId.pretty pid in let name = "WP" in @@ -1105,13 +1106,13 @@ let task_of_wpo wpo = let axioms = v.Wpo.VC_Annot.axioms in let prop = Wpo.GOAL.compute_proof v.Wpo.VC_Annot.goal in (* Format.printf "Goal: %a@." Lang.F.pp_pred prop; *) - prove_prop ~pid ~prop ?axioms + prove_prop ~pid prop ?axioms | Wpo.GoalLemma v -> let lemma = v.Wpo.VC_Lemma.lemma in let depends = v.Wpo.VC_Lemma.depends in let prop = Lang.F.p_forall lemma.l_forall lemma.l_lemma in let axioms = Some(lemma.l_cluster,depends) in - prove_prop ~pid ~prop ?axioms + prove_prop ~pid prop ?axioms (* -------------------------------------------------------------------------- *) (* --- Prover Task --- *) diff --git a/src/plugins/wp/ProverWhy3.mli b/src/plugins/wp/ProverWhy3.mli index e29b681ff4412f662db152da2af6b14bb9a9d19a..fd73c828c1b8e67b81d7de7fd061c78cd0eb5948 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 148ae72e4c442d96257c5070502388736a41b368..4413187be9efce693afa69a5795f59bdbcb68288 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -735,7 +735,7 @@ let compute_usage () = (* Usage in lemmas *) let u_lemmas = LogicUsage.fold_lemmas - (fun l -> E.cup (pred (mk_ctx()) l.lem_property)) E.bot + (fun l -> E.cup (pred (mk_ctx()) l.lem_predicate.tp_statement)) E.bot in (* initial state by kf *) let usage = Globals.Functions.fold (fun kf env -> diff --git a/src/plugins/wp/RefUsage.mli b/src/plugins/wp/RefUsage.mli index 641101e08ed6e4c71336a982a1e787d0c54771d9..988103efebfd6817de6320945e69f06d9194cc12 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 0de209c12f6bf8041c70125a7fef262e4c327e6d..2804b6041e386726a574f3859891ac614a1e4f98 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 c7d349172847e498a8bcb885d355d81d7078315e..04d12a7abcb4848f729b2f1f72a86f767a6b7e47 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/RegionAccess.ml b/src/plugins/wp/RegionAccess.ml index 4f87b246b7ffffc2baf728bcb7136919ce7bf22b..066f2675a4006e361ce46442c7cde9ff09c492a4 100644 --- a/src/plugins/wp/RegionAccess.ml +++ b/src/plugins/wp/RegionAccess.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/RegionAccess.mli b/src/plugins/wp/RegionAccess.mli index 7a935536b97e1d756b55d9f0747e70d83821c310..d07562a1f93414a872ea992ce67436244580e646 100644 --- a/src/plugins/wp/RegionAccess.mli +++ b/src/plugins/wp/RegionAccess.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/RegionAnalysis.ml b/src/plugins/wp/RegionAnalysis.ml index fddc83013dd04c15cfa258f0703f9c178d8703eb..4a0e8616936bd6d2458a5beef4f6b1cab76efd9d 100644 --- a/src/plugins/wp/RegionAnalysis.ml +++ b/src/plugins/wp/RegionAnalysis.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/RegionAnalysis.mli b/src/plugins/wp/RegionAnalysis.mli index 7b360f8d78ebd22f32412792bd3d9c0a7914e2ed..504f60b509a82d6603922d0e611db573442858e5 100644 --- a/src/plugins/wp/RegionAnalysis.mli +++ b/src/plugins/wp/RegionAnalysis.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/RegionAnnot.ml b/src/plugins/wp/RegionAnnot.ml index 6f602b86bc7b16886cd1dffe243d77e3acfd54ce..deab22ad92fe69838ee0ab9cf016d8826ede1435 100644 --- a/src/plugins/wp/RegionAnnot.ml +++ b/src/plugins/wp/RegionAnnot.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/RegionAnnot.mli b/src/plugins/wp/RegionAnnot.mli index 32666eda01b86839201182e840a8c7026f40cdca..e6e0bde006a85101bc05e162e203aa85fe5b7467 100644 --- a/src/plugins/wp/RegionAnnot.mli +++ b/src/plugins/wp/RegionAnnot.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/RegionDump.ml b/src/plugins/wp/RegionDump.ml index 8537b8dd21e7362d6000e0fdc22946ca6c0235ee..37b36fb17f948f2248a7efe726b4972c94693b48 100644 --- a/src/plugins/wp/RegionDump.ml +++ b/src/plugins/wp/RegionDump.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/RegionDump.mli b/src/plugins/wp/RegionDump.mli index d332b9cb40c10db3fd15d61ad8b05a2772c8412d..96fd42d464ce82b834f6e8aa18c3c1bb8f2c8867 100644 --- a/src/plugins/wp/RegionDump.mli +++ b/src/plugins/wp/RegionDump.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 b06be4ac2afa66198f45bac98b65a6e8167d7898..aed726f4c5c5049b102d6956bcf631075fd09daf 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 f4abddf3d4494ecf5976a8716f9d869c623a5f4c..80a900c4a4e0fa8716dfeae605f7fe7d1207c0e4 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 bb4a82b27983b710c472bc384e8bec77f7eac325..603540c0223670216662927db246f2c694d39e5e 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 d943753eaf0da170a98834c322137c095947b620..f3bceffb2a02990342354190207c5cd9d2bfde95 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 5474a05068ca7c5e1a429631d7654620c7976746..9321b09c0dfc657f4a040baf4734fd5399dd69a5 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Splitter.ml b/src/plugins/wp/Splitter.ml index 2ae3208e7b0f3da110aae76133e4350914836d8d..5d1d851891994219e11b8820314efd750256f8db 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 6604b2fcd7dbcd087197fbe7c0ef0286be40c153..e8bd2cdde626ba56d739dcd850e648acbcbc20e9 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 f5236949e0ae9c9826c14289b87253d90caf0a88..b9b9e3afead51dd1acc59c9df87845c3affee4fc 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -597,7 +597,7 @@ struct let next = (a.return_point,Vertex.Set.empty) in let wto = WTO.partition - ?pref:None (* natural loop keep the heads *) + ~pref:(fun _ _ -> 0) (* natural loops keep their heads *) ~succs:(UnrollUnnatural.G.succ g) ~init:here in diff --git a/src/plugins/wp/StmtSemantics.mli b/src/plugins/wp/StmtSemantics.mli index 1d58cbbf8a1f8572dc822be1ad1820b9cf48b094..a16c15f2ff3b65bb483b0fb4fa1143f17d7c9de8 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 cf232eaa0dcd6b43601e9ec08574d6c03d827cfe..88ed2a4367072c8c0bea9fbbec8955cc34da6021 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 a598910025aedabd8ee50da8b96cf4a5805d7ed4..6bf3468c8ff73ad3165ee826b9ad1ab375a3dd6a 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 963a9e7b28964faab3df99006c9d2a0ca283e589..a019c52959408fbdbbd385e2942b757e6eb9d98f 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 2646d8cd8ce82fbdc7f6909c301eae592bd699c9..64bd23ba6201b28dc1f2a9b3f778de0e5b2ae8ec 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 5e1552cb9a896abf81e1509966fabebbfdd9733b..3bf028ce7665b2d4adf78313de877b8d3e438e0e 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 80f7d3003572678f18a68368f02fb9f64824215c..f5860490a698bdbcecefa06e5e1528201aaf57b6 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/TacBittest.ml b/src/plugins/wp/TacBittest.ml index 86fb2f6272389d68f94cb0d90fff0e2d82c18248..e46016ae364043e6d6518bf3bbfd449bba1ae907 100644 --- a/src/plugins/wp/TacBittest.ml +++ b/src/plugins/wp/TacBittest.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/TacBittest.mli b/src/plugins/wp/TacBittest.mli index 47296a7f6b69d6862eb300c60ba5bc83d8618f9a..1a2ef6466d9b6b2494355ea9c784f1ce0f30533f 100644 --- a/src/plugins/wp/TacBittest.mli +++ b/src/plugins/wp/TacBittest.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 70892de3a041166c5d3d10634747eba93b72f37c..aba8d792d84b36129b8c071d8014ff3806c72998 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 2213b94fea893d5f512b3a4d49a19e17b5c32768..c669d3bbf4cf7d61fd3f69902eb7b0e326ec9fdd 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 42b7975dbea3a30c23cdf4f16e7c55cd70f45156..31f3ee05e0cd795e8b57e1464b04e44906b3416e 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 560d8a5c448ded03e47e82b9c58adec115b363d1..3a17e409332058af8cf9f58fa480718af443e1d6 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 c97dc9b3e49b6198416cade147cca47d714b4063..e4fe08b7833af851cf7445e259c0b8f33d092c46 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/TacCompound.mli b/src/plugins/wp/TacCompound.mli index b34e26ba49255c4d207ecd88364559a4b88a2b03..771441a22cd7a134f0cf1811f25af0e6325cb14e 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 e07026c423d3ac312b7fbb4d708746fef5e8aabb..3641f4387e5d7e6ecef8e181d57ec21a9339ede9 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 56d9015a035c607904e08e1d5afb16a9ba00ca6c..3b0359b4d0172b217fc5ccfc9cb4b154f306f86a 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 679aed4d4cb2b5aece8c5ee8d8a47616c7e6f2ba..16f3233837d88b305183fc9177696b48b1155c78 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 59e7015606d7f996b22d26ca450839171b201641..952a048bcb2f5b9b0bcd1371f2fcb34082b58164 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 10048bc272544c42a1405976c977d4035721d038..bf7340bc36ceddd0e43d346dc84dc74704060c5d 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 9959c1574430504e963bcf85ad553184151d67cb..d359707edb1ebd151503ffa61482ecc49ffa2969 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 f363cf4ecc86d90c71fd51c3eb131165fef1c002..785aebf8552f6759e6a8619778973e78181589f8 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -196,7 +196,7 @@ class validity = module Havoc = struct let tactical = Tactical.export (new havoc) - let strategy ?(priority=1.0) ~havoc = + let strategy ?(priority=1.0) havoc = Strategy.{ priority ; tactical ; diff --git a/src/plugins/wp/TacHavoc.mli b/src/plugins/wp/TacHavoc.mli index 0942b43ac08e40faf0cfa83bc9f542affb988a3c..c635ced8f8335628611f5e49d447c395eeb6dd26 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -29,7 +29,7 @@ module Havoc : sig val tactical : tactical val strategy : - ?priority:float -> havoc:selection -> strategy + ?priority:float -> selection -> strategy end module Separated : diff --git a/src/plugins/wp/TacInduction.ml b/src/plugins/wp/TacInduction.ml index 630d6be6e535abfb3efd0624598165bb5c46d674..982d6e13094975ab7f745b627379946d953b1b53 100644 --- a/src/plugins/wp/TacInduction.ml +++ b/src/plugins/wp/TacInduction.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/TacInduction.mli b/src/plugins/wp/TacInduction.mli index 21c817a0b338fb729bb658c15ecfe0cb907526b8..acb995cfacab566b1dc65c462e712aaf119d6590 100644 --- a/src/plugins/wp/TacInduction.mli +++ b/src/plugins/wp/TacInduction.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/TacInstance.ml b/src/plugins/wp/TacInstance.ml index 15f5064f7a92eea19dfe83c7b8961ff6c03c87ee..5fe1df231753c940be0032732ae5699e2bf3108e 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/TacInstance.mli b/src/plugins/wp/TacInstance.mli index bcb0952d218b0d4b52de9b62815a61288c653d31..c359d24a0108f4676078e0fb4c65b2e760f1a84b 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 5a36bffa18669a916bb1a216915cda30721e8cb6..5e9ebe63af4c7a377352667f690d466f764c4ca8 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 4237f57f9e40c0e261b51f69a1be4856159d059f..cf8e2dd53562677db4af2b83e49f27b9165d1b30 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 96c72b45f64f053c2717689b1635ca6360b7c3a5..f7e78a439060a170bec100c699899079258360b4 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 8e777478a181e3d0c09d48aa3c4a3ddd77a85a97..9ef7c104e8d3e3cd437c85ebac7117116db8d952 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 77ec8bf51a681ca3908f9d18ccc7a8396c04f25a..906c596c61a6bbe0842c4cf62473eb99854bf550 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 b7259a84441fc1abf3e3a648f4dc8b668f148056..d4ecfbfe5454d16129a5e53513f68e5338b761b9 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 f3faab1ac9fc0cc1974d58e970e119e7b81f38e0..ef88d017296b5d2580f817db065885b72b3f5513 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 c9d7a5092bf605777608ca784d4afdd75c3d4755..cc44eed144c2ad6e8de525ebd5405fcab23c9fac 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 4ba8c62099203418a797e5ba160ca78f704ea0ac..d784e380c4849256d03c51ec3e4b49a1efc0611c 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 d7bedadf4365427610adc0eb4946d74d9ef4193b..1965dbefad6fc3261631a85c636874b29fb00142 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/TacSequence.ml b/src/plugins/wp/TacSequence.ml index 1c711e93757918c7897d361407ad1bdf52c92162..8a0dbdeea4cef4a56eb85356d71d4a0f2732fbbf 100644 --- a/src/plugins/wp/TacSequence.ml +++ b/src/plugins/wp/TacSequence.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/TacSequence.mli b/src/plugins/wp/TacSequence.mli index 51e970bdaf1083d3ec5e9fb9f0371b8b9899532d..c856be94028e93c82744b80586788b0c5dc801b1 100644 --- a/src/plugins/wp/TacSequence.mli +++ b/src/plugins/wp/TacSequence.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 825a0388254b24b807fb1fa490c6ee531b2abb16..4745ccdd8d8942d671a31548b5779769b0f8d4ea 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/TacShift.mli b/src/plugins/wp/TacShift.mli index fd73e92e9b71740746ce04b08f43d5137fbec7a2..ae596d5530c9d64d223d215f7882f2268803840f 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 5b53076bb48f53f6cb1d9699bbdf19b2bc575096..57e324288d6ed162f81312e0e50d0a67ba4d1f74 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/TacSplit.mli b/src/plugins/wp/TacSplit.mli index 87012107cedb013c7e490249b849539024ffe0df..998c110fd01fec4c51ede515106a77fad4686a6d 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 281aa810b0b4a60e9ae3a397db4dd478789ceb03..fd4f9e3a3b9ef8abe8f678b03fc1c98c42e598d4 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 1d7e68405c2e43876d5a106a58ee69fa36e8d292..c515745963a116e2a1844840a79f4dea891dbe54 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 2cd4ff603fd859a645abfb13660e81440a0abde1..036c2a3e730d35789ce956303aef770c4a6d28c3 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Tactical.mli b/src/plugins/wp/Tactical.mli index 320881d5c5b660ea4bf694a256c380f6806717a1..4ed8400c730cdca6340c68f0a0d81066f74ff61c 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/VC.ml b/src/plugins/wp/VC.ml index f921d0000a3f85fa33c380f81752ed85fdf3ff28..32355d2fc93dbf0e666f73d1439067e66e63d405 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/VC.mli b/src/plugins/wp/VC.mli index d39e04dc2ca5d17a26c7c81538b66a6aaa63db9a..cc695838ed463262c37bb9832c09892044b7cb10 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 3451cbacab7c6513706448e6042c195a5ef098d8..05aacf11a7cd7dffab4c1608e0368110c98ffa57 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 270095ceaad9cdd393e6970526b05d40d87af6e1..f45575f2b6db70a52287db1638d9c8208e102bd8 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 40238be85bde3c5c429b26cdc1cad0fe961e7e26..493022e5bf1ee392ad205b910429c25a331ef8ca 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Vlist.mli b/src/plugins/wp/Vlist.mli index a957d15f7b9805be2ffe483c11125ec4269f867f..2d0b63892ffcd699c281eee21e5fa1f4232d504d 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 1539c2cb6a5a47b93811d432bd98e60f6447e490..29dd98f83d7ac901b5c76f612f03d95cd4b02204 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 a529cac3078a8f1d7f7cbc2dda592981edd6024e..3d1487c85d99479c7e0ea20da4b086f627d1d986 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 00664bb1670f5f34b80f9d0685150e8854932e81..31d8ddebeb02c34857ffa36dcecf3129b61fd005 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 e6c0bdbb4c05c337e83e8f92b3688737f0abe4e7..b6c5ca5b46fa66b2436681eff1a665cf770e0224 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Why3Provers.ml b/src/plugins/wp/Why3Provers.ml index 19e8070cf06d110febdbf0a04f7c5aa471445f94..8c7ffc09a9b9c47a6ff053e526c4846603782ca9 100644 --- a/src/plugins/wp/Why3Provers.ml +++ b/src/plugins/wp/Why3Provers.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/Why3Provers.mli b/src/plugins/wp/Why3Provers.mli index 1098dc55906999c9c19cc85f11aaeb1fb02a297c..d92226ec8eb72a9ef56b175a1bc7ff583e01db8d 100644 --- a/src/plugins/wp/Why3Provers.mli +++ b/src/plugins/wp/Why3Provers.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 4d630865f9106a6c3bfc5f646a65458c3cfe7ec5..339d9c368a19a5db3ee2ad1aa1ee502f4ed7b31a 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 412504a7746071f749c50e7d83fece510ae23e73..43bfb49772086553bc0396b452f1255c9817859d 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 7f62f60619e9628091026735e8cfcba16ef4ada6..5cb2133bb68bc2fac5644b88672b91e7e740947e 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 81bb30a5bea0bfbc064159bdbb713f21da8eb9fa..ad5bc86fb0c85bc7d9f2f2724139e99e3c6f94f0 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/cfgCalculus.ml b/src/plugins/wp/cfgCalculus.ml index 611495e4fc74c1316a5426ad701649cceaf7baec..ef586c7c564d4828314f461de419d5cf8650cac9 100644 --- a/src/plugins/wp/cfgCalculus.ml +++ b/src/plugins/wp/cfgCalculus.ml @@ -100,7 +100,7 @@ let is_active_mode ~mode ~goal (p: Property.t) = | IPComplete _ | IPDisjoint _ -> is_default_bhv mode | IPOther _ -> true | IPFrom _ | IPGlobalInvariant _ | IPTypeInvariant _ - | IPAxiomatic _ | IPAxiom _ | IPLemma _ + | IPAxiomatic _ | IPLemma _ | IPExtended _ | IPBehavior _ | IPReachable _ | IPPropertyInstance _ -> assert false (* n/a *) diff --git a/src/plugins/wp/cfgDump.ml b/src/plugins/wp/cfgDump.ml index 7b658aabcb730b8b1e80a6fdf07dc4407556122a..3d25437b758b492c269acc2df68f7486fe2eec97 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 e4a1c460c5c6d27ee26a42198418fa7f8e9085a6..48722048bdd848f86a31476656f5b8b9b42299f2 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/cfgGenerator.ml b/src/plugins/wp/cfgGenerator.ml index 9c6db298a1df72a49dd3ff8992f0b4f2d447d588..b5e3f1d462839047c0998eadb99179bc74f22d89 100644 --- a/src/plugins/wp/cfgGenerator.ml +++ b/src/plugins/wp/cfgGenerator.ml @@ -85,12 +85,12 @@ let select kf bnames = (* --- Elementary Tasks --- *) (* -------------------------------------------------------------------------- *) -let add_lemma pool ?(prop=[]) l = - if l.LogicUsage.lem_kind <> `Axiom && +let add_lemma_task pool ?(prop=[]) (l : LogicUsage.logic_lemma) = + if Logic_utils.verify_predicate l.lem_predicate.tp_kind && (prop=[] || WpPropId.select_by_name prop (WpPropId.mk_lemma_id l)) then pool.lemmas <- l :: pool.lemmas -let add_funtask model pool ~kf ?infos ?bhvs ?target () = +let add_fun_task model pool ~kf ?infos ?bhvs ?target () = let infos = match infos with | Some infos -> infos | None -> get_kf_infos model kf () in @@ -120,11 +120,11 @@ let rec strategy_ip model pool target = let open Property in match target with | IPLemma { il_name } -> - add_lemma pool (LogicUsage.logic_lemma il_name) + add_lemma_task pool (LogicUsage.logic_lemma il_name) | IPAxiomatic { iax_props } -> List.iter (strategy_ip model pool) iax_props | IPBehavior { ib_kf = kf ; ib_bhv = bhv } -> - add_funtask model pool ~kf ~bhvs:[bhv] () + add_fun_task model pool ~kf ~bhvs:[bhv] () | IPPredicate { ip_kf = kf ; ip_kind ; ip_kinstr = ki } -> begin match ip_kind with | PKAssumes _ -> () @@ -132,43 +132,43 @@ let rec strategy_ip model pool target = begin match ki with | Kglobal -> (*TODO*) notyet target - | Kstmt _ -> add_funtask model pool ~kf ~bhvs:[bhv] ~target () + | Kstmt _ -> add_fun_task model pool ~kf ~bhvs:[bhv] ~target () end | PKEnsures(bhv,_) -> - add_funtask model pool ~kf ~bhvs:[bhv] ~target () + add_fun_task model pool ~kf ~bhvs:[bhv] ~target () | PKTerminates -> - add_funtask model pool ~kf ~bhvs:(default kf) ~target () + add_fun_task model pool ~kf ~bhvs:(default kf) ~target () end | IPDecrease { id_kf = kf } -> - add_funtask model pool ~kf ~bhvs:(default kf) ~target () + add_fun_task model pool ~kf ~bhvs:(default kf) ~target () | IPAssigns { ias_kf=kf ; ias_bhv=Id_loop ca } | IPAllocation { ial_kf=kf ; ial_bhv=Id_loop ca } -> let bhvs = match ca.annot_content with | AAssigns(bhvs,_) | AAllocation(bhvs,_) -> bhvs | _ -> [] in - add_funtask model pool ~kf ~bhvs:(select kf bhvs) ~target () + add_fun_task model pool ~kf ~bhvs:(select kf bhvs) ~target () | IPAssigns { ias_kf=kf ; ias_bhv=Id_contract(_,bhv) } | IPAllocation { ial_kf=kf ; ial_bhv=Id_contract(_,bhv) } - -> add_funtask model pool ~kf ~bhvs:[bhv] ~target () + -> add_fun_task model pool ~kf ~bhvs:[bhv] ~target () | IPCodeAnnot { ica_kf = kf ; ica_ca = ca } -> begin match ca.annot_content with | AExtended _ | APragma _ -> () | AStmtSpec(fors,_) -> (*TODO*) notyet target ; - add_funtask model pool ~kf ~bhvs:(select kf fors) () + add_fun_task model pool ~kf ~bhvs:(select kf fors) () | AVariant _ -> - add_funtask model pool ~kf ~target () + add_fun_task model pool ~kf ~target () | AAssert(fors, _) | AInvariant(fors, _, _) | AAssigns(fors, _) | AAllocation(fors, _) -> - add_funtask model pool ~kf ~bhvs:(select kf fors) ~target () + add_fun_task model pool ~kf ~bhvs:(select kf fors) ~target () end | IPComplete _ -> (*TODO*) notyet target | IPDisjoint _ -> (*TODO*) notyet target | IPFrom _ | IPReachable _ | IPTypeInvariant _ | IPGlobalInvariant _ | IPPropertyInstance _ -> notyet target (* ? *) - | IPExtended _ | IPAxiom _ | IPOther _ -> () + | IPExtended _ | IPOther _ -> () (* -------------------------------------------------------------------------- *) (* --- Function Strategy Tasks --- *) @@ -177,14 +177,14 @@ let rec strategy_ip model pool target = let strategy_main model pool ?(fct=Fct_all) ?(bhv=[]) ?(prop=[]) () = begin if fct = Fct_all && bhv = [] then - LogicUsage.iter_lemmas (add_lemma pool ~prop) ; + LogicUsage.iter_lemmas (add_lemma_task pool ~prop) ; Wp_parameters.iter_fct (fun kf -> let infos = get_kf_infos model kf ~bhv ~prop () in if CfgInfos.annots infos then if bhv=[] - then add_funtask model pool ~infos ~kf () - else add_funtask model pool ~infos ~kf ~bhvs:(select kf bhv) () + then add_fun_task model pool ~infos ~kf () + else add_fun_task model pool ~infos ~kf ~bhvs:(select kf bhv) () ) fct ; pool.props <- (if prop=[] then `All else `Names prop); end @@ -205,9 +205,9 @@ struct if pool.lemmas <> [] then WpContext.on_context (model,WpContext.Global) begin fun () -> - LogicUsage.iter_lemmas VCG.register_lemma ; - List.iter (fun l -> - if l.LogicUsage.lem_kind <> `Axiom then + List.iter + (fun (l : LogicUsage.logic_lemma) -> + if Logic_utils.verify_predicate l.lem_predicate.tp_kind then let wpo = VCG.compile_lemma l in collection := Bag.add wpo !collection ) pool.lemmas ; @@ -218,7 +218,10 @@ struct begin fun (mode: CfgCalculus.mode) -> WpContext.on_context (model,WpContext.Kf mode.kf) begin fun () -> - LogicUsage.iter_lemmas VCG.register_lemma ; + LogicUsage.iter_lemmas + (fun (l : LogicUsage.logic_lemma) -> + if Logic_utils.use_predicate l.lem_predicate.tp_kind + then VCG.register_lemma l) ; let bhv = if Cil.is_default_behavior mode.bhv then None else Some mode.bhv.b_name in diff --git a/src/plugins/wp/cfgWP.ml b/src/plugins/wp/cfgWP.ml index 4f563fae4490360a834009af6c8ee6d89b6513d2..baa2652d9193dc016225f83dc1b0ee1533b09509 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/cfgWP.mli b/src/plugins/wp/cfgWP.mli index c93dfacd142d35baebb1105a5eef4af94e2b4901..198aa8d6b9eabf7542ede9f170fa7ee9aa766b30 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 171ab2d42fdb3752fd50adb1a61faeb559d2a3a2..861d41295e4efda49df284417e93b66f98ec434d 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 0cdb78aef62694b8c71089286f52d35f1d1c9717..97ef821dd4005d62a566c673811065aa68da8edd 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 6f20a911f5e0d72a362203299f8de5421274d1d9..a6554f27332293e9fb7d6b09ae9210154941d89e 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 4014aab7f58b4fbd571688c255b2ffe684b7b2e2..c687d18cf61027b7481b974cdc824a8963314cb7 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 fd5332ac5852ace356de9d2701ff32bd9af1c0c6..90dcf3ec7df136174aa18560a6bbaaf099839616 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-2020 # +# Copyright (C) 2007-2021 # # 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 245096cde6f403c2e4032d8f8b74a0efd38e50cb..63239988fce598077946078be519217587ea4ac7 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 c6dbf0bd4098686f600d1cd41ebc28d2b78e8beb..9f5705f8886803f14003c9c89473eb8bc6055ec6 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/driver.mli b/src/plugins/wp/driver.mli index 0e1e72b19c10e675adf70e443d476aa4554d840a..8618ed20962df90b70982120c3ab485740d952e5 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 9e4d708e49395f25207af0caa10f356244a39d01..8404774fb29a0c3eadcef27083ae3aeb8aa4f09d 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 c36678ec31d8f38270ea62b43e45246b1076e037..9916a6db66860336c96696337081e83a1ebc4838 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 232a75911b66aa2aaa143bb3c3a9ccff8cbb3bc0..13ef1d0f78d7d1d7977bc5f011991bdb28c47871 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/filter_axioms.ml b/src/plugins/wp/filter_axioms.ml index e694556ff633023f56a73eab40fa7be2dc2f71a9..ebb9ebb4d0995d3bcf759b079299b2227b7d5b5d 100644 --- a/src/plugins/wp/filter_axioms.ml +++ b/src/plugins/wp/filter_axioms.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/filter_axioms.mli b/src/plugins/wp/filter_axioms.mli index ebe1115a3f28d61369c636bfb81085be095f2adb..5a43ee006d8797f0a4e4ff4703c231a39ed99f33 100644 --- a/src/plugins/wp/filter_axioms.mli +++ b/src/plugins/wp/filter_axioms.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 c70805e48cfbef235d4620e96b4b9902429b1ca3..3de2d7cdce6581576058ef782520ed16fc228dd3 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-2020 # +#* Copyright (C) 2007-2021 # #* 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 5fd7743b59ceaeb829524f7d285df1ab2fead0eb..568b894770929317b5078add8bfb06d9979f5055 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 0f6ebe895ab54d2ea76d543246f7bad6e1b9ca07..0d0215154b2f72823b042feb86e78f6a141aa164 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 affd569c595489fb3b8237662e69e0fb6e0d55fa..06851f7964f77a24752916a1d1c0265f0ee902ca 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 795ac2b52701be870f3507aab0d7a13e880c7f18..f7f06f015649c990629434e477a44010da91ce76 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/proof.mli b/src/plugins/wp/proof.mli index 141a790d1c64dfc80c6cdbf4ede5803501767d24..17b88dd6f51f50aef279d296735584a0e570de39 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/prover.ml b/src/plugins/wp/prover.ml index 87fc5241966e3870a413dad3411aded9eb3e430a..addb11faabbe595cce13c1d13f83e4d1e996314e 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 32e1ca6ff6a93ba513a1851a0f108fb008ba5df1..ba40150716a86188a4b63c967c469a8d5feb867b 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 3cd05d28b650cae756eaed9244a2957225a4a06f..9bff55614bf71b2281a5e671c08bc725efe3aed9 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 1da4c78ff62e91d67c4e0716d59b24839d77a842..8d8d0d35afc2dff28ec52538fc06fc6cffa02b4f 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 06f4e6b9d85e75122725627e6cc92851a2c86977..4117744544fa6b41bf1dc8f43e0252373a22bff3 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 7a47759945e42399603ad2d52130df40cb3c1ea4..41093e8c3a29d42ba90d8e3c44d868613d6b417e 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 9a1adf7fadb774a572e1ffd3a381af847d5827e8..64b5c882648dc44cb19ee5a1a92238e6a6c859b4 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/Makefile.coqwp b/src/plugins/wp/share/Makefile.coqwp index 1525326a9020b76321df2bb6601933cf0ee30711..9bdd3d154b0096059f1d5a09c6a4877def52982a 100644 --- a/src/plugins/wp/share/Makefile.coqwp +++ b/src/plugins/wp/share/Makefile.coqwp @@ -2,7 +2,7 @@ # # # This file is part of WP plug-in of Frama-C. # # # -# Copyright (C) 2007-2020 # +# Copyright (C) 2007-2021 # # 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 97246b7f9afd5052e68f4355bdcb77f480c65a42..4fea780bb2adefba6f7d67c28ebf9904ab6f2adb 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-2020 # +# Copyright (C) 2007-2021 # # 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 eefdcd01b863bb501c2d2e38d2d657a0d389f22a..81d15dc5970e1f86962460f99438e25a1230d17e 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 47a2966d2f7a8bec441f3a134821cd83a7cabbb4..1719d23083d5a8602f35907ea5cea03cb9cfd9e1 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 438b0fd008522d6cae06862098bc8c15cf97304b..bc0e6351cc5587704628943b51d46c9fcf392006 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 51107bea476f630b625b12559c8475c0c41aabfd..ce093bced71d6cd26c8f8bd9a28811910fc44a73 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/coqwp/Cint.v b/src/plugins/wp/share/coqwp/Cint.v index 12ed20f8bf8f1305c951b50b5f838d502b79d1ba..65230d29467ce0d4a216fdfb55fdc4fdb509f9e4 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 075b632df47dec6d35e68cd9bd781f5d8ecfa3df..ee47145352af6489ce7254fea914b56c90e675e9 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 6ec0186856cef47e4bed66b2318f2688a541cb3c..6222a341b512a766fd51ac6e09fbf109cdedc17d 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 ff59f9557f90ccb1b338d9ee8b7ee1e09b8df961..6531b0b6e35337b74af87df22aaa1317d10d6efd 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 f81df6ef7176f3d3e759be26c1db9568891ef410..6b05b6fa13962c0ed0b4dd60e6deb2b9a32390b0 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 79fd44f4594cfe602dc8e6f644d9d6d8663ecaaa..cfc75c42aa472379a2f2f4eb43ca9f1213efe7ef 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 09b83d1c067edef6c784c93770241cbba412f342..6f523341b40fc383087de34f5cc26e50ddf8c4b2 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 f91fabec5d1b900534a7bdd3e1abd1e6d800121d..0c9d96965455273540f844df188ce8f80e9d2721 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 ac183b13d658fb6bb57aa2ed33da3f5e0d35e13b..69b73d2055b3fa128f7fa70ed0070381b13a9ec5 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 66404ac8a9e61c621eccf20283c3f2504dee2cfc..47d1d590a36f30daf933da5fa8589136934d5140 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/ergo/ArcTrigo.mlw b/src/plugins/wp/share/ergo/ArcTrigo.mlw index b9f4532a53a5b9d401b496e31d31d7ee3ece1b71..e2640273c38a6fffe8579129b98475364cb6a35a 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 7652d08226932790d217b4939b135b4b854335f3..fc3e1ca738f67ed6005195dded8d1ced08f70a4f 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 3885af62d020b5818d032add0da001be478b7190..8767b09720cadfd0849504b8647b601a1337bd8b 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/ergo/Cint.mlw b/src/plugins/wp/share/ergo/Cint.mlw index 581338d4e5d772064808b7318e3efb0c56d1c5ae..7dab26534909598507551f442cd70d138ea49697 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 923a8063d21a2d2e63531cae28633980bfdb12b1..137cf15a396cfcc2fa4b9385f4fc60a026504ae2 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 7e95d78dbc1f8d02f38e31c80f3a712cd5c475e0..c71d17e18b02ce657cc08c06f1cdbde2bac393ed 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 a08ecfc4176872466ad7b231b357d4fc57ec7ff6..32ac4406cf93bca73f2a0222d9844a96c472880a 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 d47230768867913c114bb5729ba6d9b2d662683d..08a3998f07c8d0d923f3ceb0e6b8d3c3344caf67 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 c65d85c3902cd99a7082feca88bfc0292de8ac69..3a1f199e50e96781dfe603cef57352028480a721 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 cc9bbd9c39b3a3dc08691bdb9b1a67f9f0a846c1..c10ced2bdb52503e1331f53739b5074126e748c3 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 ee4d55cfc4a6baebd28fd539ad229426b910f4d3..250caa049582d78402817b02faedff2b3022772f 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 5172ab4010de03ffd00f0caf09d6c04e887feb50..a3e637acfd382a980c58f5fadfed443439d7ad2e 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/why3/frama_c_wp/cbits.mlw b/src/plugins/wp/share/why3/frama_c_wp/cbits.mlw index b711c846e5b7d36613e5a698584c60f721bf17cd..7207fa0d437dc4d4a9108a9fef93195c0f0350a9 100644 --- a/src/plugins/wp/share/why3/frama_c_wp/cbits.mlw +++ b/src/plugins/wp/share/why3/frama_c_wp/cbits.mlw @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/why3/frama_c_wp/cfloat.mlw b/src/plugins/wp/share/why3/frama_c_wp/cfloat.mlw index 3f1bc5eb1b79440418007e44bed89924f9feb01a..f61f6896b9397e903e1e6c44fcd405c937cd2887 100644 --- a/src/plugins/wp/share/why3/frama_c_wp/cfloat.mlw +++ b/src/plugins/wp/share/why3/frama_c_wp/cfloat.mlw @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/why3/frama_c_wp/cint.mlw b/src/plugins/wp/share/why3/frama_c_wp/cint.mlw index 969326b6fe91bdce835b6efaa34b84929f0936da..81147fd66776506cc0969cb80a667afc89ab502d 100644 --- a/src/plugins/wp/share/why3/frama_c_wp/cint.mlw +++ b/src/plugins/wp/share/why3/frama_c_wp/cint.mlw @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/why3/frama_c_wp/cmath.mlw b/src/plugins/wp/share/why3/frama_c_wp/cmath.mlw index 10179658f09f085c9e8ed15a6165d1dc017953df..495ac75347b5f5e22420e96d2cf7afdf805c27e2 100644 --- a/src/plugins/wp/share/why3/frama_c_wp/cmath.mlw +++ b/src/plugins/wp/share/why3/frama_c_wp/cmath.mlw @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/why3/frama_c_wp/memory.mlw b/src/plugins/wp/share/why3/frama_c_wp/memory.mlw index 49a5e3e685095bc0abd0da168d87d5f9ba4db46a..c508fdae4430875422c5b95bf05b22ee7ee7c4ef 100644 --- a/src/plugins/wp/share/why3/frama_c_wp/memory.mlw +++ b/src/plugins/wp/share/why3/frama_c_wp/memory.mlw @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/why3/frama_c_wp/qed.mlw b/src/plugins/wp/share/why3/frama_c_wp/qed.mlw index 8992dc01542d09ab6a4a566f9651a729202e5512..883fadf17590c97e32851b4a3a2d30b07a3b60f6 100644 --- a/src/plugins/wp/share/why3/frama_c_wp/qed.mlw +++ b/src/plugins/wp/share/why3/frama_c_wp/qed.mlw @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/why3/frama_c_wp/vlist.mlw b/src/plugins/wp/share/why3/frama_c_wp/vlist.mlw index 1e52645ed435eb83d53b279318aea107499b0249..bd284ae9a6e0a1217c46bf9aefb5f9b1924d30c6 100644 --- a/src/plugins/wp/share/why3/frama_c_wp/vlist.mlw +++ b/src/plugins/wp/share/why3/frama_c_wp/vlist.mlw @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/share/why3/frama_c_wp/vset.mlw b/src/plugins/wp/share/why3/frama_c_wp/vset.mlw index d18a7ffa8a40ff3a1b218dba6f23345013f13924..041a3c46142c7ec03a176c171c528115a627b486 100644 --- a/src/plugins/wp/share/why3/frama_c_wp/vset.mlw +++ b/src/plugins/wp/share/why3/frama_c_wp/vset.mlw @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 2fb2f16fed142915eca73e2608c793101ca59cf3..8024f1f67fbb52a95c4094437906301afe8119ef 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-2020 */ +/* Copyright (C) 2007-2021 */ /* CEA (Commissariat a l'energie atomique et aux energies */ /* alternatives) */ /* */ diff --git a/src/plugins/wp/wpAnnot.ml b/src/plugins/wp/wpAnnot.ml index b25934771ab7cd4d7afda9a25199b5f7cc2f2d79..0186b2c4eb149b6e04655852e4edab5cc8acf117 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -1030,7 +1030,7 @@ let add_global_annotations annots = "Global invariant not handled yet ('%s' ignored)" linfo.l_var_info.lv_name; () - | Dlemma (name,_,_,_,p,_,_) -> + | Dlemma (name,_,_,p,_,_) -> if use_predicate p.tp_kind then WpStrategy.add_axiom annots (LogicUsage.logic_lemma name) @@ -1396,7 +1396,6 @@ let get_property_strategies ~model ip = | IPAxiomatic _ | IPLemma _ | IPFrom _ - | IPAxiom _ | IPReachable _ | IPPropertyInstance _ | IPOther _ diff --git a/src/plugins/wp/wpAnnot.mli b/src/plugins/wp/wpAnnot.mli index 1faa344c2677c09840247b419fce19e093644e09..a0a268cbc61cd59047db6ca65190568e294b6cca 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/wpContext.ml b/src/plugins/wp/wpContext.ml index dfeb7875285396d6f6bba393c865aef0843826c1..62b15a0def8506932e938f1fd2bebd995e8ef5e3 100644 --- a/src/plugins/wp/wpContext.ml +++ b/src/plugins/wp/wpContext.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/wpContext.mli b/src/plugins/wp/wpContext.mli index 2994772402f66185ef12ee3530fa74c4818d9cb6..5b3203bc0b2c5522369e8c207c925d25c2ff60a6 100644 --- a/src/plugins/wp/wpContext.mli +++ b/src/plugins/wp/wpContext.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/wpGenerator.ml b/src/plugins/wp/wpGenerator.ml index b45adae1a34cbf0007b2324be781f42572b9d38d..637de753d04ed14c1d6f874dced8a75cb93945fa 100644 --- a/src/plugins/wp/wpGenerator.ml +++ b/src/plugins/wp/wpGenerator.ml @@ -131,7 +131,9 @@ struct method model = model - method add_lemma lemma = lemmas <- Bag.append lemmas lemma + method add_lemma lemma = + if Logic_utils.verify_predicate lemma.lem_predicate.tp_kind then + lemmas <- Bag.append lemmas lemma method add_strategy strategy = let kf = WpStrategy.get_kf strategy in @@ -144,17 +146,21 @@ struct Lang.F.release () ; WpContext.on_context (model,WpContext.Global) begin fun () -> - LogicUsage.iter_lemmas VCG.register_lemma ; - Bag.iter (fun l -> - if l.lem_kind <> `Axiom then - let vc = VCG.compile_lemma l in - collection := Bag.append !collection vc + Bag.iter + (fun (l : LogicUsage.logic_lemma) -> + if Logic_utils.verify_predicate l.lem_predicate.tp_kind then + let vc = VCG.compile_lemma l in + collection := Bag.append !collection vc ) lemmas ; end () ; KFmap.iter (fun kf strategies -> WpContext.on_context (model,WpContext.Kf kf) begin fun () -> + LogicUsage.iter_lemmas + (fun (l : LogicUsage.logic_lemma) -> + if Logic_utils.use_predicate l.lem_predicate.tp_kind + then VCG.register_lemma l) ; LogicUsage.iter_lemmas VCG.register_lemma ; Bag.iter (prove_strategy collection model kf) strategies ; end () diff --git a/src/plugins/wp/wpPropId.ml b/src/plugins/wp/wpPropId.ml index 35df2f49a47a9625c3aca8c3d8954e492ec19ca6..c3312d5f84313af0f14bb82cdfc8351ddd311322 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -521,7 +521,6 @@ let user_prop_names p = | IPFrom _ | IPAllocation _ | IPAxiomatic _ - | IPAxiom _ | IPBehavior _ | IPReachable _ | IPPropertyInstance _ @@ -692,7 +691,6 @@ let annot_hints hs = function let property_hints hs = let open Property in function - | IPAxiom {il_name; il_pred} | IPLemma {il_name; il_pred} -> List.iter (add_required hs) (il_name::il_pred.tp_statement.pred_name) | IPBehavior _ -> () @@ -998,6 +996,10 @@ let merge_assign_info a1 a2 = match a1,a2 with Wp_parameters.fatal "Several assigns ?" +(* -------------------------------------------------------------------------- *) +(* --- Axioms --- *) +(* -------------------------------------------------------------------------- *) + type axiom_info = prop_id * LogicUsage.logic_lemma let mk_axiom_info lemma = @@ -1005,11 +1007,7 @@ let mk_axiom_info lemma = let pp_axiom_info fmt (id,thm) = Format.fprintf fmt "(@[%a:@ %a@])" pp_propid id - Printer.pp_predicate thm.LogicUsage.lem_property - -(* -------------------------------------------------------------------------- *) -(* --- Prop Splitter --- *) -(* -------------------------------------------------------------------------- *) + Printer.pp_predicate thm.LogicUsage.lem_predicate.tp_statement (* -------------------------------------------------------------------------- *) (* --- Prop Splitter --- *) diff --git a/src/plugins/wp/wpPropId.mli b/src/plugins/wp/wpPropId.mli index d98e533eea15680bc8d639eb5f10a5f63273a3e1..20ba4ab98d8f7742b304325fe97835e4e2273322 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/wpRTE.ml b/src/plugins/wp/wpRTE.ml index a6bc0690c67b02c398b4a689d52472dda12c11fb..e7f12fe261c44cef1b09d65529d40a29317d52c6 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 86ce77c668afd0e0d5c608baa35653d5e0b6c809..8ecce6a0d77a828957c81cc1bebb19bdd195d670 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/wpReached.ml b/src/plugins/wp/wpReached.ml index 549725d8cf107ae9bb045665c282e5116864ba6d..a52a93aec86ddd0264d29bc6b2a270a4165bd2ae 100644 --- a/src/plugins/wp/wpReached.ml +++ b/src/plugins/wp/wpReached.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/wpReached.mli b/src/plugins/wp/wpReached.mli index 2ef8a243c65a83a8e890e6eeed02a99c213cdbb4..77a7bfa2297a43d2bb32e73a1ce849d905ef8905 100644 --- a/src/plugins/wp/wpReached.mli +++ b/src/plugins/wp/wpReached.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 d555742566b2550c7115616c56d79300cb7f37fa..24da407425c7aa95afea46400035295f926c03e6 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/wpReport.mli b/src/plugins/wp/wpReport.mli index ea669c6cc78dba8c3df77fff2073945625adc45d..67b9c05f6fc90b73fc8225f233c9ad0d9a20b293 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 1166868e973159697c0ccd4e3e31b0ea514f4814..82f604d2b5a13e17be78895ed812faed68e4ec54 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) @@ -676,7 +676,7 @@ let add_all_axioms tbl = let rec do_g g = match g with | Daxiomatic (_ax_name, globs,_,_) -> do_globs globs - | Dlemma (name,_,_,_,_,_,_) -> + | Dlemma (name,_,_,_,_,_) -> let lem = LogicUsage.logic_lemma name in add_axiom tbl lem | _ -> () diff --git a/src/plugins/wp/wpStrategy.mli b/src/plugins/wp/wpStrategy.mli index 8f30ea928ce13ce88e7d6f240dc2f4905fe0df8e..d69d701af37f6c607894f7282ee16ec479c7009c 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/wpTarget.ml b/src/plugins/wp/wpTarget.ml index 470ab2a09821a0f3f19260703243b2b0c2c70e73..38014551a42c59e9a5ab0dc59768484d5578edde 100644 --- a/src/plugins/wp/wpTarget.ml +++ b/src/plugins/wp/wpTarget.ml @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/wpTarget.mli b/src/plugins/wp/wpTarget.mli index 22cc8ce147b8d85376c77e84a550fc1c1af629fa..8d687c60f67a58e16314547cc1eb2e753afa6e0a 100644 --- a/src/plugins/wp/wpTarget.mli +++ b/src/plugins/wp/wpTarget.mli @@ -2,7 +2,7 @@ (* *) (* This file is part of WP plug-in of Frama-C. *) (* *) -(* Copyright (C) 2007-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 f8f1cf78807f5a866a6a51a38128b25a044b469a..82f25036f4803682ffee0aa49dadf8795e702cab 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 e694acd7fbdd6e6d0fb4ccb975445c575643b4aa..ca6092bbd6f41f39a233ddc938cad1f4e1343ee0 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 d35a14de3c51fd5cefad5ce6bfc552a778ab5e0a..38c898654f4ac51b3d37cb85bbe5d1e2c80b11e4 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 d31c778f7e8c7c507603e073af03c1cd44508081..2bb0a1fea14799a4fc2f5ed9cb40d536343baa8c 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 33fe329fa3285551bdb40d87050c63d03ee3a06d..0d0bf47c4f8059caf2d74312150bcc67f866f3ae 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/wpo.mli b/src/plugins/wp/wpo.mli index 10a2efe94cecb937b3f671b5a884098ffa70bdb1..98e14b7efc254befdda2e7a1c6eecfb4942c2f8f 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/src/plugins/wp/wprop.ml b/src/plugins/wp/wprop.ml index dbe9169dad0522f411084423521f2a8c806f9adb..f181c043b8e4b7d3090d7b6eb34d943b2e324471 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-2020 *) +(* Copyright (C) 2007-2021 *) (* 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 fe1b5b02fc180477611a8a22217e97e3db5b76fe..f4635fc3ffa47064dc8c0fee89dff24a7744143f 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-2020 *) +(* Copyright (C) 2007-2021 *) (* CEA (Commissariat a l'energie atomique et aux energies *) (* alternatives) *) (* *) diff --git a/tests/builtins/oracle/memcpy.res.oracle b/tests/builtins/oracle/memcpy.res.oracle index dd7e4c0161be1efb85073436c242f28b540cb3b0..2f999a73305848291580c8f7674418100e8ff5c0 100644 --- a/tests/builtins/oracle/memcpy.res.oracle +++ b/tests/builtins/oracle/memcpy.res.oracle @@ -996,6 +996,32 @@ --- Global Properties -------------------------------------------------------------------------------- +[ Valid ] Axiomatic 'MemChr' + by Frama-C kernel. +[ Valid ] Axiomatic 'MemCmp' + by Frama-C kernel. +[ Valid ] Axiomatic 'MemSet' + by Frama-C kernel. +[ Valid ] Axiomatic 'StrChr' + by Frama-C kernel. +[ Valid ] Axiomatic 'StrCmp' + by Frama-C kernel. +[ Valid ] Axiomatic 'StrLen' + by Frama-C kernel. +[ Valid ] Axiomatic 'StrNCmp' + by Frama-C kernel. +[ Valid ] Axiomatic 'WMemChr' + by Frama-C kernel. +[ Valid ] Axiomatic 'WcsChr' + by Frama-C kernel. +[ Valid ] Axiomatic 'WcsCmp' + by Frama-C kernel. +[ Valid ] Axiomatic 'WcsLen' + by Frama-C kernel. +[ Valid ] Axiomatic 'WcsNCmp' + by Frama-C kernel. +[ Valid ] Axiomatic 'dynamic_allocation' + by Frama-C kernel. [ Extern ] Axiom 'memchr_def' Unverifiable but considered Valid. [ Extern ] Axiom 'memcmp_strlen_left' @@ -1066,32 +1092,6 @@ Unverifiable but considered Valid. [ Extern ] Axiom 'wmemchr_def' Unverifiable but considered Valid. -[ Valid ] Axiomatic 'MemChr' - by Frama-C kernel. -[ Valid ] Axiomatic 'MemCmp' - by Frama-C kernel. -[ Valid ] Axiomatic 'MemSet' - by Frama-C kernel. -[ Valid ] Axiomatic 'StrChr' - by Frama-C kernel. -[ Valid ] Axiomatic 'StrCmp' - by Frama-C kernel. -[ Valid ] Axiomatic 'StrLen' - by Frama-C kernel. -[ Valid ] Axiomatic 'StrNCmp' - by Frama-C kernel. -[ Valid ] Axiomatic 'WMemChr' - by Frama-C kernel. -[ Valid ] Axiomatic 'WcsChr' - by Frama-C kernel. -[ Valid ] Axiomatic 'WcsCmp' - by Frama-C kernel. -[ Valid ] Axiomatic 'WcsLen' - by Frama-C kernel. -[ Valid ] Axiomatic 'WcsNCmp' - by Frama-C kernel. -[ Valid ] Axiomatic 'dynamic_allocation' - by Frama-C kernel. -------------------------------------------------------------------------------- --- Properties of Function 'memcmp' diff --git a/tests/cil/mkBinOp.ml b/tests/cil/mkBinOp.ml index be2c8fefa7ea2cf19a2bf6c68c63c18105eca87f..7ef013171d3ffcb3393faadca7654fcbb964c638 100644 --- a/tests/cil/mkBinOp.ml +++ b/tests/cil/mkBinOp.ml @@ -5,19 +5,19 @@ let loc = Location.unknown let null () = let e = zero ~loc in - mkCast ~force:true ~e ~newt:voidPtrType + mkCast ~force:true ~newt:voidPtrType e let inull () = let e = zero ~loc in - mkCast ~force:true ~e ~newt:intPtrType + mkCast ~force:true ~newt:intPtrType e let cone () = let e = one ~loc in - mkCast ~force:true ~e ~newt:charPtrType + mkCast ~force:true ~newt:charPtrType e let ione () = let e = one ~loc in - mkCast ~force:true ~e ~newt:intPtrType + mkCast ~force:true ~newt:intPtrType e let test = let n = ref 0 in diff --git a/tests/fc_script/for-find-fun2.c b/tests/fc_script/for-find-fun2.c index 3cef634fc5b462b9892fc5f66510594e8a81ed58..45c8130a3683d16398c6bb839f3344fa151c9ce7 100644 --- a/tests/fc_script/for-find-fun2.c +++ b/tests/fc_script/for-find-fun2.c @@ -24,3 +24,8 @@ void h() { void false_positive(); // this is a "voluntary" false negative (space before): // it allows us to avoid false positives more easily + +static int static_fun() { + static int init = 0; + return init; +} diff --git a/tests/fc_script/for-list-functions.c b/tests/fc_script/for-list-functions.c new file mode 100644 index 0000000000000000000000000000000000000000..44ec1ad26863049872816ce4d4003b21e56693de --- /dev/null +++ b/tests/fc_script/for-list-functions.c @@ -0,0 +1,22 @@ +/* run.config + DONTRUN: test run by main.c +*/ + +#include "for-list-functions2.h" +#include "for-list-functions.h" + +static int static_fun() { + static int init = 0; + if (!init) { + init = 1; + return 2; + } + return 4; +} + +void k() { + /*@ loop unroll 10; */ // Eva is not loaded, so we must ignore the annotation + for (int i = 0; i < 10; i++) { + extf(); + } +} diff --git a/tests/fc_script/for-list-functions.h b/tests/fc_script/for-list-functions.h new file mode 100644 index 0000000000000000000000000000000000000000..5bafea75c4645ebf8dc819c9ddee29931891d2cf --- /dev/null +++ b/tests/fc_script/for-list-functions.h @@ -0,0 +1 @@ +#include "for-list-functions2.h" diff --git a/tests/fc_script/for-list-functions2.h b/tests/fc_script/for-list-functions2.h new file mode 100644 index 0000000000000000000000000000000000000000..7338669a3ed39623e9a31ad38ce5716178fcfd5f --- /dev/null +++ b/tests/fc_script/for-list-functions2.h @@ -0,0 +1 @@ +extern void extf(void); diff --git a/tests/fc_script/main.c b/tests/fc_script/main.c index 288eaca6d5fbf66399f5cd29fddd152438d69f17..9b26d5592ce3a64f3b8fc228cbc79d62de0ab25f 100644 --- a/tests/fc_script/main.c +++ b/tests/fc_script/main.c @@ -5,6 +5,8 @@ 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 + EXECNOW: LOG list_functions.res LOG list_functions.err bin/frama-c-script list-functions @PTEST_DIR@/for-find-fun2.c @PTEST_DIR@/for-list-functions.c > @PTEST_DIR@/result/list_functions.res 2> @PTEST_DIR@/result/list_functions.err + EXECNOW: LOG list_functions2.res LOG list_functions2.err LOG list_functions2.json bin/frama-c-script list-functions @PTEST_DIR@/for-find-fun2.c @PTEST_DIR@/for-list-functions.c -list-functions-declarations -list-functions-output @PTEST_DIR@/result/list_functions2.json -list-functions-debug 1 > @PTEST_DIR@/result/list_functions2.res 2> @PTEST_DIR@/result/list_functions2.err */ void main() { diff --git a/tests/fc_script/oracle/find_fun1.res b/tests/fc_script/oracle/find_fun1.res index 3e35782af42a6f5546e034e026a63d09df5ac934..0ceb3c8c68b411868c7fd156287a3c668e09466c 100644 --- a/tests/fc_script/oracle/find_fun1.res +++ b/tests/fc_script/oracle/find_fun1.res @@ -1,4 +1,4 @@ -Looking for 'main2' inside 8 file(s)... +Looking for 'main2' inside 11 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): diff --git a/tests/fc_script/oracle/find_fun2.res b/tests/fc_script/oracle/find_fun2.res index e9f42fdf76a5d227ee458abdc59e3370a26d57d1..e59924a72f49f8278f2ff8fcec02062b9c68b2e3 100644 --- a/tests/fc_script/oracle/find_fun2.res +++ b/tests/fc_script/oracle/find_fun2.res @@ -1,4 +1,4 @@ -Looking for 'main3' inside 8 file(s)... +Looking for 'main3' inside 11 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): diff --git a/tests/fc_script/oracle/find_fun3.res b/tests/fc_script/oracle/find_fun3.res index 65fc349325d2406ea212025ed38e51347b09217f..6d151d463efe8d8df1a1ac874653880564ee4eb1 100644 --- a/tests/fc_script/oracle/find_fun3.res +++ b/tests/fc_script/oracle/find_fun3.res @@ -1,2 +1,2 @@ -Looking for 'false_positive' inside 8 file(s)... +Looking for 'false_positive' inside 11 file(s)... No declaration/definition found for function 'false_positive' diff --git a/tests/fc_script/oracle/list_functions.err b/tests/fc_script/oracle/list_functions.err new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/tests/fc_script/oracle/list_functions.res b/tests/fc_script/oracle/list_functions.res new file mode 100644 index 0000000000000000000000000000000000000000..66661be089b1c3567da7838716c258edf2ac59bf --- /dev/null +++ b/tests/fc_script/oracle/list_functions.res @@ -0,0 +1,7 @@ +[kernel:typing:implicit-function-declaration] tests/fc_script/for-find-fun2.c:16: Warning: + Calling undeclared function false_positive. Old style K&R code? +f: defined at tests/fc_script/for-find-fun2.c:10 (1 statement); +g: defined at tests/fc_script/for-find-fun2.c:14 (3 statements); +h: defined at tests/fc_script/for-find-fun2.c:19 (2 statements); +k: defined at tests/fc_script/for-list-functions.c:17 (8 statements); +static_fun: defined at tests/fc_script/for-find-fun2.c:28 (1 statement), tests/fc_script/for-list-functions.c:8 (7 statements); diff --git a/tests/fc_script/oracle/list_functions2.err b/tests/fc_script/oracle/list_functions2.err new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/tests/fc_script/oracle/list_functions2.json b/tests/fc_script/oracle/list_functions2.json new file mode 100644 index 0000000000000000000000000000000000000000..7025402b87ea99196790c62e74432f85e5b8ac6d --- /dev/null +++ b/tests/fc_script/oracle/list_functions2.json @@ -0,0 +1,14 @@ +[ { "extf": { "declarations": [ "tests/fc_script/for-list-functions2.h:1" ] } }, + { "f": { "definitions": [ { "location": "tests/fc_script/for-find-fun2.c:10", + "statements": 1 } ] } }, + { "false_positive": { "declarations": [ "tests/fc_script/for-find-fun2.c:25" ] } }, + { "g": { "definitions": [ { "location": "tests/fc_script/for-find-fun2.c:14", + "statements": 3 } ] } }, + { "h": { "definitions": [ { "location": "tests/fc_script/for-find-fun2.c:19", + "statements": 2 } ] } }, + { "k": { "definitions": [ { "location": "tests/fc_script/for-list-functions.c:17", + "statements": 8 } ] } }, + { "static_fun": { "definitions": [ { "location": "tests/fc_script/for-find-fun2.c:28", + "statements": 1 }, + { "location": "tests/fc_script/for-list-functions.c:8", + "statements": 7 } ] } } ] diff --git a/tests/fc_script/oracle/list_functions2.res b/tests/fc_script/oracle/list_functions2.res new file mode 100644 index 0000000000000000000000000000000000000000..935425e8f69630f7d96101cf0193acff6d738412 --- /dev/null +++ b/tests/fc_script/oracle/list_functions2.res @@ -0,0 +1,3 @@ +[kernel:typing:implicit-function-declaration] tests/fc_script/for-find-fun2.c:16: Warning: + Calling undeclared function false_positive. Old style K&R code? +[list-functions] List written to: tests/fc_script/result/list_functions2.json diff --git a/tests/idct/oracle/ieee_1180_1990.res.oracle b/tests/idct/oracle/ieee_1180_1990.res.oracle index 6be9aa2345755e88b527f989d55cdacf4734fe1a..02d4b53e0b88d1de3344dd38408a5e06a4b952bc 100644 --- a/tests/idct/oracle/ieee_1180_1990.res.oracle +++ b/tests/idct/oracle/ieee_1180_1990.res.oracle @@ -1124,6 +1124,51 @@ --- Global Properties -------------------------------------------------------------------------------- +[ Valid ] Axiomatic 'GetsLength' + axiomatic GetsLength + by Frama-C kernel. +[ Valid ] Axiomatic 'MemChr' + axiomatic MemChr + by Frama-C kernel. +[ Valid ] Axiomatic 'MemCmp' + axiomatic MemCmp + by Frama-C kernel. +[ Valid ] Axiomatic 'MemSet' + axiomatic MemSet + by Frama-C kernel. +[ Valid ] Axiomatic 'StrChr' + axiomatic StrChr + by Frama-C kernel. +[ Valid ] Axiomatic 'StrCmp' + axiomatic StrCmp + by Frama-C kernel. +[ Valid ] Axiomatic 'StrLen' + axiomatic StrLen + by Frama-C kernel. +[ Valid ] Axiomatic 'StrNCmp' + axiomatic StrNCmp + by Frama-C kernel. +[ Valid ] Axiomatic 'WMemChr' + axiomatic WMemChr + by Frama-C kernel. +[ Valid ] Axiomatic 'WcsChr' + axiomatic WcsChr + by Frama-C kernel. +[ Valid ] Axiomatic 'WcsCmp' + axiomatic WcsCmp + by Frama-C kernel. +[ Valid ] Axiomatic 'WcsLen' + axiomatic WcsLen + by Frama-C kernel. +[ Valid ] Axiomatic 'WcsNCmp' + axiomatic WcsNCmp + by Frama-C kernel. +[ Valid ] Axiomatic 'format_length' + axiomatic format_length + by Frama-C kernel. +[ Valid ] Axiomatic 'pipe_streams' + axiomatic pipe_streams + by Frama-C kernel. [ Extern ] Axiom 'memchr_def' axiom memchr_def Unverifiable but considered Valid. @@ -1226,51 +1271,6 @@ [ Extern ] Axiom 'wmemchr_def' axiom wmemchr_def Unverifiable but considered Valid. -[ Valid ] Axiomatic 'GetsLength' - axiomatic GetsLength - by Frama-C kernel. -[ Valid ] Axiomatic 'MemChr' - axiomatic MemChr - by Frama-C kernel. -[ Valid ] Axiomatic 'MemCmp' - axiomatic MemCmp - by Frama-C kernel. -[ Valid ] Axiomatic 'MemSet' - axiomatic MemSet - by Frama-C kernel. -[ Valid ] Axiomatic 'StrChr' - axiomatic StrChr - by Frama-C kernel. -[ Valid ] Axiomatic 'StrCmp' - axiomatic StrCmp - by Frama-C kernel. -[ Valid ] Axiomatic 'StrLen' - axiomatic StrLen - by Frama-C kernel. -[ Valid ] Axiomatic 'StrNCmp' - axiomatic StrNCmp - by Frama-C kernel. -[ Valid ] Axiomatic 'WMemChr' - axiomatic WMemChr - by Frama-C kernel. -[ Valid ] Axiomatic 'WcsChr' - axiomatic WcsChr - by Frama-C kernel. -[ Valid ] Axiomatic 'WcsCmp' - axiomatic WcsCmp - by Frama-C kernel. -[ Valid ] Axiomatic 'WcsLen' - axiomatic WcsLen - by Frama-C kernel. -[ Valid ] Axiomatic 'WcsNCmp' - axiomatic WcsNCmp - by Frama-C kernel. -[ Valid ] Axiomatic 'format_length' - axiomatic format_length - by Frama-C kernel. -[ Valid ] Axiomatic 'pipe_streams' - axiomatic pipe_streams - by Frama-C kernel. -------------------------------------------------------------------------------- --- Properties of Function 'remove' diff --git a/tests/jcdb/jcdb.c b/tests/jcdb/jcdb.c index f2389fe2e8ada1276a640ceb2689b7ff4f5a6f76..caf9e83a15294ec38baa1aec35760c73ecbcd5c9 100644 --- a/tests/jcdb/jcdb.c +++ b/tests/jcdb/jcdb.c @@ -4,6 +4,7 @@ OPT: -json-compilation-database @PTEST_DIR@ -print OPT: @PTEST_DIR@/jcdb2.c -json-compilation-database @PTEST_DIR@/with_arguments.json -print 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 +EXECNOW: LOG logic-pp-include.res LOG logic-pp-include.err @frama-c@ -json-compilation-database @PTEST_DIR@/logic-pp-include @PTEST_DIR@/logic-pp-include/no-stdio.c -print -no-autoload-plugins > @PTEST_DIR@/result/logic-pp-include.res 2> @PTEST_DIR@/result/logic-pp-include.err */ #include <stdio.h> diff --git a/tests/jcdb/logic-pp-include/compile_commands.json b/tests/jcdb/logic-pp-include/compile_commands.json new file mode 100644 index 0000000000000000000000000000000000000000..9e4246444d3e953299c8e11a2716c4d678b88369 --- /dev/null +++ b/tests/jcdb/logic-pp-include/compile_commands.json @@ -0,0 +1,11 @@ +[ + { + "arguments": [ + "-include", + "stdio.h", + "-DZERO=0" + ], + "directory": ".", + "file": "no-stdio.c" + } +] diff --git a/tests/jcdb/logic-pp-include/no-stdio.c b/tests/jcdb/logic-pp-include/no-stdio.c new file mode 100644 index 0000000000000000000000000000000000000000..5dfc21439f01527a4f67a7a1ebcb44a153b668b7 --- /dev/null +++ b/tests/jcdb/logic-pp-include/no-stdio.c @@ -0,0 +1,7 @@ +// compile_commands.json must have "-includestdio.h" and define ZERO + +//@ ensures \result == ZERO; +int main(){ + printf("bla\n"); + return ZERO; +} diff --git a/tests/jcdb/oracle/logic-pp-include.err b/tests/jcdb/oracle/logic-pp-include.err new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/tests/jcdb/oracle/logic-pp-include.res b/tests/jcdb/oracle/logic-pp-include.res new file mode 100644 index 0000000000000000000000000000000000000000..a8432079471806a65084e802c433a6492980d71e --- /dev/null +++ b/tests/jcdb/oracle/logic-pp-include.res @@ -0,0 +1,16 @@ +[kernel] Parsing tests/jcdb/logic-pp-include/no-stdio.c (with preprocessing) +/* Generated by Frama-C */ +#include "errno.h" +#include "stdarg.h" +#include "stddef.h" +#include "stdio.h" +/*@ ensures \result ≡ 0; */ +int main(void) +{ + int __retres; + printf("bla\n"); + __retres = 0; + return __retres; +} + + diff --git a/tests/libc/oracle/fc_libc.0.res.oracle b/tests/libc/oracle/fc_libc.0.res.oracle index 9cd8d6f3657ff4f090b9d78bd2d0916e9644b61e..5ba9d6cd179e271e66d7029f2bbe88fa4b466efe 100644 --- a/tests/libc/oracle/fc_libc.0.res.oracle +++ b/tests/libc/oracle/fc_libc.0.res.oracle @@ -15,7 +15,7 @@ [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function main: -[metrics] Defined functions (83) +[metrics] Defined functions (84) ====================== Frama_C_abort (1 call); Frama_C_char_interval (1 call); Frama_C_double_interval (0 call); Frama_C_float_interval (0 call); @@ -40,10 +40,10 @@ strncat (0 call); strncmp (0 call); strncpy (2 calls); strndup (0 call); strnlen (0 call); strrchr (0 call); strsignal (0 call); strstr (0 call); tolower (0 call); toupper (0 call); unsetenv (0 call); wcscat (0 call); - wcscpy (0 call); wcslen (2 calls); wcsncat (0 call); wcsncpy (0 call); - wmemcpy (0 call); wmemset (0 call); + wcscpy (0 call); wcsdup (0 call); wcslen (3 calls); wcsncat (0 call); + wcsncpy (0 call); wmemcpy (1 call); wmemset (0 call); - Specified-only functions (413) + Specified-only functions (414) ============================== FD_CLR (0 call); FD_ISSET (0 call); FD_SET (0 call); FD_ZERO (0 call); Frama_C_int_interval (0 call); Frama_C_long_interval (0 call); @@ -118,7 +118,7 @@ log10f (0 call); log10l (0 call); log2 (0 call); log2f (0 call); log2l (0 call); logf (0 call); logl (0 call); longjmp (0 call); lrand48 (0 call); lseek (0 call); lstat (0 call); makedev (0 call); - malloc (8 calls); mblen (0 call); mbstowcs (0 call); mbtowc (0 call); + malloc (9 calls); mblen (0 call); mbstowcs (0 call); mbtowc (0 call); mkdir (0 call); mkfifo (0 call); mknod (0 call); mkstemp (0 call); mktime (0 call); mrand48 (0 call); nan (0 call); nanf (0 call); nanl (0 call); nanosleep (0 call); nrand48 (0 call); ntohl (0 call); @@ -163,11 +163,11 @@ ungetc (0 call); unlink (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); + waitpid (0 call); wcscasecmp (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); Undefined and unspecified functions (1) ======================================= @@ -187,18 +187,18 @@ Global metrics ============== - Sloc = 1127 - Decision point = 213 + Sloc = 1138 + Decision point = 214 Global variables = 85 - If = 198 + If = 199 Loop = 43 - Goto = 97 - Assignment = 459 - Exit point = 83 - Function = 497 - Function call = 93 + Goto = 98 + Assignment = 465 + Exit point = 84 + Function = 499 + Function call = 96 Pointer dereferencing = 159 - Cyclomatic complexity = 296 + Cyclomatic complexity = 298 /* Generated by Frama-C */ #include "__fc_builtin.c" #include "__fc_builtin.h" diff --git a/tests/libc/oracle/fc_libc.1.res.oracle b/tests/libc/oracle/fc_libc.1.res.oracle index be0c42e75318b30374f12a8cf0c5bbd05ec53a3c..fd785f066330f5aec494ac26657707f3754da401 100644 --- a/tests/libc/oracle/fc_libc.1.res.oracle +++ b/tests/libc/oracle/fc_libc.1.res.oracle @@ -6789,6 +6789,14 @@ extern wchar_t *fgetws(wchar_t * __restrict ws, int n, } */ +/*@ requires valid_wstring_ws1: valid_read_wstring(ws1); + requires valid_wstring_ws2: valid_read_wstring(ws2); + assigns \result; + assigns \result + \from (indirect: *(ws1 + (0 ..))), (indirect: *(ws2 + (0 ..))); + */ +extern int wcscasecmp(wchar_t const *ws1, wchar_t const *ws2); + /*@ requires valid_dest: valid_or_empty((void *)dest, (unsigned int)(sizeof(wchar_t) * n)); @@ -6967,6 +6975,23 @@ wchar_t *wcsncat(wchar_t *dest, wchar_t const *src, size_t n) return dest; } +wchar_t *wcsdup(wchar_t const *ws) +{ + wchar_t *__retres; + size_t tmp; + tmp = wcslen(ws); + size_t l = tmp + (size_t)1; + wchar_t *p = malloc(sizeof(wchar_t) * l); + if (! p) { + __fc_errno = 12; + __retres = (wchar_t *)0; + goto return_label; + } + wmemcpy(p,ws,l); + __retres = p; + return_label: return __retres; +} + /*@ ghost extern int __fc_stack_status; */ /*@ ensures allocation: \fresh{Old, Here}(\result,\old(size)); diff --git a/tests/libc/oracle/wchar_c_h.0.res.oracle b/tests/libc/oracle/wchar_c_h.0.res.oracle index bf7be7856c70d4995356619b9b5d331ff8a39e68..c03089cbb4c3912c5900092bb203abd7919ae444 100644 --- a/tests/libc/oracle/wchar_c_h.0.res.oracle +++ b/tests/libc/oracle/wchar_c_h.0.res.oracle @@ -185,6 +185,33 @@ function wmemchr: precondition 'initialization' got status valid. [eva] tests/libc/wchar_c_h.c:70: function wmemchr: precondition 'danglingness' got status valid. +[eva] computing for function wcsdup <- main. + Called from tests/libc/wchar_c_h.c:73. +[eva] share/libc/wchar.c:98: Call to builtin wcslen +[eva] share/libc/wchar.c:98: + function wcslen: precondition 'valid_string_s' got status valid. +[eva] share/libc/wchar.c:99: Call to builtin malloc +[eva] share/libc/wchar.c:99: allocating variable __malloc_wcsdup_l99 +[eva] computing for function wmemcpy <- wcsdup <- main. + Called from share/libc/wchar.c:104. +[eva] Recording results for wmemcpy +[eva] Done for function wmemcpy +[eva] Recording results for wcsdup +[eva] Done for function wcsdup +[eva] computing for function wcsdup <- main. + Called from tests/libc/wchar_c_h.c:75. +[eva] share/libc/wchar.c:98: Call to builtin wcslen +[eva] share/libc/wchar.c:99: Call to builtin malloc +[eva] share/libc/wchar.c:99: allocating variable __malloc_wcsdup_l99_0 +[eva] computing for function wmemcpy <- wcsdup <- main. + Called from share/libc/wchar.c:104. +[eva] Recording results for wmemcpy +[eva] Done for function wmemcpy +[eva] Recording results for wcsdup +[eva] Done for function wcsdup +[eva] tests/libc/wchar_c_h.c:76: Call to builtin free +[eva] tests/libc/wchar_c_h.c:76: + function free: precondition 'freeable' got status valid. [eva] Recording results for main [eva] done for function main [eva] ====== VALUES COMPUTED ====== @@ -234,16 +261,38 @@ [4] ∈ {116} [5..19] ∈ UNINITIALIZED [eva:final-states] Values at end of function wmemcpy: - buf[0] ∈ {72} - [1] ∈ {97} - [2] ∈ {121} - [3] ∈ {115} - [4] ∈ {116} - [5..19] ∈ UNINITIALIZED + buf[0..4] ∈ [--..--] + [5] ∈ {0} or UNINITIALIZED + [6..19] ∈ UNINITIALIZED + __malloc_wcsdup_l99[0] ∈ {65} + [1] ∈ {66} + [2] ∈ {67} + [3] ∈ {0} + __malloc_wcsdup_l99_0[0] ∈ {65} + [1] ∈ {66} + [2] ∈ {67} + [3] ∈ {0} +[eva:final-states] Values at end of function wcsdup: + __fc_errno ∈ [--..--] + __fc_heap_status ∈ [--..--] + l ∈ {4} + p ∈ {{ NULL ; &__malloc_wcsdup_l99[0] ; &__malloc_wcsdup_l99_0[0] }} + __retres ∈ + {{ NULL ; &__malloc_wcsdup_l99[0] ; &__malloc_wcsdup_l99_0[0] }} + __malloc_wcsdup_l99[0] ∈ {65} + [1] ∈ {66} + [2] ∈ {67} + [3] ∈ {0} + __malloc_wcsdup_l99_0[0] ∈ {65} + [1] ∈ {66} + [2] ∈ {67} + [3] ∈ {0} [eva:final-states] Values at end of function wmemset: buf[0..4] ∈ [--..--] [5..19] ∈ UNINITIALIZED [eva:final-states] Values at end of function main: + __fc_errno ∈ [--..--] + __fc_heap_status ∈ [--..--] sc1 ∈ {{ L"Needle" }} sc2 ∈ {{ L"Haystack" }} buf[0..4] ∈ [--..--] or UNINITIALIZED @@ -267,4 +316,13 @@ wcr ∈ {{ L"ABC" + {8} }} wmr1 ∈ {0} wmr2 ∈ {{ L"ABC" + {8} }} + dupbuf ∈ {{ NULL ; &__malloc_wcsdup_l99_0[0] }} or ESCAPINGADDR __retres ∈ {0} + __malloc_wcsdup_l99[0] ∈ {65} + [1] ∈ {66} + [2] ∈ {67} + [3] ∈ {0} + __malloc_wcsdup_l99_0[0] ∈ {65} + [1] ∈ {66} + [2] ∈ {67} + [3] ∈ {0} diff --git a/tests/libc/oracle/wchar_h.res.oracle b/tests/libc/oracle/wchar_h.res.oracle index bf863d20cc98ba05b724a972dbc48a76447e3120..e224ff4e25b18074e7af8fcc120c1760d9f16eb1 100644 --- a/tests/libc/oracle/wchar_h.res.oracle +++ b/tests/libc/oracle/wchar_h.res.oracle @@ -185,6 +185,21 @@ [eva] tests/libc/wchar_h.c:66: function wcsncat: no state left, precondition 'separation' got status valid. [eva] Done for function wcsncat +[eva] computing for function wcscasecmp <- main. + Called from tests/libc/wchar_h.c:70. +[eva] using specification for function wcscasecmp +[eva] tests/libc/wchar_h.c:70: + function wcscasecmp: precondition 'valid_wstring_ws1' got status valid. +[eva] tests/libc/wchar_h.c:70: + function wcscasecmp: precondition 'valid_wstring_ws2' got status valid. +[eva] Done for function wcscasecmp +[eva] computing for function wcscasecmp <- main. + Called from tests/libc/wchar_h.c:71. +[eva] tests/libc/wchar_h.c:71: + function wcscasecmp: precondition 'valid_wstring_ws1' got status valid. +[eva] tests/libc/wchar_h.c:71: + function wcscasecmp: precondition 'valid_wstring_ws2' got status valid. +[eva] Done for function wcscasecmp [eva] Recording results for main [eva] done for function main [eva] ====== VALUES COMPUTED ====== @@ -201,4 +216,5 @@ wdst2[0..9] ∈ {65} [10] ∈ {0} [11..19] ∈ [--..--] + ir ∈ [--..--] __retres ∈ {0; 1} diff --git a/tests/libc/wchar_c_h.c b/tests/libc/wchar_c_h.c index 8dadb46e2f8bf6ed9d7b3339bb0b193e6a4a08b8..0baf530c850383431efbda23cdbb51e574f09d05 100644 --- a/tests/libc/wchar_c_h.c +++ b/tests/libc/wchar_c_h.c @@ -69,6 +69,13 @@ int main() { wchar_t *wmr1 = wmemchr(wc, L'C', 2); // not found wchar_t *wmr2 = wmemchr(p, L'C', 2); // found +#ifdef TEST_IMPLEMENTATION + wchar_t *dupbuf = wcsdup(wc); + if (!dupbuf) goto exit; + dupbuf = wcsdup(dupbuf); // memory leak + free(dupbuf); +#endif + exit: return 0; } diff --git a/tests/libc/wchar_h.c b/tests/libc/wchar_h.c index e7cb493fa75d8adf0b06af406ebdf64c38dd3463..3bde71c8dc721489453c79ddf683c6dbbba409c3 100644 --- a/tests/libc/wchar_h.c +++ b/tests/libc/wchar_h.c @@ -66,5 +66,8 @@ int main() { wcsncat(wdst2+10, wdst2, 10); // error: no separation //@ assert unreachable:\false; } + + int ir = wcscasecmp(L"\0", L"\0"); + ir = wcscasecmp(wsrc, L"\0"); return 0; } diff --git a/tests/rte/oracle/value_rte.res.oracle b/tests/rte/oracle/value_rte.res.oracle index 42a86c5e8f0cac08a72672c4f4908283f3ef6737..70d52622e9915aa69db43a5d579cedd29410a89f 100644 --- a/tests/rte/oracle/value_rte.res.oracle +++ b/tests/rte/oracle/value_rte.res.oracle @@ -49,6 +49,36 @@ --- Global Properties -------------------------------------------------------------------------------- +[ Valid ] Axiomatic 'GetsLength' + by Frama-C kernel. +[ Valid ] Axiomatic 'MemChr' + by Frama-C kernel. +[ Valid ] Axiomatic 'MemCmp' + by Frama-C kernel. +[ Valid ] Axiomatic 'MemSet' + by Frama-C kernel. +[ Valid ] Axiomatic 'StrChr' + by Frama-C kernel. +[ Valid ] Axiomatic 'StrCmp' + by Frama-C kernel. +[ Valid ] Axiomatic 'StrLen' + by Frama-C kernel. +[ Valid ] Axiomatic 'StrNCmp' + by Frama-C kernel. +[ Valid ] Axiomatic 'WMemChr' + by Frama-C kernel. +[ Valid ] Axiomatic 'WcsChr' + by Frama-C kernel. +[ Valid ] Axiomatic 'WcsCmp' + by Frama-C kernel. +[ Valid ] Axiomatic 'WcsLen' + by Frama-C kernel. +[ Valid ] Axiomatic 'WcsNCmp' + by Frama-C kernel. +[ Valid ] Axiomatic 'format_length' + by Frama-C kernel. +[ Valid ] Axiomatic 'pipe_streams' + by Frama-C kernel. [ Extern ] Axiom 'memchr_def' Unverifiable but considered Valid. [ Extern ] Axiom 'memcmp_strlen_left' @@ -117,36 +147,6 @@ Unverifiable but considered Valid. [ Extern ] Axiom 'wmemchr_def' Unverifiable but considered Valid. -[ Valid ] Axiomatic 'GetsLength' - by Frama-C kernel. -[ Valid ] Axiomatic 'MemChr' - by Frama-C kernel. -[ Valid ] Axiomatic 'MemCmp' - by Frama-C kernel. -[ Valid ] Axiomatic 'MemSet' - by Frama-C kernel. -[ Valid ] Axiomatic 'StrChr' - by Frama-C kernel. -[ Valid ] Axiomatic 'StrCmp' - by Frama-C kernel. -[ Valid ] Axiomatic 'StrLen' - by Frama-C kernel. -[ Valid ] Axiomatic 'StrNCmp' - by Frama-C kernel. -[ Valid ] Axiomatic 'WMemChr' - by Frama-C kernel. -[ Valid ] Axiomatic 'WcsChr' - by Frama-C kernel. -[ Valid ] Axiomatic 'WcsCmp' - by Frama-C kernel. -[ Valid ] Axiomatic 'WcsLen' - by Frama-C kernel. -[ Valid ] Axiomatic 'WcsNCmp' - by Frama-C kernel. -[ Valid ] Axiomatic 'format_length' - by Frama-C kernel. -[ Valid ] Axiomatic 'pipe_streams' - by Frama-C kernel. -------------------------------------------------------------------------------- --- Properties of Function 'remove' diff --git a/tests/spec/add_global.ml b/tests/spec/add_global.ml index 0a8f954137c1f7f9ff583f8be0ef3e617fc3e0fc..ddb4d76221225860fa846fced0a6450a7d75f0e3 100644 --- a/tests/spec/add_global.ml +++ b/tests/spec/add_global.ml @@ -1,7 +1,7 @@ open Cil_types let emitter = - Emitter.create "Fancy" [ Emitter.Global_annot ] ~correctness:[] ~tuning:[] + Emitter.create "Fancy" [ Emitter.Global_annot ] ~correctness:[] ~tuning:[] class vis prj = object(self) @@ -14,8 +14,8 @@ object(self) Daxiomatic ("MyAxiomatic", [ Dlemma( - "myaxiom", true, [], [], - Logic_const.(toplevel_predicate ptrue), + "myaxiom", [], [], + Logic_const.(toplevel_predicate ~kind:Admit ptrue), [], Cil_datatype.Location.unknown)], [], Cil_datatype.Location.unknown) in diff --git a/tests/spec/ghost_attribute.i b/tests/spec/ghost_attribute.i new file mode 100644 index 0000000000000000000000000000000000000000..c37c677382b047333351dea224fa8291d6856daa --- /dev/null +++ b/tests/spec/ghost_attribute.i @@ -0,0 +1,3 @@ +void foo(int* p /*@ my_attribute */){ + int /*@ my_attribute */ v ; +} diff --git a/tests/spec/oracle/axiom_redef_bts1005.res.oracle b/tests/spec/oracle/axiom_redef_bts1005.res.oracle index dd1cd99891e96851a59e1b0c045639884d5b1623..01b443473c69f0239760d31fade993604a9b6f9b 100644 --- a/tests/spec/oracle/axiom_redef_bts1005.res.oracle +++ b/tests/spec/oracle/axiom_redef_bts1005.res.oracle @@ -1,5 +1,5 @@ [kernel] Parsing tests/spec/axiom_redef_bts1005.i (no preprocessing) [kernel:annot-error] tests/spec/axiom_redef_bts1005.i:5: Warning: - inj1 is already registered as axiom (tests/spec/axiom_redef_bts1005.i:4). Ignoring global annotation + axiom inj1 is already registered as axiom (tests/spec/axiom_redef_bts1005.i:4). Ignoring global annotation /* Generated by Frama-C */ diff --git a/tests/spec/oracle/ghost_attribute.res.oracle b/tests/spec/oracle/ghost_attribute.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..4a38d813d2571f4dec979f144c0684caf35120fc --- /dev/null +++ b/tests/spec/oracle/ghost_attribute.res.oracle @@ -0,0 +1,9 @@ +[kernel] Parsing tests/spec/ghost_attribute.i (no preprocessing) +/* Generated by Frama-C */ +void foo(int *p /*@ my_attribute */) +{ + int /*@ my_attribute */ v; + return; +} + + diff --git a/tests/syntax/cpp-command.c b/tests/syntax/cpp-command.c index b508b543b6b25745f437b481935ab3e1add8fa02..4a533887e76e6e5ee719c0efaec0174c0414c3bb 100644 --- a/tests/syntax/cpp-command.c +++ b/tests/syntax/cpp-command.c @@ -1,8 +1,18 @@ /* run.config* - FILTER: sed "s:/[^ ]*/cpp-command\.[^ ]*\.i:TMPDIR/FILE.i:g; s:$PWD/::; s: -m32::" + FILTER: sed "s:/[^ ]*[/]cpp-command\.[^ ]*\.i:TMPDIR/FILE.i:g; s:$PWD/::; s: -m32::" OPT: -machdep x86_32 -no-autoload-plugins -cpp-frama-c-compliant -cpp-command "echo [\$(basename '%1') \$(basename '%1') \$(basename '%i') \$(basename '%input')] ['%2' '%2' '%o' '%output'] ['%args']" OPT: -machdep x86_32 -no-autoload-plugins -cpp-frama-c-compliant -cpp-command "echo %%1 = \$(basename '%1') %%2 = '%2' %%args = '%args'" OPT: -machdep x86_32 -no-autoload-plugins -cpp-frama-c-compliant -cpp-command "printf \"%s\n\" \"using \\% has no effect : \$(basename \"\%input\")\"" OPT: -machdep x86_32 -no-autoload-plugins -cpp-frama-c-compliant -cpp-command "echo %var is not an interpreted placeholder" OPT: -machdep x86_32 -no-autoload-plugins -print-cpp-commands + OPT: -cpp-extra-args-per-file=@PTEST_FILE@:"-DPF=\\\"cp%02d_3f\\\"" -no-autoload-plugins @PTEST_FILE@ -print */ + +#include <stdio.h> +void printer(int i, float f) { + printf(PF, i, f); +} + +int main() { + printer(1, 1.0); +} diff --git a/tests/syntax/ghost_cv_var_decl.ml b/tests/syntax/ghost_cv_var_decl.ml index 7d60ff48a6af560db9cd0ab88973b7b2ebfc090a..4f307bc08e320c54251ce0bdc10c3218f3b2399c 100644 --- a/tests/syntax/ghost_cv_var_decl.ml +++ b/tests/syntax/ghost_cv_var_decl.ml @@ -1,24 +1,3 @@ -(**************************************************************************) -(* *) -(* This file is part of Frama-C. *) -(* *) -(* Copyright (C) 2007-2020 *) -(* CEA (Commissariat à l'énergie atomique et aux énergies *) -(* alternatives) *) -(* INRIA (Institut National de Recherche en Informatique et en *) -(* Automatique) *) -(* *) -(* 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. *) -(* *) -(**************************************************************************) - open Cil_types let rec ghost_status fmt lval = diff --git a/tests/syntax/oracle/bts1553_2.res.oracle b/tests/syntax/oracle/bts1553_2.res.oracle index 9293259fe565811c4e9f7f6dedc355b38faa4288..93dacee514969b19d8bc20ff47fcaffdd2a4c526 100644 --- a/tests/syntax/oracle/bts1553_2.res.oracle +++ b/tests/syntax/oracle/bts1553_2.res.oracle @@ -5,6 +5,8 @@ struct a { int b ; }; + /* compiler builtin: + void Frama_C_show_aorai_state(...); */ /* compiler builtin: __builtin_va_list __builtin_next_arg(void); */ /* compiler builtin: @@ -40,6 +42,8 @@ struct a { int b ; }; + /* compiler builtin: + void Frama_C_show_aorai_state(...); */ /* compiler builtin: __builtin_va_list __builtin_next_arg(void); */ /* compiler builtin: diff --git a/tests/syntax/oracle/check_builtin_bts1440.res.oracle b/tests/syntax/oracle/check_builtin_bts1440.res.oracle index 510a8f2b3ab41a3c39cd5c26cc41c8703528b9e1..f81e5813ccc1c324160bc8600bf6e042c3e3fbbd 100644 --- a/tests/syntax/oracle/check_builtin_bts1440.res.oracle +++ b/tests/syntax/oracle/check_builtin_bts1440.res.oracle @@ -2,6 +2,8 @@ [kernel:file:print-one] result of parsing tests/syntax/check_builtin_bts1440.i: /* Generated by Frama-C */ + void Frama_C_show_aorai_state(...); + void __builtin__Exit(int); int __builtin___fprintf_chk(void *, int, char const * , ...); diff --git a/tests/syntax/oracle/cpp-command.0.res.oracle b/tests/syntax/oracle/cpp-command.0.res.oracle index 52bfebffa2b2199998d087475431714d90ccffb9..f910fe5ece81818d84c0dab9a4af138213c8ffa8 100644 --- a/tests/syntax/oracle/cpp-command.0.res.oracle +++ b/tests/syntax/oracle/cpp-command.0.res.oracle @@ -1,2 +1,2 @@ [kernel] Parsing tests/syntax/cpp-command.c (with preprocessing) -[cpp-command.c cpp-command.c cpp-command.c cpp-command.c] [TMPDIR/FILE.i TMPDIR/FILE.i TMPDIR/FILE.i TMPDIR/FILE.i] [ -I./share/libc -D__FRAMAC__ -D__FC_MACHDEP_X86_32 -dD -nostdinc] +[cpp-command.c cpp-command.c cpp-command.c cpp-command.c] [TMPDIR/FILE.i TMPDIR/FILE.i TMPDIR/FILE.i TMPDIR/FILE.i] [-I./share/libc -D__FRAMAC__ -D__FC_MACHDEP_X86_32 -dD -nostdinc] diff --git a/tests/syntax/oracle/cpp-command.1.res.oracle b/tests/syntax/oracle/cpp-command.1.res.oracle index 9fa845eca34510435741d8e8e4303e5969fb7434..4d07269a88da2aca64a17efaba30377dfd8fcaab 100644 --- a/tests/syntax/oracle/cpp-command.1.res.oracle +++ b/tests/syntax/oracle/cpp-command.1.res.oracle @@ -1,2 +1,2 @@ [kernel] Parsing tests/syntax/cpp-command.c (with preprocessing) -%1 = cpp-command.c %2 = TMPDIR/FILE.i %args = -I./share/libc -D__FRAMAC__ -D__FC_MACHDEP_X86_32 -dD -nostdinc +%1 = cpp-command.c %2 = TMPDIR/FILE.i %args = -I./share/libc -D__FRAMAC__ -D__FC_MACHDEP_X86_32 -dD -nostdinc diff --git a/tests/syntax/oracle/cpp-command.4.res.oracle b/tests/syntax/oracle/cpp-command.4.res.oracle index 2008e719f9d6ebf04f9f1ef71946c37a79d60f88..2f8d187fc5edca6bf9ef78bff98609317dc67759 100644 --- a/tests/syntax/oracle/cpp-command.4.res.oracle +++ b/tests/syntax/oracle/cpp-command.4.res.oracle @@ -1,2 +1,2 @@ [kernel] Preprocessing command: - gcc -E -C -I. -I./share/libc -D__FRAMAC__ -D__FC_MACHDEP_X86_32 -dD -nostdinc 'tests/syntax/cpp-command.c' -o 'TMPDIR/FILE.i' + gcc -E -C -I. -I./share/libc -D__FRAMAC__ -D__FC_MACHDEP_X86_32 -dD -nostdinc 'tests/syntax/cpp-command.c' -o 'TMPDIR/FILE.i' diff --git a/tests/syntax/oracle/cpp-command.5.res.oracle b/tests/syntax/oracle/cpp-command.5.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..72e8b677b25bad905a4dda20d59cb6f552481de4 --- /dev/null +++ b/tests/syntax/oracle/cpp-command.5.res.oracle @@ -0,0 +1,21 @@ +[kernel] Parsing tests/syntax/cpp-command.c (with preprocessing) +/* Generated by Frama-C */ +#include "errno.h" +#include "stdarg.h" +#include "stddef.h" +#include "stdio.h" +void printer(int i, float f) +{ + printf("cp%02d_3f",i,(double)f); + return; +} + +int main(void) +{ + int __retres; + printer(1,(float)1.0); + __retres = 0; + return __retres; +} + + diff --git a/tests/syntax/oracle/static_formals_1.res.oracle b/tests/syntax/oracle/static_formals_1.res.oracle index 94353adf96ce8cb00b16e417c838e314206f2554..f3dc98b3d3003fb066ecc0db86d86140b90ce85c 100644 --- a/tests/syntax/oracle/static_formals_1.res.oracle +++ b/tests/syntax/oracle/static_formals_1.res.oracle @@ -1,24 +1,24 @@ [kernel] Parsing tests/syntax/static_formals_1.c (with preprocessing) [kernel] Parsing tests/syntax/static_formals_2.c (with preprocessing) /* Generated by Frama-C */ -/*@ requires /* vid:25, lvid:25 */x < 10; */ -static int /* vid:58 */f(int /* vid:25, lvid:25 */x); +/*@ requires /* vid:26, lvid:26 */x < 10; */ +static int /* vid:60 */f(int /* vid:26, lvid:26 */x); -int /* vid:30 */g(void) +int /* vid:31 */g(void) { - int /* vid:31 */tmp; - /* vid:31 */tmp = /* vid:58 */f(4); - return /* vid:31 */tmp; + int /* vid:32 */tmp; + /* vid:32 */tmp = /* vid:60 */f(4); + return /* vid:32 */tmp; } -/*@ requires /* vid:53, lvid:53 */x < 10; */ -static int /* vid:59 */f_0(int /* vid:53, lvid:53 */x); +/*@ requires /* vid:55, lvid:55 */x < 10; */ +static int /* vid:61 */f_0(int /* vid:55, lvid:55 */x); -int /* vid:56 */h(void) +int /* vid:58 */h(void) { - int /* vid:57 */tmp; - /* vid:57 */tmp = /* vid:59 */f_0(6); - return /* vid:57 */tmp; + int /* vid:59 */tmp; + /* vid:59 */tmp = /* vid:61 */f_0(6); + return /* vid:59 */tmp; } diff --git a/tests/value/audit-in.json b/tests/value/audit-in.json new file mode 100644 index 0000000000000000000000000000000000000000..d6abf18d0ffb9f05e82b0d158058b8715f36f417 --- /dev/null +++ b/tests/value/audit-in.json @@ -0,0 +1,77 @@ +{ + "sources": { + "tests/value/audit.c": "01010101010101010101010101010101", + "tests/value/audit_included.h": "c2cc488143a476f69cf2ed04c3439e6e", + "tests/value/non_existing_file.h": "1234567890abcdef1234567890abcdef" + }, + "kernel": { + "warning-categories": { + "enabled": [ + "*", "CERT", "CERT:EXP", "CERT:EXP:46", "CERT:MSC", "CERT:MSC:38", + "acsl-extension", "annot", "annot:missing-spec", "annot-error", + "audit", "check", "check:volatile", "cmdline", "ghost", + "ghost:bad-use", "inline", "linker", + "linker:drop-conflicting-unused", "parser", + "parser:conditional-feature", "pp", "pp:compilation-db", "typing", + "typing:implicit-conv-void-ptr", + "typing:implicit-function-declaration", + "typing:incompatible-pointer-types", + "typing:incompatible-types-call", "typing:inconsistent-specifier", + "typing:int-conversion", "typing:no-proto" + ], + "disabled": [ + "CERT:EXP:10", "acsl-float-compare", "ghost:already-ghost", + "parser:decimal-float", "transient-block" + ] + } + }, + "eva": { + "correctness-parameters": { + "-absolute-valid-range": "", + "-eva-all-rounding-modes-constants": "false", + "-eva-alloc-returns-null": "true", + "-eva-builtin": "", + "-eva-builtins-auto": "true", + "-eva-context-depth": "2", + "-eva-context-valid-pointers": "false", + "-eva-context-width": "2", + "-eva-ignore-recursive-calls": "false", + "-eva-initialization-padding-globals": "yes", + "-eva-initialized-locals": "false", + "-eva-new-initial-state": "0", + "-eva-reduce-on-logic-alarms": "false", + "-eva-undefined-pointer-comparison-propagate-all": "false", + "-eva-use-spec": "", + "-eva-warn-copy-indeterminate": "", + "-eva-warn-pointer-subtraction": "true", + "-eva-warn-signed-converted-downcast": "false", + "-eva-warn-undefined-pointer-comparison": "pointer", + "-initialized-padding-locals": "true", + "-lib-entry": "false", + "-main": "main", + "-safe-arrays": "true", + "-unspecified-access": "false", + "-warn-invalid-bool": "true", + "-warn-invalid-pointer": "false", + "-warn-left-shift-negative": "true", + "-warn-pointer-downcast": "true", + "-warn-right-shift-negative": "false", + "-warn-signed-downcast": "false", + "-warn-signed-overflow": "true", + "-warn-special-float": "non-finite", + "-warn-unsigned-downcast": "false", + "-warn-unsigned-overflow": "false" + }, + "warning-categories": { + "enabled": [ + "*", "alarm", "builtins", "builtins:missing-spec", + "builtins:override", "experimental", "libc", "libc:unsupported-spec", + "locals-escaping", "malloc", "malloc:imprecise", "signed-overflow" + ], + "disabled": [ + "garbled-mix", "invalid-assigns", "loop-unroll", "malloc:weak", + "missing-loop-unroll", "missing-loop-unroll:for" + ] + } + } +} diff --git a/tests/value/audit.c b/tests/value/audit.c new file mode 100644 index 0000000000000000000000000000000000000000..7b3e27c0eb13ce8bf3de6099b21131006f9de2be --- /dev/null +++ b/tests/value/audit.c @@ -0,0 +1,11 @@ +/* run.config + LOG: audit-out.json + STDOPT: #"-audit-check @PTEST_DIR@/audit-in.json -audit-prepare @PTEST_DIR@/result/audit-out.json -kernel-warn-key audit=active" +*/ + +#include "audit_included.h" +#include "audit_included_but_not_listed.h" + +void main() { + float f = 2.1; // to trigger a syntactic warning +} diff --git a/tests/value/audit_included.h b/tests/value/audit_included.h new file mode 100644 index 0000000000000000000000000000000000000000..d4b481cc2ee4f9d292b6ea835cb8d09ef16780b7 --- /dev/null +++ b/tests/value/audit_included.h @@ -0,0 +1 @@ +// This file is included by audit.c diff --git a/tests/value/audit_included_but_not_listed.h b/tests/value/audit_included_but_not_listed.h new file mode 100644 index 0000000000000000000000000000000000000000..d4b481cc2ee4f9d292b6ea835cb8d09ef16780b7 --- /dev/null +++ b/tests/value/audit_included_but_not_listed.h @@ -0,0 +1 @@ +// This file is included by audit.c diff --git a/tests/value/oracle/audit-out.json b/tests/value/oracle/audit-out.json new file mode 100644 index 0000000000000000000000000000000000000000..f9aa254ce113486f162682dd6cebdc83f2a6768d --- /dev/null +++ b/tests/value/oracle/audit-out.json @@ -0,0 +1,78 @@ +{ + "eva": { + "correctness-parameters": { + "-absolute-valid-range": "", + "-eva-all-rounding-modes-constants": "false", + "-eva-alloc-returns-null": "true", + "-eva-builtin": "", + "-eva-builtins-auto": "true", + "-eva-context-depth": "2", + "-eva-context-valid-pointers": "false", + "-eva-context-width": "2", + "-eva-ignore-recursive-calls": "false", + "-eva-initialization-padding-globals": "yes", + "-eva-initialized-locals": "false", + "-eva-new-initial-state": "0", + "-eva-reduce-on-logic-alarms": "false", + "-eva-undefined-pointer-comparison-propagate-all": "false", + "-eva-use-spec": "", + "-eva-warn-copy-indeterminate": "", + "-eva-warn-pointer-subtraction": "true", + "-eva-warn-signed-converted-downcast": "false", + "-eva-warn-undefined-pointer-comparison": "pointer", + "-initialized-padding-locals": "true", + "-lib-entry": "false", + "-main": "main", + "-safe-arrays": "true", + "-unspecified-access": "false", + "-warn-invalid-bool": "true", + "-warn-invalid-pointer": "false", + "-warn-left-shift-negative": "true", + "-warn-pointer-downcast": "true", + "-warn-right-shift-negative": "false", + "-warn-signed-downcast": "false", + "-warn-signed-overflow": "true", + "-warn-special-float": "non-finite", + "-warn-unsigned-downcast": "false", + "-warn-unsigned-overflow": "false" + }, + "warning-categories": { + "enabled": [ + "*", "alarm", "builtins", "builtins:missing-spec", + "builtins:override", "experimental", "libc", "libc:unsupported-spec", + "locals-escaping", "malloc", "malloc:imprecise", "signed-overflow" + ], + "disabled": [ + "garbled-mix", "invalid-assigns", "loop-unroll", "malloc:weak", + "missing-loop-unroll", "missing-loop-unroll:for" + ] + } + }, + "kernel": { + "warning-categories": { + "enabled": [ + "*", "CERT", "CERT:EXP", "CERT:EXP:46", "CERT:MSC", "CERT:MSC:38", + "acsl-extension", "annot", "annot:missing-spec", "annot:multi-from", + "annot-error", "audit", "check", "check:volatile", "cmdline", + "ghost", "ghost:bad-use", "inline", "linker", + "linker:drop-conflicting-unused", "parser", + "parser:conditional-feature", "pp", "pp:compilation-db", "typing", + "typing:implicit-conv-void-ptr", + "typing:implicit-function-declaration", + "typing:incompatible-pointer-types", + "typing:incompatible-types-call", "typing:inconsistent-specifier", + "typing:int-conversion", "typing:no-proto" + ], + "disabled": [ + "CERT:EXP:10", "acsl-float-compare", "ghost:already-ghost", + "parser:decimal-float", "transient-block" + ] + } + }, + "sources": { + "tests/value/audit.c": "08f73691217888d926a0ee15cbe18159", + "tests/value/audit_included.h": "c2cc488143a476f69cf2ed04c3439e6e", + "tests/value/audit_included_but_not_listed.h": + "c2cc488143a476f69cf2ed04c3439e6e" + } +} diff --git a/tests/value/oracle/audit.res.oracle b/tests/value/oracle/audit.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..338a77c21a7297b49c9f9bf0e4c7faba157e6082 --- /dev/null +++ b/tests/value/oracle/audit.res.oracle @@ -0,0 +1,34 @@ +[kernel:audit] Warning: + different hashes for tests/value/audit.c: got 08f73691217888d926a0ee15cbe18159, expected 01010101010101010101010101010101 +[kernel:audit] Warning: + different hashes for tests/value/audit_included_but_not_listed.h: got c2cc488143a476f69cf2ed04c3439e6e, expected <none> (not in list) +[kernel:audit] Warning: + missing files: + tests/value/non_existing_file.h +[kernel] Audit: sources list written to: tests/value/result/audit-out.json +[kernel] Parsing tests/value/audit.c (with preprocessing) +[kernel:parser:decimal-float] tests/value/audit.c:10: 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) +[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] Recording results for main +[eva] done for function main +[eva] ====== VALUES COMPUTED ====== +[eva:final-states] Values at end of function main: + f ∈ {2.09999990463} +[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: + NO EFFECTS +[from] ====== END OF DEPENDENCIES ====== +[inout] Out (internal) for function main: + f +[inout] Inputs for function main: + \nothing +[kernel] Wrote: tests/value/result/audit-out.json