diff --git a/.Makefile.lint b/.Makefile.lint index ecae11caedaf5711a2d0241b5a76796b47daffe0..7d18f22eed17986328f25354182e7a0ccd4fb06a 100644 --- a/.Makefile.lint +++ b/.Makefile.lint @@ -81,17 +81,6 @@ ML_LINT_KO+=src/kernel_services/ast_data/ast.mli ML_LINT_KO+=src/kernel_services/ast_data/kernel_function.ml ML_LINT_KO+=src/kernel_services/ast_data/kernel_function.mli ML_LINT_KO+=src/kernel_services/ast_data/property_status.mli -ML_LINT_KO+=src/kernel_services/ast_printing/cabs_debug.ml -ML_LINT_KO+=src/kernel_services/ast_printing/cil_descriptive_printer.ml -ML_LINT_KO+=src/kernel_services/ast_printing/cil_printer.mli -ML_LINT_KO+=src/kernel_services/ast_printing/cil_types_debug.mli -ML_LINT_KO+=src/kernel_services/ast_printing/cprint.ml -ML_LINT_KO+=src/kernel_services/ast_printing/cprint.mli -ML_LINT_KO+=src/kernel_services/ast_printing/logic_print.ml -ML_LINT_KO+=src/kernel_services/ast_printing/printer.ml -ML_LINT_KO+=src/kernel_services/ast_printing/printer_api.mli -ML_LINT_KO+=src/kernel_services/ast_printing/printer_builder.ml -ML_LINT_KO+=src/kernel_services/ast_printing/printer_builder.mli ML_LINT_KO+=src/kernel_services/ast_queries/ast_info.ml ML_LINT_KO+=src/kernel_services/ast_queries/ast_info.mli ML_LINT_KO+=src/kernel_services/ast_queries/cil.mli diff --git a/.gitignore b/.gitignore index 633a7d72b4f6a96980eec0d1d508467a17ddfa92..0e333030f4d2f99767fd4ca245b5c91ccbfd7f55 100644 --- a/.gitignore +++ b/.gitignore @@ -66,6 +66,7 @@ autom4te.cache /share/manuals/ #doc + /doc/manuals/ /doc/*/*.dot /doc/*/*.aux @@ -137,6 +138,8 @@ autom4te.cache /doc/pdg/pdg00*.png /doc/pdg/previous_motif.gif +/doc/server/ + #lib /lib/fc/ /lib/plugins/*.mli diff --git a/Makefile b/Makefile index 72f0a63b88a1e0a40be8e93f25d1a163cb87cfe6..4df5cf329a46333da072ec0bcfb9db04d8e5ffe6 100644 --- a/Makefile +++ b/Makefile @@ -84,6 +84,7 @@ PLUGIN_BIN_DOC_LIST:= PLUGIN_DIST_EXTERNAL_LIST:= PLUGIN_DIST_TESTS_LIST:= PLUGIN_DISTRIBUTED_NAME_LIST:= +MERLIN_PACKAGES:= PLUGIN_HEADER_SPEC_LIST := PLUGIN_HEADER_DIRS_LIST := @@ -271,6 +272,10 @@ DISTRIB_FILES:=\ share/analysis-scripts/template.mk \ $(wildcard share/emacs/*.el) share/autocomplete_frama-c \ share/_frama-c \ + share/compliance/c11_functions.json \ + share/compliance/glibc_functions.json \ + share/compliance/nonstandard_identifiers.json \ + share/compliance/posix_identifiers.json \ share/configure.ac \ share/Makefile.config.in share/Makefile.common \ share/Makefile.generic \ @@ -451,7 +456,9 @@ LIB_CMO =\ src/libraries/utils/leftistheap \ src/libraries/stdlib/integer \ src/libraries/utils/json \ - src/libraries/utils/rich_text + src/libraries/utils/markdown \ + src/libraries/utils/rich_text \ + src/libraries/utils/dotgraph NON_OPAQUE_DEPS+=\ src/libraries/datatype/unmarshal_z \ @@ -1510,6 +1517,28 @@ plugins-doc: $(addsuffix _DOC,$(PLUGIN_DISTRIBUTED_NAME_LIST)),\ $(PLUGIN_DOC_LIST))) +.PHONY: server-doc-md server-doc-html server-doc + +server-doc-md: byte + $(PRINT) 'Generating Markdown server documentation' + @rm -fr doc/server + @mkdir -p doc/server + ./bin/frama-c.byte -server-doc doc/server + +server-doc-html: server-doc-md + $(PRINT) 'Generating HTML server documentation' + @find doc/server -name "*.md" -print -exec pandoc \ + --standalone --toc --toc-depth=2 --to html \ + --template doc/pandoc/template.html \ + --metadata-file {}.json \ + --lua-filter doc/pandoc/href.lua \ + {} -o {}.html \; + @cp -f doc/pandoc/style.css doc/server/ + $(PRINT) 'HTML server documentation ready:' + $(PRINT) ' open doc/server/readme.md.html' + +server-doc: server-doc-html + # to make the documentation for one plugin only, # the name of the plugin should begin with a capital letter : # Example for the pdg doc : make Pdg_DOC @@ -1919,6 +1948,12 @@ install:: install-lib $(MKDIR) $(FRAMAC_DATADIR)/analysis-scripts/examples $(CP) share/analysis-scripts/examples/* \ $(FRAMAC_DATADIR)/analysis-scripts/examples + $(MKDIR) $(FRAMAC_DATADIR)/compliance + $(CP) share/compliance/c11_functions.json \ + share/compliance/glibc_functions.json \ + share/compliance/nonstandard_identifiers.json \ + share/compliance/posix_identifiers.json \ + $(FRAMAC_DATADIR)/compliance $(MKDIR) $(FRAMAC_DATADIR)/emacs $(CP) $(wildcard share/emacs/*.el) $(FRAMAC_DATADIR)/emacs $(CP) share/frama-c.rc $(ICONS) $(FRAMAC_DATADIR) diff --git a/doc/code/.gitignore b/doc/code/.gitignore index b7720446464e2b86180a469acd76669aa411012f..d215811ad788d24a80392ce042fe246711ae33ff 100644 --- a/doc/code/.gitignore +++ b/doc/code/.gitignore @@ -33,3 +33,4 @@ /value/ /variadic/ /wp/ +/server/ diff --git a/doc/pandoc/href.lua b/doc/pandoc/href.lua new file mode 100644 index 0000000000000000000000000000000000000000..080635d1533c0aee541b0c4b85bb8917b80bcd74 --- /dev/null +++ b/doc/pandoc/href.lua @@ -0,0 +1,4 @@ +function Link(el) + el.target = string.gsub(el.target, "%.md", ".md.html") + return el +end diff --git a/doc/pandoc/style.css b/doc/pandoc/style.css new file mode 100644 index 0000000000000000000000000000000000000000..ba609d558f7bdb1b4936cfd8fcf9520199602f46 --- /dev/null +++ b/doc/pandoc/style.css @@ -0,0 +1,224 @@ +/**************************************************************************/ +/* */ +/* This file is part of Frama-C. */ +/* */ +/* Copyright (C) 2007-2018 */ +/* CEA (Commissariat à l'énergie atomique et aux énergies */ +/* alternatives) */ +/* */ +/* you can redistribute it and/or modify it under the terms of the GNU */ +/* Lesser General Public License as published by the Free Software */ +/* Foundation, version 2.1. */ +/* */ +/* It is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU Lesser General Public License for more details. */ +/* */ +/* See the GNU Lesser General Public License version 2.1 */ +/* for more details (enclosed in the file licenses/LGPLv2.1). */ +/* */ +/**************************************************************************/ + +* { margin: 0; padding: 0 } + +html +{ + background-color: #fff; +} + +* { margin: 0; padding: 0 } + +body { + position: absolute; + color: #222; + width: 100%; + height: 100%; + overflow: hidden; + font-family: "Verdana", sans; + font-size: 12pt; +} + +/* -------------------------------------------------------------------------- */ +/* --- Headers --- */ +/* -------------------------------------------------------------------------- */ + +#BODY { + display: flex ; + flex-flow: row nowrap ; + width: 100% ; + height: 100% ; + overflow: hidden ; +} + +#NAVIGATION { + display: block ; + overflow: auto ; + flex: 0 1 auto ; + order: 1 ; + box-sizing: border-box ; + min-width: 3cm ; + max-width: 8cm ; + height: 100% ; + padding: 0cm 0.5cm 0cm 0.5cm ; + background: #888 ; +} + +#CONTENT { + display: block ; + overflow: auto ; + flex: 1 1 auto ; + order: 2 ; + justify-content: left ; + align-content: center ; + box-sizing: border-box ; + width: 18cm ; + height: 100% ; + padding: 0cm 1cm 1cm 1cm ; +} + +/* -------------------------------------------------------------------------- */ +/* --- Navigation --- */ +/* -------------------------------------------------------------------------- */ + +#TOC { + font-size: smaller ; +} + +#NAVIGATION a.root { + display: block; + font-family: "Optima", "Verdana", "Arial", sans; + font-size: 16pt; + margin-top: 1cm; + margin-bottom: 6mm; +} + +#NAVIGATION a.chapter { + display: block ; + margin-left: 0px; + margin-top: 10px; + margin-bottom: 10px; +} + +#NAVIGATION a:hover { + background-color: darkorange ; +} + +#NAVIGATION a { + color: white ; +} + +#NAVIGATION code { + color: black ; +} + +#NAVIGATION ul { + width: 6cm ; +} + +#NAVIGATION ul > ul { + margin-left: 0px ; + padding-top: 2px ; + padding-bottom: 2px ; + background-color: darkgrey ; +} + +/* -------------------------------------------------------------------------- */ +/* --- Headers --- */ +/* -------------------------------------------------------------------------- */ + +h1 { + width: 18cm; + font-family: "Optima", "Verdana", "Arial", sans; + text-align: left; + margin-top: 1cm; + margin-bottom: 6mm; + padding-left: 3mm; + border-left: 20px solid red; +} + +h2 { + width: 18cm; + font-family: "Optima", "Verdana", "Arial", sans; + margin-top: 5mm; + margin-bottom: 2mm; + border-bottom: solid thin darkred ; + color: darkred; +} + +h3 { + width: 17cm; + font-family: "Optima", "Verdana", "Arial", sans; + color: black; + margin-top: 5mm; + margin-bottom: 3mm; + border-bottom: thin solid #404040; +} + +h4,h5,h6 { + margin-left: 4mm; + margin-top: 4mm; + margin-bottom: 1mm; + font-family: "Optima", "Verdana", "Arial", sans; + font-size: 10pt; + font-style: italic; + font-weight: bold; + color: darkred; +} + +p { margin: 6px 0px 6px 0px; width: 15cm; } + +ul,ol,blockquote { + margin-left: 24px ; + width: 13cm; +} + +li { + padding-left: 6px ; + padding-right : 6px ; +} + +pre { + width : 15cm ; + background-color: #eef ; +} + +pre,code { font-size: smaller ; color: #106000 } + +hr { + border: none ; + border-top: 1px solid #404040 ; + margin-top: 4mm ; + margin-bottom: 4mm ; +} + +table { + border-collapse: collapse ; + margin-left: 6mm ; +} + +th,td { + padding: 2px 16px 2px 12px ; +} + +thead { + border-bottom: thin solid gray ; +} + +tr.odd { + background-color: rgba(178, 222, 236, 0.3) ; +} + +:target { background-color: darkorange; } + +a:visited { color: darkred; text-decoration: none } +a:link { color: darkred; text-decoration: none } +a:hover { background-color: lightgray; color: firebrick } +a:active { background-color: lightgray; color: darkgreen } + +a:visited em { color: darkgreen; text-decoration: none } +a:link em { color: darkgreen; text-decoration: none } +a:hover em { background-color: lightgray; color: firebrick } +a:active em { background-color: lightgray; color: darkgreen } + +/* -------------------------------------------------------------------------- */ diff --git a/doc/pandoc/template.html b/doc/pandoc/template.html new file mode 100644 index 0000000000000000000000000000000000000000..e6871d568e832f49fc1bcaadb8171df7a7f47b0b --- /dev/null +++ b/doc/pandoc/template.html @@ -0,0 +1,47 @@ +<!DOCTYPE html> +<html xmlns="http://www.w3.org/1999/xhtml" lang="$lang$" xml:lang="$lang$"$if(dir)$ dir="$dir$"$endif$> +<head> + <meta charset="utf-8" /> + <meta name="generator" content="pandoc" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" /> + <title>$if(document)$$document$ – $endif$$title$</title> + <link rel="stylesheet" href="$root$/style.css" /> + <!--[if lt IE 9]> + <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script> + <![endif]--> +</head> +<body> + <div id="BODY"> + <div id="NAVIGATION"> + <nav id="TOC"> + <a class="root" href="$root$/readme.md.html">$document$</a> + $if(chapter)$ + <a class="chapter" href="$page$">$chapter$</a> + $endif$ + $if(link)$ + <ul> + $if(toc)$ + $for(link)$ + $if(link.toc)$ + $table-of-contents$ + $else$ + <li><a href="$link.href$.html">$link.title$</a></li> + $endif$ + $endfor$ + $else$ + $for(link)$ + <li><a href="$link.href$.html">$link.title$</a></li> + $endfor$ + $endif$ + </ul> + $else$ + $table-of-contents$ + $endif$ + </nav> + </div> + <div id="CONTENT"> + $body$ + </div> + </div> +</body> +</html> diff --git a/headers/header_spec.txt b/headers/header_spec.txt index b807000c93dffeef61dc8f9ca1e5afd63500fe89..9b4dd6608022d2a599e89cfdfec3c5ec8b25c904 100644 --- a/headers/header_spec.txt +++ b/headers/header_spec.txt @@ -136,6 +136,10 @@ share/analysis-scripts/README.md: .ignore share/analysis-scripts/results_display.py: .ignore share/analysis-scripts/summary.py: .ignore share/analysis-scripts/template.mk: .ignore +share/compliance/c11_functions.json: .ignore +share/compliance/glibc_functions.json: .ignore +share/compliance/nonstandard_identifiers.json: .ignore +share/compliance/posix_identifiers.json: .ignore share/autocomplete_frama-c: CEA_LGPL share/Makefile.clean: CEA_LGPL share/Makefile.common: CEA_LGPL @@ -648,6 +652,8 @@ src/libraries/utils/cilconfig.ml: CIL src/libraries/utils/cilconfig.mli: CIL src/libraries/utils/command.ml: CEA_LGPL src/libraries/utils/command.mli: CEA_LGPL +src/libraries/utils/dotgraph.ml: CEA_LGPL +src/libraries/utils/dotgraph.mli: CEA_LGPL src/libraries/utils/escape.ml: CIL src/libraries/utils/escape.mli: CIL src/libraries/utils/filepath.ml: CEA_LGPL @@ -665,6 +671,8 @@ src/libraries/utils/indexer.ml: CEA_LGPL src/libraries/utils/indexer.mli: CEA_LGPL src/libraries/utils/leftistheap.ml: JCF_LGPL src/libraries/utils/leftistheap.mli: JCF_LGPL +src/libraries/utils/markdown.ml: CEA_LGPL +src/libraries/utils/markdown.mli: CEA_LGPL src/libraries/utils/pretty_utils.ml: CEA_LGPL src/libraries/utils/pretty_utils.mli: CEA_LGPL src/libraries/utils/qstack.ml: CEA_LGPL @@ -1023,6 +1031,32 @@ src/plugins/rte/rte.ml: CEA_LGPL_OR_PROPRIETARY src/plugins/rte/rte.mli: CEA_LGPL_OR_PROPRIETARY src/plugins/rte/visit.ml: CEA_LGPL_OR_PROPRIETARY src/plugins/rte/visit.mli: CEA_LGPL_OR_PROPRIETARY +src/plugins/server/.gitignore: .ignore +src/plugins/server/Makefile.in: CEA_LGPL_OR_PROPRIETARY +src/plugins/server/Server.mli: .ignore +src/plugins/server/configure.ac: CEA_LGPL_OR_PROPRIETARY +src/plugins/server/data.ml: CEA_LGPL_OR_PROPRIETARY +src/plugins/server/data.mli: CEA_LGPL_OR_PROPRIETARY +src/plugins/server/doc.ml: CEA_LGPL_OR_PROPRIETARY +src/plugins/server/doc.mli: CEA_LGPL_OR_PROPRIETARY +src/plugins/server/jbuffer.ml: CEA_LGPL_OR_PROPRIETARY +src/plugins/server/jbuffer.mli: CEA_LGPL_OR_PROPRIETARY +src/plugins/server/kernel_ast.ml: CEA_LGPL_OR_PROPRIETARY +src/plugins/server/kernel_ast.mli: CEA_LGPL_OR_PROPRIETARY +src/plugins/server/kernel_main.ml: CEA_LGPL_OR_PROPRIETARY +src/plugins/server/kernel_main.mli: CEA_LGPL_OR_PROPRIETARY +src/plugins/server/kernel_project.ml: CEA_LGPL_OR_PROPRIETARY +src/plugins/server/kernel_project.mli: CEA_LGPL_OR_PROPRIETARY +src/plugins/server/main.ml: CEA_LGPL_OR_PROPRIETARY +src/plugins/server/main.mli: CEA_LGPL_OR_PROPRIETARY +src/plugins/server/request.ml: CEA_LGPL_OR_PROPRIETARY +src/plugins/server/request.mli: CEA_LGPL_OR_PROPRIETARY +src/plugins/server/server_parameters.ml: CEA_LGPL_OR_PROPRIETARY +src/plugins/server/server_parameters.mli: CEA_LGPL_OR_PROPRIETARY +src/plugins/server/server_batch.ml: CEA_LGPL_OR_PROPRIETARY +src/plugins/server/server_zmq.ml: CEA_LGPL_OR_PROPRIETARY +src/plugins/server/syntax.ml: CEA_LGPL_OR_PROPRIETARY +src/plugins/server/syntax.mli: CEA_LGPL_OR_PROPRIETARY src/plugins/scope/Scope.mli: CEA_LGPL_OR_PROPRIETARY src/plugins/scope/datascope.ml: CEA_LGPL_OR_PROPRIETARY src/plugins/scope/datascope.mli: CEA_LGPL_OR_PROPRIETARY diff --git a/opam/opam b/opam/opam index 0c0a81eaa9a61b5d9886d6386a24d3c28c80cbde..3b6424cf61d919a5f75ebeb120dd05eb2d6a6d04 100644 --- a/opam/opam +++ b/opam/opam @@ -94,7 +94,7 @@ depends: [ ( ( "lablgtk" { >= "2.18.2" } & "conf-gnomecanvas" ) | ( "lablgtk3" { >= "3.0.beta4" & os!="macos" } & "lablgtk3-sourceview3" )) "conf-gtksourceview" - ( "alt-ergo-free" | "alt-ergo" { <= "2.2.0" } ) + ( "alt-ergo-free" | "alt-ergo" ) "conf-graphviz" { post } "yojson" ] diff --git a/ptests/ptests.ml b/ptests/ptests.ml index 79e513c75a36ad5d556520868c82ef411e778ad7..33373150bf3f259221e0959e655d2296ea06ce50 100644 --- a/ptests/ptests.ml +++ b/ptests/ptests.ml @@ -592,7 +592,7 @@ type config = (** full path of the default toplevel. *) dc_filter : string option; (** optional filter to apply to standard output *) - dc_toplevels : (string * string * string list) list; + dc_toplevels : (string * string * string list * Macros.t) list; (** toplevel full path, options to launch the toplevel on, and list of output files to monitor beyond stdout and stderr. *) dc_dont_run : bool; @@ -612,7 +612,7 @@ let default_config () = dc_execnow = []; dc_filter = None ; dc_default_toplevel = !toplevel_path; - dc_toplevels = [ !toplevel_path, default_options, [] ]; + dc_toplevels = [ !toplevel_path, default_options, [], Macros.empty ]; dc_dont_run = false; dc_default_log = [] } @@ -674,7 +674,7 @@ let scan_execnow ~once dir (s:string) = (* the default toplevel for the current level of options. *) let current_default_toplevel = ref !toplevel_path let current_default_log = ref [] -let current_default_cmds = ref [!toplevel_path,default_options,[] ] +let current_default_cmds = ref [!toplevel_path,default_options,[], Macros.empty] let make_custom_opts = let space = Str.regexp " " in @@ -742,7 +742,7 @@ let config_options = "OPT", (fun _ s current -> - let t = current.dc_default_toplevel, s, current.dc_default_log in + let t = current.dc_default_toplevel, s, current.dc_default_log, current.dc_macros in { current with (* dc_default_toplevel = !current_default_toplevel;*) dc_default_log = !current_default_log; @@ -752,7 +752,7 @@ let config_options = (fun _ s current -> let new_top = List.map - (fun (cmd,opts, log) -> cmd, make_custom_opts opts s, log) + (fun (cmd,opts, log, macros) -> cmd, make_custom_opts opts s, log, current.dc_macros) !current_default_cmds in { current with dc_toplevels = new_top @ current.dc_toplevels; @@ -1610,10 +1610,10 @@ let dispatcher () = let i = ref 0 in let e = ref 0 in let nb_files = List.length config.dc_toplevels in - let make_toplevel_cmd (toplevel, options, log_files) = + let make_toplevel_cmd (toplevel, options, log_files, macros) = let n = !i in {file; options; toplevel; nb_files; directory; n; log_files; - filter = config.dc_filter; macros = config.dc_macros; + filter = config.dc_filter; macros; execnow=false; } in diff --git a/share/compliance/c11_functions.json b/share/compliance/c11_functions.json new file mode 100644 index 0000000000000000000000000000000000000000..1ec844c35e497dc756f763aa49b8383e23055b27 --- /dev/null +++ b/share/compliance/c11_functions.json @@ -0,0 +1,605 @@ +{ + "description": "C11 reserved function identifiers", + "source":"ISO/IEC 9899:2011", + "data":[ + {"ident":"abort", "header":"stdlib.h"}, + {"ident":"abort_handler_s", "header":"stdlib.h"}, + {"ident":"abs", "header":"stdlib.h"}, + {"ident":"acos", "header":"math.h"}, + {"ident":"acosf", "header":"math.h"}, + {"ident":"acosh", "header":"math.h"}, + {"ident":"acoshf", "header":"math.h"}, + {"ident":"acoshl", "header":"math.h"}, + {"ident":"acosl", "header":"math.h"}, + {"ident":"aligned_alloc", "header":"stdlib.h"}, + {"ident":"asctime", "header":"time.h"}, + {"ident":"asctime_s", "header":"time.h"}, + {"ident":"asin", "header":"math.h"}, + {"ident":"asinf", "header":"math.h"}, + {"ident":"asinh", "header":"math.h"}, + {"ident":"asinhf", "header":"math.h"}, + {"ident":"asinhl", "header":"math.h"}, + {"ident":"asinl", "header":"math.h"}, + {"ident":"at_quick_exit", "header":"stdlib.h"}, + {"ident":"atan", "header":"math.h"}, + {"ident":"atan2", "header":"math.h"}, + {"ident":"atan2f", "header":"math.h"}, + {"ident":"atanf", "header":"math.h"}, + {"ident":"atanh", "header":"math.h"}, + {"ident":"atanhf", "header":"math.h"}, + {"ident":"atanhl", "header":"math.h"}, + {"ident":"atanl", "header":"math.h"}, + {"ident":"atexit", "header":"stdlib.h"}, + {"ident":"atof", "header":"stdlib.h"}, + {"ident":"atoi", "header":"stdlib.h"}, + {"ident":"atol", "header":"stdlib.h"}, + {"ident":"atoll", "header":"stdlib.h"}, + {"ident":"atomic_compare_exchange_strong", "header":"stdatomic.h"}, + {"ident":"atomic_compare_exchange_strong_explicit", "header":"stdatomic.h"}, + {"ident":"atomic_compare_exchange_weak", "header":"stdatomic.h"}, + {"ident":"atomic_compare_exchange_weak_explicit", "header":"stdatomic.h"}, + {"ident":"atomic_exchange", "header":"stdatomic.h"}, + {"ident":"atomic_exchange_explicit", "header":"stdatomic.h"}, + {"ident":"atomic_fetch_key", "header":"stdatomic.h"}, + {"ident":"atomic_fetch_key_explicit", "header":"stdatomic.h"}, + {"ident":"atomic_flag_clear", "header":"stdatomic.h"}, + {"ident":"atomic_flag_clear_explicit", "header":"stdatomic.h"}, + {"ident":"atomic_flag_test_and_set", "header":"stdatomic.h"}, + {"ident":"atomic_flag_test_and_set_explicit", "header":"stdatomic.h"}, + {"ident":"atomic_init", "header":"stdatomic.h"}, + {"ident":"atomic_is_lock_free", "header":"stdatomic.h"}, + {"ident":"atomic_load", "header":"stdatomic.h"}, + {"ident":"atomic_load_explicit", "header":"stdatomic.h"}, + {"ident":"atomic_signal_fence", "header":"stdatomic.h"}, + {"ident":"atomic_store", "header":"stdatomic.h"}, + {"ident":"atomic_store_explicit", "header":"stdatomic.h"}, + {"ident":"atomic_thread_fence", "header":"stdatomic.h"}, + {"ident":"bsearch", "header":"stdlib.h"}, + {"ident":"bsearch_s", "header":"stdlib.h"}, + {"ident":"btowc", "header":"wchar.h"}, + {"ident":"c16rtomb", "header":"uchar.h"}, + {"ident":"c32rtomb", "header":"uchar.h"}, + {"ident":"cabs", "header":"complex.h"}, + {"ident":"cabsf", "header":"complex.h"}, + {"ident":"cabsl", "header":"complex.h"}, + {"ident":"cacos", "header":"complex.h"}, + {"ident":"cacosf", "header":"complex.h"}, + {"ident":"cacosh", "header":"complex.h"}, + {"ident":"cacoshf", "header":"complex.h"}, + {"ident":"cacoshl", "header":"complex.h"}, + {"ident":"cacosl", "header":"complex.h"}, + {"ident":"call_once", "header":"threads.h"}, + {"ident":"calloc", "header":"stdlib.h"}, + {"ident":"carg", "header":"complex.h"}, + {"ident":"cargf", "header":"complex.h"}, + {"ident":"cargl", "header":"complex.h"}, + {"ident":"casin", "header":"complex.h"}, + {"ident":"casinf", "header":"complex.h"}, + {"ident":"casinh", "header":"complex.h"}, + {"ident":"casinhf", "header":"complex.h"}, + {"ident":"casinhl", "header":"complex.h"}, + {"ident":"casinl", "header":"complex.h"}, + {"ident":"catan", "header":"complex.h"}, + {"ident":"catanf", "header":"complex.h"}, + {"ident":"catanh", "header":"complex.h"}, + {"ident":"catanhf", "header":"complex.h"}, + {"ident":"catanhl", "header":"complex.h"}, + {"ident":"catanl", "header":"complex.h"}, + {"ident":"cbrt", "header":"math.h"}, + {"ident":"cbrtf", "header":"math.h"}, + {"ident":"cbrtl", "header":"math.h"}, + {"ident":"ccos", "header":"complex.h"}, + {"ident":"ccosf", "header":"complex.h"}, + {"ident":"ccosh", "header":"complex.h"}, + {"ident":"ccoshf", "header":"complex.h"}, + {"ident":"ccoshl", "header":"complex.h"}, + {"ident":"ccosl", "header":"complex.h"}, + {"ident":"ceil", "header":"math.h"}, + {"ident":"ceilf", "header":"math.h"}, + {"ident":"ceill", "header":"math.h"}, + {"ident":"cexp", "header":"complex.h"}, + {"ident":"cexpf", "header":"complex.h"}, + {"ident":"cexpl", "header":"complex.h"}, + {"ident":"cimag", "header":"complex.h"}, + {"ident":"cimagf", "header":"complex.h"}, + {"ident":"cimagl", "header":"complex.h"}, + {"ident":"clearerr", "header":"stdio.h"}, + {"ident":"clock", "header":"time.h"}, + {"ident":"clog", "header":"complex.h"}, + {"ident":"clogf", "header":"complex.h"}, + {"ident":"clogl", "header":"complex.h"}, + {"ident":"cnd_broadcast", "header":"threads.h"}, + {"ident":"cnd_destroy", "header":"threads.h"}, + {"ident":"cnd_init", "header":"threads.h"}, + {"ident":"cnd_signal", "header":"threads.h"}, + {"ident":"cnd_timedwait", "header":"threads.h"}, + {"ident":"cnd_wait", "header":"threads.h"}, + {"ident":"conj", "header":"complex.h"}, + {"ident":"conjf", "header":"complex.h"}, + {"ident":"conjl", "header":"complex.h"}, + {"ident":"copysign", "header":"math.h"}, + {"ident":"copysignf", "header":"math.h"}, + {"ident":"copysignl", "header":"math.h"}, + {"ident":"cos", "header":"math.h"}, + {"ident":"cosf", "header":"math.h"}, + {"ident":"cosh", "header":"math.h"}, + {"ident":"coshf", "header":"math.h"}, + {"ident":"coshl", "header":"math.h"}, + {"ident":"cosl", "header":"math.h"}, + {"ident":"cpow", "header":"complex.h"}, + {"ident":"cpowf", "header":"complex.h"}, + {"ident":"cpowl", "header":"complex.h"}, + {"ident":"cproj", "header":"complex.h"}, + {"ident":"cprojf", "header":"complex.h"}, + {"ident":"cprojl", "header":"complex.h"}, + {"ident":"creal", "header":"complex.h"}, + {"ident":"crealf", "header":"complex.h"}, + {"ident":"creall", "header":"complex.h"}, + {"ident":"csin", "header":"complex.h"}, + {"ident":"csinf", "header":"complex.h"}, + {"ident":"csinh", "header":"complex.h"}, + {"ident":"csinhf", "header":"complex.h"}, + {"ident":"csinhl", "header":"complex.h"}, + {"ident":"csinl", "header":"complex.h"}, + {"ident":"csqrt", "header":"complex.h"}, + {"ident":"csqrtf", "header":"complex.h"}, + {"ident":"csqrtl", "header":"complex.h"}, + {"ident":"ctan", "header":"complex.h"}, + {"ident":"ctanf", "header":"complex.h"}, + {"ident":"ctanh", "header":"complex.h"}, + {"ident":"ctanhf", "header":"complex.h"}, + {"ident":"ctanhl", "header":"complex.h"}, + {"ident":"ctanl", "header":"complex.h"}, + {"ident":"ctime", "header":"time.h"}, + {"ident":"ctime_s", "header":"time.h"}, + {"ident":"difftime", "header":"time.h"}, + {"ident":"div", "header":"stdlib.h"}, + {"ident":"erf", "header":"math.h"}, + {"ident":"erfc", "header":"math.h"}, + {"ident":"erfcf", "header":"math.h"}, + {"ident":"erfcl", "header":"math.h"}, + {"ident":"erff", "header":"math.h"}, + {"ident":"erfl", "header":"math.h"}, + {"ident":"exit", "header":"stdlib.h"}, + {"ident":"exp", "header":"math.h"}, + {"ident":"exp2", "header":"math.h"}, + {"ident":"exp2f", "header":"math.h"}, + {"ident":"exp2l", "header":"math.h"}, + {"ident":"expf", "header":"math.h"}, + {"ident":"expl", "header":"math.h"}, + {"ident":"expm1", "header":"math.h"}, + {"ident":"expm1f", "header":"math.h"}, + {"ident":"expm1l", "header":"math.h"}, + {"ident":"fabs", "header":"math.h"}, + {"ident":"fabsf", "header":"math.h"}, + {"ident":"fabsl", "header":"math.h"}, + {"ident":"fclose", "header":"stdio.h"}, + {"ident":"fdim", "header":"math.h"}, + {"ident":"fdimf", "header":"math.h"}, + {"ident":"fdiml", "header":"math.h"}, + {"ident":"feclearexcept", "header":"fenv.h"}, + {"ident":"fegetenv", "header":"fenv.h"}, + {"ident":"fegetexceptflag", "header":"fenv.h"}, + {"ident":"fegetround", "header":"fenv.h"}, + {"ident":"feholdexcept", "header":"fenv.h"}, + {"ident":"feof", "header":"stdio.h"}, + {"ident":"feraiseexcept", "header":"fenv.h"}, + {"ident":"ferror", "header":"stdio.h"}, + {"ident":"fesetenv", "header":"fenv.h"}, + {"ident":"fesetexceptflag", "header":"fenv.h"}, + {"ident":"fesetround", "header":"fenv.h"}, + {"ident":"fetestexcept", "header":"fenv.h"}, + {"ident":"feupdateenv", "header":"fenv.h"}, + {"ident":"fflush", "header":"stdio.h"}, + {"ident":"fgetc", "header":"stdio.h"}, + {"ident":"fgetpos", "header":"stdio.h"}, + {"ident":"fgets", "header":"stdio.h"}, + {"ident":"fgetwc", "header":"wchar.h"}, + {"ident":"fgetws", "header":"wchar.h"}, + {"ident":"floor", "header":"math.h"}, + {"ident":"floorf", "header":"math.h"}, + {"ident":"floorl", "header":"math.h"}, + {"ident":"fma", "header":"math.h"}, + {"ident":"fmaf", "header":"math.h"}, + {"ident":"fmal", "header":"math.h"}, + {"ident":"fmax", "header":"math.h"}, + {"ident":"fmaxf", "header":"math.h"}, + {"ident":"fmaxl", "header":"math.h"}, + {"ident":"fmin", "header":"math.h"}, + {"ident":"fminf", "header":"math.h"}, + {"ident":"fminl", "header":"math.h"}, + {"ident":"fmod", "header":"math.h"}, + {"ident":"fmodf", "header":"math.h"}, + {"ident":"fmodl", "header":"math.h"}, + {"ident":"fopen", "header":"stdio.h"}, + {"ident":"fopen_s", "header":"stdio.h"}, + {"ident":"fpclassify", "header":"math.h"}, + {"ident":"fprintf", "header":"stdio.h"}, + {"ident":"fprintf_s", "header":"stdio.h"}, + {"ident":"fputc", "header":"stdio.h"}, + {"ident":"fputs", "header":"stdio.h"}, + {"ident":"fputwc", "header":"wchar.h"}, + {"ident":"fputws", "header":"wchar.h"}, + {"ident":"fread", "header":"stdio.h"}, + {"ident":"free", "header":"stdlib.h"}, + {"ident":"freopen", "header":"stdio.h"}, + {"ident":"freopen_s", "header":"stdio.h"}, + {"ident":"frexp", "header":"math.h"}, + {"ident":"frexpf", "header":"math.h"}, + {"ident":"frexpl", "header":"math.h"}, + {"ident":"fscanf", "header":"stdio.h"}, + {"ident":"fscanf_s", "header":"stdio.h"}, + {"ident":"fseek", "header":"stdio.h"}, + {"ident":"fsetpos", "header":"stdio.h"}, + {"ident":"ftell", "header":"stdio.h"}, + {"ident":"fwide", "header":"wchar.h"}, + {"ident":"fwprintf", "header":"wchar.h"}, + {"ident":"fwprintf_s", "header":"wchar.h"}, + {"ident":"fwrite", "header":"stdio.h"}, + {"ident":"fwscanf", "header":"wchar.h"}, + {"ident":"fwscanf_s", "header":"wchar.h"}, + {"ident":"getc", "header":"stdio.h"}, + {"ident":"getchar", "header":"stdio.h"}, + {"ident":"getenv", "header":"stdlib.h"}, + {"ident":"getenv_s", "header":"stdlib.h"}, + {"ident":"gets_s", "header":"stdio.h"}, + {"ident":"getwc", "header":"wchar.h"}, + {"ident":"getwchar", "header":"wchar.h"}, + {"ident":"gmtime", "header":"time.h"}, + {"ident":"gmtime_s", "header":"time.h"}, + {"ident":"hypot", "header":"math.h"}, + {"ident":"hypotf", "header":"math.h"}, + {"ident":"hypotl", "header":"math.h"}, + {"ident":"ignore_handler_s", "header":"stdlib.h"}, + {"ident":"ilogb", "header":"math.h"}, + {"ident":"ilogbf", "header":"math.h"}, + {"ident":"ilogbl", "header":"math.h"}, + {"ident":"imaxabs", "header":"inttypes.h"}, + {"ident":"imaxdiv", "header":"inttypes.h"}, + {"ident":"isalnum", "header":"ctype.h"}, + {"ident":"isalpha", "header":"ctype.h"}, + {"ident":"isblank", "header":"ctype.h"}, + {"ident":"iscntrl", "header":"ctype.h"}, + {"ident":"isdigit", "header":"ctype.h"}, + {"ident":"isfinite", "header":"math.h"}, + {"ident":"isgraph", "header":"ctype.h"}, + {"ident":"isgreater", "header":"math.h"}, + {"ident":"isgreaterequal", "header":"math.h"}, + {"ident":"isinf", "header":"math.h"}, + {"ident":"isless", "header":"math.h"}, + {"ident":"islessequal", "header":"math.h"}, + {"ident":"islessgreater", "header":"math.h"}, + {"ident":"islower", "header":"ctype.h"}, + {"ident":"isnan", "header":"math.h"}, + {"ident":"isnormal", "header":"math.h"}, + {"ident":"isprint", "header":"ctype.h"}, + {"ident":"ispunct", "header":"ctype.h"}, + {"ident":"isspace", "header":"ctype.h"}, + {"ident":"isunordered", "header":"math.h"}, + {"ident":"isupper", "header":"ctype.h"}, + {"ident":"iswalnum", "header":"wctype.h"}, + {"ident":"iswalpha", "header":"wctype.h"}, + {"ident":"iswblank", "header":"wctype.h"}, + {"ident":"iswcntrl", "header":"wctype.h"}, + {"ident":"iswctype", "header":"wctype.h"}, + {"ident":"iswdigit", "header":"wctype.h"}, + {"ident":"iswgraph", "header":"wctype.h"}, + {"ident":"iswlower", "header":"wctype.h"}, + {"ident":"iswprint", "header":"wctype.h"}, + {"ident":"iswpunct", "header":"wctype.h"}, + {"ident":"iswspace", "header":"wctype.h"}, + {"ident":"iswupper", "header":"wctype.h"}, + {"ident":"iswxdigit", "header":"wctype.h"}, + {"ident":"isxdigit", "header":"ctype.h"}, + {"ident":"kill_dependency", "header":"stdatomic.h"}, + {"ident":"labs", "header":"stdlib.h"}, + {"ident":"ldexp", "header":"math.h"}, + {"ident":"ldexpf", "header":"math.h"}, + {"ident":"ldexpl", "header":"math.h"}, + {"ident":"ldiv", "header":"stdlib.h"}, + {"ident":"lgamma", "header":"math.h"}, + {"ident":"lgammaf", "header":"math.h"}, + {"ident":"lgammal", "header":"math.h"}, + {"ident":"llabs", "header":"stdlib.h"}, + {"ident":"lldiv", "header":"stdlib.h"}, + {"ident":"llrint", "header":"math.h"}, + {"ident":"llrintf", "header":"math.h"}, + {"ident":"llrintl", "header":"math.h"}, + {"ident":"llround", "header":"math.h"}, + {"ident":"llroundf", "header":"math.h"}, + {"ident":"llroundl", "header":"math.h"}, + {"ident":"localeconv", "header":"locale.h"}, + {"ident":"localtime", "header":"time.h"}, + {"ident":"localtime_s", "header":"time.h"}, + {"ident":"log", "header":"math.h"}, + {"ident":"log10", "header":"math.h"}, + {"ident":"log10f", "header":"math.h"}, + {"ident":"log10l", "header":"math.h"}, + {"ident":"log1p", "header":"math.h"}, + {"ident":"log1pf", "header":"math.h"}, + {"ident":"log1pl", "header":"math.h"}, + {"ident":"log2", "header":"math.h"}, + {"ident":"log2f", "header":"math.h"}, + {"ident":"log2l", "header":"math.h"}, + {"ident":"logb", "header":"math.h"}, + {"ident":"logbf", "header":"math.h"}, + {"ident":"logbl", "header":"math.h"}, + {"ident":"logf", "header":"math.h"}, + {"ident":"logl", "header":"math.h"}, + {"ident":"longjmp", "header":"setjmp.h"}, + {"ident":"lrint", "header":"math.h"}, + {"ident":"lrintf", "header":"math.h"}, + {"ident":"lrintl", "header":"math.h"}, + {"ident":"lround", "header":"math.h"}, + {"ident":"lroundf", "header":"math.h"}, + {"ident":"lroundl", "header":"math.h"}, + {"ident":"malloc", "header":"stdlib.h"}, + {"ident":"mblen", "header":"stdlib.h"}, + {"ident":"mbrlen", "header":"wchar.h"}, + {"ident":"mbrtoc16", "header":"uchar.h"}, + {"ident":"mbrtoc32", "header":"uchar.h"}, + {"ident":"mbrtowc", "header":"wchar.h"}, + {"ident":"mbsinit", "header":"wchar.h"}, + {"ident":"mbsrtowcs", "header":"wchar.h"}, + {"ident":"mbsrtowcs_s", "header":"wchar.h"}, + {"ident":"mbstowcs", "header":"stdlib.h"}, + {"ident":"mbstowcs_s", "header":"stdlib.h"}, + {"ident":"mbtowc", "header":"stdlib.h"}, + {"ident":"memchr", "header":"string.h"}, + {"ident":"memcmp", "header":"string.h"}, + {"ident":"memcpy", "header":"string.h"}, + {"ident":"memcpy_s", "header":"string.h"}, + {"ident":"memmove", "header":"string.h"}, + {"ident":"memmove_s", "header":"string.h"}, + {"ident":"memset", "header":"string.h"}, + {"ident":"memset_s", "header":"string.h"}, + {"ident":"mktime", "header":"time.h"}, + {"ident":"modf", "header":"math.h"}, + {"ident":"modff", "header":"math.h"}, + {"ident":"modfl", "header":"math.h"}, + {"ident":"mtx_destroy", "header":"threads.h"}, + {"ident":"mtx_init", "header":"threads.h"}, + {"ident":"mtx_lock", "header":"threads.h"}, + {"ident":"mtx_timedlock", "header":"threads.h"}, + {"ident":"mtx_trylock", "header":"threads.h"}, + {"ident":"mtx_unlock", "header":"threads.h"}, + {"ident":"nan", "header":"math.h"}, + {"ident":"nanf", "header":"math.h"}, + {"ident":"nanl", "header":"math.h"}, + {"ident":"nearbyint", "header":"math.h"}, + {"ident":"nearbyintf", "header":"math.h"}, + {"ident":"nearbyintl", "header":"math.h"}, + {"ident":"nextafter", "header":"math.h"}, + {"ident":"nextafterf", "header":"math.h"}, + {"ident":"nextafterl", "header":"math.h"}, + {"ident":"nexttoward", "header":"math.h"}, + {"ident":"nexttowardf", "header":"math.h"}, + {"ident":"nexttowardl", "header":"math.h"}, + {"ident":"perror", "header":"stdio.h"}, + {"ident":"pow", "header":"math.h"}, + {"ident":"powf", "header":"math.h"}, + {"ident":"powl", "header":"math.h"}, + {"ident":"printf", "header":"stdio.h"}, + {"ident":"printf_s", "header":"stdio.h"}, + {"ident":"putc", "header":"stdio.h"}, + {"ident":"putchar", "header":"stdio.h"}, + {"ident":"puts", "header":"stdio.h"}, + {"ident":"putwc", "header":"wchar.h"}, + {"ident":"putwchar", "header":"wchar.h"}, + {"ident":"qsort", "header":"stdlib.h"}, + {"ident":"qsort_s", "header":"stdlib.h"}, + {"ident":"quick_exit", "header":"stdlib.h"}, + {"ident":"raise", "header":"signal.h"}, + {"ident":"rand", "header":"stdlib.h"}, + {"ident":"realloc", "header":"stdlib.h"}, + {"ident":"remainder", "header":"math.h"}, + {"ident":"remainderf", "header":"math.h"}, + {"ident":"remainderl", "header":"math.h"}, + {"ident":"remove", "header":"stdio.h"}, + {"ident":"remquo", "header":"math.h"}, + {"ident":"remquof", "header":"math.h"}, + {"ident":"remquol", "header":"math.h"}, + {"ident":"rename", "header":"stdio.h"}, + {"ident":"rewind", "header":"stdio.h"}, + {"ident":"rint", "header":"math.h"}, + {"ident":"rintf", "header":"math.h"}, + {"ident":"rintl", "header":"math.h"}, + {"ident":"round", "header":"math.h"}, + {"ident":"roundf", "header":"math.h"}, + {"ident":"roundl", "header":"math.h"}, + {"ident":"scalbln", "header":"math.h"}, + {"ident":"scalblnf", "header":"math.h"}, + {"ident":"scalblnl", "header":"math.h"}, + {"ident":"scalbn", "header":"math.h"}, + {"ident":"scalbnf", "header":"math.h"}, + {"ident":"scalbnl", "header":"math.h"}, + {"ident":"scanf", "header":"stdio.h"}, + {"ident":"scanf_s", "header":"stdio.h"}, + {"ident":"set_constraint_handler_s", "header":"stdlib.h"}, + {"ident":"setbuf", "header":"stdio.h"}, + {"ident":"setjmp", "header":"setjmp.h"}, + {"ident":"setlocale", "header":"locale.h"}, + {"ident":"setvbuf", "header":"stdio.h"}, + {"ident":"signal", "header":"signal.h"}, + {"ident":"signbit", "header":"math.h"}, + {"ident":"sin", "header":"math.h"}, + {"ident":"sinf", "header":"math.h"}, + {"ident":"sinh", "header":"math.h"}, + {"ident":"sinhf", "header":"math.h"}, + {"ident":"sinhl", "header":"math.h"}, + {"ident":"sinl", "header":"math.h"}, + {"ident":"snprintf", "header":"stdio.h"}, + {"ident":"snprintf_s", "header":"stdio.h"}, + {"ident":"snwprintf_s", "header":"wchar.h"}, + {"ident":"sprintf", "header":"stdio.h"}, + {"ident":"sprintf_s", "header":"stdio.h"}, + {"ident":"sqrt", "header":"math.h"}, + {"ident":"sqrtf", "header":"math.h"}, + {"ident":"sqrtl", "header":"math.h"}, + {"ident":"srand", "header":"stdlib.h"}, + {"ident":"sscanf", "header":"stdio.h"}, + {"ident":"sscanf_s", "header":"stdio.h"}, + {"ident":"strcat", "header":"string.h"}, + {"ident":"strcat_s", "header":"string.h"}, + {"ident":"strchr", "header":"string.h"}, + {"ident":"strcmp", "header":"string.h"}, + {"ident":"strcoll", "header":"string.h"}, + {"ident":"strcpy", "header":"string.h"}, + {"ident":"strcpy_s", "header":"string.h"}, + {"ident":"strcspn", "header":"string.h"}, + {"ident":"strerror", "header":"string.h"}, + {"ident":"strerror_s", "header":"string.h"}, + {"ident":"strerrorlen_s", "header":"string.h"}, + {"ident":"strftime", "header":"time.h"}, + {"ident":"strlen", "header":"string.h"}, + {"ident":"strncat", "header":"string.h"}, + {"ident":"strncat_s", "header":"string.h"}, + {"ident":"strncmp", "header":"string.h"}, + {"ident":"strncpy", "header":"string.h"}, + {"ident":"strncpy_s", "header":"string.h"}, + {"ident":"strnlen_s", "header":"string.h"}, + {"ident":"strpbrk", "header":"string.h"}, + {"ident":"strrchr", "header":"string.h"}, + {"ident":"strspn", "header":"string.h"}, + {"ident":"strstr", "header":"string.h"}, + {"ident":"strtod", "header":"stdlib.h"}, + {"ident":"strtof", "header":"stdlib.h"}, + {"ident":"strtoimax", "header":"inttypes.h"}, + {"ident":"strtok", "header":"string.h"}, + {"ident":"strtok_s", "header":"string.h"}, + {"ident":"strtol", "header":"stdlib.h"}, + {"ident":"strtold", "header":"stdlib.h"}, + {"ident":"strtoll", "header":"stdlib.h"}, + {"ident":"strtoul", "header":"stdlib.h"}, + {"ident":"strtoull", "header":"stdlib.h"}, + {"ident":"strtoumax", "header":"inttypes.h"}, + {"ident":"strxfrm", "header":"string.h"}, + {"ident":"swprintf", "header":"wchar.h"}, + {"ident":"swprintf_s", "header":"wchar.h"}, + {"ident":"swscanf", "header":"wchar.h"}, + {"ident":"swscanf_s", "header":"wchar.h"}, + {"ident":"system", "header":"stdlib.h"}, + {"ident":"tan", "header":"math.h"}, + {"ident":"tanf", "header":"math.h"}, + {"ident":"tanh", "header":"math.h"}, + {"ident":"tanhf", "header":"math.h"}, + {"ident":"tanhl", "header":"math.h"}, + {"ident":"tanl", "header":"math.h"}, + {"ident":"tgamma", "header":"math.h"}, + {"ident":"tgammaf", "header":"math.h"}, + {"ident":"tgammal", "header":"math.h"}, + {"ident":"thrd_create", "header":"threads.h"}, + {"ident":"thrd_current", "header":"threads.h"}, + {"ident":"thrd_detach", "header":"threads.h"}, + {"ident":"thrd_equal", "header":"threads.h"}, + {"ident":"thrd_exit", "header":"threads.h"}, + {"ident":"thrd_join", "header":"threads.h"}, + {"ident":"thrd_sleep", "header":"threads.h"}, + {"ident":"thrd_yield", "header":"threads.h"}, + {"ident":"time", "header":"time.h"}, + {"ident":"timespec_get", "header":"time.h"}, + {"ident":"tmpfile", "header":"stdio.h"}, + {"ident":"tmpfile_s", "header":"stdio.h"}, + {"ident":"tmpnam", "header":"stdio.h"}, + {"ident":"tmpnam_s", "header":"stdio.h"}, + {"ident":"tolower", "header":"ctype.h"}, + {"ident":"toupper", "header":"ctype.h"}, + {"ident":"towctrans", "header":"wctype.h"}, + {"ident":"towlower", "header":"wctype.h"}, + {"ident":"towupper", "header":"wctype.h"}, + {"ident":"trunc", "header":"math.h"}, + {"ident":"truncf", "header":"math.h"}, + {"ident":"truncl", "header":"math.h"}, + {"ident":"tss_create", "header":"threads.h"}, + {"ident":"tss_delete", "header":"threads.h"}, + {"ident":"tss_get", "header":"threads.h"}, + {"ident":"tss_set", "header":"threads.h"}, + {"ident":"ungetc", "header":"stdio.h"}, + {"ident":"ungetwc", "header":"wchar.h"}, + {"ident":"va_arg", "header":"stdarg.h"}, + {"ident":"va_copy", "header":"stdarg.h"}, + {"ident":"va_end", "header":"stdarg.h"}, + {"ident":"va_start", "header":"stdarg.h"}, + {"ident":"vfprintf", "header":"stdio.h"}, + {"ident":"vfprintf_s", "header":"stdio.h"}, + {"ident":"vfscanf", "header":"stdio.h"}, + {"ident":"vfscanf_s", "header":"stdio.h"}, + {"ident":"vfwprintf", "header":"wchar.h"}, + {"ident":"vfwprintf_s", "header":"wchar.h"}, + {"ident":"vfwscanf", "header":"wchar.h"}, + {"ident":"vfwscanf_s", "header":"wchar.h"}, + {"ident":"vprintf", "header":"stdio.h"}, + {"ident":"vprintf_s", "header":"stdio.h"}, + {"ident":"vscanf", "header":"stdio.h"}, + {"ident":"vscanf_s", "header":"stdio.h"}, + {"ident":"vsnprintf", "header":"stdio.h"}, + {"ident":"vsnprintf_s", "header":"stdio.h"}, + {"ident":"vsnwprintf_s", "header":"wchar.h"}, + {"ident":"vsprintf", "header":"stdio.h"}, + {"ident":"vsprintf_s", "header":"stdio.h"}, + {"ident":"vsscanf", "header":"stdio.h"}, + {"ident":"vsscanf_s", "header":"stdio.h"}, + {"ident":"vswprintf", "header":"wchar.h"}, + {"ident":"vswprintf_s", "header":"wchar.h"}, + {"ident":"vswscanf", "header":"wchar.h"}, + {"ident":"vswscanf_s", "header":"wchar.h"}, + {"ident":"vwprintf", "header":"wchar.h"}, + {"ident":"vwprintf_s", "header":"wchar.h"}, + {"ident":"vwscanf", "header":"wchar.h"}, + {"ident":"vwscanf_s", "header":"wchar.h"}, + {"ident":"wcrtomb", "header":"wchar.h"}, + {"ident":"wcrtomb_s", "header":"wchar.h"}, + {"ident":"wcscat", "header":"wchar.h"}, + {"ident":"wcscat_s", "header":"wchar.h"}, + {"ident":"wcschr", "header":"wchar.h"}, + {"ident":"wcscmp", "header":"wchar.h"}, + {"ident":"wcscoll", "header":"wchar.h"}, + {"ident":"wcscpy", "header":"wchar.h"}, + {"ident":"wcscpy_s", "header":"wchar.h"}, + {"ident":"wcscspn", "header":"wchar.h"}, + {"ident":"wcsftime", "header":"wchar.h"}, + {"ident":"wcslen", "header":"wchar.h"}, + {"ident":"wcsncat", "header":"wchar.h"}, + {"ident":"wcsncat_s", "header":"wchar.h"}, + {"ident":"wcsncmp", "header":"wchar.h"}, + {"ident":"wcsncpy", "header":"wchar.h"}, + {"ident":"wcsncpy_s", "header":"wchar.h"}, + {"ident":"wcsnlen_s", "header":"wchar.h"}, + {"ident":"wcspbrk", "header":"wchar.h"}, + {"ident":"wcsrchr", "header":"wchar.h"}, + {"ident":"wcsrtombs", "header":"wchar.h"}, + {"ident":"wcsrtombs_s", "header":"wchar.h"}, + {"ident":"wcsspn", "header":"wchar.h"}, + {"ident":"wcsstr", "header":"wchar.h"}, + {"ident":"wcstod", "header":"wchar.h"}, + {"ident":"wcstof", "header":"wchar.h"}, + {"ident":"wcstoimax", "header":"inttypes.h"}, + {"ident":"wcstok", "header":"wchar.h"}, + {"ident":"wcstok_s", "header":"wchar.h"}, + {"ident":"wcstol", "header":"wchar.h"}, + {"ident":"wcstold", "header":"wchar.h"}, + {"ident":"wcstoll", "header":"wchar.h"}, + {"ident":"wcstombs", "header":"stdlib.h"}, + {"ident":"wcstombs_s", "header":"stdlib.h"}, + {"ident":"wcstoul", "header":"wchar.h"}, + {"ident":"wcstoull", "header":"wchar.h"}, + {"ident":"wcstoumax", "header":"inttypes.h"}, + {"ident":"wcsxfrm", "header":"wchar.h"}, + {"ident":"wctob", "header":"wchar.h"}, + {"ident":"wctomb", "header":"stdlib.h"}, + {"ident":"wctomb_s", "header":"stdlib.h"}, + {"ident":"wctrans", "header":"wctype.h"}, + {"ident":"wctype", "header":"wctype.h"}, + {"ident":"wmemchr", "header":"wchar.h"}, + {"ident":"wmemcmp", "header":"wchar.h"}, + {"ident":"wmemcpy", "header":"wchar.h"}, + {"ident":"wmemcpy_s", "header":"wchar.h"}, + {"ident":"wmemmove", "header":"wchar.h"}, + {"ident":"wmemmove_s", "header":"wchar.h"}, + {"ident":"wmemset", "header":"wchar.h"}, + {"ident":"wprintf", "header":"wchar.h"}, + {"ident":"wprintf_s", "header":"wchar.h"}, + {"ident":"wscanf", "header":"wchar.h"}, + {"ident":"wscanf_s", "header":"wchar.h"} + ] +} diff --git a/share/compliance/glibc_functions.json b/share/compliance/glibc_functions.json new file mode 100644 index 0000000000000000000000000000000000000000..9e21f7e79ea74fe74d18fbaf24cc9977bba09679 --- /dev/null +++ b/share/compliance/glibc_functions.json @@ -0,0 +1,1594 @@ +{ + "description": "Function and macro identifiers defined in the GNU C Library", + "last_update": "2017-11", + "source": "glibc - https://www.gnu.org/software/libc/manual/html_node/Function-Index.html", + "data":[ + {"ident":"__fbufsize"}, + {"ident":"__flbf"}, + {"ident":"__fpending"}, + {"ident":"__fpurge"}, + {"ident":"__freadable"}, + {"ident":"__freading"}, + {"ident":"__fsetlocking"}, + {"ident":"__fwritable"}, + {"ident":"__fwriting"}, + {"ident":"__ppc_get_timebase"}, + {"ident":"__ppc_get_timebase_freq"}, + {"ident":"__ppc_mdoio"}, + {"ident":"__ppc_mdoom"}, + {"ident":"__ppc_set_ppr_low"}, + {"ident":"__ppc_set_ppr_med"}, + {"ident":"__ppc_set_ppr_med_high"}, + {"ident":"__ppc_set_ppr_med_low"}, + {"ident":"__ppc_set_ppr_very_low"}, + {"ident":"__ppc_yield"}, + {"ident":"__va_copy"}, + {"ident":"_exit"}, + {"ident":"_Exit"}, + {"ident":"_flushlbf"}, + {"ident":"_tolower"}, + {"ident":"_toupper"}, + {"ident":"a64l"}, + {"ident":"abort"}, + {"ident":"abs"}, + {"ident":"accept"}, + {"ident":"access"}, + {"ident":"acos"}, + {"ident":"acosf"}, + {"ident":"acosfN"}, + {"ident":"acosfNx"}, + {"ident":"acosh"}, + {"ident":"acoshf"}, + {"ident":"acoshfN"}, + {"ident":"acoshfNx"}, + {"ident":"acoshl"}, + {"ident":"acosl"}, + {"ident":"addmntent"}, + {"ident":"addseverity"}, + {"ident":"adjtime"}, + {"ident":"adjtimex"}, + {"ident":"aio_cancel"}, + {"ident":"aio_cancel64"}, + {"ident":"aio_error"}, + {"ident":"aio_error64"}, + {"ident":"aio_fsync"}, + {"ident":"aio_fsync64"}, + {"ident":"aio_init"}, + {"ident":"aio_read"}, + {"ident":"aio_read64"}, + {"ident":"aio_return"}, + {"ident":"aio_return64"}, + {"ident":"aio_suspend"}, + {"ident":"aio_suspend64"}, + {"ident":"aio_write"}, + {"ident":"aio_write64"}, + {"ident":"alarm"}, + {"ident":"aligned_alloc"}, + {"ident":"alloca"}, + {"ident":"alphasort"}, + {"ident":"alphasort64"}, + {"ident":"argp_error"}, + {"ident":"argp_failure"}, + {"ident":"argp_help"}, + {"ident":"argp_parse"}, + {"ident":"argp_state_help"}, + {"ident":"argp_usage"}, + {"ident":"argz_add"}, + {"ident":"argz_add_sep"}, + {"ident":"argz_append"}, + {"ident":"argz_count"}, + {"ident":"argz_create"}, + {"ident":"argz_create_sep"}, + {"ident":"argz_delete"}, + {"ident":"argz_extract"}, + {"ident":"argz_insert"}, + {"ident":"argz_next"}, + {"ident":"argz_replace"}, + {"ident":"argz_stringify"}, + {"ident":"asctime"}, + {"ident":"asctime_r"}, + {"ident":"asin"}, + {"ident":"asinf"}, + {"ident":"asinfN"}, + {"ident":"asinfNx"}, + {"ident":"asinh"}, + {"ident":"asinhf"}, + {"ident":"asinhfN"}, + {"ident":"asinhfNx"}, + {"ident":"asinhl"}, + {"ident":"asinl"}, + {"ident":"asprintf"}, + {"ident":"assert"}, + {"ident":"assert_perror"}, + {"ident":"atan"}, + {"ident":"atan2"}, + {"ident":"atan2f"}, + {"ident":"atan2fN"}, + {"ident":"atan2fNx"}, + {"ident":"atan2l"}, + {"ident":"atanf"}, + {"ident":"atanfN"}, + {"ident":"atanfNx"}, + {"ident":"atanh"}, + {"ident":"atanhf"}, + {"ident":"atanhfN"}, + {"ident":"atanhfNx"}, + {"ident":"atanhl"}, + {"ident":"atanl"}, + {"ident":"atexit"}, + {"ident":"atof"}, + {"ident":"atoi"}, + {"ident":"atol"}, + {"ident":"atoll"}, + {"ident":"backtrace"}, + {"ident":"backtrace_symbols"}, + {"ident":"backtrace_symbols_fd"}, + {"ident":"basename"}, + {"ident":"basename"}, + {"ident":"bcmp"}, + {"ident":"bcopy"}, + {"ident":"bind"}, + {"ident":"bind_textdomain_codeset"}, + {"ident":"bindtextdomain"}, + {"ident":"brk"}, + {"ident":"bsearch"}, + {"ident":"btowc"}, + {"ident":"bzero"}, + {"ident":"cabs"}, + {"ident":"cabsf"}, + {"ident":"cabsfN"}, + {"ident":"cabsfNx"}, + {"ident":"cabsl"}, + {"ident":"cacos"}, + {"ident":"cacosf"}, + {"ident":"cacosfN"}, + {"ident":"cacosfNx"}, + {"ident":"cacosh"}, + {"ident":"cacoshf"}, + {"ident":"cacoshfN"}, + {"ident":"cacoshfNx"}, + {"ident":"cacoshl"}, + {"ident":"cacosl"}, + {"ident":"calloc"}, + {"ident":"canonicalize"}, + {"ident":"canonicalize_file_name"}, + {"ident":"canonicalizef"}, + {"ident":"canonicalizefN"}, + {"ident":"canonicalizefNx"}, + {"ident":"canonicalizel"}, + {"ident":"carg"}, + {"ident":"cargf"}, + {"ident":"cargfN"}, + {"ident":"cargfNx"}, + {"ident":"cargl"}, + {"ident":"casin"}, + {"ident":"casinf"}, + {"ident":"casinfN"}, + {"ident":"casinfNx"}, + {"ident":"casinh"}, + {"ident":"casinhf"}, + {"ident":"casinhfN"}, + {"ident":"casinhfNx"}, + {"ident":"casinhl"}, + {"ident":"casinl"}, + {"ident":"catan"}, + {"ident":"catanf"}, + {"ident":"catanfN"}, + {"ident":"catanfNx"}, + {"ident":"catanh"}, + {"ident":"catanhf"}, + {"ident":"catanhfN"}, + {"ident":"catanhfNx"}, + {"ident":"catanhl"}, + {"ident":"catanl"}, + {"ident":"catclose"}, + {"ident":"catgets"}, + {"ident":"catopen"}, + {"ident":"cbc_crypt"}, + {"ident":"cbrt"}, + {"ident":"cbrtf"}, + {"ident":"cbrtfN"}, + {"ident":"cbrtfNx"}, + {"ident":"cbrtl"}, + {"ident":"ccos"}, + {"ident":"ccosf"}, + {"ident":"ccosfN"}, + {"ident":"ccosfNx"}, + {"ident":"ccosh"}, + {"ident":"ccoshf"}, + {"ident":"ccoshfN"}, + {"ident":"ccoshfNx"}, + {"ident":"ccoshl"}, + {"ident":"ccosl"}, + {"ident":"ceil"}, + {"ident":"ceilf"}, + {"ident":"ceilfN"}, + {"ident":"ceilfNx"}, + {"ident":"ceill"}, + {"ident":"cexp"}, + {"ident":"cexpf"}, + {"ident":"cexpfN"}, + {"ident":"cexpfNx"}, + {"ident":"cexpl"}, + {"ident":"cfgetispeed"}, + {"ident":"cfgetospeed"}, + {"ident":"cfmakeraw"}, + {"ident":"cfsetispeed"}, + {"ident":"cfsetospeed"}, + {"ident":"cfsetspeed"}, + {"ident":"chdir"}, + {"ident":"chmod"}, + {"ident":"chmod"}, + {"ident":"chown"}, + {"ident":"cimag"}, + {"ident":"cimagf"}, + {"ident":"cimagfN"}, + {"ident":"cimagfNx"}, + {"ident":"cimagl"}, + {"ident":"clearenv"}, + {"ident":"clearerr"}, + {"ident":"clearerr_unlocked"}, + {"ident":"clock"}, + {"ident":"clog"}, + {"ident":"clog10"}, + {"ident":"clog10f"}, + {"ident":"clog10fN"}, + {"ident":"clog10fNx"}, + {"ident":"clog10l"}, + {"ident":"clogf"}, + {"ident":"clogfN"}, + {"ident":"clogfNx"}, + {"ident":"clogl"}, + {"ident":"close"}, + {"ident":"closedir"}, + {"ident":"closelog"}, + {"ident":"confstr"}, + {"ident":"conj"}, + {"ident":"conjf"}, + {"ident":"conjfN"}, + {"ident":"conjfNx"}, + {"ident":"conjl"}, + {"ident":"connect"}, + {"ident":"continue"}, + {"ident":"copysign"}, + {"ident":"copysignf"}, + {"ident":"copysignfN"}, + {"ident":"copysignfNx"}, + {"ident":"copysignl"}, + {"ident":"cos"}, + {"ident":"cosf"}, + {"ident":"cosfN"}, + {"ident":"cosfNx"}, + {"ident":"cosh"}, + {"ident":"coshf"}, + {"ident":"coshfN"}, + {"ident":"coshfNx"}, + {"ident":"coshl"}, + {"ident":"cosl"}, + {"ident":"cpow"}, + {"ident":"cpowf"}, + {"ident":"cpowfN"}, + {"ident":"cpowfNx"}, + {"ident":"cpowl"}, + {"ident":"cproj"}, + {"ident":"cprojf"}, + {"ident":"cprojfN"}, + {"ident":"cprojfNx"}, + {"ident":"cprojl"}, + {"ident":"CPU_CLR"}, + {"ident":"CPU_ISSET"}, + {"ident":"CPU_SET"}, + {"ident":"CPU_ZERO"}, + {"ident":"creal"}, + {"ident":"crealf"}, + {"ident":"crealfN"}, + {"ident":"crealfNx"}, + {"ident":"creall"}, + {"ident":"creat"}, + {"ident":"creat64"}, + {"ident":"crypt"}, + {"ident":"crypt_r"}, + {"ident":"csin"}, + {"ident":"csinf"}, + {"ident":"csinfN"}, + {"ident":"csinfNx"}, + {"ident":"csinh"}, + {"ident":"csinhf"}, + {"ident":"csinhfN"}, + {"ident":"csinhfNx"}, + {"ident":"csinhl"}, + {"ident":"csinl"}, + {"ident":"csqrt"}, + {"ident":"csqrtf"}, + {"ident":"csqrtfN"}, + {"ident":"csqrtfNx"}, + {"ident":"csqrtl"}, + {"ident":"ctan"}, + {"ident":"ctanf"}, + {"ident":"ctanfN"}, + {"ident":"ctanfNx"}, + {"ident":"ctanh"}, + {"ident":"ctanhf"}, + {"ident":"ctanhfN"}, + {"ident":"ctanhfNx"}, + {"ident":"ctanhl"}, + {"ident":"ctanl"}, + {"ident":"ctermid"}, + {"ident":"ctime"}, + {"ident":"ctime_r"}, + {"ident":"cuserid"}, + {"ident":"dcgettext"}, + {"ident":"dcngettext"}, + {"ident":"DES_FAILED"}, + {"ident":"des_setparity"}, + {"ident":"dgettext"}, + {"ident":"difftime"}, + {"ident":"dirfd"}, + {"ident":"dirname"}, + {"ident":"div"}, + {"ident":"dngettext"}, + {"ident":"drand48"}, + {"ident":"drand48_r"}, + {"ident":"drem"}, + {"ident":"dremf"}, + {"ident":"dreml"}, + {"ident":"DTTOIF"}, + {"ident":"dup"}, + {"ident":"dup2"}, + {"ident":"ecb_crypt"}, + {"ident":"ecvt"}, + {"ident":"ecvt_r"}, + {"ident":"encrypt"}, + {"ident":"encrypt_r"}, + {"ident":"endfsent"}, + {"ident":"endgrent"}, + {"ident":"endhostent"}, + {"ident":"endmntent"}, + {"ident":"endnetent"}, + {"ident":"endnetgrent"}, + {"ident":"endprotoent"}, + {"ident":"endpwent"}, + {"ident":"endservent"}, + {"ident":"endutent"}, + {"ident":"endutxent"}, + {"ident":"envz_add"}, + {"ident":"envz_entry"}, + {"ident":"envz_get"}, + {"ident":"envz_merge"}, + {"ident":"envz_remove"}, + {"ident":"envz_strip"}, + {"ident":"erand48"}, + {"ident":"erand48_r"}, + {"ident":"erf"}, + {"ident":"erfc"}, + {"ident":"erfcf"}, + {"ident":"erfcfN"}, + {"ident":"erfcfNx"}, + {"ident":"erfcl"}, + {"ident":"erff"}, + {"ident":"erffN"}, + {"ident":"erffNx"}, + {"ident":"erfl"}, + {"ident":"err"}, + {"ident":"error"}, + {"ident":"error_at_line"}, + {"ident":"errx"}, + {"ident":"execl"}, + {"ident":"execle"}, + {"ident":"execlp"}, + {"ident":"execv"}, + {"ident":"execve"}, + {"ident":"execvp"}, + {"ident":"exit"}, + {"ident":"exp"}, + {"ident":"exp10"}, + {"ident":"exp10f"}, + {"ident":"exp10fN"}, + {"ident":"exp10fNx"}, + {"ident":"exp10l"}, + {"ident":"exp2"}, + {"ident":"exp2f"}, + {"ident":"exp2fN"}, + {"ident":"exp2fNx"}, + {"ident":"exp2l"}, + {"ident":"expf"}, + {"ident":"expfN"}, + {"ident":"expfNx"}, + {"ident":"expl"}, + {"ident":"explicit_bzero"}, + {"ident":"expm1"}, + {"ident":"expm1f"}, + {"ident":"expm1fN"}, + {"ident":"expm1fNx"}, + {"ident":"expm1l"}, + {"ident":"fabs"}, + {"ident":"fabsf"}, + {"ident":"fabsfN"}, + {"ident":"fabsfNx"}, + {"ident":"fabsl"}, + {"ident":"fchdir"}, + {"ident":"fchmod"}, + {"ident":"fchown"}, + {"ident":"fclose"}, + {"ident":"fcloseall"}, + {"ident":"fcntl"}, + {"ident":"fcvt"}, + {"ident":"fcvt_r"}, + {"ident":"FD_CLR"}, + {"ident":"FD_ISSET"}, + {"ident":"FD_SET"}, + {"ident":"FD_ZERO"}, + {"ident":"fdatasync"}, + {"ident":"fdim"}, + {"ident":"fdimf"}, + {"ident":"fdimfN"}, + {"ident":"fdimfNx"}, + {"ident":"fdiml"}, + {"ident":"fdopen"}, + {"ident":"fdopendir"}, + {"ident":"feclearexcept"}, + {"ident":"fedisableexcept"}, + {"ident":"feenableexcept"}, + {"ident":"fegetenv"}, + {"ident":"fegetexcept"}, + {"ident":"fegetexceptflag"}, + {"ident":"fegetmode"}, + {"ident":"fegetround"}, + {"ident":"feholdexcept"}, + {"ident":"feof"}, + {"ident":"feof_unlocked"}, + {"ident":"feraiseexcept"}, + {"ident":"ferror"}, + {"ident":"ferror_unlocked"}, + {"ident":"fesetenv"}, + {"ident":"fesetexcept"}, + {"ident":"fesetexceptflag"}, + {"ident":"fesetmode"}, + {"ident":"fesetround"}, + {"ident":"fetestexcept"}, + {"ident":"fetestexceptflag"}, + {"ident":"feupdateenv"}, + {"ident":"fflush"}, + {"ident":"fflush_unlocked"}, + {"ident":"fgetc"}, + {"ident":"fgetc_unlocked"}, + {"ident":"fgetgrent"}, + {"ident":"fgetgrent_r"}, + {"ident":"fgetpos"}, + {"ident":"fgetpos64"}, + {"ident":"fgetpwent"}, + {"ident":"fgetpwent_r"}, + {"ident":"fgets"}, + {"ident":"fgets_unlocked"}, + {"ident":"fgetwc"}, + {"ident":"fgetwc_unlocked"}, + {"ident":"fgetws"}, + {"ident":"fgetws_unlocked"}, + {"ident":"fileno"}, + {"ident":"fileno_unlocked"}, + {"ident":"finite"}, + {"ident":"finitef"}, + {"ident":"finitel"}, + {"ident":"flockfile"}, + {"ident":"floor"}, + {"ident":"floorf"}, + {"ident":"floorfN"}, + {"ident":"floorfNx"}, + {"ident":"floorl"}, + {"ident":"fma"}, + {"ident":"fmaf"}, + {"ident":"fmafN"}, + {"ident":"fmafNx"}, + {"ident":"fmal"}, + {"ident":"fmax"}, + {"ident":"fmaxf"}, + {"ident":"fmaxfN"}, + {"ident":"fmaxfNx"}, + {"ident":"fmaxl"}, + {"ident":"fmaxmag"}, + {"ident":"fmaxmagf"}, + {"ident":"fmaxmagfN"}, + {"ident":"fmaxmagfNx"}, + {"ident":"fmaxmagl"}, + {"ident":"fmemopen"}, + {"ident":"fmin"}, + {"ident":"fminf"}, + {"ident":"fminfN"}, + {"ident":"fminfNx"}, + {"ident":"fminl"}, + {"ident":"fminmag"}, + {"ident":"fminmagf"}, + {"ident":"fminmagfN"}, + {"ident":"fminmagfNx"}, + {"ident":"fminmagl"}, + {"ident":"fmod"}, + {"ident":"fmodf"}, + {"ident":"fmodfN"}, + {"ident":"fmodfNx"}, + {"ident":"fmodl"}, + {"ident":"fmtmsg"}, + {"ident":"fnmatch"}, + {"ident":"fopen"}, + {"ident":"fopen64"}, + {"ident":"fopencookie"}, + {"ident":"fork"}, + {"ident":"forkpty"}, + {"ident":"fpathconf"}, + {"ident":"fpclassify"}, + {"ident":"fprintf"}, + {"ident":"fputc"}, + {"ident":"fputc_unlocked"}, + {"ident":"fputs"}, + {"ident":"fputs_unlocked"}, + {"ident":"fputwc"}, + {"ident":"fputwc_unlocked"}, + {"ident":"fputws"}, + {"ident":"fputws_unlocked"}, + {"ident":"fread"}, + {"ident":"fread_unlocked"}, + {"ident":"free"}, + {"ident":"freopen"}, + {"ident":"freopen64"}, + {"ident":"frexp"}, + {"ident":"frexpf"}, + {"ident":"frexpfN"}, + {"ident":"frexpfNx"}, + {"ident":"frexpl"}, + {"ident":"fromfp"}, + {"ident":"fromfpf"}, + {"ident":"fromfpfN"}, + {"ident":"fromfpfNx"}, + {"ident":"fromfpl"}, + {"ident":"fromfpx"}, + {"ident":"fromfpxf"}, + {"ident":"fromfpxfN"}, + {"ident":"fromfpxfNx"}, + {"ident":"fromfpxl"}, + {"ident":"fscanf"}, + {"ident":"fseek"}, + {"ident":"fseeko"}, + {"ident":"fseeko64"}, + {"ident":"fsetpos"}, + {"ident":"fsetpos64"}, + {"ident":"fstat"}, + {"ident":"fstat64"}, + {"ident":"fsync"}, + {"ident":"ftell"}, + {"ident":"ftello"}, + {"ident":"ftello64"}, + {"ident":"ftruncate"}, + {"ident":"ftruncate64"}, + {"ident":"ftrylockfile"}, + {"ident":"ftw"}, + {"ident":"ftw64"}, + {"ident":"funlockfile"}, + {"ident":"futimes"}, + {"ident":"fwide"}, + {"ident":"fwprintf"}, + {"ident":"fwrite"}, + {"ident":"fwrite_unlocked"}, + {"ident":"fwscanf"}, + {"ident":"gamma"}, + {"ident":"gammaf"}, + {"ident":"gammal"}, + {"ident":"gcvt"}, + {"ident":"get_avphys_pages"}, + {"ident":"get_current_dir_name"}, + {"ident":"get_nprocs"}, + {"ident":"get_nprocs_conf"}, + {"ident":"get_phys_pages"}, + {"ident":"getauxval"}, + {"ident":"getc"}, + {"ident":"getc_unlocked"}, + {"ident":"getchar"}, + {"ident":"getchar_unlocked"}, + {"ident":"getcontext"}, + {"ident":"getcwd"}, + {"ident":"getdate"}, + {"ident":"getdate_r"}, + {"ident":"getdelim"}, + {"ident":"getdomainnname"}, + {"ident":"getegid"}, + {"ident":"getentropy"}, + {"ident":"getenv"}, + {"ident":"geteuid"}, + {"ident":"getfsent"}, + {"ident":"getfsfile"}, + {"ident":"getfsspec"}, + {"ident":"getgid"}, + {"ident":"getgrent"}, + {"ident":"getgrent_r"}, + {"ident":"getgrgid"}, + {"ident":"getgrgid_r"}, + {"ident":"getgrnam"}, + {"ident":"getgrnam_r"}, + {"ident":"getgrouplist"}, + {"ident":"getgroups"}, + {"ident":"gethostbyaddr"}, + {"ident":"gethostbyaddr_r"}, + {"ident":"gethostbyname"}, + {"ident":"gethostbyname2"}, + {"ident":"gethostbyname2_r"}, + {"ident":"gethostbyname_r"}, + {"ident":"gethostent"}, + {"ident":"gethostid"}, + {"ident":"gethostname"}, + {"ident":"getitimer"}, + {"ident":"getline"}, + {"ident":"getloadavg"}, + {"ident":"getlogin"}, + {"ident":"getmntent"}, + {"ident":"getmntent_r"}, + {"ident":"getnetbyaddr"}, + {"ident":"getnetbyname"}, + {"ident":"getnetent"}, + {"ident":"getnetgrent"}, + {"ident":"getnetgrent_r"}, + {"ident":"getopt"}, + {"ident":"getopt_long"}, + {"ident":"getopt_long_only"}, + {"ident":"getpagesize"}, + {"ident":"getpass"}, + {"ident":"getpayload"}, + {"ident":"getpayloadf"}, + {"ident":"getpayloadfN"}, + {"ident":"getpayloadfNx"}, + {"ident":"getpayloadl"}, + {"ident":"getpeername"}, + {"ident":"getpgid"}, + {"ident":"getpgrp"}, + {"ident":"getpid"}, + {"ident":"getppid"}, + {"ident":"getpriority"}, + {"ident":"getprotobyname"}, + {"ident":"getprotobynumber"}, + {"ident":"getprotoent"}, + {"ident":"getpt"}, + {"ident":"getpwent"}, + {"ident":"getpwent_r"}, + {"ident":"getpwnam"}, + {"ident":"getpwnam_r"}, + {"ident":"getpwuid"}, + {"ident":"getpwuid_r"}, + {"ident":"getrandom"}, + {"ident":"getrlimit"}, + {"ident":"getrlimit64"}, + {"ident":"getrusage"}, + {"ident":"gets"}, + {"ident":"getservbyname"}, + {"ident":"getservbyport"}, + {"ident":"getservent"}, + {"ident":"getsid"}, + {"ident":"getsockname"}, + {"ident":"getsockopt"}, + {"ident":"getsubopt"}, + {"ident":"gettext"}, + {"ident":"gettimeofday"}, + {"ident":"getuid"}, + {"ident":"getumask"}, + {"ident":"getutent"}, + {"ident":"getutent_r"}, + {"ident":"getutid"}, + {"ident":"getutid_r"}, + {"ident":"getutline"}, + {"ident":"getutline_r"}, + {"ident":"getutmp"}, + {"ident":"getutmpx"}, + {"ident":"getutxent"}, + {"ident":"getutxid"}, + {"ident":"getutxline"}, + {"ident":"getw"}, + {"ident":"getwc"}, + {"ident":"getwc_unlocked"}, + {"ident":"getwchar"}, + {"ident":"getwchar_unlocked"}, + {"ident":"getwd"}, + {"ident":"glob"}, + {"ident":"glob64"}, + {"ident":"globfree"}, + {"ident":"globfree64"}, + {"ident":"gmtime"}, + {"ident":"gmtime_r"}, + {"ident":"grantpt"}, + {"ident":"grantpt"}, + {"ident":"gsignal"}, + {"ident":"gtty"}, + {"ident":"hasmntopt"}, + {"ident":"hcreate"}, + {"ident":"hcreate_r"}, + {"ident":"hdestroy"}, + {"ident":"hdestroy_r"}, + {"ident":"hsearch"}, + {"ident":"hsearch_r"}, + {"ident":"htonl"}, + {"ident":"htons"}, + {"ident":"hypot"}, + {"ident":"hypotf"}, + {"ident":"hypotfN"}, + {"ident":"hypotfNx"}, + {"ident":"hypotl"}, + {"ident":"iconv"}, + {"ident":"iconv_close"}, + {"ident":"iconv_open"}, + {"ident":"if_freenameindex"}, + {"ident":"if_indextoname"}, + {"ident":"if_nameindex"}, + {"ident":"if_nametoindex"}, + {"ident":"IFTODT"}, + {"ident":"ilogb"}, + {"ident":"ilogbf"}, + {"ident":"ilogbfN"}, + {"ident":"ilogbfNx"}, + {"ident":"ilogbl"}, + {"ident":"imaxabs"}, + {"ident":"imaxdiv"}, + {"ident":"index"}, + {"ident":"inet_addr"}, + {"ident":"inet_aton"}, + {"ident":"inet_lnaof"}, + {"ident":"inet_makeaddr"}, + {"ident":"inet_netof"}, + {"ident":"inet_network"}, + {"ident":"inet_ntoa"}, + {"ident":"inet_ntop"}, + {"ident":"inet_pton"}, + {"ident":"initgroups"}, + {"ident":"initstate"}, + {"ident":"initstate_r"}, + {"ident":"innetgr"}, + {"ident":"ioctl"}, + {"ident":"isalnum"}, + {"ident":"isalpha"}, + {"ident":"isascii"}, + {"ident":"isatty"}, + {"ident":"isblank"}, + {"ident":"iscanonical"}, + {"ident":"iscntrl"}, + {"ident":"isdigit"}, + {"ident":"iseqsig"}, + {"ident":"isfinite"}, + {"ident":"isgraph"}, + {"ident":"isgreater"}, + {"ident":"isgreaterequal"}, + {"ident":"isinf"}, + {"ident":"isinff"}, + {"ident":"isinfl"}, + {"ident":"isless"}, + {"ident":"islessequal"}, + {"ident":"islessgreater"}, + {"ident":"islower"}, + {"ident":"isnan"}, + {"ident":"isnan"}, + {"ident":"isnanf"}, + {"ident":"isnanl"}, + {"ident":"isnormal"}, + {"ident":"isprint"}, + {"ident":"ispunct"}, + {"ident":"issignaling"}, + {"ident":"isspace"}, + {"ident":"issubnormal"}, + {"ident":"isunordered"}, + {"ident":"isupper"}, + {"ident":"iswalnum"}, + {"ident":"iswalpha"}, + {"ident":"iswblank"}, + {"ident":"iswcntrl"}, + {"ident":"iswctype"}, + {"ident":"iswdigit"}, + {"ident":"iswgraph"}, + {"ident":"iswlower"}, + {"ident":"iswprint"}, + {"ident":"iswpunct"}, + {"ident":"iswspace"}, + {"ident":"iswupper"}, + {"ident":"iswxdigit"}, + {"ident":"isxdigit"}, + {"ident":"iszero"}, + {"ident":"j0"}, + {"ident":"j0f"}, + {"ident":"j0fN"}, + {"ident":"j0fNx"}, + {"ident":"j0l"}, + {"ident":"j1"}, + {"ident":"j1f"}, + {"ident":"j1fN"}, + {"ident":"j1fNx"}, + {"ident":"j1l"}, + {"ident":"jn"}, + {"ident":"jnf"}, + {"ident":"jnfN"}, + {"ident":"jnfNx"}, + {"ident":"jnl"}, + {"ident":"jrand48"}, + {"ident":"jrand48_r"}, + {"ident":"kill"}, + {"ident":"killpg"}, + {"ident":"l64a"}, + {"ident":"labs"}, + {"ident":"lcong48"}, + {"ident":"lcong48_r"}, + {"ident":"ldexp"}, + {"ident":"ldexpf"}, + {"ident":"ldexpfN"}, + {"ident":"ldexpfNx"}, + {"ident":"ldexpl"}, + {"ident":"ldiv"}, + {"ident":"lfind"}, + {"ident":"lgamma"}, + {"ident":"lgamma_r"}, + {"ident":"lgammaf"}, + {"ident":"lgammaf_r"}, + {"ident":"lgammafN"}, + {"ident":"lgammafN_r"}, + {"ident":"lgammafNx"}, + {"ident":"lgammafNx_r"}, + {"ident":"lgammal"}, + {"ident":"lgammal_r"}, + {"ident":"link"}, + {"ident":"lio_listio"}, + {"ident":"lio_listio64"}, + {"ident":"listen"}, + {"ident":"llabs"}, + {"ident":"lldiv"}, + {"ident":"llogb"}, + {"ident":"llogbf"}, + {"ident":"llogbfN"}, + {"ident":"llogbfNx"}, + {"ident":"llogbl"}, + {"ident":"llrint"}, + {"ident":"llrintf"}, + {"ident":"llrintfN"}, + {"ident":"llrintfNx"}, + {"ident":"llrintl"}, + {"ident":"llround"}, + {"ident":"llroundf"}, + {"ident":"llroundfN"}, + {"ident":"llroundfNx"}, + {"ident":"llroundl"}, + {"ident":"localeconv"}, + {"ident":"localtime"}, + {"ident":"localtime_r"}, + {"ident":"log"}, + {"ident":"log10"}, + {"ident":"log10f"}, + {"ident":"log10fN"}, + {"ident":"log10fNx"}, + {"ident":"log10l"}, + {"ident":"log1p"}, + {"ident":"log1pf"}, + {"ident":"log1pfN"}, + {"ident":"log1pfNx"}, + {"ident":"log1pl"}, + {"ident":"log2"}, + {"ident":"log2f"}, + {"ident":"log2fN"}, + {"ident":"log2fNx"}, + {"ident":"log2l"}, + {"ident":"logb"}, + {"ident":"logbf"}, + {"ident":"logbfN"}, + {"ident":"logbfNx"}, + {"ident":"logbl"}, + {"ident":"logf"}, + {"ident":"logfN"}, + {"ident":"logfNx"}, + {"ident":"login"}, + {"ident":"login_tty"}, + {"ident":"logl"}, + {"ident":"logout"}, + {"ident":"logwtmp"}, + {"ident":"longjmp"}, + {"ident":"lrand48"}, + {"ident":"lrand48_r"}, + {"ident":"lrint"}, + {"ident":"lrintf"}, + {"ident":"lrintfN"}, + {"ident":"lrintfNx"}, + {"ident":"lrintl"}, + {"ident":"lround"}, + {"ident":"lroundf"}, + {"ident":"lroundfN"}, + {"ident":"lroundfNx"}, + {"ident":"lroundl"}, + {"ident":"lsearch"}, + {"ident":"lseek"}, + {"ident":"lseek64"}, + {"ident":"lstat"}, + {"ident":"lstat64"}, + {"ident":"lutimes"}, + {"ident":"madvise"}, + {"ident":"main"}, + {"ident":"makecontext"}, + {"ident":"mallinfo"}, + {"ident":"malloc"}, + {"ident":"mallopt"}, + {"ident":"matherr"}, + {"ident":"mblen"}, + {"ident":"mbrlen"}, + {"ident":"mbrtowc"}, + {"ident":"mbsinit"}, + {"ident":"mbsnrtowcs"}, + {"ident":"mbsrtowcs"}, + {"ident":"mbstowcs"}, + {"ident":"mbtowc"}, + {"ident":"mcheck"}, + {"ident":"memalign"}, + {"ident":"memccpy"}, + {"ident":"memchr"}, + {"ident":"memcmp"}, + {"ident":"memcpy"}, + {"ident":"memfrob"}, + {"ident":"memmem"}, + {"ident":"memmove"}, + {"ident":"mempcpy"}, + {"ident":"memrchr"}, + {"ident":"memset"}, + {"ident":"merge"}, + {"ident":"mkdir"}, + {"ident":"mkdtemp"}, + {"ident":"mkfifo"}, + {"ident":"mknod"}, + {"ident":"mkstemp"}, + {"ident":"mktemp"}, + {"ident":"mktime"}, + {"ident":"mlock"}, + {"ident":"mlockall"}, + {"ident":"mmap"}, + {"ident":"mmap64"}, + {"ident":"modf"}, + {"ident":"modff"}, + {"ident":"modffN"}, + {"ident":"modffNx"}, + {"ident":"modfl"}, + {"ident":"mount"}, + {"ident":"mprobe"}, + {"ident":"mrand48"}, + {"ident":"mrand48_r"}, + {"ident":"mremap"}, + {"ident":"msync"}, + {"ident":"mtrace"}, + {"ident":"munlock"}, + {"ident":"munlockall"}, + {"ident":"munmap"}, + {"ident":"muntrace"}, + {"ident":"nan"}, + {"ident":"nanf"}, + {"ident":"nanfN"}, + {"ident":"nanfNx"}, + {"ident":"nanl"}, + {"ident":"nanosleep"}, + {"ident":"nearbyint"}, + {"ident":"nearbyintf"}, + {"ident":"nearbyintfN"}, + {"ident":"nearbyintfNx"}, + {"ident":"nearbyintl"}, + {"ident":"nextafter"}, + {"ident":"nextafterf"}, + {"ident":"nextafterfN"}, + {"ident":"nextafterfNx"}, + {"ident":"nextafterl"}, + {"ident":"nextdown"}, + {"ident":"nextdownf"}, + {"ident":"nextdownfN"}, + {"ident":"nextdownfNx"}, + {"ident":"nextdownl"}, + {"ident":"nexttoward"}, + {"ident":"nexttowardf"}, + {"ident":"nexttowardl"}, + {"ident":"nextup"}, + {"ident":"nextupf"}, + {"ident":"nextupfN"}, + {"ident":"nextupfNx"}, + {"ident":"nextupl"}, + {"ident":"nftw"}, + {"ident":"nftw64"}, + {"ident":"ngettext"}, + {"ident":"nice"}, + {"ident":"nl_langinfo"}, + {"ident":"notfound"}, + {"ident":"nrand48"}, + {"ident":"nrand48_r"}, + {"ident":"ntohl"}, + {"ident":"ntohs"}, + {"ident":"ntp_adjtime"}, + {"ident":"ntp_gettime"}, + {"ident":"obstack_1grow"}, + {"ident":"obstack_1grow_fast"}, + {"ident":"obstack_alignment_mask"}, + {"ident":"obstack_alloc"}, + {"ident":"obstack_base"}, + {"ident":"obstack_blank"}, + {"ident":"obstack_blank_fast"}, + {"ident":"obstack_chunk_alloc"}, + {"ident":"obstack_chunk_free"}, + {"ident":"obstack_chunk_size"}, + {"ident":"obstack_copy"}, + {"ident":"obstack_copy0"}, + {"ident":"obstack_finish"}, + {"ident":"obstack_free"}, + {"ident":"obstack_grow"}, + {"ident":"obstack_grow0"}, + {"ident":"obstack_init"}, + {"ident":"obstack_int_grow"}, + {"ident":"obstack_int_grow_fast"}, + {"ident":"obstack_next_free"}, + {"ident":"obstack_object_size"}, + {"ident":"obstack_object_size"}, + {"ident":"obstack_printf"}, + {"ident":"obstack_ptr_grow"}, + {"ident":"obstack_ptr_grow_fast"}, + {"ident":"obstack_room"}, + {"ident":"obstack_vprintf"}, + {"ident":"offsetof"}, + {"ident":"on_exit"}, + {"ident":"open"}, + {"ident":"open64"}, + {"ident":"open_memstream"}, + {"ident":"opendir"}, + {"ident":"openlog"}, + {"ident":"openpty"}, + {"ident":"parse_printf_format"}, + {"ident":"pathconf"}, + {"ident":"pause"}, + {"ident":"pclose"}, + {"ident":"perror"}, + {"ident":"pipe"}, + {"ident":"popen"}, + {"ident":"posix_fallocate"}, + {"ident":"posix_fallocate64"}, + {"ident":"posix_memalign"}, + {"ident":"pow"}, + {"ident":"pow10"}, + {"ident":"pow10f"}, + {"ident":"pow10l"}, + {"ident":"powf"}, + {"ident":"powfN"}, + {"ident":"powfNx"}, + {"ident":"powl"}, + {"ident":"pread"}, + {"ident":"pread64"}, + {"ident":"preadv"}, + {"ident":"preadv2"}, + {"ident":"preadv64"}, + {"ident":"preadv64v2"}, + {"ident":"printf"}, + {"ident":"printf_size"}, + {"ident":"printf_size_info"}, + {"ident":"psignal"}, + {"ident":"pthread_getattr_default_np"}, + {"ident":"pthread_getspecific"}, + {"ident":"pthread_key_create"}, + {"ident":"pthread_key_delete"}, + {"ident":"pthread_setattr_default_np"}, + {"ident":"pthread_setspecific"}, + {"ident":"ptsname"}, + {"ident":"ptsname_r"}, + {"ident":"putc"}, + {"ident":"putc_unlocked"}, + {"ident":"putchar"}, + {"ident":"putchar_unlocked"}, + {"ident":"putenv"}, + {"ident":"putpwent"}, + {"ident":"puts"}, + {"ident":"pututline"}, + {"ident":"pututxline"}, + {"ident":"putw"}, + {"ident":"putwc"}, + {"ident":"putwc_unlocked"}, + {"ident":"putwchar"}, + {"ident":"putwchar_unlocked"}, + {"ident":"pwrite"}, + {"ident":"pwrite64"}, + {"ident":"pwritev"}, + {"ident":"pwritev2"}, + {"ident":"pwritev64"}, + {"ident":"pwritev64v2"}, + {"ident":"qecvt"}, + {"ident":"qecvt_r"}, + {"ident":"qfcvt"}, + {"ident":"qfcvt_r"}, + {"ident":"qgcvt"}, + {"ident":"qsort"}, + {"ident":"raise"}, + {"ident":"rand"}, + {"ident":"rand_r"}, + {"ident":"random"}, + {"ident":"random_r"}, + {"ident":"rawmemchr"}, + {"ident":"read"}, + {"ident":"readdir"}, + {"ident":"readdir64"}, + {"ident":"readdir64_r"}, + {"ident":"readdir_r"}, + {"ident":"readlink"}, + {"ident":"readv"}, + {"ident":"realloc"}, + {"ident":"reallocarray"}, + {"ident":"realpath"}, + {"ident":"recv"}, + {"ident":"recvfrom"}, + {"ident":"regcomp"}, + {"ident":"regerror"}, + {"ident":"regexec"}, + {"ident":"regfree"}, + {"ident":"register_printf_function"}, + {"ident":"remainder"}, + {"ident":"remainderf"}, + {"ident":"remainderfN"}, + {"ident":"remainderfNx"}, + {"ident":"remainderl"}, + {"ident":"remove"}, + {"ident":"rename"}, + {"ident":"return"}, + {"ident":"rewind"}, + {"ident":"rewinddir"}, + {"ident":"rindex"}, + {"ident":"rint"}, + {"ident":"rintf"}, + {"ident":"rintfN"}, + {"ident":"rintfNx"}, + {"ident":"rintl"}, + {"ident":"rmdir"}, + {"ident":"round"}, + {"ident":"roundeven"}, + {"ident":"roundevenf"}, + {"ident":"roundevenfN"}, + {"ident":"roundevenfNx"}, + {"ident":"roundevenl"}, + {"ident":"roundf"}, + {"ident":"roundfN"}, + {"ident":"roundfNx"}, + {"ident":"roundl"}, + {"ident":"rpmatch"}, + {"ident":"S_ISBLK"}, + {"ident":"S_ISCHR"}, + {"ident":"S_ISDIR"}, + {"ident":"S_ISFIFO"}, + {"ident":"S_ISLNK"}, + {"ident":"S_ISREG"}, + {"ident":"S_ISSOCK"}, + {"ident":"S_TYPEISMQ"}, + {"ident":"S_TYPEISSEM"}, + {"ident":"S_TYPEISSHM"}, + {"ident":"sbrk"}, + {"ident":"scalb"}, + {"ident":"scalbf"}, + {"ident":"scalbl"}, + {"ident":"scalbln"}, + {"ident":"scalblnf"}, + {"ident":"scalblnfN"}, + {"ident":"scalblnfNx"}, + {"ident":"scalblnl"}, + {"ident":"scalbn"}, + {"ident":"scalbnf"}, + {"ident":"scalbnfN"}, + {"ident":"scalbnfNx"}, + {"ident":"scalbnl"}, + {"ident":"scandir"}, + {"ident":"scandir64"}, + {"ident":"scanf"}, + {"ident":"sched_get_priority_max"}, + {"ident":"sched_get_priority_min"}, + {"ident":"sched_getaffinity"}, + {"ident":"sched_getparam"}, + {"ident":"sched_getscheduler"}, + {"ident":"sched_rr_get_interval"}, + {"ident":"sched_setaffinity"}, + {"ident":"sched_setparam"}, + {"ident":"sched_setscheduler"}, + {"ident":"sched_yield"}, + {"ident":"secure_getenv"}, + {"ident":"seed48"}, + {"ident":"seed48_r"}, + {"ident":"seekdir"}, + {"ident":"select"}, + {"ident":"sem_close"}, + {"ident":"sem_destroy"}, + {"ident":"sem_getvalue"}, + {"ident":"sem_init"}, + {"ident":"sem_open"}, + {"ident":"sem_post"}, + {"ident":"sem_timedwait"}, + {"ident":"sem_trywait"}, + {"ident":"sem_unlink"}, + {"ident":"sem_wait"}, + {"ident":"semctl"}, + {"ident":"semget"}, + {"ident":"semop"}, + {"ident":"semtimedop"}, + {"ident":"send"}, + {"ident":"sendto"}, + {"ident":"setbuf"}, + {"ident":"setbuffer"}, + {"ident":"setcontext"}, + {"ident":"setdomainname"}, + {"ident":"setegid"}, + {"ident":"setenv"}, + {"ident":"seteuid"}, + {"ident":"setfsent"}, + {"ident":"setgid"}, + {"ident":"setgrent"}, + {"ident":"setgroups"}, + {"ident":"sethostent"}, + {"ident":"sethostid"}, + {"ident":"sethostname"}, + {"ident":"setitimer"}, + {"ident":"setjmp"}, + {"ident":"setkey"}, + {"ident":"setkey_r"}, + {"ident":"setlinebuf"}, + {"ident":"setlocale"}, + {"ident":"setlogmask"}, + {"ident":"setmntent"}, + {"ident":"setnetent"}, + {"ident":"setnetgrent"}, + {"ident":"setpayload"}, + {"ident":"setpayloadf"}, + {"ident":"setpayloadfN"}, + {"ident":"setpayloadfNx"}, + {"ident":"setpayloadl"}, + {"ident":"setpayloadsig"}, + {"ident":"setpayloadsigf"}, + {"ident":"setpayloadsigfN"}, + {"ident":"setpayloadsigfNx"}, + {"ident":"setpayloadsigl"}, + {"ident":"setpgid"}, + {"ident":"setpgrp"}, + {"ident":"setpriority"}, + {"ident":"setprotoent"}, + {"ident":"setpwent"}, + {"ident":"setregid"}, + {"ident":"setreuid"}, + {"ident":"setrlimit"}, + {"ident":"setrlimit64"}, + {"ident":"setservent"}, + {"ident":"setsid"}, + {"ident":"setsockopt"}, + {"ident":"setstate"}, + {"ident":"setstate_r"}, + {"ident":"settimeofday"}, + {"ident":"setuid"}, + {"ident":"setutent"}, + {"ident":"setutxent"}, + {"ident":"setvbuf"}, + {"ident":"shm_open"}, + {"ident":"shm_unlink"}, + {"ident":"shutdown"}, + {"ident":"sigaction"}, + {"ident":"sigaddset"}, + {"ident":"sigaltstack"}, + {"ident":"sigblock"}, + {"ident":"sigdelset"}, + {"ident":"sigemptyset"}, + {"ident":"sigfillset"}, + {"ident":"siginterrupt"}, + {"ident":"sigismember"}, + {"ident":"siglongjmp"}, + {"ident":"sigmask"}, + {"ident":"signal"}, + {"ident":"signbit"}, + {"ident":"significand"}, + {"ident":"significandf"}, + {"ident":"significandl"}, + {"ident":"sigpause"}, + {"ident":"sigpending"}, + {"ident":"sigprocmask"}, + {"ident":"sigsetjmp"}, + {"ident":"sigsetmask"}, + {"ident":"sigstack"}, + {"ident":"sigsuspend"}, + {"ident":"sin"}, + {"ident":"sincos"}, + {"ident":"sincosf"}, + {"ident":"sincosfN"}, + {"ident":"sincosfNx"}, + {"ident":"sincosl"}, + {"ident":"sinf"}, + {"ident":"sinfN"}, + {"ident":"sinfNx"}, + {"ident":"sinh"}, + {"ident":"sinhf"}, + {"ident":"sinhfN"}, + {"ident":"sinhfNx"}, + {"ident":"sinhl"}, + {"ident":"sinl"}, + {"ident":"sleep"}, + {"ident":"snprintf"}, + {"ident":"socket"}, + {"ident":"socketpair"}, + {"ident":"sprintf"}, + {"ident":"sqrt"}, + {"ident":"sqrtf"}, + {"ident":"sqrtfN"}, + {"ident":"sqrtfNx"}, + {"ident":"sqrtl"}, + {"ident":"srand"}, + {"ident":"srand48"}, + {"ident":"srand48_r"}, + {"ident":"srandom"}, + {"ident":"srandom_r"}, + {"ident":"sscanf"}, + {"ident":"ssignal"}, + {"ident":"stat"}, + {"ident":"stat64"}, + {"ident":"stime"}, + {"ident":"stpcpy"}, + {"ident":"stpncpy"}, + {"ident":"strcasecmp"}, + {"ident":"strcasestr"}, + {"ident":"strcat"}, + {"ident":"strchr"}, + {"ident":"strchrnul"}, + {"ident":"strcmp"}, + {"ident":"strcoll"}, + {"ident":"strcpy"}, + {"ident":"strcspn"}, + {"ident":"strdup"}, + {"ident":"strdupa"}, + {"ident":"strerror"}, + {"ident":"strerror_r"}, + {"ident":"strfmon"}, + {"ident":"strfromd"}, + {"ident":"strfromf"}, + {"ident":"strfromfN"}, + {"ident":"strfromfNx"}, + {"ident":"strfroml"}, + {"ident":"strfry"}, + {"ident":"strftime"}, + {"ident":"strlen"}, + {"ident":"strncasecmp"}, + {"ident":"strncat"}, + {"ident":"strncmp"}, + {"ident":"strncpy"}, + {"ident":"strndup"}, + {"ident":"strndupa"}, + {"ident":"strnlen"}, + {"ident":"strpbrk"}, + {"ident":"strptime"}, + {"ident":"strrchr"}, + {"ident":"strsep"}, + {"ident":"strsignal"}, + {"ident":"strspn"}, + {"ident":"strstr"}, + {"ident":"strtod"}, + {"ident":"strtof"}, + {"ident":"strtofN"}, + {"ident":"strtofNx"}, + {"ident":"strtoimax"}, + {"ident":"strtok"}, + {"ident":"strtok_r"}, + {"ident":"strtol"}, + {"ident":"strtold"}, + {"ident":"strtoll"}, + {"ident":"strtoq"}, + {"ident":"strtoul"}, + {"ident":"strtoull"}, + {"ident":"strtoumax"}, + {"ident":"strtouq"}, + {"ident":"strverscmp"}, + {"ident":"strxfrm"}, + {"ident":"stty"}, + {"ident":"success"}, + {"ident":"SUN_LEN"}, + {"ident":"swapcontext"}, + {"ident":"swprintf"}, + {"ident":"swscanf"}, + {"ident":"symlink"}, + {"ident":"sync"}, + {"ident":"syscall"}, + {"ident":"sysconf"}, + {"ident":"sysctl"}, + {"ident":"syslog"}, + {"ident":"system"}, + {"ident":"sysv_signal"}, + {"ident":"tan"}, + {"ident":"tanf"}, + {"ident":"tanfN"}, + {"ident":"tanfNx"}, + {"ident":"tanh"}, + {"ident":"tanhf"}, + {"ident":"tanhfN"}, + {"ident":"tanhfNx"}, + {"ident":"tanhl"}, + {"ident":"tanl"}, + {"ident":"tcdrain"}, + {"ident":"tcflow"}, + {"ident":"tcflush"}, + {"ident":"tcgetattr"}, + {"ident":"tcgetpgrp"}, + {"ident":"tcgetsid"}, + {"ident":"tcsendbreak"}, + {"ident":"tcsetattr"}, + {"ident":"tcsetpgrp"}, + {"ident":"tdelete"}, + {"ident":"tdestroy"}, + {"ident":"telldir"}, + {"ident":"TEMP_FAILURE_RETRY"}, + {"ident":"tempnam"}, + {"ident":"textdomain"}, + {"ident":"tfind"}, + {"ident":"tgamma"}, + {"ident":"tgammaf"}, + {"ident":"tgammafN"}, + {"ident":"tgammafNx"}, + {"ident":"tgammal"}, + {"ident":"time"}, + {"ident":"timegm"}, + {"ident":"timelocal"}, + {"ident":"times"}, + {"ident":"tmpfile"}, + {"ident":"tmpfile64"}, + {"ident":"tmpnam"}, + {"ident":"tmpnam_r"}, + {"ident":"toascii"}, + {"ident":"tolower"}, + {"ident":"totalorder"}, + {"ident":"totalorderf"}, + {"ident":"totalorderfN"}, + {"ident":"totalorderfNx"}, + {"ident":"totalorderl"}, + {"ident":"totalordermag"}, + {"ident":"totalordermagf"}, + {"ident":"totalordermagfN"}, + {"ident":"totalordermagfNx"}, + {"ident":"totalordermagl"}, + {"ident":"toupper"}, + {"ident":"towctrans"}, + {"ident":"towlower"}, + {"ident":"towupper"}, + {"ident":"trunc"}, + {"ident":"truncate"}, + {"ident":"truncate64"}, + {"ident":"truncf"}, + {"ident":"truncfN"}, + {"ident":"truncfNx"}, + {"ident":"truncl"}, + {"ident":"tryagain"}, + {"ident":"tsearch"}, + {"ident":"ttyname"}, + {"ident":"ttyname_r"}, + {"ident":"twalk"}, + {"ident":"tzset"}, + {"ident":"ufromfp"}, + {"ident":"ufromfpf"}, + {"ident":"ufromfpfN"}, + {"ident":"ufromfpfNx"}, + {"ident":"ufromfpl"}, + {"ident":"ufromfpx"}, + {"ident":"ufromfpxf"}, + {"ident":"ufromfpxfN"}, + {"ident":"ufromfpxfNx"}, + {"ident":"ufromfpxl"}, + {"ident":"ulimit"}, + {"ident":"umask"}, + {"ident":"umount"}, + {"ident":"umount2"}, + {"ident":"uname"}, + {"ident":"unavail"}, + {"ident":"ungetc"}, + {"ident":"ungetwc"}, + {"ident":"unlink"}, + {"ident":"unlockpt"}, + {"ident":"unsetenv"}, + {"ident":"updwtmp"}, + {"ident":"utime"}, + {"ident":"utimes"}, + {"ident":"utmpname"}, + {"ident":"utmpxname"}, + {"ident":"va_arg"}, + {"ident":"va_copy"}, + {"ident":"va_end"}, + {"ident":"va_start"}, + {"ident":"valloc"}, + {"ident":"vasprintf"}, + {"ident":"verr"}, + {"ident":"verrx"}, + {"ident":"versionsort"}, + {"ident":"versionsort64"}, + {"ident":"vfork"}, + {"ident":"vfprintf"}, + {"ident":"vfscanf"}, + {"ident":"vfwprintf"}, + {"ident":"vfwscanf"}, + {"ident":"vlimit"}, + {"ident":"vprintf"}, + {"ident":"vscanf"}, + {"ident":"vsnprintf"}, + {"ident":"vsprintf"}, + {"ident":"vsscanf"}, + {"ident":"vswprintf"}, + {"ident":"vswscanf"}, + {"ident":"vsyslog"}, + {"ident":"vtimes"}, + {"ident":"vwarn"}, + {"ident":"vwarnx"}, + {"ident":"vwprintf"}, + {"ident":"vwscanf"}, + {"ident":"wait"}, + {"ident":"wait3"}, + {"ident":"wait4"}, + {"ident":"waitpid"}, + {"ident":"warn"}, + {"ident":"warnx"}, + {"ident":"WCOREDUMP"}, + {"ident":"wcpcpy"}, + {"ident":"wcpncpy"}, + {"ident":"wcrtomb"}, + {"ident":"wcscasecmp"}, + {"ident":"wcscat"}, + {"ident":"wcschr"}, + {"ident":"wcschrnul"}, + {"ident":"wcscmp"}, + {"ident":"wcscoll"}, + {"ident":"wcscpy"}, + {"ident":"wcscspn"}, + {"ident":"wcsdup"}, + {"ident":"wcsftime"}, + {"ident":"wcslen"}, + {"ident":"wcsncasecmp"}, + {"ident":"wcsncat"}, + {"ident":"wcsncmp"}, + {"ident":"wcsncpy"}, + {"ident":"wcsnlen"}, + {"ident":"wcsnrtombs"}, + {"ident":"wcspbrk"}, + {"ident":"wcsrchr"}, + {"ident":"wcsrtombs"}, + {"ident":"wcsspn"}, + {"ident":"wcsstr"}, + {"ident":"wcstod"}, + {"ident":"wcstof"}, + {"ident":"wcstofN"}, + {"ident":"wcstofNx"}, + {"ident":"wcstoimax"}, + {"ident":"wcstok"}, + {"ident":"wcstol"}, + {"ident":"wcstold"}, + {"ident":"wcstoll"}, + {"ident":"wcstombs"}, + {"ident":"wcstoq"}, + {"ident":"wcstoul"}, + {"ident":"wcstoull"}, + {"ident":"wcstoumax"}, + {"ident":"wcstouq"}, + {"ident":"wcswcs"}, + {"ident":"wcsxfrm"}, + {"ident":"wctob"}, + {"ident":"wctomb"}, + {"ident":"wctrans"}, + {"ident":"wctype"}, + {"ident":"WEXITSTATUS"}, + {"ident":"WIFEXITED"}, + {"ident":"WIFSIGNALED"}, + {"ident":"WIFSTOPPED"}, + {"ident":"wmemchr"}, + {"ident":"wmemcmp"}, + {"ident":"wmemcpy"}, + {"ident":"wmemmove"}, + {"ident":"wmempcpy"}, + {"ident":"wmemset"}, + {"ident":"wordexp"}, + {"ident":"wordfree"}, + {"ident":"wprintf"}, + {"ident":"write"}, + {"ident":"writev"}, + {"ident":"wscanf"}, + {"ident":"WSTOPSIG"}, + {"ident":"WTERMSIG"}, + {"ident":"y0"}, + {"ident":"y0f"}, + {"ident":"y0fN"}, + {"ident":"y0fNx"}, + {"ident":"y0l"}, + {"ident":"y1"}, + {"ident":"y1f"}, + {"ident":"y1fN"}, + {"ident":"y1fNx"}, + {"ident":"y1l"}, + {"ident":"yn"}, + {"ident":"ynf"}, + {"ident":"ynfN"}, + {"ident":"ynfNx"}, + {"ident":"ynl"} + ] +} diff --git a/share/compliance/nonstandard_identifiers.json b/share/compliance/nonstandard_identifiers.json new file mode 100644 index 0000000000000000000000000000000000000000..e25a2fe06e230379f10095260c8b73a26db27fba --- /dev/null +++ b/share/compliance/nonstandard_identifiers.json @@ -0,0 +1,18 @@ +{ + "description": "Non-ISO C, Non-POSIX identifiers known to the Frama-C standard library", + "source":"Manpages, mostly Linux and BSD", + "data":[ + {"ident":"facilitynames", "header":"syslog.h"}, + {"ident":"getresgid", "header":"unistd.h"}, + {"ident":"getresuid", "header":"unistd.h"}, + {"ident":"option", "header":"getopt.h"}, + {"ident":"prioritynames", "header":"syslog.h"}, + {"ident":"setresgid", "header":"unistd.h"}, + {"ident":"setresuid", "header":"unistd.h"}, + {"ident":"strcspn", "header":"string.h"}, + {"ident":"strlcat", "header":"string.h"}, + {"ident":"strlcpy", "header":"string.h"}, + {"ident":"wcslcat", "header":"wchar.h"}, + {"ident":"wcslcpy", "header":"wchar.h"} + ] +} diff --git a/share/compliance/posix_identifiers.json b/share/compliance/posix_identifiers.json new file mode 100644 index 0000000000000000000000000000000000000000..ba548080fdc7f4e9c61adeb9a96e2d31f9e35156 --- /dev/null +++ b/share/compliance/posix_identifiers.json @@ -0,0 +1,2127 @@ +{ + "description": "POSIX.1-2008 reserved function identifiers (plus a few legacy POSIX identifiers)", + "source":"POSIX.1-2008 - Base Specifications, Issue 7 (IEEE Std 1003.1-2008, 2016 Edition)", + "id_types":[ + {"type":"function", "description":"declared as a function; may also be defined as a macro"}, + {"type":"variable", "description":"external variable"}, + {"type":"macroOrIdentifier", "description":"declaration or definition; unspecified whether it is a macro or an identifier declared with external linkage"}, + {"type":"macro", "description":"macro"}, + {"type":"constant", "description":"symbolic constant"}, + {"type":"type", "description":"type or structure"} + ], + "headers":[ + "aio.h", + "arpa/inet.h", + "assert.h", + "complex.h", + "cpio.h", + "ctype.h", + "dirent.h", + "dlfcn.h", + "errno.h", + "fcntl.h", + "fenv.h", + "float.h", + "fmtmsg.h", + "fnmatch.h", + "ftw.h", + "glob.h", + "grp.h", + "iconv.h", + "inttypes.h", + "iso646.h", + "langinfo.h", + "libgen.h", + "limits.h", + "locale.h", + "math.h", + "monetary.h", + "mqueue.h", + "ndbm.h", + "net/if.h", + "netdb.h", + "netinet/in.h", + "netinet/tcp.h", + "nl_types.h", + "poll.h", + "pthread.h", + "pwd.h", + "regex.h", + "sched.h", + "search.h", + "semaphore.h", + "setjmp.h", + "signal.h", + "spawn.h", + "stdarg.h", + "stdbool.h", + "stddef.h", + "stdint.h", + "stdio.h", + "stdlib.h", + "string.h", + "strings.h", + "stropts.h", + "sys/ipc.h", + "sys/mman.h", + "sys/msg.h", + "sys/resource.h", + "sys/select.h", + "sys/sem.h", + "sys/shm.h", + "sys/socket.h", + "sys/stat.h", + "sys/statvfs.h", + "sys/time.h", + "sys/times.h", + "sys/types.h", + "sys/uio.h", + "sys/un.h", + "sys/utsname.h", + "sys/wait.h", + "syslog.h", + "tar.h", + "termios.h", + "tgmath.h", + "time.h", + "trace.h", + "ulimit.h", + "unistd.h", + "utime.h", + "utmpx.h", + "wchar.h", + "wctype.h", + "wordexp.h" + ], + "extension_names":{ + "ADV":"Advisory Information", + "CX":"Extension to the ISO C standard", + "FSC":"File Synchronization", + "IP6":"IPV6", + "MC1":"Non-Robust Mutex Priority Protection or Non-Robust Mutex Priority Inheritance or Robust Mutex Priority Protection or Robust Mutex Priority Inheritance", + "ML":"Process Memory Locking", + "MLR":"Range Memory Locking", + "MON":"Monotonic Clock", + "OB":"Obsolescent", + "PS":"Process Scheduling", + "REM":"Removed from POSIX.1-2008 (but present in a previous version)", + "RPP":"Robust Mutex Priority Protection", + "SHM":"Shared Memory Objects", + "SIO":"Synchronized Input and Output", + "SS":"Process Sporadic Server", + "TCT":"Thread CPU-Time Clocks", + "TEF":"Trace Event Filter", + "TPP":"Non-Robust Mutex Priority Protection", + "TPS":"Thread Execution Scheduling", + "TRC":"Trace", + "TRI":"Trace Inherit", + "TRL":"Trace Log", + "TSA":"Thread Stack Address Attribute", + "TSH":"Thread Process-Shared Synchronization", + "TSP":"Thread Sporadic Server", + "TSS":"Thread Stack Size Attribute", + "TYM":"Typed Memory Objects", + "XSI":"X/Open System Interfaces", + "XSR":"XSI STREAMS" + }, + "data":[ + {"ident":"__bool_true_false_are_defined", "id_type":"macro", "header":"stdbool.h", "extensions":[]}, + {"ident":"_Complex_I", "id_type":"macro", "header":"complex.h", "extensions":[]}, + {"ident":"_CS_PATH", "id_type":"constant", "header":"unistd.h", "extensions":[]}, + {"ident":"_CS_POSIX_V7_ILP32_OFF32_CFLAGS", "id_type":"constant", "header":"unistd.h", "extensions":[]}, + {"ident":"_CS_POSIX_V7_ILP32_OFF32_LDFLAGS", "id_type":"constant", "header":"unistd.h", "extensions":[]}, + {"ident":"_CS_POSIX_V7_ILP32_OFF32_LIBS", "id_type":"constant", "header":"unistd.h", "extensions":[]}, + {"ident":"_CS_POSIX_V7_ILP32_OFFBIG_CFLAGS", "id_type":"constant", "header":"unistd.h", "extensions":[]}, + {"ident":"_CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS", "id_type":"constant", "header":"unistd.h", "extensions":[]}, + {"ident":"_CS_POSIX_V7_ILP32_OFFBIG_LIBS", "id_type":"constant", "header":"unistd.h", "extensions":[]}, + {"ident":"_CS_POSIX_V7_LP64_OFF64_CFLAGS", "id_type":"constant", "header":"unistd.h", "extensions":[]}, + {"ident":"_CS_POSIX_V7_LP64_OFF64_LDFLAGS", "id_type":"constant", "header":"unistd.h", "extensions":[]}, + {"ident":"_CS_POSIX_V7_LP64_OFF64_LIBS", "id_type":"constant", "header":"unistd.h", "extensions":[]}, + {"ident":"_CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS", "id_type":"constant", "header":"unistd.h", "extensions":[]}, + {"ident":"_CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS", "id_type":"constant", "header":"unistd.h", "extensions":[]}, + {"ident":"_CS_POSIX_V7_LPBIG_OFFBIG_LIBS", "id_type":"constant", "header":"unistd.h", "extensions":[]}, + {"ident":"_CS_POSIX_V7_THREADS_CFLAGS", "id_type":"constant", "header":"unistd.h", "extensions":[]}, + {"ident":"_CS_POSIX_V7_THREADS_LDFLAGS", "id_type":"constant", "header":"unistd.h", "extensions":[]}, + {"ident":"_CS_POSIX_V7_WIDTH_RESTRICTED_ENVS", "id_type":"constant", "header":"unistd.h", "extensions":[]}, + {"ident":"_CS_V7_ENV", "id_type":"constant", "header":"unistd.h", "extensions":[]}, + {"ident":"_Exit", "id_type":"function", "header":"stdlib.h", "extensions":[]}, + {"ident":"_exit", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"_Imaginary_I", "id_type":"macro", "header":"complex.h", "extensions":[]}, + {"ident":"_IOFBF", "id_type":"macro", "header":"stdio.h", "extensions":[]}, + {"ident":"_IOLBF", "id_type":"macro", "header":"stdio.h", "extensions":[]}, + {"ident":"_IONBF", "id_type":"macro", "header":"stdio.h", "extensions":[]}, + {"ident":"_longjmp", "id_type":"function", "header":"setjmp.h", "extensions":["OB","XSI"]}, + {"ident":"_POSIX2_VERSION", "id_type":"constant", "header":"unistd.h", "extensions":[]}, + {"ident":"_POSIX_AIO_LISTIO_MAX", "id_type":"constant", "header":"limits.h", "extensions":[]}, + {"ident":"_POSIX_AIO_MAX", "id_type":"constant", "header":"limits.h", "extensions":[]}, + {"ident":"_POSIX_ARG_MAX", "id_type":"constant", "header":"limits.h", "extensions":[]}, + {"ident":"_POSIX_CHILD_MAX", "id_type":"constant", "header":"limits.h", "extensions":[]}, + {"ident":"_POSIX_CLOCKRES_MIN", "id_type":"constant", "header":"limits.h", "extensions":[]}, + {"ident":"_POSIX_DELAYTIMER_MAX", "id_type":"constant", "header":"limits.h", "extensions":[]}, + {"ident":"_POSIX_HOST_NAME_MAX", "id_type":"constant", "header":"limits.h", "extensions":[]}, + {"ident":"_POSIX_LINK_MAX", "id_type":"constant", "header":"limits.h", "extensions":[]}, + {"ident":"_POSIX_LOGIN_NAME_MAX", "id_type":"constant", "header":"limits.h", "extensions":[]}, + {"ident":"_POSIX_MAX_CANON", "id_type":"constant", "header":"limits.h", "extensions":[]}, + {"ident":"_POSIX_MAX_INPUT", "id_type":"constant", "header":"limits.h", "extensions":[]}, + {"ident":"_POSIX_MQ_OPEN_MAX", "id_type":"constant", "header":"limits.h", "extensions":[]}, + {"ident":"_POSIX_MQ_PRIO_MAX", "id_type":"constant", "header":"limits.h", "extensions":[]}, + {"ident":"_POSIX_NAME_MAX", "id_type":"constant", "header":"limits.h", "extensions":[]}, + {"ident":"_POSIX_NGROUPS_MAX", "id_type":"constant", "header":"limits.h", "extensions":[]}, + {"ident":"_POSIX_OPEN_MAX", "id_type":"constant", "header":"limits.h", "extensions":[]}, + {"ident":"_POSIX_PATH_MAX", "id_type":"constant", "header":"limits.h", "extensions":[]}, + {"ident":"_POSIX_PIPE_BUF", "id_type":"constant", "header":"limits.h", "extensions":[]}, + {"ident":"_POSIX_RE_DUP_MAX", "id_type":"constant", "header":"limits.h", "extensions":[]}, + {"ident":"_POSIX_RTSIG_MAX", "id_type":"constant", "header":"limits.h", "extensions":[]}, + {"ident":"_POSIX_SEM_NSEMS_MAX", "id_type":"constant", "header":"limits.h", "extensions":[]}, + {"ident":"_POSIX_SEM_VALUE_MAX", "id_type":"constant", "header":"limits.h", "extensions":[]}, + {"ident":"_POSIX_SIGQUEUE_MAX", "id_type":"constant", "header":"limits.h", "extensions":[]}, + {"ident":"_POSIX_SS_REPL_MAX", "id_type":"constant", "header":"limits.h", "extensions":[]}, + {"ident":"_POSIX_SSIZE_MAX", "id_type":"constant", "header":"limits.h", "extensions":[]}, + {"ident":"_POSIX_STREAM_MAX", "id_type":"constant", "header":"limits.h", "extensions":[]}, + {"ident":"_POSIX_SYMLINK_MAX", "id_type":"constant", "header":"limits.h", "extensions":[]}, + {"ident":"_POSIX_SYMLOOP_MAX", "id_type":"constant", "header":"limits.h", "extensions":[]}, + {"ident":"_POSIX_THREAD_DESTRUCTOR_ITERATIONS", "id_type":"constant", "header":"limits.h", "extensions":[]}, + {"ident":"_POSIX_THREAD_KEYS_MAX", "id_type":"constant", "header":"limits.h", "extensions":[]}, + {"ident":"_POSIX_THREAD_THREADS_MAX", "id_type":"constant", "header":"limits.h", "extensions":[]}, + {"ident":"_POSIX_TIMER_MAX", "id_type":"constant", "header":"limits.h", "extensions":[]}, + {"ident":"_POSIX_TRACE_EVENT_NAME_MAX", "id_type":"constant", "header":"limits.h", "extensions":[]}, + {"ident":"_POSIX_TRACE_NAME_MAX", "id_type":"constant", "header":"limits.h", "extensions":[]}, + {"ident":"_POSIX_TRACE_SYS_MAX", "id_type":"constant", "header":"limits.h", "extensions":[]}, + {"ident":"_POSIX_TRACE_USER_EVENT_MAX", "id_type":"constant", "header":"limits.h", "extensions":[]}, + {"ident":"_POSIX_TTY_NAME_MAX", "id_type":"constant", "header":"limits.h", "extensions":[]}, + {"ident":"_POSIX_TZNAME_MAX", "id_type":"constant", "header":"limits.h", "extensions":[]}, + {"ident":"_POSIX_VDISABLE", "id_type":"constant", "header":"unistd.h", "extensions":[]}, + {"ident":"_POSIX_VERSION", "id_type":"constant", "header":"unistd.h", "extensions":[]}, + {"ident":"_setjmp", "id_type":"function", "header":"setjmp.h", "extensions":["OB","XSI"]}, + {"ident":"_tolower", "id_type":"function", "header":"ctype.h", "extensions":["OB","XSI"]}, + {"ident":"_toupper", "id_type":"function", "header":"ctype.h", "extensions":["OB","XSI"]}, + {"ident":"_XOPEN_VERSION", "id_type":"constant", "header":"unistd.h", "extensions":[]}, + {"ident":"a64l", "id_type":"function", "header":"stdlib.h", "extensions":["XSI"]}, + {"ident":"abort", "id_type":"function", "header":"stdlib.h", "extensions":[]}, + {"ident":"abs", "id_type":"function", "header":"stdlib.h", "extensions":[]}, + {"ident":"accept", "id_type":"function", "header":"sys/socket.h", "extensions":["XSI"]}, + {"ident":"access", "id_type":"function", "header":"unistd.h", "extensions":["ADV"]}, + {"ident":"acos", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"acosf", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"acosh", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"acoshf", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"acoshl", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"acosl", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"addrinfo", "id_type":"type", "header":"netdb.h", "extensions":[]}, + {"ident":"AF_INET", "id_type":"constant", "header":"sys/socket.h", "extensions":["IP6"]}, + {"ident":"AF_INET6", "id_type":"constant", "header":"sys/socket.h", "extensions":["IP6"]}, + {"ident":"AF_UNIX", "id_type":"constant", "header":"sys/socket.h", "extensions":["IP6"]}, + {"ident":"AF_UNSPEC", "id_type":"constant", "header":"sys/socket.h", "extensions":["IP6"]}, + {"ident":"AI_ADDRCONFIG", "id_type":"constant", "header":"netdb.h", "extensions":[]}, + {"ident":"AI_ALL", "id_type":"constant", "header":"netdb.h", "extensions":[]}, + {"ident":"AI_CANONNAME", "id_type":"constant", "header":"netdb.h", "extensions":[]}, + {"ident":"AI_NUMERICHOST", "id_type":"constant", "header":"netdb.h", "extensions":[]}, + {"ident":"AI_NUMERICSERV", "id_type":"constant", "header":"netdb.h", "extensions":[]}, + {"ident":"AI_PASSIVE", "id_type":"constant", "header":"netdb.h", "extensions":[]}, + {"ident":"AI_V4MAPPED", "id_type":"constant", "header":"netdb.h", "extensions":[]}, + {"ident":"AIO_ALLDONE", "id_type":"constant", "header":"aio.h", "extensions":[]}, + {"ident":"aio_cancel", "id_type":"function", "header":"aio.h", "extensions":[]}, + {"ident":"AIO_CANCELED", "id_type":"constant", "header":"aio.h", "extensions":[]}, + {"ident":"aio_error", "id_type":"function", "header":"aio.h", "extensions":[]}, + {"ident":"aio_fsync", "id_type":"function", "header":"aio.h", "extensions":["FSC","SIO"]}, + {"ident":"AIO_NOTCANCELED", "id_type":"constant", "header":"aio.h", "extensions":[]}, + {"ident":"aio_read", "id_type":"function", "header":"aio.h", "extensions":[]}, + {"ident":"aio_return", "id_type":"function", "header":"aio.h", "extensions":[]}, + {"ident":"aio_suspend", "id_type":"function", "header":"aio.h", "extensions":[]}, + {"ident":"aio_write", "id_type":"function", "header":"aio.h", "extensions":[]}, + {"ident":"aiocb", "id_type":"type", "header":"aio.h", "extensions":["FSC","SIO"]}, + {"ident":"alarm", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"alphasort", "id_type":"function", "header":"dirent.h", "extensions":[]}, + {"ident":"and", "id_type":"macro", "header":"iso646.h", "extensions":["CX"]}, + {"ident":"and_eq", "id_type":"macro", "header":"iso646.h", "extensions":[]}, + {"ident":"asctime", "id_type":"function", "header":"time.h", "extensions":["IP6"]}, + {"ident":"asctime_r", "id_type":"function", "header":"time.h", "extensions":["IP6"]}, + {"ident":"asin", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"asinf", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"asinh", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"asinhf", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"asinhl", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"asinl", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"assert", "id_type":"macro", "header":"assert.h", "extensions":[]}, + {"ident":"AT_EACCESS", "id_type":"constant", "header":"fcntl.h", "extensions":[]}, + {"ident":"AT_FDCWD", "id_type":"constant", "header":"fcntl.h", "extensions":[]}, + {"ident":"AT_REMOVEDIR", "id_type":"constant", "header":"fcntl.h", "extensions":[]}, + {"ident":"AT_SYMLINK_FOLLOW", "id_type":"constant", "header":"fcntl.h", "extensions":[]}, + {"ident":"AT_SYMLINK_NOFOLLOW", "id_type":"constant", "header":"fcntl.h", "extensions":[]}, + {"ident":"atan", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"atan2", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"atan2f", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"atan2l", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"atanf", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"atanh", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"atanhf", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"atanhl", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"atanl", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"atexit", "id_type":"function", "header":"stdlib.h", "extensions":[]}, + {"ident":"atof", "id_type":"function", "header":"stdlib.h", "extensions":[]}, + {"ident":"atoi", "id_type":"function", "header":"stdlib.h", "extensions":[]}, + {"ident":"atol", "id_type":"function", "header":"stdlib.h", "extensions":[]}, + {"ident":"atoll", "id_type":"function", "header":"stdlib.h", "extensions":[]}, + {"ident":"B0", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"B110", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"B1200", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"B134", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"B150", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"B1800", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"B19200", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"B200", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"B2400", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"B300", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"B38400", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"B4800", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"B50", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"B600", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"B75", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"B9600", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"bandinfo", "id_type":"type", "header":"stropts.h", "extensions":[]}, + {"ident":"basename", "id_type":"function", "header":"libgen.h", "extensions":[]}, + {"ident":"bind", "id_type":"function", "header":"sys/socket.h", "extensions":["IP6"]}, + {"ident":"bitand", "id_type":"macro", "header":"iso646.h", "extensions":[]}, + {"ident":"bitor", "id_type":"macro", "header":"iso646.h", "extensions":[]}, + {"ident":"blkcnt_t", "id_type":"type", "header":"sys/types.h", "extensions":["XSI"]}, + {"ident":"blksize_t", "id_type":"type", "header":"sys/types.h", "extensions":["XSI"]}, + {"ident":"bool", "id_type":"macro", "header":"stdbool.h", "extensions":[]}, + {"ident":"BOOT_TIME", "id_type":"constant", "header":"utmpx.h", "extensions":[]}, + {"ident":"BRKINT", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"BSDLY", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"bsearch", "id_type":"function", "header":"stdlib.h", "extensions":[]}, + {"ident":"btowc", "id_type":"function", "header":"wchar.h", "extensions":[]}, + {"ident":"BUFSIZ", "id_type":"type", "header":"stdio.h", "extensions":[]}, + {"ident":"cabs", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"cabsf", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"cabsl", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"cacos", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"cacosf", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"cacosh", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"cacoshf", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"cacoshl", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"cacosl", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"calloc", "id_type":"function", "header":"stdlib.h", "extensions":[]}, + {"ident":"carg", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"cargf", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"cargl", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"casin", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"casinf", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"casinh", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"casinhf", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"casinhl", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"casinl", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"catan", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"catanf", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"catanh", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"catanhf", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"catanhl", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"catanl", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"catclose", "id_type":"function", "header":"nl_types.h", "extensions":[]}, + {"ident":"catgets", "id_type":"function", "header":"nl_types.h", "extensions":[]}, + {"ident":"catopen", "id_type":"function", "header":"nl_types.h", "extensions":[]}, + {"ident":"cbrt", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"cbrtf", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"cbrtl", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"cc_t", "id_type":"type", "header":"termios.h", "extensions":[]}, + {"ident":"ccos", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"ccosf", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"ccosh", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"ccoshf", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"ccoshl", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"ccosl", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"ceil", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"ceilf", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"ceill", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"cexp", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"cexpf", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"cexpl", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"cfgetispeed", "id_type":"function", "header":"termios.h", "extensions":[]}, + {"ident":"cfgetospeed", "id_type":"function", "header":"termios.h", "extensions":[]}, + {"ident":"cfsetispeed", "id_type":"function", "header":"termios.h", "extensions":[]}, + {"ident":"cfsetospeed", "id_type":"function", "header":"termios.h", "extensions":[]}, + {"ident":"CHAR_BIT", "id_type":"macro", "header":"limits.h", "extensions":[]}, + {"ident":"CHAR_MAX", "id_type":"macro", "header":"limits.h", "extensions":[]}, + {"ident":"CHAR_MIN", "id_type":"macro", "header":"limits.h", "extensions":[]}, + {"ident":"chdir", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"chmod", "id_type":"function", "header":"sys/stat.h", "extensions":["OB"]}, + {"ident":"chown", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"chroot", "id_type":"function", "header":"unistd.h", "extensions":["OB","REM"]}, + {"ident":"cimag", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"cimagf", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"cimagl", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"clearerr", "id_type":"function", "header":"stdio.h", "extensions":[]}, + {"ident":"CLOCAL", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"clock", "id_type":"function", "header":"time.h", "extensions":["IP6"]}, + {"ident":"clock_getcpuclockid", "id_type":"function", "header":"time.h", "extensions":["IP6"]}, + {"ident":"clock_getres", "id_type":"function", "header":"time.h", "extensions":["IP6"]}, + {"ident":"clock_gettime", "id_type":"function", "header":"time.h", "extensions":["IP6"]}, + {"ident":"CLOCK_MONOTONIC", "id_type":"macro", "header":"time.h", "extensions":["MON"]}, + {"ident":"clock_nanosleep", "id_type":"function", "header":"time.h", "extensions":["IP6"]}, + {"ident":"CLOCK_PROCESS_CPUTIME_ID", "id_type":"macro", "header":"time.h", "extensions":["IP6"]}, + {"ident":"CLOCK_REALTIME", "id_type":"macro", "header":"time.h", "extensions":["IP6"]}, + {"ident":"clock_settime", "id_type":"function", "header":"time.h", "extensions":["IP6"]}, + {"ident":"clock_t", "id_type":"type", "header":"sys/types.h", "extensions":[]}, + {"ident":"CLOCK_THREAD_CPUTIME_ID", "id_type":"macro", "header":"time.h", "extensions":["IP6"]}, + {"ident":"clockid_t", "id_type":"type", "header":"sys/types.h", "extensions":["TCT"]}, + {"ident":"CLOCKS_PER_SEC", "id_type":"macro", "header":"time.h", "extensions":["IP6"]}, + {"ident":"clog", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"clogf", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"clogl", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"close", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"closedir", "id_type":"function", "header":"dirent.h", "extensions":[]}, + {"ident":"closelog", "id_type":"function", "header":"syslog.h", "extensions":[]}, + {"ident":"CMSG_DATA", "id_type":"macro", "header":"sys/socket.h", "extensions":["IP6"]}, + {"ident":"CMSG_FIRSTHDR", "id_type":"macro", "header":"sys/socket.h", "extensions":["IP6"]}, + {"ident":"CMSG_NXTHDR", "id_type":"macro", "header":"sys/socket.h", "extensions":["IP6"]}, + {"ident":"cmsghdr", "id_type":"type", "header":"sys/socket.h", "extensions":["IP6"]}, + {"ident":"compl", "id_type":"macro", "header":"iso646.h", "extensions":[]}, + {"ident":"complex", "id_type":"macro", "header":"complex.h", "extensions":[]}, + {"ident":"confstr", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"conj", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"conjf", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"conjl", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"connect", "id_type":"function", "header":"sys/socket.h", "extensions":["IP6"]}, + {"ident":"copysign", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"copysignf", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"copysignl", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"cos", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"cosf", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"cosh", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"coshf", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"coshl", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"cosl", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"cpow", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"cpowf", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"cpowl", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"cproj", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"cprojf", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"cprojl", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"CRDLY", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"CREAD", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"creal", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"crealf", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"creall", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"creat", "id_type":"function", "header":"fcntl.h", "extensions":[]}, + {"ident":"crypt", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"csin", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"csinf", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"csinh", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"csinhf", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"csinhl", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"csinl", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"CSIZE", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"csqrt", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"csqrtf", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"csqrtl", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"CSTOPB", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"ctan", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"ctanf", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"ctanh", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"ctanhf", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"ctanhl", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"ctanl", "id_type":"function", "header":"complex.h", "extensions":[]}, + {"ident":"ctermid", "id_type":"function", "header":"stdio.h", "extensions":["CX"]}, + {"ident":"ctime", "id_type":"function", "header":"time.h", "extensions":["IP6"]}, + {"ident":"ctime_r", "id_type":"function", "header":"time.h", "extensions":["IP6"]}, + {"ident":"datum", "id_type":"type", "header":"ndbm.h", "extensions":[]}, + {"ident":"daylight", "id_type":"variable", "header":"time.h", "extensions":["IP6"]}, + {"ident":"DBM", "id_type":"type", "header":"ndbm.h", "extensions":[]}, + {"ident":"dbm_clearerr", "id_type":"function", "header":"ndbm.h", "extensions":[]}, + {"ident":"dbm_close", "id_type":"function", "header":"ndbm.h", "extensions":[]}, + {"ident":"dbm_delete", "id_type":"function", "header":"ndbm.h", "extensions":[]}, + {"ident":"dbm_error", "id_type":"function", "header":"ndbm.h", "extensions":[]}, + {"ident":"dbm_fetch", "id_type":"function", "header":"ndbm.h", "extensions":[]}, + {"ident":"dbm_firstkey", "id_type":"function", "header":"ndbm.h", "extensions":[]}, + {"ident":"DBM_INSERT", "id_type":"constant", "header":"ndbm.h", "extensions":[]}, + {"ident":"dbm_nextkey", "id_type":"function", "header":"ndbm.h", "extensions":[]}, + {"ident":"dbm_open", "id_type":"function", "header":"ndbm.h", "extensions":[]}, + {"ident":"DBM_REPLACE", "id_type":"constant", "header":"ndbm.h", "extensions":[]}, + {"ident":"dbm_store", "id_type":"function", "header":"ndbm.h", "extensions":[]}, + {"ident":"DEAD_PROCESS", "id_type":"constant", "header":"utmpx.h", "extensions":[]}, + {"ident":"dev_t", "id_type":"type", "header":"sys/types.h", "extensions":["XSI"]}, + {"ident":"difftime", "id_type":"function", "header":"time.h", "extensions":["IP6"]}, + {"ident":"DIR", "id_type":"type", "header":"dirent.h", "extensions":[]}, + {"ident":"dirent", "id_type":"type", "header":"dirent.h", "extensions":[]}, + {"ident":"dirfd", "id_type":"function", "header":"dirent.h", "extensions":[]}, + {"ident":"dirname", "id_type":"function", "header":"libgen.h", "extensions":[]}, + {"ident":"div", "id_type":"function", "header":"stdlib.h", "extensions":[]}, + {"ident":"div_t", "id_type":"type", "header":"stdlib.h", "extensions":[]}, + {"ident":"dlclose", "id_type":"function", "header":"dlfcn.h", "extensions":[]}, + {"ident":"dlerror", "id_type":"function", "header":"dlfcn.h", "extensions":[]}, + {"ident":"dlopen", "id_type":"function", "header":"dlfcn.h", "extensions":[]}, + {"ident":"dlsym", "id_type":"function", "header":"dlfcn.h", "extensions":[]}, + {"ident":"dprintf", "id_type":"function", "header":"stdio.h", "extensions":["CX"]}, + {"ident":"drand48", "id_type":"function", "header":"stdlib.h", "extensions":["XSI"]}, + {"ident":"dup", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"dup2", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"duplocale", "id_type":"function", "header":"locale.h", "extensions":["CX"]}, + {"ident":"E2BIG", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"EACCES", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"EADDRINUSE", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"EADDRNOTAVAIL", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"EAFNOSUPPORT", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"EAGAIN", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"EAI_AGAIN", "id_type":"constant", "header":"netdb.h", "extensions":[]}, + {"ident":"EAI_BADFLAGS", "id_type":"constant", "header":"netdb.h", "extensions":[]}, + {"ident":"EAI_FAIL", "id_type":"constant", "header":"netdb.h", "extensions":[]}, + {"ident":"EAI_FAMILY", "id_type":"constant", "header":"netdb.h", "extensions":[]}, + {"ident":"EAI_MEMORY", "id_type":"constant", "header":"netdb.h", "extensions":[]}, + {"ident":"EAI_NONAME", "id_type":"constant", "header":"netdb.h", "extensions":[]}, + {"ident":"EAI_OVERFLOW", "id_type":"constant", "header":"netdb.h", "extensions":[]}, + {"ident":"EAI_SERVICE", "id_type":"constant", "header":"netdb.h", "extensions":[]}, + {"ident":"EAI_SOCKTYPE", "id_type":"constant", "header":"netdb.h", "extensions":[]}, + {"ident":"EAI_SYSTEM", "id_type":"constant", "header":"netdb.h", "extensions":[]}, + {"ident":"EALREADY", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"EBADF", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"EBADMSG", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"EBUSY", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"ECANCELED", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"ECHILD", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"ECHO", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"ECHOE", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"ECHOK", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"ECHONL", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"ECONNABORTED", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"ECONNREFUSED", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"ECONNRESET", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"EDEADLK", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"EDESTADDRREQ", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"EDOM", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"EDQUOT", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"EEXIST", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"EFAULT", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"EFBIG", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"EHOSTUNREACH", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"EIDRM", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"EILSEQ", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"EINPROGRESS", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"EINTR", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"EINVAL", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"EIO", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"EISCONN", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"EISDIR", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"ELOOP", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"EMFILE", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"EMLINK", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"EMPTY", "id_type":"constant", "header":"utmpx.h", "extensions":[]}, + {"ident":"EMSGSIZE", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"EMULTIHOP", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"ENAMETOOLONG", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"encrypt", "id_type":"function", "header":"unistd.h", "extensions":["XSI"]}, + {"ident":"endgrent", "id_type":"function", "header":"grp.h", "extensions":["XSI"]}, + {"ident":"endhostent", "id_type":"function", "header":"netdb.h", "extensions":[]}, + {"ident":"endnetent", "id_type":"function", "header":"netdb.h", "extensions":[]}, + {"ident":"endprotoent", "id_type":"function", "header":"netdb.h", "extensions":[]}, + {"ident":"endpwent", "id_type":"function", "header":"pwd.h", "extensions":["XSI"]}, + {"ident":"endservent", "id_type":"function", "header":"netdb.h", "extensions":[]}, + {"ident":"endutxent", "id_type":"function", "header":"utmpx.h", "extensions":[]}, + {"ident":"ENETDOWN", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"ENETRESET", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"ENETUNREACH", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"ENFILE", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"ENOBUFS", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"ENODATA", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"ENODEV", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"ENOENT", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"ENOEXEC", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"ENOLCK", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"ENOLINK", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"ENOMEM", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"ENOMSG", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"ENOPROTOOPT", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"ENOSPC", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"ENOSR", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"ENOSTR", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"ENOSYS", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"ENOTCONN", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"ENOTDIR", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"ENOTEMPTY", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"ENOTRECOVERABLE", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"ENOTSOCK", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"ENOTSUP", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"ENOTTY", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"ENTRY", "id_type":"type", "header":"search.h", "extensions":[]}, + {"ident":"entry", "id_type":"type", "header":"search.h", "extensions":[]}, + {"ident":"ENXIO", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"EOF", "id_type":"macro", "header":"stdio.h", "extensions":[]}, + {"ident":"EOPNOTSUPP", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"EOVERFLOW", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"EOWNERDEAD", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"EPERM", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"EPIPE", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"EPROTO", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"EPROTONOSUPPORT", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"EPROTOTYPE", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"erand48", "id_type":"function", "header":"stdlib.h", "extensions":["XSI"]}, + {"ident":"ERANGE", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"erf", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"erfc", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"erfcf", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"erfcl", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"erff", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"erfl", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"EROFS", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"errno", "id_type":"macroOrIdentifier", "header":"errno.h", "extensions":[]}, + {"ident":"ESPIPE", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"ESRCH", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"ESTALE", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"ETIME", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"ETIMEDOUT", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"ETXTBSY", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"EWOULDBLOCK", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"EXDEV", "id_type":"macro", "header":"errno.h", "extensions":[]}, + {"ident":"execl", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"execle", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"execlp", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"execv", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"execve", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"execvp", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"exit", "id_type":"function", "header":"stdlib.h", "extensions":[]}, + {"ident":"EXIT_FAILURE", "id_type":"macro", "header":"stdlib.h", "extensions":[]}, + {"ident":"EXIT_SUCCESS", "id_type":"macro", "header":"stdlib.h", "extensions":[]}, + {"ident":"exp", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"exp2", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"exp2f", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"exp2l", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"expf", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"expl", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"expm1", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"expm1f", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"expm1l", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"F_DUPFD", "id_type":"constant", "header":"fcntl.h", "extensions":[]}, + {"ident":"F_DUPFD_CLOEXEC", "id_type":"constant", "header":"fcntl.h", "extensions":[]}, + {"ident":"F_GETFD", "id_type":"constant", "header":"fcntl.h", "extensions":[]}, + {"ident":"F_GETFL", "id_type":"constant", "header":"fcntl.h", "extensions":[]}, + {"ident":"F_GETLK", "id_type":"constant", "header":"fcntl.h", "extensions":[]}, + {"ident":"F_GETOWN", "id_type":"constant", "header":"fcntl.h", "extensions":[]}, + {"ident":"F_LOCK", "id_type":"constant", "header":"unistd.h", "extensions":["XSI"]}, + {"ident":"F_OK", "id_type":"constant", "header":"unistd.h", "extensions":[]}, + {"ident":"F_SETFD", "id_type":"constant", "header":"fcntl.h", "extensions":[]}, + {"ident":"F_SETFL", "id_type":"constant", "header":"fcntl.h", "extensions":[]}, + {"ident":"F_SETLK", "id_type":"constant", "header":"fcntl.h", "extensions":[]}, + {"ident":"F_SETLKW", "id_type":"constant", "header":"fcntl.h", "extensions":[]}, + {"ident":"F_SETOWN", "id_type":"constant", "header":"fcntl.h", "extensions":[]}, + {"ident":"F_TEST", "id_type":"constant", "header":"unistd.h", "extensions":["XSI"]}, + {"ident":"F_TLOCK", "id_type":"constant", "header":"unistd.h", "extensions":["XSI"]}, + {"ident":"F_ULOCK", "id_type":"constant", "header":"unistd.h", "extensions":["XSI"]}, + {"ident":"fabs", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"fabsf", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"fabsl", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"faccessat", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"false", "id_type":"macro", "header":"stdbool.h", "extensions":[]}, + {"ident":"fattach", "id_type":"function", "header":"stropts.h", "extensions":[]}, + {"ident":"fchdir", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"fchmod", "id_type":"function", "header":"sys/stat.h", "extensions":["OB"]}, + {"ident":"fchmodat", "id_type":"function", "header":"sys/stat.h", "extensions":["OB"]}, + {"ident":"fchown", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"fchownat", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"fclose", "id_type":"function", "header":"stdio.h", "extensions":[]}, + {"ident":"fcntl", "id_type":"function", "header":"fcntl.h", "extensions":[]}, + {"ident":"FD_CLOEXEC", "id_type":"constant", "header":"fcntl.h", "extensions":[]}, + {"ident":"FD_CLR", "id_type":"function", "header":"sys/select.h", "extensions":[]}, + {"ident":"FD_ISSET", "id_type":"function", "header":"sys/select.h", "extensions":[]}, + {"ident":"FD_SET", "id_type":"function", "header":"sys/select.h", "extensions":[]}, + {"ident":"fd_set", "id_type":"type", "header":"sys/select.h", "extensions":[]}, + {"ident":"FD_SETSIZE", "id_type":"constant", "header":"sys/select.h", "extensions":[]}, + {"ident":"FD_ZERO", "id_type":"function", "header":"sys/select.h", "extensions":[]}, + {"ident":"fdatasync", "id_type":"function", "header":"unistd.h", "extensions":["SIO"]}, + {"ident":"fdetach", "id_type":"function", "header":"stropts.h", "extensions":[]}, + {"ident":"fdim", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"fdimf", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"fdiml", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"fdopen", "id_type":"function", "header":"stdio.h", "extensions":[]}, + {"ident":"fdopendir", "id_type":"function", "header":"dirent.h", "extensions":[]}, + {"ident":"feclearexcept", "id_type":"function", "header":"fenv.h", "extensions":[]}, + {"ident":"fegetenv", "id_type":"function", "header":"fenv.h", "extensions":[]}, + {"ident":"fegetexceptflag", "id_type":"function", "header":"fenv.h", "extensions":[]}, + {"ident":"fegetround", "id_type":"function", "header":"fenv.h", "extensions":[]}, + {"ident":"feholdexcept", "id_type":"function", "header":"fenv.h", "extensions":[]}, + {"ident":"fenv_t", "id_type":"type", "header":"fenv.h", "extensions":[]}, + {"ident":"feof", "id_type":"function", "header":"stdio.h", "extensions":[]}, + {"ident":"feraiseexcept", "id_type":"function", "header":"fenv.h", "extensions":[]}, + {"ident":"ferror", "id_type":"function", "header":"stdio.h", "extensions":[]}, + {"ident":"fesetenv", "id_type":"function", "header":"fenv.h", "extensions":[]}, + {"ident":"fesetexceptflag", "id_type":"function", "header":"fenv.h", "extensions":[]}, + {"ident":"fesetround", "id_type":"function", "header":"fenv.h", "extensions":[]}, + {"ident":"fetestexcept", "id_type":"function", "header":"fenv.h", "extensions":[]}, + {"ident":"feupdateenv", "id_type":"function", "header":"fenv.h", "extensions":[]}, + {"ident":"fexcept_t", "id_type":"type", "header":"fenv.h", "extensions":[]}, + {"ident":"fexecve", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"FFDLY", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"fflush", "id_type":"function", "header":"stdio.h", "extensions":[]}, + {"ident":"ffs", "id_type":"function", "header":"strings.h", "extensions":["XSI"]}, + {"ident":"fgetc", "id_type":"function", "header":"stdio.h", "extensions":[]}, + {"ident":"fgetpos", "id_type":"function", "header":"stdio.h", "extensions":[]}, + {"ident":"fgets", "id_type":"function", "header":"stdio.h", "extensions":[]}, + {"ident":"fgetwc", "id_type":"function", "header":"wchar.h", "extensions":[]}, + {"ident":"fgetws", "id_type":"function", "header":"wchar.h", "extensions":[]}, + {"ident":"FILE", "id_type":"type", "header":"stdio.h", "extensions":["CX"]}, + {"ident":"FILENAME_MAX", "id_type":"macro", "header":"stdio.h", "extensions":[]}, + {"ident":"fileno", "id_type":"function", "header":"stdio.h", "extensions":["CX"]}, + {"ident":"flock", "id_type":"type", "header":"fcntl.h", "extensions":[]}, + {"ident":"flockfile", "id_type":"function", "header":"stdio.h", "extensions":["CX"]}, + {"ident":"floor", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"floorf", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"floorl", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"fma", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"fmaf", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"fmal", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"fmax", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"fmaxf", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"fmaxl", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"fmemopen", "id_type":"function", "header":"stdio.h", "extensions":[]}, + {"ident":"fmin", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"fminf", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"fminl", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"fmod", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"fmodf", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"fmodl", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"fmtmsg", "id_type":"function", "header":"fmtmsg.h", "extensions":[]}, + {"ident":"FNM_NOESCAPE", "id_type":"constant", "header":"fnmatch.h", "extensions":[]}, + {"ident":"FNM_NOMATCH", "id_type":"constant", "header":"fnmatch.h", "extensions":[]}, + {"ident":"FNM_PATHNAME", "id_type":"constant", "header":"fnmatch.h", "extensions":[]}, + {"ident":"FNM_PERIOD", "id_type":"constant", "header":"fnmatch.h", "extensions":[]}, + {"ident":"fnmatch", "id_type":"function", "header":"fnmatch.h", "extensions":[]}, + {"ident":"fopen", "id_type":"function", "header":"stdio.h", "extensions":[]}, + {"ident":"FOPEN_MAX", "id_type":"macro", "header":"stdio.h", "extensions":[]}, + {"ident":"fork", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"fpathconf", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"fpos_t", "id_type":"type", "header":"stdio.h", "extensions":[]}, + {"ident":"fprintf", "id_type":"function", "header":"stdio.h", "extensions":[]}, + {"ident":"fputc", "id_type":"function", "header":"stdio.h", "extensions":[]}, + {"ident":"fputs", "id_type":"function", "header":"stdio.h", "extensions":[]}, + {"ident":"fputwc", "id_type":"function", "header":"wchar.h", "extensions":[]}, + {"ident":"fputws", "id_type":"function", "header":"wchar.h", "extensions":[]}, + {"ident":"fread", "id_type":"function", "header":"stdio.h", "extensions":[]}, + {"ident":"free", "id_type":"function", "header":"stdlib.h", "extensions":[]}, + {"ident":"freeaddrinfo", "id_type":"function", "header":"netdb.h", "extensions":[]}, + {"ident":"freelocale", "id_type":"function", "header":"locale.h", "extensions":["CX"]}, + {"ident":"freopen", "id_type":"function", "header":"stdio.h", "extensions":[]}, + {"ident":"frexp", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"frexpf", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"frexpl", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"fsblkcnt_t", "id_type":"type", "header":"sys/types.h", "extensions":[]}, + {"ident":"fscanf", "id_type":"function", "header":"stdio.h", "extensions":[]}, + {"ident":"fseek", "id_type":"function", "header":"stdio.h", "extensions":[]}, + {"ident":"fseeko", "id_type":"function", "header":"stdio.h", "extensions":["CX"]}, + {"ident":"fsetpos", "id_type":"function", "header":"stdio.h", "extensions":[]}, + {"ident":"fsfilcnt_t", "id_type":"type", "header":"sys/types.h", "extensions":[]}, + {"ident":"fstat", "id_type":"function", "header":"sys/stat.h", "extensions":["OB"]}, + {"ident":"fstatat", "id_type":"function", "header":"sys/stat.h", "extensions":["OB"]}, + {"ident":"fstatvfs", "id_type":"function", "header":"sys/statvfs.h", "extensions":[]}, + {"ident":"fsync", "id_type":"function", "header":"unistd.h", "extensions":["FSC"]}, + {"ident":"ftell", "id_type":"function", "header":"stdio.h", "extensions":[]}, + {"ident":"ftello", "id_type":"function", "header":"stdio.h", "extensions":["CX"]}, + {"ident":"ftok", "id_type":"function", "header":"sys/ipc.h", "extensions":[]}, + {"ident":"ftruncate", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"ftrylockfile", "id_type":"function", "header":"stdio.h", "extensions":["CX"]}, + {"ident":"ftw", "id_type":"function", "header":"ftw.h", "extensions":["OB"]}, + {"ident":"FTW", "id_type":"type", "header":"ftw.h", "extensions":["OB"]}, + {"ident":"FTW_CHDIR", "id_type":"constant", "header":"ftw.h", "extensions":["OB"]}, + {"ident":"FTW_D", "id_type":"constant", "header":"ftw.h", "extensions":["OB"]}, + {"ident":"FTW_DEPTH", "id_type":"constant", "header":"ftw.h", "extensions":["OB"]}, + {"ident":"FTW_DNR", "id_type":"constant", "header":"ftw.h", "extensions":["OB"]}, + {"ident":"FTW_DP", "id_type":"constant", "header":"ftw.h", "extensions":["OB"]}, + {"ident":"FTW_F", "id_type":"constant", "header":"ftw.h", "extensions":["OB"]}, + {"ident":"FTW_MOUNT", "id_type":"constant", "header":"ftw.h", "extensions":["OB"]}, + {"ident":"FTW_NS", "id_type":"constant", "header":"ftw.h", "extensions":["OB"]}, + {"ident":"FTW_PHYS", "id_type":"constant", "header":"ftw.h", "extensions":["OB"]}, + {"ident":"FTW_SL", "id_type":"constant", "header":"ftw.h", "extensions":["OB"]}, + {"ident":"FTW_SLN", "id_type":"constant", "header":"ftw.h", "extensions":["OB"]}, + {"ident":"funlockfile", "id_type":"function", "header":"stdio.h", "extensions":["CX"]}, + {"ident":"futimens", "id_type":"function", "header":"sys/stat.h", "extensions":["OB"]}, + {"ident":"fwide", "id_type":"function", "header":"wchar.h", "extensions":[]}, + {"ident":"fwprintf", "id_type":"function", "header":"wchar.h", "extensions":[]}, + {"ident":"fwrite", "id_type":"function", "header":"stdio.h", "extensions":[]}, + {"ident":"fwscanf", "id_type":"function", "header":"wchar.h", "extensions":[]}, + {"ident":"gai_strerror", "id_type":"function", "header":"netdb.h", "extensions":[]}, + {"ident":"getaddrinfo", "id_type":"function", "header":"netdb.h", "extensions":["IP6"]}, + {"ident":"GETALL", "id_type":"constant", "header":"sys/sem.h", "extensions":[]}, + {"ident":"getc", "id_type":"function", "header":"stdio.h", "extensions":[]}, + {"ident":"getc_unlocked", "id_type":"function", "header":"stdio.h", "extensions":["CX"]}, + {"ident":"getchar", "id_type":"function", "header":"stdio.h", "extensions":[]}, + {"ident":"getchar_unlocked", "id_type":"function", "header":"stdio.h", "extensions":["CX"]}, + {"ident":"getcwd", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"getdate", "id_type":"function", "header":"time.h", "extensions":["IP6"]}, + {"ident":"getdelim", "id_type":"function", "header":"stdio.h", "extensions":["CX"]}, + {"ident":"getegid", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"getenv", "id_type":"function", "header":"stdlib.h", "extensions":[]}, + {"ident":"geteuid", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"getgid", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"getgrent", "id_type":"function", "header":"grp.h", "extensions":[]}, + {"ident":"getgrgid", "id_type":"function", "header":"grp.h", "extensions":[]}, + {"ident":"getgrgid_r", "id_type":"function", "header":"grp.h", "extensions":[]}, + {"ident":"getgrnam", "id_type":"function", "header":"grp.h", "extensions":[]}, + {"ident":"getgrnam_r", "id_type":"function", "header":"grp.h", "extensions":[]}, + {"ident":"getgroups", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"gethostbyaddr", "id_type":"function", "header":"netdb.h", "extensions":["OB","REM"]}, + {"ident":"gethostbyname", "id_type":"function", "header":"netdb.h", "extensions":["OB","REM"]}, + {"ident":"gethostent", "id_type":"function", "header":"netdb.h", "extensions":[]}, + {"ident":"gethostid", "id_type":"function", "header":"unistd.h", "extensions":["XSI"]}, + {"ident":"gethostname", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"getitimer", "id_type":"function", "header":"sys/time.h", "extensions":["IP6"]}, + {"ident":"getline", "id_type":"function", "header":"stdio.h", "extensions":["CX"]}, + {"ident":"getlogin", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"getlogin_r", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"getmsg", "id_type":"function", "header":"stropts.h", "extensions":[]}, + {"ident":"getnameinfo", "id_type":"function", "header":"netdb.h", "extensions":[]}, + {"ident":"GETNCNT", "id_type":"constant", "header":"sys/sem.h", "extensions":[]}, + {"ident":"getnetbyaddr", "id_type":"function", "header":"netdb.h", "extensions":[]}, + {"ident":"getnetbyname", "id_type":"function", "header":"netdb.h", "extensions":[]}, + {"ident":"getnetent", "id_type":"function", "header":"netdb.h", "extensions":[]}, + {"ident":"getopt", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"getpeername", "id_type":"function", "header":"sys/socket.h", "extensions":["IP6"]}, + {"ident":"getpgid", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"getpgrp", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"GETPID", "id_type":"constant", "header":"sys/sem.h", "extensions":[]}, + {"ident":"getpid", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"getpmsg", "id_type":"function", "header":"stropts.h", "extensions":[]}, + {"ident":"getppid", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"getpriority", "id_type":"function", "header":"sys/resource.h", "extensions":[]}, + {"ident":"getprotobyname", "id_type":"function", "header":"netdb.h", "extensions":[]}, + {"ident":"getprotobynumber", "id_type":"function", "header":"netdb.h", "extensions":[]}, + {"ident":"getprotoent", "id_type":"function", "header":"netdb.h", "extensions":[]}, + {"ident":"getpwent", "id_type":"function", "header":"pwd.h", "extensions":[]}, + {"ident":"getpwnam", "id_type":"function", "header":"pwd.h", "extensions":[]}, + {"ident":"getpwnam_r", "id_type":"function", "header":"pwd.h", "extensions":[]}, + {"ident":"getpwuid", "id_type":"function", "header":"pwd.h", "extensions":[]}, + {"ident":"getpwuid_r", "id_type":"function", "header":"pwd.h", "extensions":[]}, + {"ident":"getrlimit", "id_type":"function", "header":"sys/resource.h", "extensions":[]}, + {"ident":"getrusage", "id_type":"function", "header":"sys/resource.h", "extensions":[]}, + {"ident":"gets", "id_type":"function", "header":"stdio.h", "extensions":["OB"]}, + {"ident":"getservbyname", "id_type":"function", "header":"netdb.h", "extensions":[]}, + {"ident":"getservbyport", "id_type":"function", "header":"netdb.h", "extensions":[]}, + {"ident":"getservent", "id_type":"function", "header":"netdb.h", "extensions":[]}, + {"ident":"getsid", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"getsockname", "id_type":"function", "header":"sys/socket.h", "extensions":["IP6"]}, + {"ident":"getsockopt", "id_type":"function", "header":"sys/socket.h", "extensions":["IP6"]}, + {"ident":"getsubopt", "id_type":"function", "header":"stdlib.h", "extensions":["CX"]}, + {"ident":"gettimeofday", "id_type":"function", "header":"sys/time.h", "extensions":["IP6"]}, + {"ident":"getuid", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"getutxent", "id_type":"function", "header":"utmpx.h", "extensions":[]}, + {"ident":"getutxid", "id_type":"function", "header":"utmpx.h", "extensions":[]}, + {"ident":"getutxline", "id_type":"function", "header":"utmpx.h", "extensions":[]}, + {"ident":"GETVAL", "id_type":"constant", "header":"sys/sem.h", "extensions":[]}, + {"ident":"getwc", "id_type":"function", "header":"wchar.h", "extensions":[]}, + {"ident":"getwchar", "id_type":"function", "header":"wchar.h", "extensions":[]}, + {"ident":"GETZCNT", "id_type":"constant", "header":"sys/sem.h", "extensions":[]}, + {"ident":"gid_t", "id_type":"type", "header":"sys/types.h", "extensions":[]}, + {"ident":"glob", "id_type":"function", "header":"glob.h", "extensions":[]}, + {"ident":"GLOB_ABORTED", "id_type":"constant", "header":"glob.h", "extensions":[]}, + {"ident":"GLOB_APPEND", "id_type":"constant", "header":"glob.h", "extensions":[]}, + {"ident":"GLOB_DOOFFS", "id_type":"constant", "header":"glob.h", "extensions":[]}, + {"ident":"GLOB_ERR", "id_type":"constant", "header":"glob.h", "extensions":[]}, + {"ident":"GLOB_MARK", "id_type":"constant", "header":"glob.h", "extensions":[]}, + {"ident":"GLOB_NOCHECK", "id_type":"constant", "header":"glob.h", "extensions":[]}, + {"ident":"GLOB_NOESCAPE", "id_type":"constant", "header":"glob.h", "extensions":[]}, + {"ident":"GLOB_NOMATCH", "id_type":"constant", "header":"glob.h", "extensions":[]}, + {"ident":"GLOB_NOSORT", "id_type":"constant", "header":"glob.h", "extensions":[]}, + {"ident":"GLOB_NOSPACE", "id_type":"constant", "header":"glob.h", "extensions":[]}, + {"ident":"glob_t", "id_type":"type", "header":"glob.h", "extensions":[]}, + {"ident":"globfree", "id_type":"function", "header":"glob.h", "extensions":[]}, + {"ident":"gmtime", "id_type":"function", "header":"time.h", "extensions":["IP6"]}, + {"ident":"gmtime_r", "id_type":"function", "header":"time.h", "extensions":["IP6"]}, + {"ident":"grantpt", "id_type":"function", "header":"stdlib.h", "extensions":["XSI"]}, + {"ident":"group", "id_type":"type", "header":"grp.h", "extensions":["XSI"]}, + {"ident":"h_errno", "id_type":"macroOrIdentifier", "header":"netdb.h", "extensions":["OB","REM"]}, + {"ident":"hcreate", "id_type":"function", "header":"search.h", "extensions":[]}, + {"ident":"hdestroy", "id_type":"function", "header":"search.h", "extensions":[]}, + {"ident":"hostent", "id_type":"type", "header":"netdb.h", "extensions":[]}, + {"ident":"hsearch", "id_type":"function", "header":"search.h", "extensions":[]}, + {"ident":"htonl", "id_type":"function", "header":"arpa/inet.h", "extensions":[]}, + {"ident":"htons", "id_type":"function", "header":"arpa/inet.h", "extensions":[]}, + {"ident":"HUGE_VAL", "id_type":"macro", "header":"math.h", "extensions":[]}, + {"ident":"HUGE_VALF", "id_type":"macro", "header":"math.h", "extensions":[]}, + {"ident":"HUGE_VALL", "id_type":"macro", "header":"math.h", "extensions":[]}, + {"ident":"HUPCL", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"hypot", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"hypotf", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"hypotl", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"I", "id_type":"macro", "header":"complex.h", "extensions":[]}, + {"ident":"ICANON", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"iconv", "id_type":"function", "header":"iconv.h", "extensions":[]}, + {"ident":"iconv_close", "id_type":"function", "header":"iconv.h", "extensions":[]}, + {"ident":"iconv_open", "id_type":"function", "header":"iconv.h", "extensions":[]}, + {"ident":"iconv_t", "id_type":"type", "header":"iconv.h", "extensions":[]}, + {"ident":"ICRNL", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"id_t", "id_type":"type", "header":"sys/types.h", "extensions":[]}, + {"ident":"IEXTEN", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"if_freenameindex", "id_type":"function", "header":"net/if.h", "extensions":[]}, + {"ident":"if_indextoname", "id_type":"function", "header":"net/if.h", "extensions":[]}, + {"ident":"if_nameindex", "id_type":"function", "header":"net/if.h", "extensions":[]}, + {"ident":"IF_NAMESIZE", "id_type":"constant", "header":"net/if.h", "extensions":[]}, + {"ident":"if_nametoindex", "id_type":"function", "header":"net/if.h", "extensions":[]}, + {"ident":"IGNBRK", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"IGNCR", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"IGNPAR", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"ilogb", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"ilogbf", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"ilogbl", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"imaginary", "id_type":"macro", "header":"complex.h", "extensions":[]}, + {"ident":"imaxabs", "id_type":"function", "header":"inttypes.h", "extensions":[]}, + {"ident":"imaxdiv", "id_type":"function", "header":"inttypes.h", "extensions":[]}, + {"ident":"in6_addr", "id_type":"type", "header":"netinet/in.h", "extensions":["IP6"]}, + {"ident":"IN6_IS_ADDR_LINKLOCAL", "id_type":"constant", "header":"netinet/in.h", "extensions":["IP6"]}, + {"ident":"IN6_IS_ADDR_LOOPBACK", "id_type":"constant", "header":"netinet/in.h", "extensions":["IP6"]}, + {"ident":"IN6_IS_ADDR_MC_GLOBAL", "id_type":"constant", "header":"netinet/in.h", "extensions":["IP6"]}, + {"ident":"IN6_IS_ADDR_MC_LINKLOCAL", "id_type":"constant", "header":"netinet/in.h", "extensions":["IP6"]}, + {"ident":"IN6_IS_ADDR_MC_NODELOCAL", "id_type":"constant", "header":"netinet/in.h", "extensions":["IP6"]}, + {"ident":"IN6_IS_ADDR_MC_ORGLOCAL", "id_type":"constant", "header":"netinet/in.h", "extensions":["IP6"]}, + {"ident":"IN6_IS_ADDR_MC_SITELOCAL", "id_type":"constant", "header":"netinet/in.h", "extensions":["IP6"]}, + {"ident":"IN6_IS_ADDR_MULTICAST", "id_type":"constant", "header":"netinet/in.h", "extensions":["IP6"]}, + {"ident":"IN6_IS_ADDR_SITELOCAL", "id_type":"constant", "header":"netinet/in.h", "extensions":["IP6"]}, + {"ident":"IN6_IS_ADDR_UNSPECIFIED", "id_type":"constant", "header":"netinet/in.h", "extensions":["IP6"]}, + {"ident":"IN6_IS_ADDR_V4COMPAT", "id_type":"constant", "header":"netinet/in.h", "extensions":["IP6"]}, + {"ident":"IN6_IS_ADDR_V4MAPPED", "id_type":"constant", "header":"netinet/in.h", "extensions":["IP6"]}, + {"ident":"in6addr_any", "id_type":"variable", "header":"netinet/in.h", "extensions":["IP6"]}, + {"ident":"in6addr_loopback", "id_type":"variable", "header":"netinet/in.h", "extensions":["IP6"]}, + {"ident":"in_addr", "id_type":"type", "header":"netinet/in.h", "extensions":[]}, + {"ident":"in_addr_t", "id_type":"type", "header":"netinet/in.h", "extensions":[]}, + {"ident":"in_port_t", "id_type":"type", "header":"netinet/in.h", "extensions":["IP6"]}, + {"ident":"INADDR_ANY", "id_type":"constant", "header":"netinet/in.h", "extensions":[]}, + {"ident":"INADDR_BROADCAST", "id_type":"constant", "header":"netinet/in.h", "extensions":[]}, + {"ident":"INET6_ADDRSTRLEN", "id_type":"constant", "header":"netinet/in.h", "extensions":["IP6"]}, + {"ident":"inet_addr", "id_type":"function", "header":"arpa/inet.h", "extensions":[]}, + {"ident":"INET_ADDRSTRLEN", "id_type":"constant", "header":"netinet/in.h", "extensions":[]}, + {"ident":"inet_ntoa", "id_type":"function", "header":"arpa/inet.h", "extensions":[]}, + {"ident":"inet_ntop", "id_type":"function", "header":"arpa/inet.h", "extensions":[]}, + {"ident":"inet_pton", "id_type":"function", "header":"arpa/inet.h", "extensions":[]}, + {"ident":"INFINITY", "id_type":"macro", "header":"math.h", "extensions":[]}, + {"ident":"INIT_PROCESS", "id_type":"constant", "header":"utmpx.h", "extensions":[]}, + {"ident":"initstate", "id_type":"function", "header":"stdlib.h", "extensions":[]}, + {"ident":"INLCR", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"ino_t", "id_type":"type", "header":"sys/types.h", "extensions":["XSI"]}, + {"ident":"INPCK", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"insque", "id_type":"function", "header":"search.h", "extensions":[]}, + {"ident":"INT_MAX", "id_type":"macro", "header":"limits.h", "extensions":[]}, + {"ident":"INT_MIN", "id_type":"macro", "header":"limits.h", "extensions":[]}, + {"ident":"ioctl", "id_type":"function", "header":"stropts.h", "extensions":["OB","XSR"]}, + {"ident":"iovec", "id_type":"type", "header":"sys/uio.h", "extensions":["XSI"]}, + {"ident":"IPC_CREAT", "id_type":"constant", "header":"sys/ipc.h", "extensions":[]}, + {"ident":"IPC_EXCL", "id_type":"constant", "header":"sys/ipc.h", "extensions":[]}, + {"ident":"IPC_NOWAIT", "id_type":"constant", "header":"sys/ipc.h", "extensions":[]}, + {"ident":"ipc_perm", "id_type":"type", "header":"sys/ipc.h", "extensions":[]}, + {"ident":"IPPROTO_ICMP", "id_type":"constant", "header":"netinet/in.h", "extensions":[]}, + {"ident":"IPPROTO_IP", "id_type":"constant", "header":"netinet/in.h", "extensions":[]}, + {"ident":"IPPROTO_IPV6", "id_type":"constant", "header":"netinet/in.h", "extensions":[]}, + {"ident":"IPPROTO_RAW", "id_type":"constant", "header":"netinet/in.h", "extensions":[]}, + {"ident":"IPPROTO_TCP", "id_type":"constant", "header":"netinet/in.h", "extensions":[]}, + {"ident":"IPPROTO_UDP", "id_type":"constant", "header":"netinet/in.h", "extensions":[]}, + {"ident":"IPV6_JOIN_GROUP", "id_type":"constant", "header":"netinet/in.h", "extensions":["IP6"]}, + {"ident":"IPV6_LEAVE_GROUP", "id_type":"constant", "header":"netinet/in.h", "extensions":["IP6"]}, + {"ident":"ipv6_mreq", "id_type":"type", "header":"netinet/in.h", "extensions":["IP6"]}, + {"ident":"IPV6_MULTICAST_HOPS", "id_type":"constant", "header":"netinet/in.h", "extensions":["IP6"]}, + {"ident":"IPV6_MULTICAST_IF", "id_type":"constant", "header":"netinet/in.h", "extensions":["IP6"]}, + {"ident":"IPV6_MULTICAST_LOOP", "id_type":"constant", "header":"netinet/in.h", "extensions":["IP6"]}, + {"ident":"IPV6_UNICAST_HOPS", "id_type":"constant", "header":"netinet/in.h", "extensions":["IP6"]}, + {"ident":"IPV6_V6ONLY", "id_type":"constant", "header":"netinet/in.h", "extensions":["IP6"]}, + {"ident":"isalnum", "id_type":"function", "header":"ctype.h", "extensions":[]}, + {"ident":"isalnum_l", "id_type":"function", "header":"ctype.h", "extensions":["CX"]}, + {"ident":"isalpha", "id_type":"function", "header":"ctype.h", "extensions":[]}, + {"ident":"isalpha_l", "id_type":"function", "header":"ctype.h", "extensions":["CX"]}, + {"ident":"isascii", "id_type":"function", "header":"ctype.h", "extensions":["OB","XSI"]}, + {"ident":"isastream", "id_type":"function", "header":"stropts.h", "extensions":[]}, + {"ident":"isatty", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"isblank", "id_type":"function", "header":"ctype.h", "extensions":[]}, + {"ident":"isblank_l", "id_type":"function", "header":"ctype.h", "extensions":["CX"]}, + {"ident":"iscntrl", "id_type":"function", "header":"ctype.h", "extensions":[]}, + {"ident":"iscntrl_l", "id_type":"function", "header":"ctype.h", "extensions":["CX"]}, + {"ident":"isdigit", "id_type":"function", "header":"ctype.h", "extensions":[]}, + {"ident":"isdigit_l", "id_type":"function", "header":"ctype.h", "extensions":["CX"]}, + {"ident":"isgraph", "id_type":"function", "header":"ctype.h", "extensions":[]}, + {"ident":"isgraph_l", "id_type":"function", "header":"ctype.h", "extensions":["CX"]}, + {"ident":"ISIG", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"islower", "id_type":"function", "header":"ctype.h", "extensions":[]}, + {"ident":"islower_l", "id_type":"function", "header":"ctype.h", "extensions":["CX"]}, + {"ident":"isprint", "id_type":"function", "header":"ctype.h", "extensions":[]}, + {"ident":"isprint_l", "id_type":"function", "header":"ctype.h", "extensions":["CX"]}, + {"ident":"ispunct", "id_type":"function", "header":"ctype.h", "extensions":[]}, + {"ident":"ispunct_l", "id_type":"function", "header":"ctype.h", "extensions":["CX"]}, + {"ident":"isspace", "id_type":"function", "header":"ctype.h", "extensions":[]}, + {"ident":"isspace_l", "id_type":"function", "header":"ctype.h", "extensions":["CX"]}, + {"ident":"ISTRIP", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"isupper", "id_type":"function", "header":"ctype.h", "extensions":[]}, + {"ident":"isupper_l", "id_type":"function", "header":"ctype.h", "extensions":["CX"]}, + {"ident":"iswalnum", "id_type":"function", "header":"wctype.h", "extensions":["OB","XSI"]}, + {"ident":"iswalnum_l", "id_type":"function", "header":"wctype.h", "extensions":["OB","XSI"]}, + {"ident":"iswalpha", "id_type":"function", "header":"wctype.h", "extensions":["OB","XSI"]}, + {"ident":"iswalpha_l", "id_type":"function", "header":"wctype.h", "extensions":["OB","XSI"]}, + {"ident":"iswblank", "id_type":"function", "header":"wctype.h", "extensions":["OB","XSI"]}, + {"ident":"iswblank_l", "id_type":"function", "header":"wctype.h", "extensions":["OB","XSI"]}, + {"ident":"iswcntrl", "id_type":"function", "header":"wctype.h", "extensions":["OB","XSI"]}, + {"ident":"iswcntrl_l", "id_type":"function", "header":"wctype.h", "extensions":["OB","XSI"]}, + {"ident":"iswctype", "id_type":"function", "header":"wctype.h", "extensions":["OB","XSI"]}, + {"ident":"iswctype_l", "id_type":"function", "header":"wctype.h", "extensions":["OB","XSI"]}, + {"ident":"iswdigit", "id_type":"function", "header":"wctype.h", "extensions":["OB","XSI"]}, + {"ident":"iswdigit_l", "id_type":"function", "header":"wctype.h", "extensions":["OB","XSI"]}, + {"ident":"iswgraph", "id_type":"function", "header":"wctype.h", "extensions":["OB","XSI"]}, + {"ident":"iswgraph_l", "id_type":"function", "header":"wctype.h", "extensions":["OB","XSI"]}, + {"ident":"iswlower", "id_type":"function", "header":"wctype.h", "extensions":["OB","XSI"]}, + {"ident":"iswlower_l", "id_type":"function", "header":"wctype.h", "extensions":["OB","XSI"]}, + {"ident":"iswprint", "id_type":"function", "header":"wctype.h", "extensions":["OB","XSI"]}, + {"ident":"iswprint_l", "id_type":"function", "header":"wctype.h", "extensions":["OB","XSI"]}, + {"ident":"iswpunct", "id_type":"function", "header":"wctype.h", "extensions":["OB","XSI"]}, + {"ident":"iswpunct_l", "id_type":"function", "header":"wctype.h", "extensions":["OB","XSI"]}, + {"ident":"iswspace", "id_type":"function", "header":"wctype.h", "extensions":["OB","XSI"]}, + {"ident":"iswspace_l", "id_type":"function", "header":"wctype.h", "extensions":["OB","XSI"]}, + {"ident":"iswupper", "id_type":"function", "header":"wctype.h", "extensions":["OB","XSI"]}, + {"ident":"iswupper_l", "id_type":"function", "header":"wctype.h", "extensions":["OB","XSI"]}, + {"ident":"iswxdigit", "id_type":"function", "header":"wctype.h", "extensions":["OB","XSI"]}, + {"ident":"iswxdigit_l", "id_type":"function", "header":"wctype.h", "extensions":["OB","XSI"]}, + {"ident":"isxdigit", "id_type":"function", "header":"ctype.h", "extensions":[]}, + {"ident":"isxdigit_l", "id_type":"function", "header":"ctype.h", "extensions":["CX"]}, + {"ident":"ITIMER_PROF", "id_type":"constant", "header":"sys/time.h", "extensions":["IP6"]}, + {"ident":"ITIMER_REAL", "id_type":"constant", "header":"sys/time.h", "extensions":["IP6"]}, + {"ident":"ITIMER_VIRTUAL", "id_type":"constant", "header":"sys/time.h", "extensions":["IP6"]}, + {"ident":"itimerspec", "id_type":"type", "header":"time.h", "extensions":["IP6"]}, + {"ident":"itimerval", "id_type":"type", "header":"sys/time.h", "extensions":["IP6"]}, + {"ident":"IXANY", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"IXOFF", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"IXON", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"j0", "id_type":"function", "header":"math.h", "extensions":["XSI"]}, + {"ident":"j1", "id_type":"function", "header":"math.h", "extensions":["XSI"]}, + {"ident":"jn", "id_type":"function", "header":"math.h", "extensions":["XSI"]}, + {"ident":"jrand48", "id_type":"function", "header":"stdlib.h", "extensions":["XSI"]}, + {"ident":"key_t", "id_type":"type", "header":"sys/types.h", "extensions":[]}, + {"ident":"kill", "id_type":"function", "header":"signal.h", "extensions":[]}, + {"ident":"killpg", "id_type":"function", "header":"signal.h", "extensions":[]}, + {"ident":"l64a", "id_type":"function", "header":"stdlib.h", "extensions":[]}, + {"ident":"L_ctermid", "id_type":"type", "header":"stdio.h", "extensions":[]}, + {"ident":"L_tmpnam", "id_type":"type", "header":"stdio.h", "extensions":[]}, + {"ident":"labs", "id_type":"function", "header":"stdlib.h", "extensions":[]}, + {"ident":"lchown", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"lcong48", "id_type":"function", "header":"stdlib.h", "extensions":["XSI"]}, + {"ident":"lconv", "id_type":"type", "header":"locale.h", "extensions":[]}, + {"ident":"ldexp", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"ldexpf", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"ldexpl", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"ldiv", "id_type":"function", "header":"stdlib.h", "extensions":[]}, + {"ident":"ldiv_t", "id_type":"type", "header":"stdlib.h", "extensions":[]}, + {"ident":"lfind", "id_type":"function", "header":"search.h", "extensions":[]}, + {"ident":"lgamma", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"lgammaf", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"lgammal", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"linger", "id_type":"type", "header":"sys/socket.h", "extensions":["IP6"]}, + {"ident":"link", "id_type":"function", "header":"unistd.h", "extensions":["IP6"]}, + {"ident":"linkat", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"lio_listio", "id_type":"function", "header":"aio.h", "extensions":[]}, + {"ident":"LIO_NOP", "id_type":"constant", "header":"aio.h", "extensions":[]}, + {"ident":"LIO_NOWAIT", "id_type":"constant", "header":"aio.h", "extensions":[]}, + {"ident":"LIO_READ", "id_type":"constant", "header":"aio.h", "extensions":[]}, + {"ident":"LIO_WAIT", "id_type":"constant", "header":"aio.h", "extensions":[]}, + {"ident":"LIO_WRITE", "id_type":"constant", "header":"aio.h", "extensions":[]}, + {"ident":"listen", "id_type":"function", "header":"sys/socket.h", "extensions":["IP6"]}, + {"ident":"llabs", "id_type":"function", "header":"stdlib.h", "extensions":[]}, + {"ident":"lldiv", "id_type":"function", "header":"stdlib.h", "extensions":[]}, + {"ident":"lldiv_t", "id_type":"type", "header":"stdlib.h", "extensions":[]}, + {"ident":"LLONG_MAX", "id_type":"macro", "header":"limits.h", "extensions":[]}, + {"ident":"LLONG_MIN", "id_type":"macro", "header":"limits.h", "extensions":[]}, + {"ident":"llrint", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"llrintf", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"llrintl", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"llround", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"llroundf", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"llroundl", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"locale_t", "id_type":"type", "header":"wchar.h", "extensions":["CX"]}, + {"ident":"localeconv", "id_type":"function", "header":"locale.h", "extensions":[]}, + {"ident":"localtime", "id_type":"function", "header":"time.h", "extensions":["IP6"]}, + {"ident":"localtime_r", "id_type":"function", "header":"time.h", "extensions":["IP6"]}, + {"ident":"lockf", "id_type":"function", "header":"unistd.h", "extensions":["XSI"]}, + {"ident":"log", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"log10", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"log10f", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"log10l", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"log1p", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"log1pf", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"log1pl", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"log2", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"log2f", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"log2l", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"LOG_ALERT", "id_type":"macro", "header":"syslog.h", "extensions":[]}, + {"ident":"LOG_AUTH", "id_type":"constant", "header":"syslog.h", "extensions":[]}, + {"ident":"LOG_CONS", "id_type":"constant", "header":"syslog.h", "extensions":[]}, + {"ident":"LOG_CRIT", "id_type":"macro", "header":"syslog.h", "extensions":[]}, + {"ident":"LOG_CRON", "id_type":"constant", "header":"syslog.h", "extensions":[]}, + {"ident":"LOG_DAEMON", "id_type":"constant", "header":"syslog.h", "extensions":[]}, + {"ident":"LOG_DEBUG", "id_type":"macro", "header":"syslog.h", "extensions":[]}, + {"ident":"LOG_EMERG", "id_type":"macro", "header":"syslog.h", "extensions":[]}, + {"ident":"LOG_ERR", "id_type":"macro", "header":"syslog.h", "extensions":[]}, + {"ident":"LOG_INFO", "id_type":"macro", "header":"syslog.h", "extensions":[]}, + {"ident":"LOG_KERN", "id_type":"constant", "header":"syslog.h", "extensions":[]}, + {"ident":"LOG_LOCAL0", "id_type":"constant", "header":"syslog.h", "extensions":[]}, + {"ident":"LOG_LOCAL1", "id_type":"constant", "header":"syslog.h", "extensions":[]}, + {"ident":"LOG_LOCAL2", "id_type":"constant", "header":"syslog.h", "extensions":[]}, + {"ident":"LOG_LOCAL3", "id_type":"constant", "header":"syslog.h", "extensions":[]}, + {"ident":"LOG_LOCAL4", "id_type":"constant", "header":"syslog.h", "extensions":[]}, + {"ident":"LOG_LOCAL5", "id_type":"constant", "header":"syslog.h", "extensions":[]}, + {"ident":"LOG_LOCAL6", "id_type":"constant", "header":"syslog.h", "extensions":[]}, + {"ident":"LOG_LOCAL7", "id_type":"constant", "header":"syslog.h", "extensions":[]}, + {"ident":"LOG_LPR", "id_type":"constant", "header":"syslog.h", "extensions":[]}, + {"ident":"LOG_MAIL", "id_type":"constant", "header":"syslog.h", "extensions":[]}, + {"ident":"LOG_MASK", "id_type":"macro", "header":"syslog.h", "extensions":[]}, + {"ident":"LOG_NDELAY", "id_type":"constant", "header":"syslog.h", "extensions":[]}, + {"ident":"LOG_NEWS", "id_type":"constant", "header":"syslog.h", "extensions":[]}, + {"ident":"LOG_NOTICE", "id_type":"macro", "header":"syslog.h", "extensions":[]}, + {"ident":"LOG_NOWAIT", "id_type":"constant", "header":"syslog.h", "extensions":[]}, + {"ident":"LOG_ODELAY", "id_type":"constant", "header":"syslog.h", "extensions":[]}, + {"ident":"LOG_PID", "id_type":"constant", "header":"syslog.h", "extensions":[]}, + {"ident":"LOG_USER", "id_type":"constant", "header":"syslog.h", "extensions":[]}, + {"ident":"LOG_UUCP", "id_type":"constant", "header":"syslog.h", "extensions":[]}, + {"ident":"LOG_WARNING", "id_type":"macro", "header":"syslog.h", "extensions":[]}, + {"ident":"logb", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"logbf", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"logbl", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"logf", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"LOGIN_PROCESS", "id_type":"constant", "header":"utmpx.h", "extensions":[]}, + {"ident":"logl", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"LONG_BIT", "id_type":"macro", "header":"limits.h", "extensions":[]}, + {"ident":"LONG_MAX", "id_type":"macro", "header":"limits.h", "extensions":[]}, + {"ident":"LONG_MIN", "id_type":"macro", "header":"limits.h", "extensions":[]}, + {"ident":"longjmp", "id_type":"function", "header":"setjmp.h", "extensions":[]}, + {"ident":"lrand48", "id_type":"function", "header":"stdlib.h", "extensions":["XSI"]}, + {"ident":"lrint", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"lrintf", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"lrintl", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"lround", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"lroundf", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"lroundl", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"lsearch", "id_type":"function", "header":"search.h", "extensions":[]}, + {"ident":"lseek", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"lstat", "id_type":"function", "header":"sys/stat.h", "extensions":["OB"]}, + {"ident":"M_1_PI", "id_type":"constant", "header":"math.h", "extensions":[]}, + {"ident":"M_2_PI", "id_type":"constant", "header":"math.h", "extensions":[]}, + {"ident":"M_2_SQRTPI", "id_type":"constant", "header":"math.h", "extensions":[]}, + {"ident":"M_E", "id_type":"constant", "header":"math.h", "extensions":[]}, + {"ident":"M_LN10", "id_type":"constant", "header":"math.h", "extensions":[]}, + {"ident":"M_LN2", "id_type":"constant", "header":"math.h", "extensions":[]}, + {"ident":"M_LOG10E", "id_type":"constant", "header":"math.h", "extensions":[]}, + {"ident":"M_LOG2E", "id_type":"constant", "header":"math.h", "extensions":[]}, + {"ident":"M_PI", "id_type":"constant", "header":"math.h", "extensions":[]}, + {"ident":"M_PI_2", "id_type":"constant", "header":"math.h", "extensions":[]}, + {"ident":"M_PI_4", "id_type":"constant", "header":"math.h", "extensions":[]}, + {"ident":"M_SQRT1_2", "id_type":"constant", "header":"math.h", "extensions":[]}, + {"ident":"M_SQRT2", "id_type":"constant", "header":"math.h", "extensions":[]}, + {"ident":"malloc", "id_type":"function", "header":"stdlib.h", "extensions":[]}, + {"ident":"MAP_FAILED", "id_type":"constant", "header":"sys/mman.h", "extensions":[]}, + {"ident":"MAP_FIXED", "id_type":"constant", "header":"sys/mman.h", "extensions":[]}, + {"ident":"MAP_PRIVATE", "id_type":"constant", "header":"sys/mman.h", "extensions":[]}, + {"ident":"MAP_SHARED", "id_type":"constant", "header":"sys/mman.h", "extensions":[]}, + {"ident":"MAXFLOAT", "id_type":"constant", "header":"math.h", "extensions":[]}, + {"ident":"MB_CUR_MAX", "id_type":"macro", "header":"stdlib.h", "extensions":[]}, + {"ident":"MB_LEN_MAX", "id_type":"macro", "header":"limits.h", "extensions":[]}, + {"ident":"mblen", "id_type":"function", "header":"stdlib.h", "extensions":[]}, + {"ident":"mbrlen", "id_type":"function", "header":"wchar.h", "extensions":[]}, + {"ident":"mbrtowc", "id_type":"function", "header":"wchar.h", "extensions":[]}, + {"ident":"mbsinit", "id_type":"function", "header":"wchar.h", "extensions":[]}, + {"ident":"mbsnrtowcs", "id_type":"function", "header":"wchar.h", "extensions":["CX"]}, + {"ident":"mbsrtowcs", "id_type":"function", "header":"wchar.h", "extensions":[]}, + {"ident":"mbstate_t", "id_type":"type", "header":"wchar.h", "extensions":["CX"]}, + {"ident":"mbstowcs", "id_type":"function", "header":"stdlib.h", "extensions":[]}, + {"ident":"mbtowc", "id_type":"function", "header":"stdlib.h", "extensions":[]}, + {"ident":"MCL_CURRENT", "id_type":"constant", "header":"sys/mman.h", "extensions":["ML"]}, + {"ident":"MCL_FUTURE", "id_type":"constant", "header":"sys/mman.h", "extensions":["ML"]}, + {"ident":"memccpy", "id_type":"function", "header":"string.h", "extensions":[]}, + {"ident":"memchr", "id_type":"function", "header":"string.h", "extensions":[]}, + {"ident":"memcmp", "id_type":"function", "header":"string.h", "extensions":[]}, + {"ident":"memcpy", "id_type":"function", "header":"string.h", "extensions":[]}, + {"ident":"memmove", "id_type":"function", "header":"string.h", "extensions":[]}, + {"ident":"memset", "id_type":"function", "header":"string.h", "extensions":[]}, + {"ident":"MINSIGSTKSZ", "id_type":"macro", "header":"signal.h", "extensions":[]}, + {"ident":"mkdir", "id_type":"function", "header":"sys/stat.h", "extensions":["OB"]}, + {"ident":"mkdirat", "id_type":"function", "header":"sys/stat.h", "extensions":["OB"]}, + {"ident":"mkdtemp", "id_type":"function", "header":"stdlib.h", "extensions":[]}, + {"ident":"mkfifo", "id_type":"function", "header":"sys/stat.h", "extensions":["OB"]}, + {"ident":"mkfifoat", "id_type":"function", "header":"sys/stat.h", "extensions":["OB"]}, + {"ident":"mknod", "id_type":"function", "header":"sys/stat.h", "extensions":["OB"]}, + {"ident":"mknodat", "id_type":"function", "header":"sys/stat.h", "extensions":["OB"]}, + {"ident":"mkstemp", "id_type":"function", "header":"stdlib.h", "extensions":["CX"]}, + {"ident":"mktime", "id_type":"function", "header":"time.h", "extensions":["IP6"]}, + {"ident":"mlock", "id_type":"function", "header":"sys/mman.h", "extensions":["MLR"]}, + {"ident":"mlockall", "id_type":"function", "header":"sys/mman.h", "extensions":["ML"]}, + {"ident":"MM_APPL", "id_type":"constant", "header":"fmtmsg.h", "extensions":[]}, + {"ident":"MM_CONSOLE", "id_type":"constant", "header":"fmtmsg.h", "extensions":[]}, + {"ident":"MM_ERROR", "id_type":"constant", "header":"fmtmsg.h", "extensions":[]}, + {"ident":"MM_FIRM", "id_type":"constant", "header":"fmtmsg.h", "extensions":[]}, + {"ident":"MM_HALT", "id_type":"constant", "header":"fmtmsg.h", "extensions":[]}, + {"ident":"MM_HARD", "id_type":"constant", "header":"fmtmsg.h", "extensions":[]}, + {"ident":"MM_INFO", "id_type":"constant", "header":"fmtmsg.h", "extensions":[]}, + {"ident":"MM_NOSEV", "id_type":"constant", "header":"fmtmsg.h", "extensions":[]}, + {"ident":"MM_NRECOV", "id_type":"constant", "header":"fmtmsg.h", "extensions":[]}, + {"ident":"MM_OPSYS", "id_type":"constant", "header":"fmtmsg.h", "extensions":[]}, + {"ident":"MM_PRINT", "id_type":"constant", "header":"fmtmsg.h", "extensions":[]}, + {"ident":"MM_RECOVER", "id_type":"constant", "header":"fmtmsg.h", "extensions":[]}, + {"ident":"MM_SOFT", "id_type":"constant", "header":"fmtmsg.h", "extensions":[]}, + {"ident":"MM_UTIL", "id_type":"constant", "header":"fmtmsg.h", "extensions":[]}, + {"ident":"MM_WARNING", "id_type":"constant", "header":"fmtmsg.h", "extensions":[]}, + {"ident":"mmap", "id_type":"function", "header":"sys/mman.h", "extensions":["TYM"]}, + {"ident":"mode_t", "id_type":"type", "header":"sys/types.h", "extensions":[]}, + {"ident":"modf", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"modff", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"modfl", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"MORECTL", "id_type":"constant", "header":"stropts.h", "extensions":[]}, + {"ident":"MOREDATA", "id_type":"constant", "header":"stropts.h", "extensions":[]}, + {"ident":"mprotect", "id_type":"function", "header":"sys/mman.h", "extensions":[]}, + {"ident":"mq_attr", "id_type":"type", "header":"mqueue.h", "extensions":[]}, + {"ident":"mq_close", "id_type":"function", "header":"mqueue.h", "extensions":[]}, + {"ident":"mq_getattr", "id_type":"function", "header":"mqueue.h", "extensions":[]}, + {"ident":"mq_notify", "id_type":"function", "header":"mqueue.h", "extensions":[]}, + {"ident":"mq_open", "id_type":"function", "header":"mqueue.h", "extensions":[]}, + {"ident":"mq_receive", "id_type":"function", "header":"mqueue.h", "extensions":[]}, + {"ident":"mq_send", "id_type":"function", "header":"mqueue.h", "extensions":[]}, + {"ident":"mq_setattr", "id_type":"function", "header":"mqueue.h", "extensions":[]}, + {"ident":"mq_timedreceive", "id_type":"function", "header":"mqueue.h", "extensions":[]}, + {"ident":"mq_timedsend", "id_type":"function", "header":"mqueue.h", "extensions":[]}, + {"ident":"mq_unlink", "id_type":"function", "header":"mqueue.h", "extensions":[]}, + {"ident":"mrand48", "id_type":"function", "header":"stdlib.h", "extensions":["XSI"]}, + {"ident":"MS_ASYNC", "id_type":"constant", "header":"sys/mman.h", "extensions":["XSI","SIO"]}, + {"ident":"MS_INVALIDATE", "id_type":"constant", "header":"sys/mman.h", "extensions":["XSI","SIO"]}, + {"ident":"MS_SYNC", "id_type":"constant", "header":"sys/mman.h", "extensions":["XSI","SIO"]}, + {"ident":"MSG_ANY", "id_type":"constant", "header":"stropts.h", "extensions":[]}, + {"ident":"MSG_BAND", "id_type":"constant", "header":"stropts.h", "extensions":[]}, + {"ident":"MSG_CTRUNC", "id_type":"constant", "header":"sys/socket.h", "extensions":["IP6"]}, + {"ident":"MSG_DONTROUTE", "id_type":"constant", "header":"sys/socket.h", "extensions":["IP6"]}, + {"ident":"MSG_EOR", "id_type":"constant", "header":"sys/socket.h", "extensions":["IP6"]}, + {"ident":"MSG_HIPRI", "id_type":"constant", "header":"stropts.h", "extensions":[]}, + {"ident":"MSG_NOERROR", "id_type":"constant", "header":"sys/msg.h", "extensions":[]}, + {"ident":"MSG_NOSIGNAL", "id_type":"constant", "header":"sys/socket.h", "extensions":["IP6"]}, + {"ident":"MSG_OOB", "id_type":"constant", "header":"sys/socket.h", "extensions":["IP6"]}, + {"ident":"MSG_PEEK", "id_type":"constant", "header":"sys/socket.h", "extensions":["IP6"]}, + {"ident":"MSG_TRUNC", "id_type":"constant", "header":"sys/socket.h", "extensions":["IP6"]}, + {"ident":"MSG_WAITALL", "id_type":"constant", "header":"sys/socket.h", "extensions":["IP6"]}, + {"ident":"msgctl", "id_type":"function", "header":"sys/msg.h", "extensions":[]}, + {"ident":"msgget", "id_type":"function", "header":"sys/msg.h", "extensions":[]}, + {"ident":"msghdr", "id_type":"type", "header":"sys/socket.h", "extensions":["IP6"]}, + {"ident":"msglen_t", "id_type":"type", "header":"sys/msg.h", "extensions":[]}, + {"ident":"msgqnum_t", "id_type":"type", "header":"sys/msg.h", "extensions":[]}, + {"ident":"msgrcv", "id_type":"function", "header":"sys/msg.h", "extensions":[]}, + {"ident":"msgsnd", "id_type":"function", "header":"sys/msg.h", "extensions":[]}, + {"ident":"msqid_ds", "id_type":"type", "header":"sys/msg.h", "extensions":[]}, + {"ident":"msync", "id_type":"function", "header":"sys/mman.h", "extensions":["XSI","SIO"]}, + {"ident":"munlock", "id_type":"function", "header":"sys/mman.h", "extensions":["MLR"]}, + {"ident":"munlockall", "id_type":"function", "header":"sys/mman.h", "extensions":["ML"]}, + {"ident":"munmap", "id_type":"function", "header":"sys/mman.h", "extensions":[]}, + {"ident":"nan", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"NAN", "id_type":"macro", "header":"math.h", "extensions":[]}, + {"ident":"nanf", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"nanl", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"nanosleep", "id_type":"function", "header":"time.h", "extensions":["IP6"]}, + {"ident":"NCCS", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"nearbyint", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"nearbyintf", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"nearbyintl", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"netent", "id_type":"type", "header":"netdb.h", "extensions":[]}, + {"ident":"NEW_TIME", "id_type":"constant", "header":"utmpx.h", "extensions":[]}, + {"ident":"newlocale", "id_type":"function", "header":"locale.h", "extensions":["CX"]}, + {"ident":"nextafter", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"nextafterf", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"nextafterl", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"nexttoward", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"nexttowardf", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"nexttowardl", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"nfds_t", "id_type":"type", "header":"poll.h", "extensions":[]}, + {"ident":"nftw", "id_type":"function", "header":"ftw.h", "extensions":["OB"]}, + {"ident":"NI_DGRAM", "id_type":"constant", "header":"netdb.h", "extensions":[]}, + {"ident":"NI_NAMEREQD", "id_type":"constant", "header":"netdb.h", "extensions":[]}, + {"ident":"NI_NOFQDN", "id_type":"constant", "header":"netdb.h", "extensions":[]}, + {"ident":"NI_NUMERICHOST", "id_type":"constant", "header":"netdb.h", "extensions":[]}, + {"ident":"NI_NUMERICSCOPE", "id_type":"constant", "header":"netdb.h", "extensions":[]}, + {"ident":"NI_NUMERICSERV", "id_type":"constant", "header":"netdb.h", "extensions":[]}, + {"ident":"nice", "id_type":"function", "header":"unistd.h", "extensions":["XSI"]}, + {"ident":"NL_ARGMAX", "id_type":"constant", "header":"limits.h", "extensions":[]}, + {"ident":"nl_langinfo", "id_type":"function", "header":"langinfo.h", "extensions":[]}, + {"ident":"nl_langinfo_l", "id_type":"function", "header":"langinfo.h", "extensions":[]}, + {"ident":"NL_LANGMAX", "id_type":"constant", "header":"limits.h", "extensions":[]}, + {"ident":"NL_MSGMAX", "id_type":"constant", "header":"limits.h", "extensions":[]}, + {"ident":"NL_SETMAX", "id_type":"constant", "header":"limits.h", "extensions":[]}, + {"ident":"NL_TEXTMAX", "id_type":"constant", "header":"limits.h", "extensions":[]}, + {"ident":"NLDLY", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"nlink_t", "id_type":"type", "header":"sys/types.h", "extensions":[]}, + {"ident":"NOFLSH", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"not", "id_type":"macro", "header":"iso646.h", "extensions":["ADV"]}, + {"ident":"not_eq", "id_type":"macro", "header":"iso646.h", "extensions":[]}, + {"ident":"nrand48", "id_type":"function", "header":"stdlib.h", "extensions":["XSI"]}, + {"ident":"ntohl", "id_type":"function", "header":"arpa/inet.h", "extensions":[]}, + {"ident":"ntohs", "id_type":"function", "header":"arpa/inet.h", "extensions":[]}, + {"ident":"NULL", "id_type":"macro", "header":"stddef.h", "extensions":[]}, + {"ident":"NZERO", "id_type":"constant", "header":"limits.h", "extensions":[]}, + {"ident":"O_ACCMODE", "id_type":"constant", "header":"fcntl.h", "extensions":[]}, + {"ident":"O_APPEND", "id_type":"constant", "header":"fcntl.h", "extensions":[]}, + {"ident":"O_CLOEXEC", "id_type":"constant", "header":"fcntl.h", "extensions":[]}, + {"ident":"O_CREAT", "id_type":"constant", "header":"fcntl.h", "extensions":[]}, + {"ident":"O_DIRECTORY", "id_type":"constant", "header":"fcntl.h", "extensions":[]}, + {"ident":"O_DSYNC", "id_type":"constant", "header":"fcntl.h", "extensions":[]}, + {"ident":"O_EXCL", "id_type":"constant", "header":"fcntl.h", "extensions":[]}, + {"ident":"O_EXEC", "id_type":"constant", "header":"fcntl.h", "extensions":[]}, + {"ident":"O_NOCTTY", "id_type":"constant", "header":"fcntl.h", "extensions":[]}, + {"ident":"O_NOFOLLOW", "id_type":"constant", "header":"fcntl.h", "extensions":[]}, + {"ident":"O_NONBLOCK", "id_type":"constant", "header":"fcntl.h", "extensions":[]}, + {"ident":"O_RDONLY", "id_type":"constant", "header":"fcntl.h", "extensions":[]}, + {"ident":"O_RDWR", "id_type":"constant", "header":"fcntl.h", "extensions":[]}, + {"ident":"O_RSYNC", "id_type":"constant", "header":"fcntl.h", "extensions":[]}, + {"ident":"O_SEARCH", "id_type":"constant", "header":"fcntl.h", "extensions":[]}, + {"ident":"O_SYNC", "id_type":"constant", "header":"fcntl.h", "extensions":[]}, + {"ident":"O_TRUNC", "id_type":"constant", "header":"fcntl.h", "extensions":[]}, + {"ident":"O_TTY_INIT", "id_type":"constant", "header":"fcntl.h", "extensions":[]}, + {"ident":"O_WRONLY", "id_type":"constant", "header":"fcntl.h", "extensions":[]}, + {"ident":"OCRNL", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"OFDEL", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"off_t", "id_type":"type", "header":"stdio.h", "extensions":["CX"]}, + {"ident":"offsetof", "id_type":"macro", "header":"stddef.h", "extensions":[]}, + {"ident":"OFILL", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"OLD_TIME", "id_type":"constant", "header":"utmpx.h", "extensions":[]}, + {"ident":"ONLCR", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"ONLRET", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"ONOCR", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"open", "id_type":"function", "header":"fcntl.h", "extensions":["ADV"]}, + {"ident":"open_memstream", "id_type":"function", "header":"stdio.h", "extensions":[]}, + {"ident":"open_wmemstream", "id_type":"function", "header":"wchar.h", "extensions":[]}, + {"ident":"openat", "id_type":"function", "header":"fcntl.h", "extensions":[]}, + {"ident":"opendir", "id_type":"function", "header":"dirent.h", "extensions":[]}, + {"ident":"openlog", "id_type":"function", "header":"syslog.h", "extensions":[]}, + {"ident":"OPOST", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"optarg", "id_type":"variable", "header":"unistd.h", "extensions":[]}, + {"ident":"opterr", "id_type":"variable", "header":"unistd.h", "extensions":[]}, + {"ident":"optind", "id_type":"variable", "header":"unistd.h", "extensions":[]}, + {"ident":"optopt", "id_type":"variable", "header":"unistd.h", "extensions":[]}, + {"ident":"or", "id_type":"macro", "header":"iso646.h", "extensions":["XSI"]}, + {"ident":"or_eq", "id_type":"macro", "header":"iso646.h", "extensions":[]}, + {"ident":"P_tmpdir", "id_type":"macro", "header":"stdio.h", "extensions":[]}, + {"ident":"PARENB", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"PARMRK", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"PARODD", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"passwd", "id_type":"type", "header":"pwd.h", "extensions":["XSI"]}, + {"ident":"pathconf", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"pause", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"pclose", "id_type":"function", "header":"stdio.h", "extensions":["CX"]}, + {"ident":"perror", "id_type":"function", "header":"stdio.h", "extensions":[]}, + {"ident":"pid_t", "id_type":"type", "header":"signal.h", "extensions":["PS"]}, + {"ident":"pipe", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"poll", "id_type":"function", "header":"poll.h", "extensions":[]}, + {"ident":"POLLERR", "id_type":"constant", "header":"poll.h", "extensions":[]}, + {"ident":"pollfd", "id_type":"type", "header":"poll.h", "extensions":[]}, + {"ident":"POLLHUP", "id_type":"constant", "header":"poll.h", "extensions":[]}, + {"ident":"POLLIN", "id_type":"constant", "header":"poll.h", "extensions":[]}, + {"ident":"POLLNVAL", "id_type":"constant", "header":"poll.h", "extensions":[]}, + {"ident":"POLLOUT", "id_type":"constant", "header":"poll.h", "extensions":[]}, + {"ident":"POLLPRI", "id_type":"constant", "header":"poll.h", "extensions":[]}, + {"ident":"POLLRDBAND", "id_type":"constant", "header":"poll.h", "extensions":[]}, + {"ident":"POLLRDNORM", "id_type":"constant", "header":"poll.h", "extensions":[]}, + {"ident":"POLLWRBAND", "id_type":"constant", "header":"poll.h", "extensions":[]}, + {"ident":"POLLWRNORM", "id_type":"constant", "header":"poll.h", "extensions":[]}, + {"ident":"popen", "id_type":"function", "header":"stdio.h", "extensions":[]}, + {"ident":"POSIX_FADV_DONTNEED", "id_type":"constant", "header":"fcntl.h", "extensions":["ADV"]}, + {"ident":"POSIX_FADV_NOREUSE", "id_type":"constant", "header":"fcntl.h", "extensions":["ADV"]}, + {"ident":"POSIX_FADV_NORMAL", "id_type":"constant", "header":"fcntl.h", "extensions":["ADV"]}, + {"ident":"POSIX_FADV_RANDOM", "id_type":"constant", "header":"fcntl.h", "extensions":["ADV"]}, + {"ident":"POSIX_FADV_SEQUENTIAL", "id_type":"constant", "header":"fcntl.h", "extensions":["ADV"]}, + {"ident":"POSIX_FADV_WILLNEED", "id_type":"constant", "header":"fcntl.h", "extensions":["ADV"]}, + {"ident":"posix_fadvise", "id_type":"function", "header":"fcntl.h", "extensions":["ADV"]}, + {"ident":"posix_fallocate", "id_type":"function", "header":"fcntl.h", "extensions":["ADV"]}, + {"ident":"posix_madvise", "id_type":"function", "header":"sys/mman.h", "extensions":["ADV"]}, + {"ident":"posix_mem_offset", "id_type":"function", "header":"sys/mman.h", "extensions":["TYM"]}, + {"ident":"posix_memalign", "id_type":"function", "header":"stdlib.h", "extensions":["ADV"]}, + {"ident":"posix_openpt", "id_type":"function", "header":"stdlib.h", "extensions":["XSI"]}, + {"ident":"posix_spawn", "id_type":"function", "header":"spawn.h", "extensions":[]}, + {"ident":"posix_spawn_file_actions_addclose", "id_type":"function", "header":"spawn.h", "extensions":[]}, + {"ident":"posix_spawn_file_actions_adddup2", "id_type":"function", "header":"spawn.h", "extensions":[]}, + {"ident":"posix_spawn_file_actions_addopen", "id_type":"function", "header":"spawn.h", "extensions":[]}, + {"ident":"posix_spawn_file_actions_destroy", "id_type":"function", "header":"spawn.h", "extensions":[]}, + {"ident":"posix_spawn_file_actions_init", "id_type":"function", "header":"spawn.h", "extensions":[]}, + {"ident":"posix_spawnattr_destroy", "id_type":"function", "header":"spawn.h", "extensions":[]}, + {"ident":"posix_spawnattr_getflags", "id_type":"function", "header":"spawn.h", "extensions":[]}, + {"ident":"posix_spawnattr_getpgroup", "id_type":"function", "header":"spawn.h", "extensions":[]}, + {"ident":"posix_spawnattr_getschedparam", "id_type":"function", "header":"spawn.h", "extensions":["PS"]}, + {"ident":"posix_spawnattr_getschedpolicy", "id_type":"function", "header":"spawn.h", "extensions":["PS"]}, + {"ident":"posix_spawnattr_getsigdefault", "id_type":"function", "header":"spawn.h", "extensions":[]}, + {"ident":"posix_spawnattr_getsigmask", "id_type":"function", "header":"spawn.h", "extensions":[]}, + {"ident":"posix_spawnattr_init", "id_type":"function", "header":"spawn.h", "extensions":[]}, + {"ident":"posix_spawnattr_setflags", "id_type":"function", "header":"spawn.h", "extensions":[]}, + {"ident":"posix_spawnattr_setpgroup", "id_type":"function", "header":"spawn.h", "extensions":[]}, + {"ident":"posix_spawnattr_setschedparam", "id_type":"function", "header":"spawn.h", "extensions":["PS"]}, + {"ident":"posix_spawnattr_setschedpolicy", "id_type":"function", "header":"spawn.h", "extensions":["PS"]}, + {"ident":"posix_spawnattr_setsigdefault", "id_type":"function", "header":"spawn.h", "extensions":[]}, + {"ident":"posix_spawnattr_setsigmask", "id_type":"function", "header":"spawn.h", "extensions":[]}, + {"ident":"posix_spawnp", "id_type":"function", "header":"spawn.h", "extensions":[]}, + {"ident":"posix_trace_attr_destroy", "id_type":"function", "header":"trace.h", "extensions":[]}, + {"ident":"posix_trace_attr_getclockres", "id_type":"function", "header":"trace.h", "extensions":[]}, + {"ident":"posix_trace_attr_getcreatetime", "id_type":"function", "header":"trace.h", "extensions":[]}, + {"ident":"posix_trace_attr_getgenversion", "id_type":"function", "header":"trace.h", "extensions":[]}, + {"ident":"posix_trace_attr_getinherited", "id_type":"function", "header":"trace.h", "extensions":["TRI"]}, + {"ident":"posix_trace_attr_getlogfullpolicy", "id_type":"function", "header":"trace.h", "extensions":["TRL"]}, + {"ident":"posix_trace_attr_getlogsize", "id_type":"function", "header":"trace.h", "extensions":["TRL"]}, + {"ident":"posix_trace_attr_getmaxdatasize", "id_type":"function", "header":"trace.h", "extensions":[]}, + {"ident":"posix_trace_attr_getmaxsystemeventsize", "id_type":"function", "header":"trace.h", "extensions":[]}, + {"ident":"posix_trace_attr_getmaxusereventsize", "id_type":"function", "header":"trace.h", "extensions":[]}, + {"ident":"posix_trace_attr_getname", "id_type":"function", "header":"trace.h", "extensions":[]}, + {"ident":"posix_trace_attr_getstreamfullpolicy", "id_type":"function", "header":"trace.h", "extensions":[]}, + {"ident":"posix_trace_attr_getstreamsize", "id_type":"function", "header":"trace.h", "extensions":[]}, + {"ident":"posix_trace_attr_init", "id_type":"function", "header":"trace.h", "extensions":[]}, + {"ident":"posix_trace_attr_setinherited", "id_type":"function", "header":"trace.h", "extensions":["TRI"]}, + {"ident":"posix_trace_attr_setlogfullpolicy", "id_type":"function", "header":"trace.h", "extensions":["TRL"]}, + {"ident":"posix_trace_attr_setlogsize", "id_type":"function", "header":"trace.h", "extensions":["TRL"]}, + {"ident":"posix_trace_attr_setmaxdatasize", "id_type":"function", "header":"trace.h", "extensions":[]}, + {"ident":"posix_trace_attr_setname", "id_type":"function", "header":"trace.h", "extensions":[]}, + {"ident":"posix_trace_attr_setstreamfullpolicy", "id_type":"function", "header":"trace.h", "extensions":[]}, + {"ident":"posix_trace_attr_setstreamsize", "id_type":"function", "header":"trace.h", "extensions":[]}, + {"ident":"posix_trace_clear", "id_type":"function", "header":"trace.h", "extensions":[]}, + {"ident":"posix_trace_close", "id_type":"function", "header":"trace.h", "extensions":["TRL"]}, + {"ident":"posix_trace_create", "id_type":"function", "header":"trace.h", "extensions":[]}, + {"ident":"posix_trace_create_withlog", "id_type":"function", "header":"trace.h", "extensions":["TRL"]}, + {"ident":"posix_trace_event", "id_type":"function", "header":"trace.h", "extensions":[]}, + {"ident":"posix_trace_event_info", "id_type":"type", "header":"trace.h", "extensions":[]}, + {"ident":"posix_trace_eventid_equal", "id_type":"function", "header":"trace.h", "extensions":[]}, + {"ident":"posix_trace_eventid_get_name", "id_type":"function", "header":"trace.h", "extensions":[]}, + {"ident":"posix_trace_eventid_open", "id_type":"function", "header":"trace.h", "extensions":[]}, + {"ident":"posix_trace_eventset_add", "id_type":"function", "header":"trace.h", "extensions":["TEF"]}, + {"ident":"posix_trace_eventset_del", "id_type":"function", "header":"trace.h", "extensions":["TEF"]}, + {"ident":"posix_trace_eventset_empty", "id_type":"function", "header":"trace.h", "extensions":["TEF"]}, + {"ident":"posix_trace_eventset_fill", "id_type":"function", "header":"trace.h", "extensions":["TEF"]}, + {"ident":"posix_trace_eventset_ismember", "id_type":"function", "header":"trace.h", "extensions":["TEF"]}, + {"ident":"posix_trace_eventtypelist_getnext_id", "id_type":"function", "header":"trace.h", "extensions":[]}, + {"ident":"posix_trace_eventtypelist_rewind", "id_type":"function", "header":"trace.h", "extensions":[]}, + {"ident":"posix_trace_flush", "id_type":"function", "header":"trace.h", "extensions":["TRL"]}, + {"ident":"posix_trace_get_attr", "id_type":"function", "header":"trace.h", "extensions":[]}, + {"ident":"posix_trace_get_filter", "id_type":"function", "header":"trace.h", "extensions":["TEF"]}, + {"ident":"posix_trace_get_status", "id_type":"function", "header":"trace.h", "extensions":[]}, + {"ident":"posix_trace_getnext_event", "id_type":"function", "header":"trace.h", "extensions":[]}, + {"ident":"posix_trace_open", "id_type":"function", "header":"trace.h", "extensions":["TRL"]}, + {"ident":"posix_trace_rewind", "id_type":"function", "header":"trace.h", "extensions":["TRL"]}, + {"ident":"posix_trace_set_filter", "id_type":"function", "header":"trace.h", "extensions":["TEF"]}, + {"ident":"posix_trace_shutdown", "id_type":"function", "header":"trace.h", "extensions":[]}, + {"ident":"posix_trace_start", "id_type":"function", "header":"trace.h", "extensions":[]}, + {"ident":"posix_trace_status_info", "id_type":"type", "header":"trace.h", "extensions":[]}, + {"ident":"posix_trace_stop", "id_type":"function", "header":"trace.h", "extensions":[]}, + {"ident":"posix_trace_timedgetnext_event", "id_type":"function", "header":"trace.h", "extensions":[]}, + {"ident":"posix_trace_trid_eventid_open", "id_type":"function", "header":"trace.h", "extensions":["TEF"]}, + {"ident":"posix_trace_trygetnext_event", "id_type":"function", "header":"trace.h", "extensions":[]}, + {"ident":"POSIX_TYPED_MEM_ALLOCATE", "id_type":"constant", "header":"sys/mman.h", "extensions":["TYM"]}, + {"ident":"POSIX_TYPED_MEM_ALLOCATE_CONTIG", "id_type":"constant", "header":"sys/mman.h", "extensions":["TYM"]}, + {"ident":"posix_typed_mem_get_info", "id_type":"function", "header":"sys/mman.h", "extensions":["TYM"]}, + {"ident":"posix_typed_mem_info", "id_type":"type", "header":"sys/mman.h", "extensions":["TYM"]}, + {"ident":"POSIX_TYPED_MEM_MAP_ALLOCATABLE", "id_type":"constant", "header":"sys/mman.h", "extensions":["TYM"]}, + {"ident":"posix_typed_mem_open", "id_type":"function", "header":"sys/mman.h", "extensions":["TYM"]}, + {"ident":"pow", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"powf", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"powl", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"pread", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"printf", "id_type":"function", "header":"stdio.h", "extensions":[]}, + {"ident":"PRIO_PGRP", "id_type":"constant", "header":"sys/resource.h", "extensions":[]}, + {"ident":"PRIO_PROCESS", "id_type":"constant", "header":"sys/resource.h", "extensions":[]}, + {"ident":"PRIO_USER", "id_type":"constant", "header":"sys/resource.h", "extensions":[]}, + {"ident":"PROT_EXEC", "id_type":"constant", "header":"sys/mman.h", "extensions":[]}, + {"ident":"PROT_NONE", "id_type":"constant", "header":"sys/mman.h", "extensions":[]}, + {"ident":"PROT_READ", "id_type":"constant", "header":"sys/mman.h", "extensions":[]}, + {"ident":"PROT_WRITE", "id_type":"constant", "header":"sys/mman.h", "extensions":[]}, + {"ident":"protoent", "id_type":"type", "header":"netdb.h", "extensions":[]}, + {"ident":"pselect", "id_type":"function", "header":"sys/select.h", "extensions":[]}, + {"ident":"psiginfo", "id_type":"function", "header":"signal.h", "extensions":[]}, + {"ident":"psignal", "id_type":"function", "header":"signal.h", "extensions":[]}, + {"ident":"pthread_atfork", "id_type":"function", "header":"pthread.h", "extensions":["OB"]}, + {"ident":"pthread_attr_destroy", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_attr_getdetachstate", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_attr_getguardsize", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_attr_getinheritsched", "id_type":"function", "header":"pthread.h", "extensions":["TPS"]}, + {"ident":"pthread_attr_getschedparam", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_attr_getschedpolicy", "id_type":"function", "header":"pthread.h", "extensions":["TPS"]}, + {"ident":"pthread_attr_getscope", "id_type":"function", "header":"pthread.h", "extensions":["TPS"]}, + {"ident":"pthread_attr_getstack", "id_type":"function", "header":"pthread.h", "extensions":["TSA","TSS"]}, + {"ident":"pthread_attr_getstacksize", "id_type":"function", "header":"pthread.h", "extensions":["TSS"]}, + {"ident":"pthread_attr_init", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_attr_setdetachstate", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_attr_setguardsize", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_attr_setinheritsched", "id_type":"function", "header":"pthread.h", "extensions":["TPS"]}, + {"ident":"pthread_attr_setschedparam", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_attr_setschedpolicy", "id_type":"function", "header":"pthread.h", "extensions":["TPS"]}, + {"ident":"pthread_attr_setscope", "id_type":"function", "header":"pthread.h", "extensions":["TPS"]}, + {"ident":"pthread_attr_setstack", "id_type":"function", "header":"pthread.h", "extensions":["TSA","TSS"]}, + {"ident":"pthread_attr_setstacksize", "id_type":"function", "header":"pthread.h", "extensions":["TSS"]}, + {"ident":"pthread_attr_t", "id_type":"type", "header":"sys/types.h", "extensions":["TPS"]}, + {"ident":"pthread_barrier_destroy", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_barrier_init", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_barrier_t", "id_type":"type", "header":"sys/types.h", "extensions":[]}, + {"ident":"pthread_barrier_wait", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_barrierattr_destroy", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_barrierattr_getpshared", "id_type":"function", "header":"pthread.h", "extensions":["TSH"]}, + {"ident":"pthread_barrierattr_init", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_barrierattr_setpshared", "id_type":"function", "header":"pthread.h", "extensions":["TSH"]}, + {"ident":"pthread_barrierattr_t", "id_type":"type", "header":"sys/types.h", "extensions":["TSH"]}, + {"ident":"pthread_cancel", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_cleanup_pop", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_cleanup_push", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_cond_broadcast", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_cond_destroy", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_cond_init", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_cond_signal", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_cond_t", "id_type":"type", "header":"sys/types.h", "extensions":[]}, + {"ident":"pthread_cond_timedwait", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_cond_wait", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_condattr_destroy", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_condattr_getclock", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_condattr_getpshared", "id_type":"function", "header":"pthread.h", "extensions":["TSH"]}, + {"ident":"pthread_condattr_init", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_condattr_setclock", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_condattr_setpshared", "id_type":"function", "header":"pthread.h", "extensions":["TSH"]}, + {"ident":"pthread_condattr_t", "id_type":"type", "header":"sys/types.h", "extensions":["TSH"]}, + {"ident":"pthread_create", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_detach", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_equal", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_exit", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_getconcurrency", "id_type":"function", "header":"pthread.h", "extensions":["OB","XSI"]}, + {"ident":"pthread_getcpuclockid", "id_type":"function", "header":"pthread.h", "extensions":["TCT"]}, + {"ident":"pthread_getschedparam", "id_type":"function", "header":"pthread.h", "extensions":["TPS"]}, + {"ident":"pthread_getspecific", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_join", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_key_create", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_key_delete", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_key_t", "id_type":"type", "header":"sys/types.h", "extensions":[]}, + {"ident":"pthread_kill", "id_type":"function", "header":"signal.h", "extensions":[]}, + {"ident":"pthread_mutex_consistent", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_mutex_destroy", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_mutex_getprioceiling", "id_type":"function", "header":"pthread.h", "extensions":["RPP","TPP"]}, + {"ident":"pthread_mutex_init", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_mutex_lock", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_mutex_setprioceiling", "id_type":"function", "header":"pthread.h", "extensions":["RPP","TPP"]}, + {"ident":"pthread_mutex_t", "id_type":"type", "header":"sys/types.h", "extensions":["RPP","TPP"]}, + {"ident":"pthread_mutex_timedlock", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_mutex_trylock", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_mutex_unlock", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_mutexattr_destroy", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_mutexattr_getprioceiling", "id_type":"function", "header":"pthread.h", "extensions":["RPP","TPP"]}, + {"ident":"pthread_mutexattr_getprotocol", "id_type":"function", "header":"pthread.h", "extensions":["MC1"]}, + {"ident":"pthread_mutexattr_getpshared", "id_type":"function", "header":"pthread.h", "extensions":["TSH"]}, + {"ident":"pthread_mutexattr_getrobust", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_mutexattr_gettype", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_mutexattr_init", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_mutexattr_setprioceiling", "id_type":"function", "header":"pthread.h", "extensions":["RPP","TPP"]}, + {"ident":"pthread_mutexattr_setprotocol", "id_type":"function", "header":"pthread.h", "extensions":["MC1"]}, + {"ident":"pthread_mutexattr_setpshared", "id_type":"function", "header":"pthread.h", "extensions":["TSH"]}, + {"ident":"pthread_mutexattr_setrobust", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_mutexattr_settype", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_mutexattr_t", "id_type":"type", "header":"sys/types.h", "extensions":["RPP","TPP"]}, + {"ident":"pthread_once", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_once_t", "id_type":"type", "header":"sys/types.h", "extensions":[]}, + {"ident":"pthread_rwlock_destroy", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_rwlock_init", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_rwlock_rdlock", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_rwlock_t", "id_type":"type", "header":"sys/types.h", "extensions":[]}, + {"ident":"pthread_rwlock_timedrdlock", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_rwlock_timedwrlock", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_rwlock_tryrdlock", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_rwlock_trywrlock", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_rwlock_unlock", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_rwlock_wrlock", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_rwlockattr_destroy", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_rwlockattr_getpshared", "id_type":"function", "header":"pthread.h", "extensions":["TSH"]}, + {"ident":"pthread_rwlockattr_init", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_rwlockattr_setpshared", "id_type":"function", "header":"pthread.h", "extensions":["TSH"]}, + {"ident":"pthread_rwlockattr_t", "id_type":"type", "header":"sys/types.h", "extensions":["TSH"]}, + {"ident":"pthread_self", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_setcancelstate", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_setcanceltype", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_setconcurrency", "id_type":"function", "header":"pthread.h", "extensions":["OB","XSI"]}, + {"ident":"pthread_setschedparam", "id_type":"function", "header":"pthread.h", "extensions":["TPS"]}, + {"ident":"pthread_setschedprio", "id_type":"function", "header":"pthread.h", "extensions":["TPS"]}, + {"ident":"pthread_setspecific", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_sigmask", "id_type":"function", "header":"signal.h", "extensions":[]}, + {"ident":"pthread_spin_destroy", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_spin_init", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_spin_lock", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_spin_trylock", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_spin_unlock", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"pthread_spinlock_t", "id_type":"type", "header":"sys/types.h", "extensions":[]}, + {"ident":"pthread_t", "id_type":"type", "header":"sys/types.h", "extensions":[]}, + {"ident":"pthread_testcancel", "id_type":"function", "header":"pthread.h", "extensions":[]}, + {"ident":"ptrdiff_t", "id_type":"macro", "header":"stddef.h", "extensions":[]}, + {"ident":"ptsname", "id_type":"function", "header":"stdlib.h", "extensions":[]}, + {"ident":"putc", "id_type":"function", "header":"stdio.h", "extensions":[]}, + {"ident":"putc_unlocked", "id_type":"function", "header":"stdio.h", "extensions":["CX"]}, + {"ident":"putchar", "id_type":"function", "header":"stdio.h", "extensions":[]}, + {"ident":"putchar_unlocked", "id_type":"function", "header":"stdio.h", "extensions":["CX"]}, + {"ident":"putenv", "id_type":"function", "header":"stdlib.h", "extensions":["XSI"]}, + {"ident":"putmsg", "id_type":"function", "header":"stropts.h", "extensions":[]}, + {"ident":"putpmsg", "id_type":"function", "header":"stropts.h", "extensions":[]}, + {"ident":"puts", "id_type":"function", "header":"stdio.h", "extensions":[]}, + {"ident":"pututxline", "id_type":"function", "header":"utmpx.h", "extensions":[]}, + {"ident":"putwc", "id_type":"function", "header":"wchar.h", "extensions":[]}, + {"ident":"putwchar", "id_type":"function", "header":"wchar.h", "extensions":[]}, + {"ident":"pwrite", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"qsort", "id_type":"function", "header":"stdlib.h", "extensions":[]}, + {"ident":"R_OK", "id_type":"constant", "header":"unistd.h", "extensions":[]}, + {"ident":"raise", "id_type":"function", "header":"signal.h", "extensions":[]}, + {"ident":"rand", "id_type":"function", "header":"stdlib.h", "extensions":[]}, + {"ident":"RAND_MAX", "id_type":"macro", "header":"stdlib.h", "extensions":[]}, + {"ident":"rand_r", "id_type":"function", "header":"stdlib.h", "extensions":["OB","CX"]}, + {"ident":"random", "id_type":"function", "header":"stdlib.h", "extensions":["ADV"]}, + {"ident":"read", "id_type":"function", "header":"unistd.h", "extensions":["OB","XSR"]}, + {"ident":"readdir", "id_type":"function", "header":"dirent.h", "extensions":[]}, + {"ident":"readdir_r", "id_type":"function", "header":"dirent.h", "extensions":[]}, + {"ident":"readlink", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"readlinkat", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"readv", "id_type":"function", "header":"sys/uio.h", "extensions":["XSI"]}, + {"ident":"realloc", "id_type":"function", "header":"stdlib.h", "extensions":[]}, + {"ident":"realpath", "id_type":"function", "header":"stdlib.h", "extensions":[]}, + {"ident":"recv", "id_type":"function", "header":"sys/socket.h", "extensions":["IP6"]}, + {"ident":"recvfrom", "id_type":"function", "header":"sys/socket.h", "extensions":["IP6"]}, + {"ident":"recvmsg", "id_type":"function", "header":"sys/socket.h", "extensions":["IP6"]}, + {"ident":"REG_BADBR", "id_type":"constant", "header":"regex.h", "extensions":[]}, + {"ident":"REG_BADPAT", "id_type":"constant", "header":"regex.h", "extensions":[]}, + {"ident":"REG_BADRPT", "id_type":"constant", "header":"regex.h", "extensions":[]}, + {"ident":"REG_EBRACE", "id_type":"constant", "header":"regex.h", "extensions":[]}, + {"ident":"REG_EBRACK", "id_type":"constant", "header":"regex.h", "extensions":[]}, + {"ident":"REG_ECOLLATE", "id_type":"constant", "header":"regex.h", "extensions":[]}, + {"ident":"REG_ECTYPE", "id_type":"constant", "header":"regex.h", "extensions":[]}, + {"ident":"REG_EESCAPE", "id_type":"constant", "header":"regex.h", "extensions":[]}, + {"ident":"REG_EPAREN", "id_type":"constant", "header":"regex.h", "extensions":[]}, + {"ident":"REG_ERANGE", "id_type":"constant", "header":"regex.h", "extensions":[]}, + {"ident":"REG_ESPACE", "id_type":"constant", "header":"regex.h", "extensions":[]}, + {"ident":"REG_ESUBREG", "id_type":"constant", "header":"regex.h", "extensions":[]}, + {"ident":"REG_EXTENDED", "id_type":"constant", "header":"regex.h", "extensions":[]}, + {"ident":"REG_ICASE", "id_type":"constant", "header":"regex.h", "extensions":[]}, + {"ident":"REG_NEWLINE", "id_type":"constant", "header":"regex.h", "extensions":[]}, + {"ident":"REG_NOMATCH", "id_type":"constant", "header":"regex.h", "extensions":[]}, + {"ident":"REG_NOSUB", "id_type":"constant", "header":"regex.h", "extensions":[]}, + {"ident":"REG_NOTBOL", "id_type":"constant", "header":"regex.h", "extensions":[]}, + {"ident":"REG_NOTEOL", "id_type":"constant", "header":"regex.h", "extensions":[]}, + {"ident":"regcomp", "id_type":"function", "header":"regex.h", "extensions":[]}, + {"ident":"regerror", "id_type":"function", "header":"regex.h", "extensions":[]}, + {"ident":"regex_t", "id_type":"type", "header":"regex.h", "extensions":[]}, + {"ident":"regexec", "id_type":"function", "header":"regex.h", "extensions":[]}, + {"ident":"regfree", "id_type":"function", "header":"regex.h", "extensions":[]}, + {"ident":"regmatch_t", "id_type":"type", "header":"regex.h", "extensions":[]}, + {"ident":"regoff_t", "id_type":"type", "header":"regex.h", "extensions":[]}, + {"ident":"remainder", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"remainderf", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"remainderl", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"remove", "id_type":"function", "header":"stdio.h", "extensions":[]}, + {"ident":"remque", "id_type":"function", "header":"search.h", "extensions":[]}, + {"ident":"remquo", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"remquof", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"remquol", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"rename", "id_type":"function", "header":"stdio.h", "extensions":[]}, + {"ident":"renameat", "id_type":"function", "header":"stdio.h", "extensions":["CX"]}, + {"ident":"rewind", "id_type":"function", "header":"stdio.h", "extensions":[]}, + {"ident":"rewinddir", "id_type":"function", "header":"dirent.h", "extensions":[]}, + {"ident":"rint", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"rintf", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"rintl", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"RLIM_INFINITY", "id_type":"constant", "header":"sys/resource.h", "extensions":[]}, + {"ident":"RLIM_SAVED_CUR", "id_type":"constant", "header":"sys/resource.h", "extensions":[]}, + {"ident":"RLIM_SAVED_MAX", "id_type":"constant", "header":"sys/resource.h", "extensions":[]}, + {"ident":"rlim_t", "id_type":"type", "header":"sys/resource.h", "extensions":[]}, + {"ident":"rlimit", "id_type":"type", "header":"sys/resource.h", "extensions":[]}, + {"ident":"RLIMIT_AS", "id_type":"constant", "header":"sys/resource.h", "extensions":[]}, + {"ident":"RLIMIT_CORE", "id_type":"constant", "header":"sys/resource.h", "extensions":[]}, + {"ident":"RLIMIT_CPU", "id_type":"constant", "header":"sys/resource.h", "extensions":[]}, + {"ident":"RLIMIT_DATA", "id_type":"constant", "header":"sys/resource.h", "extensions":[]}, + {"ident":"RLIMIT_FSIZE", "id_type":"constant", "header":"sys/resource.h", "extensions":[]}, + {"ident":"RLIMIT_NOFILE", "id_type":"constant", "header":"sys/resource.h", "extensions":[]}, + {"ident":"RLIMIT_STACK", "id_type":"constant", "header":"sys/resource.h", "extensions":[]}, + {"ident":"rmdir", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"round", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"roundf", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"roundl", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"rusage", "id_type":"type", "header":"sys/resource.h", "extensions":[]}, + {"ident":"RUSAGE_CHILDREN", "id_type":"constant", "header":"sys/resource.h", "extensions":[]}, + {"ident":"RUSAGE_SELF", "id_type":"constant", "header":"sys/resource.h", "extensions":[]}, + {"ident":"S_IFMT", "id_type":"constant", "header":"sys/stat.h", "extensions":["OB"]}, + {"ident":"SA_NOCLDSTOP", "id_type":"macro", "header":"signal.h", "extensions":[]}, + {"ident":"SA_NOCLDWAIT", "id_type":"macro", "header":"signal.h", "extensions":[]}, + {"ident":"SA_NODEFER", "id_type":"macro", "header":"signal.h", "extensions":[]}, + {"ident":"SA_ONSTACK", "id_type":"macro", "header":"signal.h", "extensions":[]}, + {"ident":"SA_RESETHAND", "id_type":"macro", "header":"signal.h", "extensions":[]}, + {"ident":"SA_RESTART", "id_type":"macro", "header":"signal.h", "extensions":[]}, + {"ident":"SA_SIGINFO", "id_type":"macro", "header":"signal.h", "extensions":[]}, + {"ident":"scalbln", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"scalblnf", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"scalblnl", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"scalbn", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"scalbnf", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"scalbnl", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"scandir", "id_type":"function", "header":"dirent.h", "extensions":[]}, + {"ident":"scanf", "id_type":"function", "header":"stdio.h", "extensions":[]}, + {"ident":"SCHAR_MAX", "id_type":"macro", "header":"limits.h", "extensions":[]}, + {"ident":"SCHAR_MIN", "id_type":"macro", "header":"limits.h", "extensions":[]}, + {"ident":"sched_get_priority_max", "id_type":"function", "header":"sched.h", "extensions":["PS","TPS"]}, + {"ident":"sched_get_priority_min", "id_type":"function", "header":"sched.h", "extensions":["PS","TPS"]}, + {"ident":"sched_getparam", "id_type":"function", "header":"sched.h", "extensions":["PS"]}, + {"ident":"sched_getscheduler", "id_type":"function", "header":"sched.h", "extensions":["PS"]}, + {"ident":"sched_param", "id_type":"type", "header":"sched.h", "extensions":["TPS"]}, + {"ident":"sched_rr_get_interval", "id_type":"function", "header":"sched.h", "extensions":["PS","TPS"]}, + {"ident":"sched_setparam", "id_type":"function", "header":"sched.h", "extensions":["PS"]}, + {"ident":"sched_setscheduler", "id_type":"function", "header":"sched.h", "extensions":["PS"]}, + {"ident":"sched_yield", "id_type":"function", "header":"sched.h", "extensions":[]}, + {"ident":"SCM_RIGHTS", "id_type":"constant", "header":"sys/socket.h", "extensions":["IP6"]}, + {"ident":"seed48", "id_type":"function", "header":"stdlib.h", "extensions":[]}, + {"ident":"SEEK_CUR", "id_type":"macro", "header":"stdio.h", "extensions":[]}, + {"ident":"SEEK_END", "id_type":"macro", "header":"stdio.h", "extensions":[]}, + {"ident":"SEEK_SET", "id_type":"macro", "header":"stdio.h", "extensions":[]}, + {"ident":"seekdir", "id_type":"function", "header":"dirent.h", "extensions":["XSI"]}, + {"ident":"select", "id_type":"function", "header":"sys/select.h", "extensions":[]}, + {"ident":"sem_close", "id_type":"function", "header":"semaphore.h", "extensions":[]}, + {"ident":"sem_destroy", "id_type":"function", "header":"semaphore.h", "extensions":[]}, + {"ident":"sem_getvalue", "id_type":"function", "header":"semaphore.h", "extensions":[]}, + {"ident":"sem_init", "id_type":"function", "header":"semaphore.h", "extensions":[]}, + {"ident":"sem_open", "id_type":"function", "header":"semaphore.h", "extensions":[]}, + {"ident":"sem_post", "id_type":"function", "header":"semaphore.h", "extensions":[]}, + {"ident":"sem_timedwait", "id_type":"function", "header":"semaphore.h", "extensions":[]}, + {"ident":"sem_trywait", "id_type":"function", "header":"semaphore.h", "extensions":[]}, + {"ident":"SEM_UNDO", "id_type":"constant", "header":"sys/sem.h", "extensions":[]}, + {"ident":"sem_unlink", "id_type":"function", "header":"semaphore.h", "extensions":[]}, + {"ident":"sem_wait", "id_type":"function", "header":"semaphore.h", "extensions":[]}, + {"ident":"sembuf", "id_type":"type", "header":"sys/sem.h", "extensions":[]}, + {"ident":"semctl", "id_type":"function", "header":"sys/sem.h", "extensions":[]}, + {"ident":"semget", "id_type":"function", "header":"sys/sem.h", "extensions":[]}, + {"ident":"semid_ds", "id_type":"type", "header":"sys/sem.h", "extensions":[]}, + {"ident":"semop", "id_type":"function", "header":"sys/sem.h", "extensions":[]}, + {"ident":"send", "id_type":"function", "header":"sys/socket.h", "extensions":["IP6"]}, + {"ident":"sendmsg", "id_type":"function", "header":"sys/socket.h", "extensions":["IP6"]}, + {"ident":"sendto", "id_type":"function", "header":"sys/socket.h", "extensions":["IP6"]}, + {"ident":"servent", "id_type":"type", "header":"netdb.h", "extensions":[]}, + {"ident":"SETALL", "id_type":"constant", "header":"sys/sem.h", "extensions":[]}, + {"ident":"setbuf", "id_type":"function", "header":"stdio.h", "extensions":[]}, + {"ident":"setegid", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"setenv", "id_type":"function", "header":"stdlib.h", "extensions":["CX"]}, + {"ident":"seteuid", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"setgid", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"setgrent", "id_type":"function", "header":"grp.h", "extensions":["XSI"]}, + {"ident":"sethostent", "id_type":"function", "header":"netdb.h", "extensions":[]}, + {"ident":"setitimer", "id_type":"function", "header":"sys/time.h", "extensions":["IP6"]}, + {"ident":"setjmp", "id_type":"function", "header":"setjmp.h", "extensions":[]}, + {"ident":"setkey", "id_type":"function", "header":"stdlib.h", "extensions":["XSI"]}, + {"ident":"setlocale", "id_type":"function", "header":"locale.h", "extensions":[]}, + {"ident":"setlogmask", "id_type":"function", "header":"syslog.h", "extensions":[]}, + {"ident":"setnetent", "id_type":"function", "header":"netdb.h", "extensions":[]}, + {"ident":"setpgid", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"setpgrp", "id_type":"function", "header":"unistd.h", "extensions":["OB","XSI"]}, + {"ident":"setpriority", "id_type":"function", "header":"sys/resource.h", "extensions":[]}, + {"ident":"setprotoent", "id_type":"function", "header":"netdb.h", "extensions":[]}, + {"ident":"setpwent", "id_type":"function", "header":"pwd.h", "extensions":["XSI"]}, + {"ident":"setregid", "id_type":"function", "header":"unistd.h", "extensions":["XSI"]}, + {"ident":"setreuid", "id_type":"function", "header":"unistd.h", "extensions":["XSI"]}, + {"ident":"setrlimit", "id_type":"function", "header":"sys/resource.h", "extensions":[]}, + {"ident":"setservent", "id_type":"function", "header":"netdb.h", "extensions":[]}, + {"ident":"setsid", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"setsockopt", "id_type":"function", "header":"sys/socket.h", "extensions":["IP6"]}, + {"ident":"setstate", "id_type":"function", "header":"stdlib.h", "extensions":[]}, + {"ident":"setuid", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"setutxent", "id_type":"function", "header":"utmpx.h", "extensions":[]}, + {"ident":"SETVAL", "id_type":"constant", "header":"sys/sem.h", "extensions":[]}, + {"ident":"setvbuf", "id_type":"function", "header":"stdio.h", "extensions":[]}, + {"ident":"shm_open", "id_type":"function", "header":"sys/mman.h", "extensions":["SHM"]}, + {"ident":"SHM_RDONLY", "id_type":"constant", "header":"sys/shm.h", "extensions":[]}, + {"ident":"SHM_RND", "id_type":"constant", "header":"sys/shm.h", "extensions":[]}, + {"ident":"shm_unlink", "id_type":"function", "header":"sys/mman.h", "extensions":["SHM"]}, + {"ident":"shmat", "id_type":"function", "header":"sys/shm.h", "extensions":[]}, + {"ident":"shmatt_t", "id_type":"type", "header":"sys/shm.h", "extensions":[]}, + {"ident":"shmctl", "id_type":"function", "header":"sys/shm.h", "extensions":[]}, + {"ident":"shmdt", "id_type":"function", "header":"sys/shm.h", "extensions":[]}, + {"ident":"shmget", "id_type":"function", "header":"sys/shm.h", "extensions":[]}, + {"ident":"shmid_ds", "id_type":"type", "header":"sys/shm.h", "extensions":[]}, + {"ident":"SHMLBA", "id_type":"constant", "header":"sys/shm.h", "extensions":[]}, + {"ident":"SHRT_MAX", "id_type":"macro", "header":"limits.h", "extensions":[]}, + {"ident":"SHRT_MIN", "id_type":"macro", "header":"limits.h", "extensions":[]}, + {"ident":"SHUT_RD", "id_type":"constant", "header":"sys/socket.h", "extensions":["IP6"]}, + {"ident":"SHUT_RDWR", "id_type":"constant", "header":"sys/socket.h", "extensions":["IP6"]}, + {"ident":"SHUT_WR", "id_type":"constant", "header":"sys/socket.h", "extensions":["IP6"]}, + {"ident":"shutdown", "id_type":"function", "header":"sys/socket.h", "extensions":["IP6"]}, + {"ident":"sig_atomic_t", "id_type":"type", "header":"signal.h", "extensions":[]}, + {"ident":"SIG_BLOCK", "id_type":"macro", "header":"signal.h", "extensions":[]}, + {"ident":"SIG_DFL", "id_type":"macro", "header":"signal.h", "extensions":[]}, + {"ident":"SIG_ERR", "id_type":"macro", "header":"signal.h", "extensions":[]}, + {"ident":"SIG_HOLD", "id_type":"macro", "header":"signal.h", "extensions":[]}, + {"ident":"SIG_IGN", "id_type":"macro", "header":"signal.h", "extensions":[]}, + {"ident":"SIG_SETMASK", "id_type":"macro", "header":"signal.h", "extensions":[]}, + {"ident":"SIG_UNBLOCK", "id_type":"macro", "header":"signal.h", "extensions":[]}, + {"ident":"sigaction", "id_type":"function", "header":"signal.h", "extensions":[]}, + {"ident":"sigaction", "id_type":"type", "header":"signal.h", "extensions":[]}, + {"ident":"sigaddset", "id_type":"function", "header":"signal.h", "extensions":[]}, + {"ident":"sigaltstack", "id_type":"function", "header":"signal.h", "extensions":[]}, + {"ident":"sigdelset", "id_type":"function", "header":"signal.h", "extensions":[]}, + {"ident":"sigemptyset", "id_type":"function", "header":"signal.h", "extensions":[]}, + {"ident":"SIGEV_NONE", "id_type":"constant", "header":"signal.h", "extensions":[]}, + {"ident":"SIGEV_SIGNAL", "id_type":"constant", "header":"signal.h", "extensions":[]}, + {"ident":"SIGEV_THREAD", "id_type":"constant", "header":"signal.h", "extensions":[]}, + {"ident":"sigevent", "id_type":"type", "header":"signal.h", "extensions":["CX"]}, + {"ident":"sigfillset", "id_type":"function", "header":"signal.h", "extensions":[]}, + {"ident":"sighold", "id_type":"function", "header":"signal.h", "extensions":[]}, + {"ident":"sigignore", "id_type":"function", "header":"signal.h", "extensions":[]}, + {"ident":"siginfo_t", "id_type":"type", "header":"signal.h", "extensions":[]}, + {"ident":"siginterrupt", "id_type":"function", "header":"signal.h", "extensions":[]}, + {"ident":"sigismember", "id_type":"function", "header":"signal.h", "extensions":[]}, + {"ident":"siglongjmp", "id_type":"function", "header":"setjmp.h", "extensions":["CX"]}, + {"ident":"signal", "id_type":"function", "header":"signal.h", "extensions":[]}, + {"ident":"signgam", "id_type":"variable", "header":"math.h", "extensions":[]}, + {"ident":"sigpause", "id_type":"function", "header":"signal.h", "extensions":[]}, + {"ident":"sigpending", "id_type":"function", "header":"signal.h", "extensions":[]}, + {"ident":"sigprocmask", "id_type":"function", "header":"signal.h", "extensions":[]}, + {"ident":"sigqueue", "id_type":"function", "header":"signal.h", "extensions":[]}, + {"ident":"sigrelse", "id_type":"function", "header":"signal.h", "extensions":[]}, + {"ident":"sigset", "id_type":"function", "header":"signal.h", "extensions":[]}, + {"ident":"sigset_t", "id_type":"type", "header":"signal.h", "extensions":[]}, + {"ident":"sigsetjmp", "id_type":"function", "header":"setjmp.h", "extensions":["CX"]}, + {"ident":"SIGSTKSZ", "id_type":"macro", "header":"signal.h", "extensions":[]}, + {"ident":"sigsuspend", "id_type":"function", "header":"signal.h", "extensions":[]}, + {"ident":"sigtimedwait", "id_type":"function", "header":"signal.h", "extensions":[]}, + {"ident":"sigval", "id_type":"type", "header":"signal.h", "extensions":[]}, + {"ident":"sigwait", "id_type":"function", "header":"signal.h", "extensions":[]}, + {"ident":"sigwaitinfo", "id_type":"function", "header":"signal.h", "extensions":[]}, + {"ident":"sin", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"sinf", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"sinh", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"sinhf", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"sinhl", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"sinl", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"size_t", "id_type":"macro", "header":"stddef.h", "extensions":["TSA","TSS"]}, + {"ident":"sleep", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"snprintf", "id_type":"function", "header":"stdio.h", "extensions":[]}, + {"ident":"SO_ACCEPTCONN", "id_type":"constant", "header":"sys/socket.h", "extensions":["IP6"]}, + {"ident":"SO_BROADCAST", "id_type":"constant", "header":"sys/socket.h", "extensions":["IP6"]}, + {"ident":"SO_DEBUG", "id_type":"constant", "header":"sys/socket.h", "extensions":["IP6"]}, + {"ident":"SO_DONTROUTE", "id_type":"constant", "header":"sys/socket.h", "extensions":["IP6"]}, + {"ident":"SO_ERROR", "id_type":"constant", "header":"sys/socket.h", "extensions":["IP6"]}, + {"ident":"SO_KEEPALIVE", "id_type":"constant", "header":"sys/socket.h", "extensions":["IP6"]}, + {"ident":"SO_LINGER", "id_type":"constant", "header":"sys/socket.h", "extensions":["IP6"]}, + {"ident":"SO_OOBINLINE", "id_type":"constant", "header":"sys/socket.h", "extensions":["IP6"]}, + {"ident":"SO_RCVBUF", "id_type":"constant", "header":"sys/socket.h", "extensions":["IP6"]}, + {"ident":"SO_RCVLOWAT", "id_type":"constant", "header":"sys/socket.h", "extensions":["IP6"]}, + {"ident":"SO_RCVTIMEO", "id_type":"constant", "header":"sys/socket.h", "extensions":["IP6"]}, + {"ident":"SO_REUSEADDR", "id_type":"constant", "header":"sys/socket.h", "extensions":["IP6"]}, + {"ident":"SO_SNDBUF", "id_type":"constant", "header":"sys/socket.h", "extensions":["IP6"]}, + {"ident":"SO_SNDLOWAT", "id_type":"constant", "header":"sys/socket.h", "extensions":["IP6"]}, + {"ident":"SO_SNDTIMEO", "id_type":"constant", "header":"sys/socket.h", "extensions":["IP6"]}, + {"ident":"SO_TYPE", "id_type":"constant", "header":"sys/socket.h", "extensions":["IP6"]}, + {"ident":"SOCK_DGRAM", "id_type":"constant", "header":"sys/socket.h", "extensions":["IP6"]}, + {"ident":"SOCK_RAW", "id_type":"constant", "header":"sys/socket.h", "extensions":["IP6"]}, + {"ident":"SOCK_SEQPACKET", "id_type":"constant", "header":"sys/socket.h", "extensions":["IP6"]}, + {"ident":"SOCK_STREAM", "id_type":"constant", "header":"sys/socket.h", "extensions":["IP6"]}, + {"ident":"sockaddr", "id_type":"type", "header":"sys/socket.h", "extensions":["IP6"]}, + {"ident":"sockaddr_in", "id_type":"type", "header":"netinet/in.h", "extensions":[]}, + {"ident":"sockaddr_in6", "id_type":"type", "header":"netinet/in.h", "extensions":["IP6"]}, + {"ident":"sockaddr_un", "id_type":"type", "header":"sys/un.h", "extensions":[]}, + {"ident":"sockatmark", "id_type":"function", "header":"sys/socket.h", "extensions":["IP6"]}, + {"ident":"socket", "id_type":"function", "header":"sys/socket.h", "extensions":["IP6"]}, + {"ident":"socketpair", "id_type":"function", "header":"sys/socket.h", "extensions":["IP6"]}, + {"ident":"SOL_SOCKET", "id_type":"constant", "header":"sys/socket.h", "extensions":["IP6"]}, + {"ident":"SOMAXCONN", "id_type":"constant", "header":"sys/socket.h", "extensions":["IP6"]}, + {"ident":"speed_t", "id_type":"type", "header":"termios.h", "extensions":[]}, + {"ident":"sprintf", "id_type":"function", "header":"stdio.h", "extensions":[]}, + {"ident":"sqrt", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"sqrtf", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"sqrtl", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"srand", "id_type":"function", "header":"stdlib.h", "extensions":[]}, + {"ident":"srand48", "id_type":"function", "header":"stdlib.h", "extensions":["XSI"]}, + {"ident":"srandom", "id_type":"function", "header":"stdlib.h", "extensions":["XSI"]}, + {"ident":"SS_DISABLE", "id_type":"macro", "header":"signal.h", "extensions":[]}, + {"ident":"SS_ONSTACK", "id_type":"macro", "header":"signal.h", "extensions":[]}, + {"ident":"sscanf", "id_type":"function", "header":"stdio.h", "extensions":[]}, + {"ident":"SSIZE_MAX", "id_type":"macro", "header":"limits.h", "extensions":[]}, + {"ident":"ssize_t", "id_type":"type", "header":"stdio.h", "extensions":["CX"]}, + {"ident":"ST_NOSUID", "id_type":"constant", "header":"sys/statvfs.h", "extensions":[]}, + {"ident":"ST_RDONLY", "id_type":"constant", "header":"sys/statvfs.h", "extensions":[]}, + {"ident":"stack_t", "id_type":"type", "header":"signal.h", "extensions":[]}, + {"ident":"stat", "id_type":"function", "header":"sys/stat.h", "extensions":["OB"]}, + {"ident":"stat", "id_type":"type", "header":"sys/stat.h", "extensions":["OB"]}, + {"ident":"static_assert", "id_type":"macro", "header":"assert.h", "extensions":[]}, + {"ident":"statvfs", "id_type":"function", "header":"sys/statvfs.h", "extensions":[]}, + {"ident":"statvfs", "id_type":"type", "header":"sys/statvfs.h", "extensions":[]}, + {"ident":"stderr", "id_type":"macro", "header":"stdio.h", "extensions":[]}, + {"ident":"STDERR_FILENO", "id_type":"constant", "header":"unistd.h", "extensions":[]}, + {"ident":"stdin", "id_type":"macro", "header":"stdio.h", "extensions":[]}, + {"ident":"STDIN_FILENO", "id_type":"constant", "header":"unistd.h", "extensions":[]}, + {"ident":"stdout", "id_type":"macro", "header":"stdio.h", "extensions":[]}, + {"ident":"STDOUT_FILENO", "id_type":"constant", "header":"unistd.h", "extensions":[]}, + {"ident":"stpcpy", "id_type":"function", "header":"string.h", "extensions":[]}, + {"ident":"stpncpy", "id_type":"function", "header":"string.h", "extensions":[]}, + {"ident":"str_list", "id_type":"type", "header":"stropts.h", "extensions":[]}, + {"ident":"str_mlist", "id_type":"type", "header":"stropts.h", "extensions":[]}, + {"ident":"strbuf", "id_type":"type", "header":"stropts.h", "extensions":[]}, + {"ident":"strcasecmp", "id_type":"function", "header":"strings.h", "extensions":[]}, + {"ident":"strcasecmp_l", "id_type":"function", "header":"strings.h", "extensions":[]}, + {"ident":"strcat", "id_type":"function", "header":"string.h", "extensions":[]}, + {"ident":"strchr", "id_type":"function", "header":"string.h", "extensions":[]}, + {"ident":"strcmp", "id_type":"function", "header":"string.h", "extensions":[]}, + {"ident":"strcoll", "id_type":"function", "header":"string.h", "extensions":[]}, + {"ident":"strcoll_l", "id_type":"function", "header":"string.h", "extensions":["CX"]}, + {"ident":"strcpy", "id_type":"function", "header":"string.h", "extensions":[]}, + {"ident":"strcspn", "id_type":"function", "header":"string.h", "extensions":[]}, + {"ident":"strdup", "id_type":"function", "header":"string.h", "extensions":["XSI"]}, + {"ident":"strerror", "id_type":"function", "header":"string.h", "extensions":[]}, + {"ident":"strerror_l", "id_type":"function", "header":"string.h", "extensions":[]}, + {"ident":"strerror_r", "id_type":"function", "header":"string.h", "extensions":["CX"]}, + {"ident":"strfdinsert", "id_type":"type", "header":"stropts.h", "extensions":[]}, + {"ident":"strfmon", "id_type":"function", "header":"monetary.h", "extensions":[]}, + {"ident":"strfmon_l", "id_type":"function", "header":"monetary.h", "extensions":[]}, + {"ident":"strftime", "id_type":"function", "header":"time.h", "extensions":["IP6"]}, + {"ident":"strftime_l", "id_type":"function", "header":"time.h", "extensions":["IP6"]}, + {"ident":"strioctl", "id_type":"type", "header":"stropts.h", "extensions":[]}, + {"ident":"strlen", "id_type":"function", "header":"string.h", "extensions":[]}, + {"ident":"strncasecmp", "id_type":"function", "header":"strings.h", "extensions":[]}, + {"ident":"strncasecmp_l", "id_type":"function", "header":"strings.h", "extensions":[]}, + {"ident":"strncat", "id_type":"function", "header":"string.h", "extensions":[]}, + {"ident":"strncmp", "id_type":"function", "header":"string.h", "extensions":[]}, + {"ident":"strncpy", "id_type":"function", "header":"string.h", "extensions":[]}, + {"ident":"strndup", "id_type":"function", "header":"string.h", "extensions":[]}, + {"ident":"strnlen", "id_type":"function", "header":"string.h", "extensions":["CX"]}, + {"ident":"strpbrk", "id_type":"function", "header":"string.h", "extensions":[]}, + {"ident":"strpeek", "id_type":"type", "header":"stropts.h", "extensions":[]}, + {"ident":"strptime", "id_type":"function", "header":"time.h", "extensions":["IP6"]}, + {"ident":"strrchr", "id_type":"function", "header":"string.h", "extensions":[]}, + {"ident":"strrecvfd", "id_type":"type", "header":"stropts.h", "extensions":[]}, + {"ident":"strsignal", "id_type":"function", "header":"string.h", "extensions":[]}, + {"ident":"strspn", "id_type":"function", "header":"string.h", "extensions":[]}, + {"ident":"strstr", "id_type":"function", "header":"string.h", "extensions":[]}, + {"ident":"strtod", "id_type":"function", "header":"stdlib.h", "extensions":[]}, + {"ident":"strtof", "id_type":"function", "header":"stdlib.h", "extensions":[]}, + {"ident":"strtoimax", "id_type":"function", "header":"inttypes.h", "extensions":[]}, + {"ident":"strtok", "id_type":"function", "header":"string.h", "extensions":[]}, + {"ident":"strtok_r", "id_type":"function", "header":"string.h", "extensions":[]}, + {"ident":"strtol", "id_type":"function", "header":"stdlib.h", "extensions":[]}, + {"ident":"strtold", "id_type":"function", "header":"stdlib.h", "extensions":[]}, + {"ident":"strtoll", "id_type":"function", "header":"stdlib.h", "extensions":[]}, + {"ident":"strtoul", "id_type":"function", "header":"stdlib.h", "extensions":[]}, + {"ident":"strtoull", "id_type":"function", "header":"stdlib.h", "extensions":[]}, + {"ident":"strtoumax", "id_type":"function", "header":"inttypes.h", "extensions":[]}, + {"ident":"strxfrm", "id_type":"function", "header":"string.h", "extensions":[]}, + {"ident":"strxfrm_l", "id_type":"function", "header":"string.h", "extensions":["CX"]}, + {"ident":"suseconds_t", "id_type":"type", "header":"sys/types.h", "extensions":["XSI"]}, + {"ident":"swab", "id_type":"function", "header":"unistd.h", "extensions":["XSI"]}, + {"ident":"swprintf", "id_type":"function", "header":"wchar.h", "extensions":[]}, + {"ident":"swscanf", "id_type":"function", "header":"wchar.h", "extensions":[]}, + {"ident":"symlink", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"symlinkat", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"sync", "id_type":"function", "header":"unistd.h", "extensions":["XSI"]}, + {"ident":"sysconf", "id_type":"function", "header":"unistd.h", "extensions":["ADV"]}, + {"ident":"syslog", "id_type":"function", "header":"syslog.h", "extensions":[]}, + {"ident":"system", "id_type":"function", "header":"stdlib.h", "extensions":["IP6"]}, + {"ident":"t_scalar_t", "id_type":"type", "header":"stropts.h", "extensions":[]}, + {"ident":"t_uscalar_t", "id_type":"type", "header":"stropts.h", "extensions":[]}, + {"ident":"TABDLY", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"tan", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"tanf", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"tanh", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"tanhf", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"tanhl", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"tanl", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"tcdrain", "id_type":"function", "header":"termios.h", "extensions":[]}, + {"ident":"tcflag_t", "id_type":"type", "header":"termios.h", "extensions":[]}, + {"ident":"tcflow", "id_type":"function", "header":"termios.h", "extensions":[]}, + {"ident":"tcflush", "id_type":"function", "header":"termios.h", "extensions":[]}, + {"ident":"tcgetattr", "id_type":"function", "header":"termios.h", "extensions":[]}, + {"ident":"tcgetpgrp", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"tcgetsid", "id_type":"function", "header":"termios.h", "extensions":[]}, + {"ident":"TCIFLUSH", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"TCIOFF", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"TCIOFLUSH", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"TCION", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"TCOFLUSH", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"TCOOFF", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"TCOON", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"TCP_NODELAY", "id_type":"constant", "header":"netinet/tcp.h", "extensions":[]}, + {"ident":"TCSADRAIN", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"TCSAFLUSH", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"TCSANOW", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"tcsendbreak", "id_type":"function", "header":"termios.h", "extensions":[]}, + {"ident":"tcsetattr", "id_type":"function", "header":"termios.h", "extensions":[]}, + {"ident":"tcsetpgrp", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"tdelete", "id_type":"function", "header":"search.h", "extensions":[]}, + {"ident":"telldir", "id_type":"function", "header":"dirent.h", "extensions":["XSI"]}, + {"ident":"tempnam", "id_type":"function", "header":"stdio.h", "extensions":["OB","XSI"]}, + {"ident":"termios", "id_type":"type", "header":"termios.h", "extensions":[]}, + {"ident":"tfind", "id_type":"function", "header":"search.h", "extensions":[]}, + {"ident":"tgamma", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"tgammaf", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"tgammal", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"time", "id_type":"function", "header":"time.h", "extensions":["IP6"]}, + {"ident":"time_t", "id_type":"type", "header":"sys/types.h", "extensions":["SS","TSP"]}, + {"ident":"TIMER_ABSTIME", "id_type":"constant", "header":"time.h", "extensions":["IP6"]}, + {"ident":"timer_create", "id_type":"function", "header":"time.h", "extensions":["IP6"]}, + {"ident":"timer_delete", "id_type":"function", "header":"time.h", "extensions":["IP6"]}, + {"ident":"timer_getoverrun", "id_type":"function", "header":"time.h", "extensions":["IP6"]}, + {"ident":"timer_gettime", "id_type":"function", "header":"time.h", "extensions":["IP6"]}, + {"ident":"timer_settime", "id_type":"function", "header":"time.h", "extensions":["IP6"]}, + {"ident":"timer_t", "id_type":"type", "header":"sys/types.h", "extensions":["CX"]}, + {"ident":"times", "id_type":"function", "header":"sys/times.h", "extensions":["OB"]}, + {"ident":"timespec", "id_type":"type", "header":"time.h", "extensions":["IP6"]}, + {"ident":"timeval", "id_type":"type", "header":"sys/time.h", "extensions":["IP6"]}, + {"ident":"timezone", "id_type":"variable", "header":"time.h", "extensions":["IP6"]}, + {"ident":"tm", "id_type":"type", "header":"time.h", "extensions":["IP6"]}, + {"ident":"TMP_MAX", "id_type":"macro", "header":"stdio.h", "extensions":[]}, + {"ident":"tmpfile", "id_type":"function", "header":"stdio.h", "extensions":[]}, + {"ident":"tmpnam", "id_type":"function", "header":"stdio.h", "extensions":["OB"]}, + {"ident":"tms", "id_type":"type", "header":"sys/times.h", "extensions":["OB"]}, + {"ident":"toascii", "id_type":"function", "header":"ctype.h", "extensions":["OB","XSI"]}, + {"ident":"tolower", "id_type":"function", "header":"ctype.h", "extensions":[]}, + {"ident":"tolower_l", "id_type":"function", "header":"ctype.h", "extensions":["CX"]}, + {"ident":"TOSTOP", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"toupper", "id_type":"function", "header":"ctype.h", "extensions":[]}, + {"ident":"toupper_l", "id_type":"function", "header":"ctype.h", "extensions":["CX"]}, + {"ident":"towctrans", "id_type":"function", "header":"wctype.h", "extensions":["OB","XSI"]}, + {"ident":"towctrans_l", "id_type":"function", "header":"wctype.h", "extensions":["OB","XSI"]}, + {"ident":"towlower", "id_type":"function", "header":"wctype.h", "extensions":["OB","XSI"]}, + {"ident":"towlower_l", "id_type":"function", "header":"wctype.h", "extensions":["OB","XSI"]}, + {"ident":"towupper", "id_type":"function", "header":"wctype.h", "extensions":["OB","XSI"]}, + {"ident":"towupper_l", "id_type":"function", "header":"wctype.h", "extensions":["OB","XSI"]}, + {"ident":"trace_attr_t", "id_type":"type", "header":"sys/types.h", "extensions":["OB","TRC"]}, + {"ident":"trace_event_id_t", "id_type":"type", "header":"sys/types.h", "extensions":["OB","TRC"]}, + {"ident":"trace_event_set_t", "id_type":"type", "header":"sys/types.h", "extensions":["OB","TEF"]}, + {"ident":"trace_id_t", "id_type":"type", "header":"sys/types.h", "extensions":["OB","TRC"]}, + {"ident":"true", "id_type":"macro", "header":"stdbool.h", "extensions":[]}, + {"ident":"trunc", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"truncate", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"truncf", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"truncl", "id_type":"function", "header":"math.h", "extensions":[]}, + {"ident":"tsearch", "id_type":"function", "header":"search.h", "extensions":[]}, + {"ident":"ttyname", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"ttyname_r", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"twalk", "id_type":"function", "header":"search.h", "extensions":[]}, + {"ident":"tzname", "id_type":"variable", "header":"time.h", "extensions":["IP6"]}, + {"ident":"tzset", "id_type":"function", "header":"time.h", "extensions":["IP6"]}, + {"ident":"UCHAR_MAX", "id_type":"macro", "header":"limits.h", "extensions":[]}, + {"ident":"ucontext_t", "id_type":"type", "header":"signal.h", "extensions":[]}, + {"ident":"uid_t", "id_type":"type", "header":"sys/types.h", "extensions":[]}, + {"ident":"UINT_MAX", "id_type":"macro", "header":"limits.h", "extensions":[]}, + {"ident":"ulimit", "id_type":"function", "header":"ulimit.h", "extensions":[]}, + {"ident":"ULLONG_MAX", "id_type":"macro", "header":"limits.h", "extensions":[]}, + {"ident":"ULONG_MAX", "id_type":"macro", "header":"limits.h", "extensions":[]}, + {"ident":"umask", "id_type":"function", "header":"sys/stat.h", "extensions":["OB"]}, + {"ident":"uname", "id_type":"function", "header":"sys/utsname.h", "extensions":[]}, + {"ident":"ungetc", "id_type":"function", "header":"stdio.h", "extensions":[]}, + {"ident":"ungetwc", "id_type":"function", "header":"wchar.h", "extensions":[]}, + {"ident":"unlink", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"unlinkat", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"unlockpt", "id_type":"function", "header":"stdlib.h", "extensions":["XSI"]}, + {"ident":"unsetenv", "id_type":"function", "header":"stdlib.h", "extensions":["CX"]}, + {"ident":"USER_PROCESS", "id_type":"constant", "header":"utmpx.h", "extensions":[]}, + {"ident":"USHRT_MAX", "id_type":"macro", "header":"limits.h", "extensions":[]}, + {"ident":"usleep", "id_type":"function", "header":"unistd.h", "extensions":["OB","REM"]}, + {"ident":"utimbuf", "id_type":"type", "header":"utime.h", "extensions":[]}, + {"ident":"utime", "id_type":"function", "header":"utime.h", "extensions":[]}, + {"ident":"utimensat", "id_type":"function", "header":"sys/stat.h", "extensions":["OB"]}, + {"ident":"utimes", "id_type":"function", "header":"sys/time.h", "extensions":["IP6"]}, + {"ident":"utmpx", "id_type":"type", "header":"utmpx.h", "extensions":[]}, + {"ident":"utsname", "id_type":"type", "header":"sys/utsname.h", "extensions":[]}, + {"ident":"va_arg", "id_type":"type", "header":"stdarg.h", "extensions":[]}, + {"ident":"va_copy", "id_type":"macro", "header":"stdarg.h", "extensions":[]}, + {"ident":"va_end", "id_type":"macro", "header":"stdarg.h", "extensions":[]}, + {"ident":"va_list", "id_type":"type", "header":"stdarg.h", "extensions":[]}, + {"ident":"va_start", "id_type":"macro", "header":"stdarg.h", "extensions":[]}, + {"ident":"vdprintf", "id_type":"function", "header":"stdio.h", "extensions":["CX"]}, + {"ident":"vfprintf", "id_type":"function", "header":"stdio.h", "extensions":[]}, + {"ident":"vfscanf", "id_type":"function", "header":"stdio.h", "extensions":[]}, + {"ident":"vfwprintf", "id_type":"function", "header":"wchar.h", "extensions":[]}, + {"ident":"vfwscanf", "id_type":"function", "header":"wchar.h", "extensions":[]}, + {"ident":"vprintf", "id_type":"function", "header":"stdio.h", "extensions":[]}, + {"ident":"vscanf", "id_type":"function", "header":"stdio.h", "extensions":[]}, + {"ident":"vsnprintf", "id_type":"function", "header":"stdio.h", "extensions":[]}, + {"ident":"vsprintf", "id_type":"function", "header":"stdio.h", "extensions":[]}, + {"ident":"vsscanf", "id_type":"function", "header":"stdio.h", "extensions":[]}, + {"ident":"vswprintf", "id_type":"function", "header":"wchar.h", "extensions":[]}, + {"ident":"vswscanf", "id_type":"function", "header":"wchar.h", "extensions":[]}, + {"ident":"VTDLY", "id_type":"constant", "header":"termios.h", "extensions":[]}, + {"ident":"vwprintf", "id_type":"function", "header":"wchar.h", "extensions":[]}, + {"ident":"vwscanf", "id_type":"function", "header":"wchar.h", "extensions":[]}, + {"ident":"W_OK", "id_type":"constant", "header":"unistd.h", "extensions":[]}, + {"ident":"wait", "id_type":"function", "header":"sys/wait.h", "extensions":[]}, + {"ident":"waitid", "id_type":"function", "header":"sys/wait.h", "extensions":[]}, + {"ident":"waitpid", "id_type":"function", "header":"sys/wait.h", "extensions":[]}, + {"ident":"WCHAR_MAX", "id_type":"macro", "header":"wchar.h", "extensions":[]}, + {"ident":"WCHAR_MIN", "id_type":"macro", "header":"wchar.h", "extensions":[]}, + {"ident":"wchar_t", "id_type":"macro", "header":"stddef.h", "extensions":["CX"]}, + {"ident":"WCONTINUED", "id_type":"constant", "header":"sys/wait.h", "extensions":["XSI"]}, + {"ident":"wcpcpy", "id_type":"function", "header":"wchar.h", "extensions":[]}, + {"ident":"wcpncpy", "id_type":"function", "header":"wchar.h", "extensions":[]}, + {"ident":"wcrtomb", "id_type":"function", "header":"wchar.h", "extensions":[]}, + {"ident":"wcscasecmp", "id_type":"function", "header":"wchar.h", "extensions":["CX"]}, + {"ident":"wcscasecmp_l", "id_type":"function", "header":"wchar.h", "extensions":["CX"]}, + {"ident":"wcscat", "id_type":"function", "header":"wchar.h", "extensions":[]}, + {"ident":"wcschr", "id_type":"function", "header":"wchar.h", "extensions":[]}, + {"ident":"wcscmp", "id_type":"function", "header":"wchar.h", "extensions":[]}, + {"ident":"wcscoll", "id_type":"function", "header":"wchar.h", "extensions":[]}, + {"ident":"wcscoll_l", "id_type":"function", "header":"wchar.h", "extensions":["CX"]}, + {"ident":"wcscpy", "id_type":"function", "header":"wchar.h", "extensions":[]}, + {"ident":"wcscspn", "id_type":"function", "header":"wchar.h", "extensions":[]}, + {"ident":"wcsdup", "id_type":"function", "header":"wchar.h", "extensions":[]}, + {"ident":"wcsftime", "id_type":"function", "header":"wchar.h", "extensions":[]}, + {"ident":"wcslen", "id_type":"function", "header":"wchar.h", "extensions":[]}, + {"ident":"wcsncasecmp", "id_type":"function", "header":"wchar.h", "extensions":["CX"]}, + {"ident":"wcsncasecmp_l", "id_type":"function", "header":"wchar.h", "extensions":["CX"]}, + {"ident":"wcsncat", "id_type":"function", "header":"wchar.h", "extensions":[]}, + {"ident":"wcsncmp", "id_type":"function", "header":"wchar.h", "extensions":[]}, + {"ident":"wcsncpy", "id_type":"function", "header":"wchar.h", "extensions":[]}, + {"ident":"wcsnlen", "id_type":"function", "header":"wchar.h", "extensions":["CX"]}, + {"ident":"wcsnrtombs", "id_type":"function", "header":"wchar.h", "extensions":["CX"]}, + {"ident":"wcspbrk", "id_type":"function", "header":"wchar.h", "extensions":[]}, + {"ident":"wcsrchr", "id_type":"function", "header":"wchar.h", "extensions":[]}, + {"ident":"wcsrtombs", "id_type":"function", "header":"wchar.h", "extensions":[]}, + {"ident":"wcsspn", "id_type":"function", "header":"wchar.h", "extensions":[]}, + {"ident":"wcsstr", "id_type":"function", "header":"wchar.h", "extensions":[]}, + {"ident":"wcstod", "id_type":"function", "header":"wchar.h", "extensions":[]}, + {"ident":"wcstof", "id_type":"function", "header":"wchar.h", "extensions":[]}, + {"ident":"wcstoimax", "id_type":"function", "header":"inttypes.h", "extensions":[]}, + {"ident":"wcstok", "id_type":"function", "header":"wchar.h", "extensions":[]}, + {"ident":"wcstol", "id_type":"function", "header":"wchar.h", "extensions":[]}, + {"ident":"wcstold", "id_type":"function", "header":"wchar.h", "extensions":[]}, + {"ident":"wcstoll", "id_type":"function", "header":"wchar.h", "extensions":[]}, + {"ident":"wcstombs", "id_type":"function", "header":"stdlib.h", "extensions":[]}, + {"ident":"wcstoul", "id_type":"function", "header":"wchar.h", "extensions":[]}, + {"ident":"wcstoull", "id_type":"function", "header":"wchar.h", "extensions":[]}, + {"ident":"wcstoumax", "id_type":"function", "header":"inttypes.h", "extensions":[]}, + {"ident":"wcswidth", "id_type":"function", "header":"wchar.h", "extensions":["XSI"]}, + {"ident":"wcsxfrm", "id_type":"function", "header":"wchar.h", "extensions":[]}, + {"ident":"wcsxfrm_l", "id_type":"function", "header":"wchar.h", "extensions":["CX"]}, + {"ident":"wctob", "id_type":"function", "header":"wchar.h", "extensions":[]}, + {"ident":"wctomb", "id_type":"function", "header":"stdlib.h", "extensions":[]}, + {"ident":"wctrans", "id_type":"function", "header":"wctype.h", "extensions":["OB","XSI"]}, + {"ident":"wctrans_l", "id_type":"function", "header":"wctype.h", "extensions":["OB","XSI"]}, + {"ident":"wctrans_t", "id_type":"type", "header":"wctype.h", "extensions":["OB","XSI"]}, + {"ident":"wctype", "id_type":"function", "header":"wctype.h", "extensions":["OB","XSI"]}, + {"ident":"wctype_l", "id_type":"function", "header":"wctype.h", "extensions":["OB","XSI"]}, + {"ident":"wctype_t", "id_type":"type", "header":"wchar.h", "extensions":["OB","XSI"]}, + {"ident":"wcwidth", "id_type":"function", "header":"wchar.h", "extensions":["XSI"]}, + {"ident":"WEOF", "id_type":"macro", "header":"wchar.h", "extensions":[]}, + {"ident":"WEXITED", "id_type":"constant", "header":"sys/wait.h", "extensions":[]}, + {"ident":"WEXITSTATUS", "id_type":"constant", "header":"sys/wait.h", "extensions":["CX"]}, + {"ident":"WIFCONTINUED", "id_type":"constant", "header":"sys/wait.h", "extensions":[]}, + {"ident":"WIFEXITED", "id_type":"constant", "header":"sys/wait.h", "extensions":["CX"]}, + {"ident":"WIFSIGNALED", "id_type":"constant", "header":"sys/wait.h", "extensions":["CX"]}, + {"ident":"WIFSTOPPED", "id_type":"constant", "header":"sys/wait.h", "extensions":["CX"]}, + {"ident":"wint_t", "id_type":"type", "header":"wchar.h", "extensions":["OB","XSI"]}, + {"ident":"wmemchr", "id_type":"function", "header":"wchar.h", "extensions":[]}, + {"ident":"wmemcmp", "id_type":"function", "header":"wchar.h", "extensions":[]}, + {"ident":"wmemcpy", "id_type":"function", "header":"wchar.h", "extensions":[]}, + {"ident":"wmemmove", "id_type":"function", "header":"wchar.h", "extensions":[]}, + {"ident":"wmemset", "id_type":"function", "header":"wchar.h", "extensions":[]}, + {"ident":"WNOHANG", "id_type":"constant", "header":"sys/wait.h", "extensions":["CX"]}, + {"ident":"WNOWAIT", "id_type":"constant", "header":"sys/wait.h", "extensions":[]}, + {"ident":"WORD_BIT", "id_type":"macro", "header":"limits.h", "extensions":[]}, + {"ident":"wordexp", "id_type":"function", "header":"wordexp.h", "extensions":[]}, + {"ident":"wordexp_t", "id_type":"type", "header":"wordexp.h", "extensions":[]}, + {"ident":"wordfree", "id_type":"function", "header":"wordexp.h", "extensions":[]}, + {"ident":"wprintf", "id_type":"function", "header":"wchar.h", "extensions":[]}, + {"ident":"WRDE_APPEND", "id_type":"constant", "header":"wordexp.h", "extensions":[]}, + {"ident":"WRDE_BADCHAR", "id_type":"constant", "header":"wordexp.h", "extensions":[]}, + {"ident":"WRDE_BADVAL", "id_type":"constant", "header":"wordexp.h", "extensions":[]}, + {"ident":"WRDE_CMDSUB", "id_type":"constant", "header":"wordexp.h", "extensions":[]}, + {"ident":"WRDE_DOOFFS", "id_type":"constant", "header":"wordexp.h", "extensions":[]}, + {"ident":"WRDE_NOCMD", "id_type":"constant", "header":"wordexp.h", "extensions":[]}, + {"ident":"WRDE_NOSPACE", "id_type":"constant", "header":"wordexp.h", "extensions":[]}, + {"ident":"WRDE_REUSE", "id_type":"constant", "header":"wordexp.h", "extensions":[]}, + {"ident":"WRDE_SHOWERR", "id_type":"constant", "header":"wordexp.h", "extensions":[]}, + {"ident":"WRDE_SYNTAX", "id_type":"constant", "header":"wordexp.h", "extensions":[]}, + {"ident":"WRDE_UNDEF", "id_type":"constant", "header":"wordexp.h", "extensions":[]}, + {"ident":"write", "id_type":"function", "header":"unistd.h", "extensions":[]}, + {"ident":"writev", "id_type":"function", "header":"sys/uio.h", "extensions":["XSI"]}, + {"ident":"wscanf", "id_type":"function", "header":"wchar.h", "extensions":[]}, + {"ident":"WSTOPPED", "id_type":"constant", "header":"sys/wait.h", "extensions":[]}, + {"ident":"WSTOPSIG", "id_type":"constant", "header":"sys/wait.h", "extensions":["CX"]}, + {"ident":"WTERMSIG", "id_type":"constant", "header":"sys/wait.h", "extensions":["CX"]}, + {"ident":"WUNTRACED", "id_type":"constant", "header":"sys/wait.h", "extensions":["CX"]}, + {"ident":"X_OK", "id_type":"constant", "header":"unistd.h", "extensions":[]}, + {"ident":"xor", "id_type":"macro", "header":"iso646.h", "extensions":[]}, + {"ident":"xor_eq", "id_type":"macro", "header":"iso646.h", "extensions":[]}, + {"ident":"y0", "id_type":"function", "header":"math.h", "extensions":["XSI"]}, + {"ident":"y1", "id_type":"function", "header":"math.h", "extensions":["XSI"]}, + {"ident":"yn", "id_type":"function", "header":"math.h", "extensions":["XSI"]} + ] +} diff --git a/share/libc/arpa/inet.h b/share/libc/arpa/inet.h index 8e9cf21bdc537ec1fb4e4f53f1f946fd149858e8..773e7d87a2e5f1132865407f3879b5a3fc392785 100644 --- a/share/libc/arpa/inet.h +++ b/share/libc/arpa/inet.h @@ -23,4 +23,10 @@ // According to POSIX, definitions from both arpa/inet.h and netinet/in.h // may be exported by one another, so everything is defined in a common file. +#ifndef __FC_ARPA_INET +#define __FC_ARPA_INET +#include "features.h" +__PUSH_FC_STDLIB #include "../__fc_inet.h" +__POP_FC_STDLIB +#endif diff --git a/share/libc/getopt.h b/share/libc/getopt.h index 6788b728779835daa8f5d3e12b7e9d08a85d47d0..b7f2116363d0e4cbf4068287e0f98a9f9e7756cf 100644 --- a/share/libc/getopt.h +++ b/share/libc/getopt.h @@ -27,14 +27,7 @@ __PUSH_FC_STDLIB __BEGIN_DECLS -extern char *optarg; -extern int optind, opterr, optopt; - -/*@ - assigns \result, *optarg, optind, opterr, optopt - \from argc, argv[0..argc-1], optstring[0..]; - */ -extern int getopt(int argc, char * const argv[], const char *optstring); +#include "unistd.h" /* GNU specific */ struct option diff --git a/share/libc/locale.h b/share/libc/locale.h index 11f0244bcb3cf4b8f4df547113ba2de04669bf37..6cc0e08923d1ce49e3075c5195407f7d4ff324c2 100644 --- a/share/libc/locale.h +++ b/share/libc/locale.h @@ -131,20 +131,20 @@ struct lconv | LC_IDENTIFICATION_MASK \ ) -extern struct lconv* __frama_c_locale; -extern char*__frama_c_locale_names[512]; +extern struct lconv* __fc_locale; +extern char*__fc_locale_names[512]; /*@ requires locale_null_or_valid_string: locale == \null || valid_read_string(locale); - assigns __frama_c_locale \from category, locale[..]; - assigns \result \from __frama_c_locale,category, locale[..]; + assigns __fc_locale \from category, locale[..]; + assigns \result \from __fc_locale,category, locale[..]; ensures result_null_or_locale_name: \result==\null || (\valid(\result) - && \exists ℤ i ; \result == __frama_c_locale_names[i]) ; + && \exists ℤ i ; \result == __fc_locale_names[i]) ; */ extern char *setlocale(int category, const char *locale); /*@ assigns \nothing; - ensures result_current_locale: \result == __frama_c_locale; + ensures result_current_locale: \result == __fc_locale; */ extern struct lconv *localeconv(void); diff --git a/share/libc/netinet/in.h b/share/libc/netinet/in.h index 8e9cf21bdc537ec1fb4e4f53f1f946fd149858e8..e582651699c7282ef7ec944c133d44e3d351f50a 100644 --- a/share/libc/netinet/in.h +++ b/share/libc/netinet/in.h @@ -23,4 +23,10 @@ // According to POSIX, definitions from both arpa/inet.h and netinet/in.h // may be exported by one another, so everything is defined in a common file. +#ifndef __FC_NETINET_IN +#define __FC_NETINET_IN +#include "features.h" +__PUSH_FC_STDLIB #include "../__fc_inet.h" +__POP_FC_STDLIB +#endif diff --git a/share/libc/sys/select.h b/share/libc/sys/select.h index 8e1608d267e3da518ee4f933fc4e891b2e3a3a30..dc854567f329a5d5114a336774aa5d0b1bbe6688 100644 --- a/share/libc/sys/select.h +++ b/share/libc/sys/select.h @@ -26,7 +26,7 @@ __PUSH_FC_STDLIB __BEGIN_DECLS -#include "__fc_select.h" +#include "../__fc_select.h" __END_DECLS __POP_FC_STDLIB diff --git a/share/libc/sys/socket.h b/share/libc/sys/socket.h index 20b339c5ed8e978866fbbcb07cd91fdd55b3c0b0..c8d2a9ae4c3ce84d3762610595f048d30339c701 100644 --- a/share/libc/sys/socket.h +++ b/share/libc/sys/socket.h @@ -46,7 +46,7 @@ struct sockaddr_storage { sa_family_t ss_family; }; -#include "../__fc_define_iovec.h" +#include "sys/uio.h" struct cmsghdr { socklen_t cmsg_len; diff --git a/share/libc/sys/time.h b/share/libc/sys/time.h index b860763f4d3909a5c198a66af5701417801f78c9..426f637688704543ab931b8ea5d48424d621bdaf 100644 --- a/share/libc/sys/time.h +++ b/share/libc/sys/time.h @@ -205,6 +205,11 @@ extern int timerisset(struct timeval *tvp); #define timercmp(a, b, _CMP) _timercmp(a, b) extern int _timercmp(struct timeval *a, struct timeval *b); +// From POSIX, and for better compatibility with existing code bases: +// "Inclusion of the <sys/time.h> header may make visible all symbols +// from the <sys/select.h> header." +#include "select.h" + __END_DECLS __POP_FC_STDLIB #endif diff --git a/share/libc/syslog.h b/share/libc/syslog.h index 937e3fcfbe3a1a9e781946dcc26615d65afade6c..107ccb5fd3471df1cefa5512a76f14f495180b19 100644 --- a/share/libc/syslog.h +++ b/share/libc/syslog.h @@ -29,7 +29,7 @@ __PUSH_FC_STDLIB __BEGIN_DECLS -typedef struct _code { +typedef struct __fc_code { const char *c_name; int c_val; } CODE; diff --git a/share/libc/unistd.h b/share/libc/unistd.h index 9ee67070df73b4a30d6884ac5c8f021896bac633..e0c2a6817d3815b62976ad186b17f3947b859aec 100644 --- a/share/libc/unistd.h +++ b/share/libc/unistd.h @@ -34,7 +34,7 @@ __PUSH_FC_STDLIB #include "__fc_define_pid_t.h" #include "__fc_define_useconds_t.h" #include "__fc_define_intptr_t.h" -#include "__fc_select.h" + #include "limits.h" @@ -1096,7 +1096,7 @@ extern int tcsetpgrp(int, pid_t); extern int truncate(const char *, off_t); extern volatile char __fc_ttyname[TTY_NAME_MAX]; -extern char *__fc_p_ttyname = __fc_ttyname; +volatile char *__fc_p_ttyname = __fc_ttyname; /*@ // missing: may assign to errno: EBADF, ENOTTY @@ -1188,6 +1188,15 @@ int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); */ int setresgid(gid_t rgid, gid_t egid, gid_t sgid); +extern char *optarg; +extern int optind, opterr, optopt; + +/*@ + assigns \result, *optarg, optind, opterr, optopt + \from argc, argv[0..argc-1], optstring[0..]; + */ +extern int getopt(int argc, char * const argv[], const char *optstring); + __END_DECLS diff --git a/src/libraries/utils/dotgraph.ml b/src/libraries/utils/dotgraph.ml new file mode 100644 index 0000000000000000000000000000000000000000..f9939a2eb3677e29cafc5c34cbdbcbcefc2e07ef --- /dev/null +++ b/src/libraries/utils/dotgraph.ml @@ -0,0 +1,405 @@ +(**************************************************************************) +(* *) +(* This file is part of Frama-C. *) +(* *) +(* Copyright (C) 2007-2019 *) +(* CEA (Commissariat à l'énergie atomique et aux énergies *) +(* alternatives) *) +(* *) +(* you can redistribute it and/or modify it under the terms of the GNU *) +(* Lesser General Public License as published by the Free Software *) +(* Foundation, version 2.1. *) +(* *) +(* It is distributed in the hope that it will be useful, *) +(* but WITHOUT ANY WARRANTY; without even the implied warranty of *) +(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *) +(* GNU Lesser General Public License for more details. *) +(* *) +(* See the GNU Lesser General Public License version 2.1 *) +(* for more details (enclosed in the file licenses/LGPLv2.1). *) +(* *) +(**************************************************************************) + +(* -------------------------------------------------------------------------- *) +(* --- Attributes and Such --- *) +(* -------------------------------------------------------------------------- *) + +type attr = [ + | `LR + | `TB + | `Label of string + | `Color of string + | `Fillcolor of string + | `Shape of string + | `Style of string + | `Circle + | `Box + | `Oval + | `Point + | `Dotted + | `Filled + | `ArrowBoth + | `ArrowBack + | `ArrowForward + | `ArrowHead of string + | `ArrowTail of string + | `Attr of string * string +] + +let attr = function + | `LR -> "rankdir" , "LR" + | `TB -> "rankdir" , "TB" + | `Label txt -> "label" , txt + | `Color c -> "color" , c + | `Fillcolor c -> "fillcolor" , c + | `Shape sh -> "shape" , sh + | `Style sty -> "style" , sty + | `Box -> "shape" , "box" + | `Oval -> "shape" , "oval" + | `Point -> "shape" , "point" + | `Circle -> "shape" , "circle" + | `Filled -> "style" , "filled" + | `Dotted -> "style" , "dotted" + | `ArrowBoth -> "dir" , "both" + | `ArrowBack -> "dir" , "back" + | `ArrowForward -> "dir" , "forward" + | `ArrowHead sh -> "arrowhead" , sh + | `ArrowTail sh -> "arrowtail" , sh + | `Attr(name,value) -> name , value + +let pp_attr fmt (a : attr) = + let name,value = attr a in Format.fprintf fmt "%s=%S" name value + +let pp_attributes fmt = function + | [] -> () + | p::ps -> + begin + Format.fprintf fmt "@ %a" pp_attr p ; + List.iter (fun p -> Format.fprintf fmt ",@ %a" pp_attr p) ps ; + end + +(* -------------------------------------------------------------------------- *) +(* --- Dot Output --- *) +(* -------------------------------------------------------------------------- *) + +type dot = { + file : string ; + queue : (unit -> unit) Queue.t ; + mutable indent : string ; + mutable id : int ; + mutable fmt : Format.formatter ; + mutable out : out_channel option ; +} + +let open_dot ?(name="G") ?(attr=[]) ?(file) () = + let file = match file with None -> name ^ ".dot" | Some f -> f in + let out = open_out file in + let fmt = Format.formatter_of_out_channel out in + begin + Format.fprintf fmt "digraph %S {@\n" name ; + List.iter + (fun p -> + Format.fprintf fmt " %a ;@\n" pp_attr p + ) attr ; + Format.pp_print_flush fmt () ; + { file ; fmt ; + queue = Queue.create () ; + indent = " " ; out = Some out ; id = 0 } + end + +let flush dot = + match dot.out with + | Some out -> Format.pp_print_flush dot.fmt () ; flush out + | None -> () + +let basename f = + if Filename.check_suffix f ".dot" then Filename.chop_suffix f ".dot" else f + +let installed = ref None +let is_dot_installed () = + match !installed with + | Some s -> s + | None -> let s = (Sys.command "dot -V" = 0) in installed := Some s ; s + +let close dot = + match dot.out with + | None -> () + | Some out -> + begin + Format.fprintf dot.fmt "}@." ; + dot.fmt <- Format.err_formatter ; + Pervasives.flush out ; close_out out ; + dot.out <- None ; + end + +let layout ?(force=false) ?(target="pdf") ?(engine="dot") ?output dot = + begin + if dot.out <> None then raise (Invalid_argument "DotGraph: not closed") ; + let input = dot.file in + let output = + match output with Some f -> f | None -> + Printf.sprintf "%s.%s" (basename dot.file) target in + let cmd = Printf.sprintf "dot -K%s -T%s %s -o %s" + engine target input output in + let status = Sys.command cmd in + if status=0 then output else + if force then + let msg = Printf.sprintf "dot failed with status %d" status in + raise (Invalid_argument msg) + else dot.file + end + +let printf dot msg = Format.fprintf dot.fmt msg +let println dot msg = + Format.kfprintf (fun fmt -> Format.pp_print_newline fmt ()) dot.fmt msg + +let push dot f = Queue.push f dot.queue +let pop_all dot = + while not (Queue.is_empty dot.queue) do + (Queue.pop dot.queue) () + done + +(* -------------------------------------------------------------------------- *) +(* --- Nodes and Edges --- *) +(* -------------------------------------------------------------------------- *) + +type node = string + +let fresh ?(prefix="_") dot = + let k = dot.id in dot.id <- succ k ; Printf.sprintf "%s%03d" prefix k + +let pp_node = Format.pp_print_string +let pp_edge fmt (a,b) = Format.fprintf fmt "%s -> %s" a b + +let pp_stmt dot pp stmt attr = + Format.fprintf dot.fmt "%s@[<hv 0>@[<hov 2>%a [%a@]@ ]@];@." + dot.indent pp stmt pp_attributes attr + +let inode dot ?prefix ?id attr = + let a = match id with Some a -> a | None -> fresh ?prefix dot in + pp_stmt dot pp_node a attr ; a + +let node_default dot attr = + pp_stmt dot pp_node "node" attr + +let edge_default dot attr = + pp_stmt dot pp_node "edge" attr + +let node dot id attr = ignore (inode dot ~id attr) + +let edge dot a b attr = + if attr = [] + then Format.fprintf dot.fmt "%s%a ;@." dot.indent pp_edge (a,b) + else pp_stmt dot pp_edge (a,b) attr + +let link dot ps attr = + let rec walk dot attr p = function + | q :: ps -> edge dot p q attr ; walk dot attr q ps + | [] -> () + in match ps with + | p :: ps -> walk dot attr p ps + | [] -> () + +(* -------------------------------------------------------------------------- *) +(* --- Clustering --- *) +(* -------------------------------------------------------------------------- *) + +let rank dot nodes = + begin + Format.fprintf dot.fmt "%s@[<hov 2>{ rank=same;" dot.indent ; + List.iter (Format.fprintf dot.fmt "@ %s;") nodes ; + Format.fprintf dot.fmt "@ }@]@\n" ; + end + +let subgraph dot ?(cluster=true) attr content = + begin + let k = dot.id in dot.id <- succ k ; + let indent = dot.indent in + Format.fprintf dot.fmt "%ssubgraph %s%d {@\n" indent + (if cluster then "cluster" else "g") k ; + List.iter + (fun a -> Format.fprintf dot.fmt "%s %a;@\n" indent pp_attr a) attr ; + dot.indent <- indent ^ " " ; + content () ; + dot.indent <- indent ; + Format.fprintf dot.fmt "%s}@\n" indent ; + end + +type record = [ + | `Empty + | `Hbox of record list + | `Vbox of record list + | `Label of string + | `Port of string * link list * string +] and link = string * attr list * node + +let port a b = if b <> "" then Printf.sprintf "%s:%s" a b else a + +module Record = +struct + let hbox = function `Empty -> [] | `Hbox hs -> hs | h -> [h] + let vbox = function `Empty -> [] | `Vbox vs -> vs | v -> [v] + let (<->) a b = `Vbox (vbox a @ vbox b) + let (<|>) a b = `Hbox (hbox a @ hbox b) + let link ?(anchor="") ?(attr=[]) node : link = anchor,attr,node + let label ?(port="") ?(link=[]) txt : record = + if port="" && link=[] then `Label txt else `Port(port,link,txt) +end + +type env = { + buffer : Buffer.t ; + mutable links : (string * (string * attr list * node) list) list ; + mutable port : int ; +} + +let rec mk_record env hv = function + | `Empty -> () + | `Label txt -> Buffer.add_string env.buffer txt + | `Port(port,links,txt) -> + if links <> [] then + let port = + if port = "" then + let p = env.port in env.port <- succ p ; Printf.sprintf "_p%d" p + else port in + env.links <- (port,links) :: env.links ; + Printf.bprintf env.buffer "<%s> %s" port txt + | `Hbox rs -> mk_box env hv true rs + | `Vbox rs -> mk_box env hv false rs + +and mk_box env hv hb = function + | [] -> () + | r::rs -> + begin + let buffer = env.buffer in + let boxed = hv <> hb in + let hv = not hv in + if boxed then Buffer.add_char buffer '{' ; + mk_record env hv r ; + List.iter (fun r -> + Buffer.add_char buffer '|' ; + mk_record env hv r + ) rs ; + if boxed then Buffer.add_char buffer '}' ; + end + +let irecord dot ?prefix ?id ?(rounded=false) ?(attr=[]) (box : record) = + let shape = if rounded then "Mrecord" else "record" in + let env = { buffer = Buffer.create 80 ; links = [] ; port = 1 } in + mk_record env true box ; + let label = Buffer.contents env.buffer in + let node = inode dot ?prefix ?id (`Shape shape :: `Label label :: attr) in + List.iter + (fun (name,links) -> + List.iter + (fun (anchor,attr,target) -> + edge dot (port (port node name) anchor) target attr + ) links + ) env.links ; + node + +let record dot node ?rounded ?attr box = + ignore (irecord dot ~id:node ?rounded ?attr box) + +(* -------------------------------------------------------------------------- *) +(* --- Indexing --- *) +(* -------------------------------------------------------------------------- *) + +module type Map = +sig + type key + type 'a t + val empty : 'a t + val find : key -> 'a t -> 'a + val add : key -> 'a -> 'a t -> 'a t +end + +let kp = ref 0 + +module Node(M : Map) = +struct + type t = M.key + + let kid = ref 0 + let prefix = ref None + let skip _ _ = () + let once = ref skip + let index : node M.t ref = ref M.empty + + let get_prefix () = + match !prefix with Some p -> p | None -> + let k = !kp in + incr kp ; + let p = + if k < 26 then String.make 1 (char_of_int (int_of_char 'A' + k)) + else Printf.sprintf "A%d_" k in + prefix := Some p ; p + + let get a = + try M.find a !index + with Not_found -> + let k = !kid in incr kid ; + let prefix = get_prefix () in + let node = Printf.sprintf "%s%03d" prefix k in + index := M.add a node !index ; !once a node ; node + + let node dot a attr = node dot (get a) attr + let inode dot a attr = inode dot ~id:(get a) attr + + let record dot a ?rounded ?attr box = + record dot (get a) ?rounded ?attr box + + let irecord dot a ?rounded ?attr box = + irecord dot ~id:(get a) ?rounded ?attr box + + let prefix p = prefix := Some p + + let once f = once := f + let push dot f = once (fun a n -> push dot (fun () -> f a n)) + let clear () = index := M.empty ; kid := 0 ; once skip +end + +(* -------------------------------------------------------------------------- *) +(* --- Decorator --- *) +(* -------------------------------------------------------------------------- *) + +type buffer = { + label : Buffer.t ; + mutable attributes : attr list ; +} + +let apply_label buffer = function + | `Label txt -> + let buf = buffer.label in + Buffer.add_string buf txt ; true + | _ -> false + +let apply buffer a = + if not (apply_label buffer a) then + let name = fst (attr a) in + let filter name a = fst (attr a) <> name in + buffer.attributes <- a :: List.filter (filter name) buffer.attributes + +let add_attr buffer a = List.iter (apply buffer) a + +let buffer attr = + let buffer = { label = Buffer.create 20 ; attributes = [] } in + add_attr buffer attr ; buffer + +let add_char buffer = Buffer.add_char buffer.label +let add_label buffer = Buffer.add_string buffer.label +let bprintf buffer msg = + let fmt = Format.formatter_of_buffer buffer.label in + Format.kfprintf (fun fmt -> Format.pp_print_flush fmt ()) fmt msg + +let attributes buffer = + let label = Buffer.contents buffer.label in + `Label label :: List.rev buffer.attributes + +let add_options buffer options = + List.iter (fun (b,a) -> if b then add_attr buffer a) options + +let decorate attr options = + let buffer = buffer attr in + add_options buffer options ; attributes buffer + +(* -------------------------------------------------------------------------- *) diff --git a/src/libraries/utils/dotgraph.mli b/src/libraries/utils/dotgraph.mli new file mode 100644 index 0000000000000000000000000000000000000000..778b90740259b2e4109a5ea98cc3e7a04c495f99 --- /dev/null +++ b/src/libraries/utils/dotgraph.mli @@ -0,0 +1,280 @@ +(**************************************************************************) +(* *) +(* This file is part of Frama-C. *) +(* *) +(* Copyright (C) 2007-2019 *) +(* CEA (Commissariat à l'énergie atomique et aux énergies *) +(* alternatives) *) +(* *) +(* you can redistribute it and/or modify it under the terms of the GNU *) +(* Lesser General Public License as published by the Free Software *) +(* Foundation, version 2.1. *) +(* *) +(* It is distributed in the hope that it will be useful, *) +(* but WITHOUT ANY WARRANTY; without even the implied warranty of *) +(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *) +(* GNU Lesser General Public License for more details. *) +(* *) +(* See the GNU Lesser General Public License version 2.1 *) +(* for more details (enclosed in the file licenses/LGPLv2.1). *) +(* *) +(**************************************************************************) + +(** Helper for Printing Dot-graphs. + + This module provides smart-constructors for constructing Dot input + files. Basically, a [dot] object is a buffer to a [<file.dot>] on + disk where smart constructors write Dot statements. + + Once the [<file.dot>] has been created, it is possible to layout it + by running the [dot] command with various engines. + + Typically, let say you have a graph with nodes of type + [M.elt] with [M : Map.S] and assumes the graph is stored + as a map [graph : M.elt list M.t] with [roots : M.elt list] + then you can use: + + {[ + let module G = Dotgraph in + let module N = G.Node(M) in + begin + let dot = G.open_dot ~name:"mygraph" () in + (* For each generated node, declare it and link to its children. *) + N.push dot + (fun a -> + let na = N.inode dot a in + try + List.iter + (fun b -> G.link dot na (N.get b)) + (M.find a graph) + with Not_found -> ()) ; + (* Starts by emitting roots *) + List.iter + (fun r -> ignore (N.get r)) + roots ; + (* Proceeds to the traversal *) + G.pop_all dot ; + (* You may then complete your graph + with other decorations after the traversal... *) + G.close dot ; + (* Now call the layout engine, if installed. *) + G.layout dot ~format:"pdf" () ; + end + ]} + +*) + +open Pretty_utils + +(** {1 Attributes} *) + +type attr = [ + | `LR + | `TB + | `Label of string + | `Color of string + | `Fillcolor of string + | `Shape of string + | `Style of string + | `Circle + | `Box + | `Oval + | `Point + | `Dotted + | `Filled + | `ArrowBoth + | `ArrowBack + | `ArrowForward + | `ArrowHead of string + | `ArrowTail of string + | `Attr of string * string +] + +val pp_attr : Format.formatter -> attr -> unit + +(** {1 Dot Ouput} *) + +type dot +(** Buffer to a [dot] file with a graph environment (nodes, edges, etc.) *) + +val open_dot : ?name:string -> ?attr:attr list -> ?file:string -> unit -> dot +val close : dot -> unit + +val is_dot_installed : unit -> bool +(** Memoized *) + +val layout : + ?force:bool -> + ?target:string -> + ?engine:string -> + ?output:string -> dot -> string +(** Invoke [dot] command (if installed) with specified target and engine. + Defaults are [~force:false], [~target:"pdf"], [~engine:"dot"]. + + The [dot] buffer must be {i closed} before being laid out, although you can + invoke several layouts. + + Output is stored in [~output] or in a filename derived from the one of [dot]. + The function returns the generated output file. + + @raise Invalid_argument if [dot] buffer is not closed, or when [dot] + command fails and [~force:true] (not by default). *) + +val printf : dot -> ('a,Format.formatter,unit,unit) format4 -> 'a +(** Low-level routine to directly write material in the [dot] file *) + +val println : dot -> ('a,Format.formatter,unit,unit) format4 -> 'a +(** Low-level routine to directly write material with an end-of-line (["\n"]) + in the [dot] file *) + +val flush : dot -> unit +(** Flushes the [dot] file buffer to disk. *) + +(** {1 Nodes and Edges} *) + +type node + +(** Set default node attributes *) +val node_default : dot -> attr list -> unit + +(** Set default edge attributes *) +val edge_default : dot -> attr list -> unit + +(** Create a fresh node identifier *) +val fresh : ?prefix:string -> dot -> node + +val pp_node : node formatter +val pp_edge : (node * node) formatter (** [a -> b] *) + +(** Set attributes to node *) +val node : dot -> node -> attr list -> unit + +(** Create an edge with attributes *) +val edge : dot -> node -> node -> attr list -> unit + +(** Link the node sequence with attributed edges *) +val link : dot -> node list -> attr list -> unit + +(** Combinaison of [fresh] and [node] *) +val inode : dot -> ?prefix:string -> ?id:node -> attr list -> node + +(** {1 Clustering} *) + +val rank : dot -> node list -> unit +(** Layout nodes at the same rank *) + +val subgraph : dot -> ?cluster:bool -> attr list -> (unit -> unit) -> unit +(** The continuation shall add the graph content in the [dot] file. + Clustering is true by default *) + +type record = [ + | `Empty + | `Hbox of record list + | `Vbox of record list + | `Label of string + | `Port of string * link list * string + (** Port with output edges to other nodes. + Use [Record.link] and [Record.label] smart-constructors to create + complex ports. *) +] and link = string * attr list * node + +(** Complex node layout. Smart constructors to create records. *) +module Record : +sig + val (<->) : record -> record -> record + val (<|>) : record -> record -> record + val link : ?anchor:string -> ?attr:attr list -> node -> link + val label : ?port:string -> ?link:link list -> string -> record +end + +(** Create a port to a node, and returns the associated pseudo-node so you + can link an edge to it. *) +val port : node -> string -> node + +(** Define the node to be a record *) +val record : dot -> node -> + ?rounded:bool -> ?attr:attr list -> record -> unit + +(** Create a new node from a record (combines [fresh] and [record]) *) +val irecord : dot -> ?prefix:string -> ?id:node -> + ?rounded:bool -> ?attr:attr list -> record -> node + +(** {1 Node Indexing} *) + +module type Map = +sig + type key + type 'a t + val empty : 'a t + val find : key -> 'a t -> 'a + val add : key -> 'a -> 'a t -> 'a t +end + +(** Lazily associates a node to any element. *) +module Node(M : Map) : +sig + type t = M.key + val get : t -> node + val node : dot -> t -> attr list -> unit + val inode : dot -> t -> attr list -> node + val record : dot -> t -> ?rounded:bool -> ?attr:attr list -> record -> unit + val irecord : dot -> t -> ?rounded:bool -> ?attr:attr list -> record -> node + val clear : unit -> unit + + (** Executes the callback {i once} for all created nodes. + Any previously registered callback by [once] or [push] is replaced + by the new one. + + {b Warning:} the callback is executed as soon as [get] is called + for the first time, possibly interfering with your current output + on a [dot] buffer. To insert additional Dot material with a callback, + use [push] instead. + *) + val once : (t -> node -> unit) -> unit + + (** Pushes the callback {i once} for all created nodes. + You must call [pop_call] at some point to flush them. + Any previsously registred callback by [once] or [push] is replaced + by the new one. *) + val push : dot -> (t -> node -> unit) -> unit + + (** Set node prefix. + Otherwize, some default one is created for each functor application. *) + val prefix : string -> unit +end + +(** Register a continuation to be executed later. *) +val push : dot -> (unit -> unit) -> unit + +(** Flushes all pending continuations. *) +val pop_all : dot -> unit + +(** {1 Decorator} *) + +(** A text buffer to compose labels and attributes. + You can add text and attributes to the buffer, and finally + flush it by calling [attributes]. + A single [`Label] attribute is finally emitted with + all the added text (if non-empty). *) +type buffer + +(** Create a buffer initialized with the given attributes. *) +val buffer : attr list -> buffer + +(** Add text material to buffer label. *) +val bprintf : buffer -> ('a,Format.formatter,unit,unit) format4 -> 'a + +val add_char : buffer -> char -> unit +val add_label : buffer -> string -> unit + +(** Add attributes to the buffer. *) +val add_attr : buffer -> attr list -> unit + +(** Only add attributes with a [true] boolean flag *) +val add_options : buffer -> (bool * attr list) list -> unit + +(** Flushes the buffer into a list of attributes *) +val attributes : buffer -> attr list + +(** Concat the attributes with flagged ones *) +val decorate : attr list -> ( bool * attr list ) list -> attr list diff --git a/src/libraries/utils/markdown.ml b/src/libraries/utils/markdown.ml new file mode 100644 index 0000000000000000000000000000000000000000..0295d8007b6588eac586be4811bc619ef65947d2 --- /dev/null +++ b/src/libraries/utils/markdown.ml @@ -0,0 +1,333 @@ +(**************************************************************************) +(* *) +(* This file is part of Frama-C. *) +(* *) +(* Copyright (C) 2007-2019 *) +(* CEA (Commissariat à l'énergie atomique et aux énergies *) +(* alternatives) *) +(* *) +(* you can redistribute it and/or modify it under the terms of the GNU *) +(* Lesser General Public License as published by the Free Software *) +(* Foundation, version 2.1. *) +(* *) +(* It is distributed in the hope that it will be useful, *) +(* but WITHOUT ANY WARRANTY; without even the implied warranty of *) +(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *) +(* GNU Lesser General Public License for more details. *) +(* *) +(* See the GNU Lesser General Public License version 2.1 *) +(* for more details (enclosed in the file licenses/LGPLv2.1). *) +(* *) +(**************************************************************************) + +(* -------------------------------------------------------------------------- *) +(* --- Markdown Documentation Generation Utility --- *) +(* -------------------------------------------------------------------------- *) + +type md = Format.formatter -> unit +type text = md +type block = md +type section = md + +let pretty fmt w = w fmt +let pp_text = pretty +let pp_block = pretty +let pp_section = pretty + +(* -------------------------------------------------------------------------- *) +(* --- Context --- *) +(* -------------------------------------------------------------------------- *) + +type toc = level:int -> name:string -> title:string -> unit + +type context = { + page: string ; + path: string list ; + names: bool ; + level: int ; + toc: toc option ; +} + +let context = ref { + page = "" ; + path = [] ; + names = false ; + level = 0 ; + toc = None ; + } + +let local ctxt job data = + let current = !context in + try context := ctxt ; job data ; context := current + with err -> context := current ; raise err + +(* -------------------------------------------------------------------------- *) +(* --- Combinators --- *) +(* -------------------------------------------------------------------------- *) + +let nil _fmt = () +let empty= nil +let space fmt = Format.pp_print_space fmt () +let newline fmt = Format.pp_print_newline fmt () + +let merge sep ds fmt = + match List.filter (fun d -> d != nil) ds with + | [] -> () + | d::ds -> d fmt ; List.iter (fun d -> sep fmt ; d fmt) ds + +let glue ?sep ds fmt = + match sep with + | None -> List.iter (fun d -> d fmt) ds + | Some s -> merge s ds fmt + +let (<@>) a b = + if a == empty then b else + if b == empty then a else + fun fmt -> a fmt ; b fmt + +let (<+>) a b = + if a == empty then b else + if b == empty then a else + fun fmt -> a fmt ; space fmt ; b fmt + +let (</>) a b = + if a == empty then b else + if b == empty then a else + fun fmt -> a fmt ; newline fmt ; b fmt + +let fmt_text k fmt = Format.fprintf fmt "@[<h 0>%t@]" k +let fmt_block k fmt = Format.fprintf fmt "@[<v 0>%t@]@\n" k + +(* -------------------------------------------------------------------------- *) +(* --- Elementary Text --- *) +(* -------------------------------------------------------------------------- *) + +let raw s fmt = Format.pp_print_string fmt s +let rm s fmt = Format.pp_print_string fmt s +let it s fmt = Format.fprintf fmt "_%s_" s +let bf s fmt = Format.fprintf fmt "**%s**" s +let tt s fmt = Format.fprintf fmt "`%s`" s +let text = merge space +let praw s = fmt_block (raw s) + +(* -------------------------------------------------------------------------- *) +(* --- Links --- *) +(* -------------------------------------------------------------------------- *) + +type href = [ + | `URL of string + | `Page of string + | `Name of string + | `Section of string * string +] + +let filepath m = String.split_on_char '/' m + +let rec relative source target = + match source , target with + | p::ps , q::qs when p = q -> relative ps qs + | [] , _ -> target + | _::d , _ -> List.map (fun _ -> "..") d @ target + +let lnk target = + String.concat "/" (relative !context.path (filepath target)) + +let id m = + let buffer = Buffer.create (String.length m) in + let lowercase = Char.lowercase_ascii in + let dash = ref false in + let emit c = + if !dash then (Buffer.add_char buffer '-' ; dash := false) ; + Buffer.add_char buffer c in + String.iter + (function + | '0'..'9' as c -> emit c + | 'a'..'z' as c -> emit c + | 'A'..'Z' as c -> emit (lowercase c) + | '.' | '_' as c -> emit c + | ' ' | '\t' | '\n' | '-' -> dash := (Buffer.length buffer > 0) + | _ -> ()) m ; + Buffer.contents buffer + +let href ?title (h : href) fmt = + match title , h with + | None , `URL url -> Format.fprintf fmt "%s" url + | Some w , `URL url -> Format.fprintf fmt "[%s](%s)" w url + | None , `Page p -> Format.fprintf fmt "[%s](%s)" p (lnk p) + | Some w , `Page p -> Format.fprintf fmt "[%s](%s)" w (lnk p) + | None , `Section(p,s) -> Format.fprintf fmt "[%s](%s#%s)" s (lnk p) (id s) + | Some w , `Section(p,s) -> Format.fprintf fmt "[%s](%s#%s)" w (lnk p) (id s) + | None , `Name a -> Format.fprintf fmt "[%s](#%s)" a (id a) + | Some w , `Name a -> Format.fprintf fmt "[%s](#%s)" w (id a) + +(* -------------------------------------------------------------------------- *) +(* --- Blocks --- *) +(* -------------------------------------------------------------------------- *) + +let aname anchor fmt = + Format.fprintf fmt "<a name=\"%s\"></a>@\n" (id anchor) + +let title h ?name title fmt = + begin + let { level ; names ; toc } = !context in + let level = max 0 (min 5 (level + h - 1)) in + Format.fprintf fmt "%s %s" (String.make level '#') title ; + if names || name <> None || toc <> None then + begin + let anchor = match name with None -> title | Some a -> a in + Format.fprintf fmt " {#%s}" (id anchor) ; + (match toc with + | None -> () + | Some callback -> + callback ~level ~name:anchor ~title) ; + end ; + Format.pp_print_newline fmt () ; + end + +let h1 = title 1 +let h2 = title 2 +let h3 = title 3 +let h4 = title 4 + +let indent h w fmt = local { !context with level = !context.level + h } w fmt + +let in_h1 = indent 1 +let in_h2 = indent 2 +let in_h3 = indent 3 +let in_h4 = indent 4 + +let hrule fmt = Format.pp_print_string fmt "-------------------------@." + +let par w fmt = Format.fprintf fmt "@[<hov 0>%t@]@." w + +let list ws fmt = + List.iter + (fun w -> Format.fprintf fmt "@[<hov 2>- %t@]@." w) ws + +let enum ws fmt = + let k = ref 0 in + List.iter + (fun w -> incr k ; Format.fprintf fmt "@[<hov 3>%d. %t@]@." !k w) ws + +let description items fmt = + List.iter + (fun (a,w) -> Format.fprintf fmt "@[<hov 2>- **%s** %t@]@." a w) items + +let code ?(lang="") pp fmt = + begin + Format.fprintf fmt "@[<v 0>```%s" lang ; + let buffer = Buffer.create 80 in + let bfmt = Format.formatter_of_buffer buffer in + pp bfmt ; Format.pp_print_flush bfmt () ; + let content = Buffer.contents buffer in + let lines = String.split_on_char '\n' content in + let rec clean = function [] -> [] | ""::w -> clean w | w -> w in + List.iter + (fun l -> Format.fprintf fmt "@\n%s" l) + (List.rev (clean (List.rev (clean lines)))) ; + Format.fprintf fmt "@\n```@]@." + end + +type column = [ + | `Left of string + | `Right of string + | `Center of string +] + +let table columns rows fmt = + begin + Format.fprintf fmt "@[<v 0>" ; + List.iter + (function `Left h | `Right h | `Center h -> Format.fprintf fmt "| %s " h) + columns ; + Format.fprintf fmt "|@\n" ; + List.iter (fun column -> + let dash h k = String.make (max 3 (String.length h + k)) '-' in + match column with + | `Left h -> Format.fprintf fmt "|:%s" (dash h 1) + | `Right h -> Format.fprintf fmt "|%s:" (dash h 1) + | `Center h -> Format.fprintf fmt "|:%s:" (dash h 0) + ) columns ; + Format.fprintf fmt "|@\n" ; + List.iter (fun row -> + List.iter (fun col -> Format.fprintf fmt "| @[<h 0>%t@] " col) row ; + Format.fprintf fmt "|@\n" ; + ) rows ; + Format.fprintf fmt "@]@." ; + end + +let concat ps = merge newline (List.filter (fun p -> p != empty) ps) + +(* -------------------------------------------------------------------------- *) +(* --- Refs --- *) +(* -------------------------------------------------------------------------- *) + +let mk f fmt = (f ()) fmt +let mk_text = mk +let mk_block = mk + +(* -------------------------------------------------------------------------- *) +(* --- Sections --- *) +(* -------------------------------------------------------------------------- *) + +let document s = s + +let subsections section subsections = section </> in_h1 (merge newline subsections) + +let section ?name ~title content subsections = + h1 ?name title </> content </> in_h1 (merge newline subsections) + +(* -------------------------------------------------------------------------- *) +(* --- Include File --- *) +(* -------------------------------------------------------------------------- *) + +let from_file path fmt = + let inc = open_in path in + try + while true do + let line = input_line inc in + Format.pp_print_string fmt line ; + Format.pp_print_newline fmt () ; + done + with + | End_of_file -> close_in inc + | exn -> close_in inc ; raise exn + +let read_block = from_file +let read_section = from_file +let read_text path fmt = Format.fprintf fmt "@[<h 0>%t@]" (from_file path) + +(* -------------------------------------------------------------------------- *) +(* --- Dump to File --- *) +(* -------------------------------------------------------------------------- *) + +let rec mkdir root page = + let dir = Filename.dirname page in + if dir <> "." && dir <> ".." then + let path = Printf.sprintf "%s/%s" root dir in + if not (Sys.file_exists path) then + begin + mkdir root dir ; + try Unix.mkdir path 0o755 + with Unix.Unix_error _ -> + failwith (Printf.sprintf "Can not create direcoty '%s'" dir) + end + +let dump ~root ~page ?(names=false) ?toc doc = + local + { page ; path = filepath page ; level = 1 ; toc ; names = names } + begin fun () -> + mkdir root page ; + let out = open_out (Printf.sprintf "%s/%s" root page) in + let fmt = Format.formatter_of_out_channel out in + try + doc fmt ; + Format.pp_print_newline fmt () ; + close_out out ; + with err -> + Format.pp_print_newline fmt () ; + close_out out ; + raise err + end () + +(* -------------------------------------------------------------------------- *) diff --git a/src/libraries/utils/markdown.mli b/src/libraries/utils/markdown.mli new file mode 100644 index 0000000000000000000000000000000000000000..34b955919fcc8696722172e66ad43680b689335c --- /dev/null +++ b/src/libraries/utils/markdown.mli @@ -0,0 +1,183 @@ +(**************************************************************************) +(* *) +(* This file is part of Frama-C. *) +(* *) +(* Copyright (C) 2007-2019 *) +(* CEA (Commissariat à l'énergie atomique et aux énergies *) +(* alternatives) *) +(* *) +(* you can redistribute it and/or modify it under the terms of the GNU *) +(* Lesser General Public License as published by the Free Software *) +(* Foundation, version 2.1. *) +(* *) +(* It is distributed in the hope that it will be useful, *) +(* but WITHOUT ANY WARRANTY; without even the implied warranty of *) +(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *) +(* GNU Lesser General Public License for more details. *) +(* *) +(* See the GNU Lesser General Public License version 2.1 *) +(* for more details (enclosed in the file licenses/LGPLv2.1). *) +(* *) +(**************************************************************************) + +(* -------------------------------------------------------------------------- *) +(* --- Markdown Documentation Generation Utility --- *) +(* -------------------------------------------------------------------------- *) + +(** {2 Markdown} + + A lightweight helper for generating Markdown documentation. + Two levels of formatters are defined to help managing indentation and + spaces: [text] for inline markdown, and [block] for markdown paragraphs. + +*) + +type text +type block +type section + +val (<@>) : text -> text -> text (** Infix operator for [glue] *) +val (<+>) : text -> text -> text (** Infix operator for [text] *) +val (</>) : block -> block -> block (** Infix operator for [concat] *) + +(** {2 Text Constructors} *) + +val nil : text (** Empty *) +val raw : string -> text (** inlined markdown format *) +val rm : string -> text (** roman (normal) style *) +val it : string -> text (** italic style *) +val bf : string -> text (** bold style *) +val tt : string -> text (** typewriter style *) + +val glue : ?sep:text -> text list -> text (** Glue text fragments *) +val text : text list -> text (** Glue text fragments with spaces *) + +(** {2 Block Constructors} *) + +val empty : block (** Empty *) +val hrule : block (** Horizontal rule *) + +val h1 : ?name:string -> string -> block (** Title level 1 *) +val h2 : ?name:string -> string -> block (** Title level 2 *) +val h3 : ?name:string -> string -> block (** Title level 3 *) +val h4 : ?name:string -> string -> block (** Title level 4 *) + +val in_h1 : block -> block (** Increment title levels by 1 *) +val in_h2 : block -> block (** Increment title levels by 2 *) +val in_h3 : block -> block (** Increment title levels by 3 *) +val in_h4 : block -> block (** Increment title levels by 4 *) + +val par : text -> block (** Simple text paragraph *) +val praw : string -> block (** Simple raw paragraph *) +val list : text list -> block (** Itemized list *) +val enum : text list -> block (** Enumerated list *) +val description : (string * text) list -> block (** Description list *) + +(** Formatted code. + + The code content is pretty-printed in a vertical [<v0>] box + with default [Format] formatter. + Leading and trailing empty lines are removed and indentation is + preserved. *) +val code : ?lang:string -> (Format.formatter -> unit) -> block + +val concat : block list -> block (** Glue paragraphs with empty lines *) + +(** {2 Hyperlinks} + + [`Page], [`Name] and [`Section] links refers to the current document, + see [dump] function below. + + In [`Section(p,t)], [p] is the page path relative to the + document {i root}, and [t] is the section title {i or} name. + + For [`Name a], the links refers to name or title [a] + in the {i current} page. + + Hence, everywhere throughout a self-content document directory [~root], + local page [~page] inside [~root] can be referenced + by [`Page page], and its sections can by [`Section(page,title)] + or [`Section(page,name)]. + +*) + +type href = [ + | `URL of string + | `Page of string + | `Name of string + | `Section of string * string +] + +(** Default [~title] is taken from [href]. When printed, + actual link will be relativized with respect to current page. *) +val href : ?title:string -> href -> text + +(** Define a local anchor *) +val aname : string -> block + +(** {2 Tables} *) + +type column = [ + | `Left of string + | `Right of string + | `Center of string +] + +val table : column list -> text list list -> block + +(** {2 Markdown Generator} + Generating function are called each time the markdown + fragment is printed. *) + +val mk_text : (unit -> text) -> text +val mk_block : (unit -> block) -> block + +(** {2 Sections} + + Sections are an alternative to [h1-h4] constructors to build + properly nested sub-sections. Deep sections at depth 5 and more are + flattened. +*) + +val section : ?name:string -> title:string -> block -> section list -> section +val subsections : section -> section list -> section +val document : section -> block + +(** {2 Dump to file} + + Generate the markdown [~page] in directory [~root] with the given content. + The [~root] directory shall be absolute or relative to the current working + directory. The [~page] file-path shall be relative to the [~root] directory + and will be used to relocate hyperlinks to other [`Page] and [`Section] + properly. + + Hence, everywhere throughout the document, [dump ~root ~page doc] + is referenced by [`Page page], and its sections are referenced by + [`Section(page,title)]. + +*) + +(** Callback to listen for actual sections when printing a page. *) +type toc = level:int -> name:string -> title:string -> unit + +(** Create a markdown page. + - [~root] document directory (relocatable) + - [~page] relative file-path of the page in [~root] (non relocatable) + - [~names] generate explicit [<a name=...>] tags for all titles + - [~toc] optional callback to register table of contents +*) +val dump : root:string -> page:string -> ?names:bool -> ?toc:toc -> block -> unit + +(** {2 Miscellaneous} *) + +val read_text : string -> text +val read_block : string -> block +val read_section : string -> section + +val fmt_text : (Format.formatter -> unit) -> text +val fmt_block : (Format.formatter -> unit) -> block +val pp_text : Format.formatter -> text -> unit +val pp_block : Format.formatter -> block -> unit +val pp_section : Format.formatter -> section -> unit + +(* -------------------------------------------------------------------------- *) diff --git a/src/plugins/server/.gitignore b/src/plugins/server/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..f1d2f8cc5ec41ae8f688b80afeb51e4084f3c60f --- /dev/null +++ b/src/plugins/server/.gitignore @@ -0,0 +1,4 @@ +/Makefile +/Server.mli +/tests/ptests_config +/tests/report/result diff --git a/src/plugins/server/Makefile.in b/src/plugins/server/Makefile.in new file mode 100644 index 0000000000000000000000000000000000000000..f70395724dae585cc902a00f8ca0dcc190d9ace0 --- /dev/null +++ b/src/plugins/server/Makefile.in @@ -0,0 +1,117 @@ +########################################################################## +# # +# This file is part of Frama-C. # +# # +# Copyright (C) 2007-2019 # +# CEA (Commissariat à l'énergie atomique et aux énergies # +# alternatives) # +# # +# you can redistribute it and/or modify it under the terms of the GNU # +# Lesser General Public License as published by the Free Software # +# Foundation, version 2.1. # +# # +# It is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU Lesser General Public License for more details. # +# # +# See the GNU Lesser General Public License version 2.1 # +# for more details (enclosed in the file licenses/LGPLv2.1). # +# # +########################################################################## + +# Do not use ?= to initialize both below variables +# (fixed efficiency issue, see GNU Make manual, Section 8.11) +ifndef FRAMAC_SHARE +FRAMAC_SHARE :=$(shell frama-c-config -print-share-path) +endif +ifndef FRAMAC_LIBDIR +FRAMAC_LIBDIR :=$(shell frama-c-config -print-libpath) +endif + +include $(FRAMAC_SHARE)/Makefile.config +# -------------------------------------------------------------------------- +# --- Plugin Setting +# -------------------------------------------------------------------------- + +PLUGIN_ENABLE:=@ENABLE_SERVER@ +PLUGIN_NAME:=Server +PLUGIN_DISTRIBUTED:=$(PLUGIN_ENABLE) +PLUGIN_DISTRIB_EXTERNAL:= Makefile.in configure.ac configure + +PLUGIN_REQUIRES:= yojson +PLUGIN_CMO:= \ + server_parameters \ + jbuffer \ + doc syntax data main request \ + server_batch \ + kernel_main \ + kernel_project \ + kernel_ast + +PLUGIN_UNDOC:= server_batch.ml server_zmq.ml + +PLUGIN_GENERATED:= $(PLUGIN_DIR)/Server.mli +PLUGIN_TESTS := + +# -------------------------------------------------------------------------- +# --- ZeroMQ Support +# -------------------------------------------------------------------------- + +ifeq (@SERVER_ZMQ@,yes) +PLUGIN_REQUIRES+= zmq +PLUGIN_CMO+= server_zmq +endif + +# -------------------------------------------------------------------------- +# --- Frama-C Dynamic Plug-in +# -------------------------------------------------------------------------- + +include $(FRAMAC_SHARE)/Makefile.dynamic + +# -------------------------------------------------------------------------- +# --- Server API +# -------------------------------------------------------------------------- + +SERVER_API= \ + doc.mli syntax.mli data.mli request.mli + +define Capitalize +$(shell printf "%s%s" \ + $$($(ECHO) $(1) | cut -c 1 | tr '[:lower:]' '[:upper:]') + $$($(ECHO) $(1) | cut -c 2-)) +endef + +define ExportModule +$(ECHO) "module $(call Capitalize, $(basename $(notdir $(1)))) : sig" >> $(2); +$(ECHO) '# 1 "$(1)"' >> $(2); +$(CAT) $(1) >> $(2); +$(ECHO) "end" >> $(2); +endef + +SERVER_MLI=$(addprefix $(Server_DIR)/, $(SERVER_API)) + +$(Server_DIR)/Server.mli: $(Server_DIR)/Makefile $(SERVER_MLI) + $(PRINT_MAKING) $@ "from" $(SERVER_MLI) + $(RM) $@ $@.tmp + $(ECHO) "(* This file is generated. Do not edit. *)" >> $@.tmp + $(ECHO) "(** {b Server Public API} *)" >> $@.tmp + $(foreach file,$(SERVER_MLI),$(call ExportModule,$(file),$@.tmp)) + $(CHMOD_RO) $@.tmp + $(MV) $@.tmp $@ + +# -------------------------------------------------------------------------- +# --- Configure +# -------------------------------------------------------------------------- + +ifeq ("$(FRAMAC_INTERNAL)","yes") +CONFIG_STATUS_DIR=$(FRAMAC_SRC) +else +CONFIG_STATUS_DIR=. +endif + +$(Server_DIR)/Makefile: $(Server_DIR)/Makefile.in \ + $(CONFIG_STATUS_DIR)/config.status + cd $(CONFIG_STATUS_DIR) && ./config.status --file $@ + +# -------------------------------------------------------------------------- diff --git a/src/plugins/server/configure.ac b/src/plugins/server/configure.ac new file mode 100644 index 0000000000000000000000000000000000000000..4ab9e3f73f11ed3c98fdf85d9531e12b51368e10 --- /dev/null +++ b/src/plugins/server/configure.ac @@ -0,0 +1,84 @@ +########################################################################## +# # +# This file is part of Frama-C. # +# # +# Copyright (C) 2007-2019 # +# CEA (Commissariat à l'énergie atomique et aux énergies # +# alternatives) # +# # +# you can redistribute it and/or modify it under the terms of the GNU # +# Lesser General Public License as published by the Free Software # +# Foundation, version 2.1. # +# # +# It is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU Lesser General Public License for more details. # +# # +# See the GNU Lesser General Public License version 2.1 # +# for more details (enclosed in the file licenses/LGPLv2.1). # +# # +########################################################################## + +######################################## +# Server as a standard Frama-C plug-in # +######################################## + +m4_define([plugin_file],Makefile.in) + +m4_define([FRAMAC_SHARE_ENV], + [m4_normalize(m4_esyscmd([echo $FRAMAC_SHARE]))]) + +m4_define([FRAMAC_SHARE], + [m4_ifval(FRAMAC_SHARE_ENV,[FRAMAC_SHARE_ENV], + [m4_esyscmd(frama-c -print-path)])]) + +m4_ifndef([FRAMAC_M4_MACROS], [m4_include(FRAMAC_SHARE/configure.ac)]) + +check_plugin(server,PLUGIN_RELATIVE_PATH(plugin_file),[Server plug-in],yes) + +######################################## +# Server Main Configuration # +######################################## + +AC_MSG_CHECKING(for Yojson) +SERVER_LIB_YOJSON=$($OCAMLFIND query yojson -format %v) +if test -z "$SERVER_LIB_YOJSON" +then + AC_MSG_RESULT(Server disabled (use 'opam install yojson')) + plugin_disable(server) +else + AC_MSG_RESULT(yes) +fi + +######################################## +# Server ZMQ Configuration # +######################################## + +AC_ARG_ENABLE( + server-zmq, + [ --enable-server-zmq Server ZeroMQ support (default: yes)], + SERVER_ZMQ=$enableval, + SERVER_ZMQ=yes +) + +if test "$SERVER_ZMQ" = "yes" ; +then + AC_MSG_CHECKING(for ZeroMQ) + SERVER_LIB_ZMQ=$($OCAMLFIND query zmq -format %v) + if test -z "$SERVER_LIB_ZMQ" + then + AC_MSG_RESULT(Server support for ZeroMQ disabled (use 'opam install zmq').) + SERVER_ZMQ=no + else + AC_MSG_RESULT(yes); + fi +fi + +AC_SUBST(SERVER_ZMQ) + +####################### +# Generating Makefile # +####################### + +write_plugin_config(Makefile) diff --git a/src/plugins/server/data.ml b/src/plugins/server/data.ml new file mode 100644 index 0000000000000000000000000000000000000000..46c204d72366ee3e90f6160d5dbc61a078989eeb --- /dev/null +++ b/src/plugins/server/data.ml @@ -0,0 +1,533 @@ +(**************************************************************************) +(* *) +(* This file is part of Frama-C. *) +(* *) +(* Copyright (C) 2007-2019 *) +(* CEA (Commissariat à l'énergie atomique et aux énergies *) +(* alternatives) *) +(* *) +(* you can redistribute it and/or modify it under the terms of the GNU *) +(* Lesser General Public License as published by the Free Software *) +(* Foundation, version 2.1. *) +(* *) +(* It is distributed in the hope that it will be useful, *) +(* but WITHOUT ANY WARRANTY; without even the implied warranty of *) +(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *) +(* GNU Lesser General Public License for more details. *) +(* *) +(* See the GNU Lesser General Public License version 2.1 *) +(* for more details (enclosed in the file licenses/LGPLv2.1). *) +(* *) +(**************************************************************************) + +(* -------------------------------------------------------------------------- *) +(* --- Data Encoding --- *) +(* -------------------------------------------------------------------------- *) + +module Js = Yojson.Basic +module Ju = Yojson.Basic.Util + +type json = Js.t +let pretty = Js.pretty_print ~std:false + +module type S = +sig + type t + val syntax : Syntax.t + val of_json : json -> t + val to_json : t -> json +end + +module type Info = +sig + val page : Doc.page + val name : string + val descr : Markdown.text +end + +type 'a data = (module S with type t = 'a) + +let failure js msg = + Pretty_utils.ksfprintf (fun msg -> raise(Ju.Type_error(msg,js))) msg + +(* -------------------------------------------------------------------------- *) +(* --- Option --- *) +(* -------------------------------------------------------------------------- *) + +module Joption(A : S) : S with type t = A.t option = +struct + type t = A.t option + + let nullable = try ignore (A.of_json `Null) ; true with _ -> false + let syntax = + Syntax.option (if nullable then A.syntax else Syntax.tuple [A.syntax]) + + let to_json = function + | None -> `Null + | Some v -> if nullable then `List [A.to_json v] else A.to_json v + + let of_json = function + | `Null -> None + | `List [js] when nullable -> Some (A.of_json js) + | js -> Some (A.of_json js) + +end + +(* -------------------------------------------------------------------------- *) +(* --- Tuples --- *) +(* -------------------------------------------------------------------------- *) + +module Jpair(A : S)(B : S) : S with type t = A.t * B.t = +struct + type t = A.t * B.t + let syntax = Syntax.tuple [A.syntax;B.syntax] + let to_json (x,y) = `List [ A.to_json x ; B.to_json y ] + let of_json = function + | `List [ ja ; jb ] -> A.of_json ja , B.of_json jb + | js -> failure js "Expected list with 2 elements" +end + +module Jtriple(A : S)(B : S)(C : S) : S with type t = A.t * B.t * C.t = +struct + type t = A.t * B.t * C.t + let syntax = Syntax.tuple [A.syntax;B.syntax;C.syntax] + let to_json (x,y,z) = `List [ A.to_json x ; B.to_json y ; C.to_json z ] + let of_json = function + | `List [ ja ; jb ; jc ] -> A.of_json ja , B.of_json jb , C.of_json jc + | js -> failure js "Expected list with 3 elements" +end + +(* -------------------------------------------------------------------------- *) +(* --- Lists --- *) +(* -------------------------------------------------------------------------- *) + +module Jlist(A : S) : S with type t = A.t list = +struct + type t = A.t list + let syntax = Syntax.array A.syntax + let to_json xs = `List (List.map A.to_json xs) + let of_json js = List.map A.of_json (Ju.to_list js) +end + +(* -------------------------------------------------------------------------- *) +(* --- Arrays --- *) +(* -------------------------------------------------------------------------- *) + +module Jarray(A : S) : S with type t = A.t array = +struct + type t = A.t array + let syntax = Syntax.array A.syntax + let to_json xs = `List (List.map A.to_json (Array.to_list xs)) + let of_json js = Array.of_list @@ List.map A.of_json (Ju.to_list js) +end + +(* -------------------------------------------------------------------------- *) +(* --- Collections --- *) +(* -------------------------------------------------------------------------- *) + +module type S_collection = +sig + include S + module Joption : S with type t = t option + module Jlist : S with type t = t list + module Jarray : S with type t = t array +end + +module Collection(A : S) : S_collection with type t = A.t = +struct + include A + module Joption = Joption(A) + module Jlist = Jlist(A) + module Jarray = Jarray(A) +end + +(* -------------------------------------------------------------------------- *) +(* --- Atomic Types --- *) +(* -------------------------------------------------------------------------- *) + +module Junit : S with type t = unit = +struct + type t = unit + let syntax = Syntax.unit + let of_json _js = () + let to_json () = `Null +end + +module Jany : S with type t = json = +struct + type t = json + let syntax = Syntax.any + let of_json js = js + let to_json js = js +end + +module Jbool : S_collection with type t = bool = + Collection + (struct + type t = bool + let syntax = Syntax.boolean + let of_json = Ju.to_bool + let to_json b = `Bool b + end) + +module Jint : S_collection with type t = int = + Collection + (struct + type t = int + let syntax = Syntax.int + let of_json = Ju.to_int + let to_json n = `Int n + end) + +module Jfloat : S_collection with type t = float = + Collection + (struct + type t = float + let syntax = Syntax.number + let of_json = Ju.to_number + let to_json v = `Float v + end) + +module Jstring : S_collection with type t = string = + Collection + (struct + type t = string + let syntax = Syntax.string + let of_json = Ju.to_string + let to_json s = `String s + end) + +module Jident : S_collection with type t = string = + Collection + (struct + type t = string + let syntax = Syntax.ident + let of_json = Ju.to_string + let to_json s = `String s + end) + +let text_page = Doc.page `Kernel ~title:"Rich Text Format" ~filename:"text.md" + +module Jtext = +struct + include Jany + let syntax = Syntax.publish ~page:text_page ~name:"text" + ~synopsis:Syntax.any ~descr:(Markdown.rm "Formatted text.") () +end + +(* -------------------------------------------------------------------------- *) +(* --- Records --- *) +(* -------------------------------------------------------------------------- *) + +module Fmap = Map.Make(String) + +module Record( R : Info ) = +struct + + type t = json Fmap.t + + type 'a field = { + member : t -> bool ; + getter : t -> 'a ; + setter : t -> 'a -> t ; + } + + (* Declared Fields in this Record *) + let fdocs = ref [] + let defaults = ref Fmap.empty + + let default () = !defaults + let has fd r = fd.member r + let get fd r = fd.getter r + let set fd v r = fd.setter r v + + let field (type a) name ~descr ?default (d : a data) : a field = + let module D = (val d) in + begin match default with + | None -> () + | Some v -> defaults := Fmap.add name (D.to_json v) !defaults + end ; + fdocs := Syntax.{ name ; syntax = D.syntax ; descr } :: !fdocs ; + let member r = Fmap.mem name r in + let getter r = D.of_json (Fmap.find name r) in + let setter r v = Fmap.add name (D.to_json v) r in + { member ; getter ; setter } + + let option (type a) name ~descr (d : a data) : a option field = + let module D = (val d) in + fdocs := Syntax.{ name ; syntax = option D.syntax ; descr } :: !fdocs ; + let member r = Fmap.mem name r in + let getter r = + try Some (D.of_json (Fmap.find name r)) with Not_found -> None in + let setter r = function + | None -> Fmap.remove name r + | Some v -> Fmap.add name (D.to_json v) r in + { member ; getter ; setter } + + let fields () = Syntax.fields ~title:"Field" !fdocs + + let syntax = + Syntax.publish ~page:R.page ~name:R.name + ~descr:R.descr + ~synopsis:(Syntax.record []) + ~details:(Markdown.mk_block fields) () + + let of_json js = + List.fold_left + (fun r (fd,js) -> Fmap.add fd js r) + (default ()) (Ju.to_assoc js) + + let to_json r : json = + `Assoc (Fmap.fold (fun fd js fds -> (fd,js) :: fds) r []) + +end + +(* -------------------------------------------------------------------------- *) +(* --- Index --- *) +(* -------------------------------------------------------------------------- *) + +(** Simplified [Map.S] *) +module type Map = +sig + type 'a t + type key + val empty : 'a t + val add : key -> 'a -> 'a t -> 'a t + val find : key -> 'a t -> 'a +end + +module type Index = +sig + include S_collection + val get : t -> int + val find : int -> t + val clear : unit -> unit +end + +let publish_id (module A : Info) = + Syntax.publish + ~page:A.page ~name:A.name ~synopsis:Syntax.int ~descr:A.descr () + +module INDEXER(M : Map)(I : Info) : +sig + type index + val create : unit -> index + val clear : index -> unit + val get : index -> M.key -> int + val find : index -> int -> M.key + val to_json : index -> M.key -> json + val of_json : index -> json -> M.key +end = +struct + + type index = { + mutable kid : int ; + mutable index : int M.t ; + lookup : (int,M.key) Hashtbl.t ; + } + + let create () = { + kid = 0 ; + index = M.empty ; + lookup = Hashtbl.create 0 ; + } + + let clear m = + begin + m.kid <- 0 ; + m.index <- M.empty ; + Hashtbl.clear m.lookup ; + end + + let get m a = + try M.find a m.index + with Not_found -> + let id = m.kid in + m.kid <- succ id ; + m.index <- M.add a id m.index ; + Hashtbl.add m.lookup id a ; id + + let find m id = Hashtbl.find m.lookup id + + let to_json m a = `Int (get m a) + let of_json m js = + let id = Ju.to_int js in + try find m id + with Not_found -> + failure js "[%s] No registered id #%d" I.name id + +end + +module Static(M : Map)(I : Info) : Index with type t = M.key = +struct + module INDEX = INDEXER(M)(I) + let index = INDEX.create () + let clear () = INDEX.clear index + let get = INDEX.get index + let find = INDEX.find index + include Collection + (struct + type t = M.key + let syntax = publish_id (module I) + let of_json = INDEX.of_json index + let to_json = INDEX.to_json index + end) +end + +module Index(M : Map)(I : Info) : Index with type t = M.key = +struct + + module INDEX = INDEXER(M)(I) + module TYPE : Datatype.S with type t = INDEX.index = + Datatype.Make + (struct + type t = INDEX.index + include Datatype.Undefined + let reprs = [INDEX.create()] + let name = "Server.Data.Index.Type." ^ I.name + let mem_project = Datatype.never_any_project + end) + module STATE = State_builder.Ref(TYPE) + (struct + let name = "Server.Data.Index.State." ^ I.name + let dependencies = [] + let default = INDEX.create + end) + + let index () = STATE.get () + let clear () = INDEX.clear (index()) + + let get a = INDEX.get (index()) a + let find id = INDEX.find (index()) id + + include Collection + (struct + type t = M.key + let syntax = publish_id (module I) + let of_json js = INDEX.of_json (index()) js + let to_json v = INDEX.to_json (index()) v + end) + +end + +module type IdentifiedType = +sig + type t + val id : t -> int + include Info +end + +module Identified(A : IdentifiedType) : Index with type t = A.t = +struct + + type index = (int,A.t) Hashtbl.t + + module TYPE : Datatype.S with type t = index = + Datatype.Make + (struct + type t = index + include Datatype.Undefined + let reprs = [Hashtbl.create 0] + let name = "Server.Data.Identified.Type." ^ A.name + let mem_project = Datatype.never_any_project + end) + + module STATE = State_builder.Ref(TYPE) + (struct + let name = "Server.Data.Identified.State." ^ A.name + let dependencies = [] + let default () = Hashtbl.create 0 + end) + + let lookup () = STATE.get () + let clear () = Hashtbl.clear (lookup()) + + let get = A.id + let find id = Hashtbl.find (lookup()) id + + include Collection + (struct + type t = A.t + let syntax = publish_id (module A) + let to_json a = `Int (get a) + let of_json js = + let k = Ju.to_int js in + try find k + with Not_found -> failure js "[%s] No registered id #%d" A.name k + end) + +end + +(* -------------------------------------------------------------------------- *) +(* --- Dictionnary --- *) +(* -------------------------------------------------------------------------- *) + +module type Enum = +sig + type t + val values : (t * string * Markdown.text) list + include Info +end + +module Dictionary(E : Enum) = +struct + + let registered = ref false + let index = Hashtbl.create 0 + let lookup = Hashtbl.create 0 + + let register () = + if not !registered then + begin + registered := true ; + let invalid msg tag = + let msg = Printf.sprintf "Server.Data.Enum.%s: duplicate %s (%S)" + E.name msg tag in + raise (Invalid_argument msg) + in + List.iter + (fun (value,tag,_) -> + if Hashtbl.mem index value then invalid "value" tag ; + Hashtbl.add index value tag ; + if Hashtbl.mem lookup tag then invalid "tag" tag ; + Hashtbl.add lookup tag value ; + ) E.values + end + + let values () = + Markdown.table + [ `Left E.name ; `Left "Description" ] + (List.map + (fun (_,tag,descr) -> + [ Markdown.tt (Printf.sprintf "%S" tag) ; descr ] + ) E.values) + + include Collection + (struct + type t = E.t + + let syntax = Syntax.publish + ~page:E.page ~name:E.name + ~synopsis:Syntax.ident + ~descr:E.descr ~details:(Markdown.mk_block values) () + + let to_json value = + register () ; + try `String (Hashtbl.find index value) + with Not_found -> + raise (Invalid_argument + (Printf.sprintf "[%s] Unregistered value" E.name)) + + let of_json js = + register () ; + let tag = Ju.to_string js in + try Hashtbl.find lookup tag + with Not_found -> + let msg = Printf.sprintf "[%s] Unregistered tag %S" E.name tag in + raise (Ju.Type_error(msg,js)) + + end) + +end + +(* -------------------------------------------------------------------------- *) diff --git a/src/plugins/server/data.mli b/src/plugins/server/data.mli new file mode 100644 index 0000000000000000000000000000000000000000..f0c993fd042ca28c5abc2b961071ac01c9a4cb14 --- /dev/null +++ b/src/plugins/server/data.mli @@ -0,0 +1,190 @@ +(**************************************************************************) +(* *) +(* This file is part of Frama-C. *) +(* *) +(* Copyright (C) 2007-2019 *) +(* CEA (Commissariat à l'énergie atomique et aux énergies *) +(* alternatives) *) +(* *) +(* you can redistribute it and/or modify it under the terms of the GNU *) +(* Lesser General Public License as published by the Free Software *) +(* Foundation, version 2.1. *) +(* *) +(* It is distributed in the hope that it will be useful, *) +(* but WITHOUT ANY WARRANTY; without even the implied warranty of *) +(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *) +(* GNU Lesser General Public License for more details. *) +(* *) +(* See the GNU Lesser General Public License version 2.1 *) +(* for more details (enclosed in the file licenses/LGPLv2.1). *) +(* *) +(**************************************************************************) + +(* -------------------------------------------------------------------------- *) +(** Data Encoding *) +(* -------------------------------------------------------------------------- *) + +type json = Json.t + +val pretty : Format.formatter -> json -> unit + +module type S = +sig + type t + val syntax : Syntax.t + val of_json : json -> t + val to_json : t -> json +end + + +(** Datatype registration. + + Name and page must be consistent with each other: + - The name must be lowercase, dash-separated list of identifiers + - Protocol data must start with ["<server>-*"] + - Plugin data must start with ["<plugin>-*"] +*) +module type Info = +sig + val page : Doc.page + val name : string + val descr : Markdown.text +end + +type 'a data = (module S with type t = 'a) + +(* -------------------------------------------------------------------------- *) +(** {2 Collections} *) +(* -------------------------------------------------------------------------- *) + +module type S_collection = +sig + include S + module Joption : S with type t = t option + module Jlist : S with type t = t list + module Jarray : S with type t = t array +end + +module Collection(A : S) : S_collection with type t = A.t + +(* -------------------------------------------------------------------------- *) +(** {2 Constructors} *) +(* -------------------------------------------------------------------------- *) + +module Joption(A : S) : S with type t = A.t option +module Jpair(A : S)(B : S) : S with type t = A.t * B.t +module Jtriple(A : S)(B : S)(C : S) : S with type t = A.t * B.t * C.t +module Jlist(A : S) : S with type t = A.t list +module Jarray(A : S) : S with type t = A.t array + +(* -------------------------------------------------------------------------- *) +(** {2 Atomic Data} *) +(* -------------------------------------------------------------------------- *) + +module Junit : S with type t = unit +module Jany : S with type t = json +module Jbool : S_collection with type t = bool +module Jint : S_collection with type t = int +module Jfloat : S_collection with type t = float +module Jstring : S_collection with type t = string +module Jident : S_collection with type t = string (** Syntax is {i ident}. *) +module Jtext : S with type t = json (** Rich text encoding, see [Jbuffer] *) + +(* -------------------------------------------------------------------------- *) +(** {2 Records} *) +(* -------------------------------------------------------------------------- *) + +module Record(R : Info) : +sig + (** A new type [t] is created for each application of the functor. *) + include S + + (** Parametric field. Can only be used with type [t]. *) + type 'a field + + (** Field constructor *) + val field : string -> descr:Markdown.text -> ?default:'a -> 'a data -> 'a field + + (** Optional field constructor *) + val option : string -> descr:Markdown.text -> 'a data -> 'a option field + + (** Field presence. If the field has a default value, it will be always + present. *) + val has : 'a field -> t -> bool + + (** Field accessor. + @raise Not_found if the field is optional and not present *) + val get : 'a field -> t -> 'a + + (** Field updator. *) + val set : 'a field -> 'a -> t -> t + + (** Contains only the default values. *) + val default : unit -> t + +end + +(* -------------------------------------------------------------------------- *) +(** {2 Indexed Values} *) +(* -------------------------------------------------------------------------- *) + +(** Simplified [Map.S] *) +module type Map = +sig + type 'a t + type key + val empty : 'a t + val add : key -> 'a -> 'a t -> 'a t + val find : key -> 'a t -> 'a +end + +module type Index = +sig + include S_collection + val get : t -> int + val find : int -> t (** @raise Not_found if not registered *) + val clear : unit -> unit + (** Clear index tables. Use with extreme care. *) +end + +(** Builds an indexer that {i does not} depend on current project. *) +module Static(M : Map)(I : Info) : Index with type t = M.key + +(** Builds a {i projectified} index. *) +module Index(M : Map)(I : Info) : Index with type t = M.key + +(* -------------------------------------------------------------------------- *) +(** {2 Identified Types} *) +(* -------------------------------------------------------------------------- *) + +module type IdentifiedType = +sig + type t + val id : t -> int + include Info +end + +(** Builds a {i projectified} index on types with {i unique} identifiers *) +module Identified(A : IdentifiedType) : Index with type t = A.t + +(* -------------------------------------------------------------------------- *) +(** {2 Dictionary} *) +(* -------------------------------------------------------------------------- *) + +module type Enum = +sig + type t + val values : (t * string * Markdown.text) list + include Info +end + +module Dictionary(E : Enum) : S_collection with type t = E.t + +(* -------------------------------------------------------------------------- *) +(** {2 Misc} *) +(* -------------------------------------------------------------------------- *) + +val failure : json -> ('a, Format.formatter, unit, 'b) format4 -> 'a +(** @raise Yojson.Basic.Util.Type_error with provided message *) + +(* -------------------------------------------------------------------------- *) diff --git a/src/plugins/server/doc.ml b/src/plugins/server/doc.ml new file mode 100644 index 0000000000000000000000000000000000000000..0d141b3f018ecdd7b1946c5fa5f0db5a76bfd16f --- /dev/null +++ b/src/plugins/server/doc.ml @@ -0,0 +1,204 @@ +(**************************************************************************) +(* *) +(* This file is part of Frama-C. *) +(* *) +(* Copyright (C) 2007-2019 *) +(* CEA (Commissariat à l'énergie atomique et aux énergies *) +(* alternatives) *) +(* *) +(* you can redistribute it and/or modify it under the terms of the GNU *) +(* Lesser General Public License as published by the Free Software *) +(* Foundation, version 2.1. *) +(* *) +(* It is distributed in the hope that it will be useful, *) +(* but WITHOUT ANY WARRANTY; without even the implied warranty of *) +(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *) +(* GNU Lesser General Public License for more details. *) +(* *) +(* See the GNU Lesser General Public License version 2.1 *) +(* for more details (enclosed in the file licenses/LGPLv2.1). *) +(* *) +(**************************************************************************) + +(* -------------------------------------------------------------------------- *) +(* --- Server Documentation --- *) +(* -------------------------------------------------------------------------- *) + +type json = Yojson.Basic.t +module Senv = Server_parameters +module Pages = Map.Make(String) + +type chapter = [ `Protocol | `Kernel | `Plugin of string ] + +type page = { + path : string ; + rootdir : string ; (* path to document root *) + chapter : chapter ; + title : string ; + order : int ; + intro : Markdown.section ; + mutable sections : Markdown.section list ; +} + +let order = ref 0 +let pages : page Pages.t ref = ref Pages.empty +let plugins : string list ref = ref [] +let entries : (string * Markdown.href) list ref = ref [] +let path page = page.path +let href page name : Markdown.href = `Section( page.path , name ) + +(* -------------------------------------------------------------------------- *) +(* --- Page Collection --- *) +(* -------------------------------------------------------------------------- *) + +let chapter pg = pg.chapter + +let page chapter ~title ~filename = + let rootdir,path = match chapter with + | `Protocol -> "." , filename + | `Kernel -> ".." , Printf.sprintf "kernel/%s" filename + | `Plugin name -> "../.." , Printf.sprintf "plugins/%s/%s" name filename + in + try + let other = Pages.find path !pages in + Senv.failure "Duplicate page '%s' path@." path ; other + with Not_found -> + let intro = match chapter with + | `Protocol -> + Printf.sprintf "%s/server/protocol/%s" Config.datadir filename + | `Kernel -> + Printf.sprintf "%s/server/kernel/%s" Config.datadir filename + | `Plugin name -> + if not (List.mem name !plugins) then plugins := name :: !plugins ; + Printf.sprintf "%s/%s/server/%s" Config.datadir name filename in + let intro = + if Sys.file_exists intro + then Markdown.read_section intro + else Markdown.(section ~title empty []) in + let order = incr order ; !order in + let page = { order ; rootdir ; path ; + chapter ; title ; intro ; + sections=[] } in + pages := Pages.add path page !pages ; page + +let publish ~page ?name ?(index=[]) ~title content sections = + let id = match name with Some id -> id | None -> title in + let href = `Section( page.path , id ) in + let section = Markdown.section ?name ~title content sections in + List.iter (fun entry -> entries := (entry , href) :: !entries) index ; + page.sections <- section :: page.sections ; href + +let _ = page `Protocol ~title:"Architecture" ~filename:"server.md" + +(* -------------------------------------------------------------------------- *) +(* --- Tables of Content --- *) +(* -------------------------------------------------------------------------- *) + +let title_of_chapter = function + | `Protocol -> "Server Protocols" + | `Kernel -> "Kernel Services" + | `Plugin name -> "Plugin " ^ String.capitalize_ascii name + +let pages_of_chapter c = + let w = ref [] in + Pages.iter + (fun _ p -> if p.chapter = c then w := p :: !w) !pages ; + List.sort (fun p q -> p.order - q.order) !w + +let table_of_chapter c fmt = + begin + Format.fprintf fmt "## %s@\n@." (title_of_chapter c) ; + List.iter + (fun p -> Format.fprintf fmt " - [%s](%s)@." p.title p.path) + (pages_of_chapter c) ; + Format.pp_print_newline fmt () ; + end + +let table_of_contents fmt = + begin + table_of_chapter `Protocol fmt ; + table_of_chapter `Kernel fmt ; + List.iter + (fun p -> table_of_chapter (`Plugin p) fmt) + (List.sort String.compare !plugins) + end + +let index () = + List.map + (fun (title,entry) -> Markdown.href ~title entry) + (List.sort (fun (a,_) (b,_) -> String.compare a b) !entries) + +let link ~toc ~title ~href : json = + let link = [ "title" , `String title ; "href" , `String href ] in + `Assoc (if not toc then link else ( "toc" , `Bool true ) :: link) + +let link_page page : json list = + List.fold_right + (fun p links -> + if p.chapter = page.chapter then + let toc = (p.path = page.path) in + let href = Filename.basename p.path in + link ~toc ~title:p.title ~href :: links + else links + ) (pages_of_chapter page.chapter) [] + +let maindata : json = + `Assoc [ + "document", `String "Frama-C Server" ; + "title",`String "Documentation" ; + "root", `String "." ; + ] + +let metadata page : json = + `Assoc [ + "document", `String "Frama-C Server" ; + "chapter", `String (title_of_chapter page.chapter) ; + "title", `String page.title ; + "root", `String page.rootdir ; + "link",`List (link_page page) ; + ] + +(* -------------------------------------------------------------------------- *) +(* --- Dump Documentation --- *) +(* -------------------------------------------------------------------------- *) + +let dump ~root ?(meta=true) () = + begin + Pages.iter + (fun path page -> + Senv.feedback "[doc] Page: '%s'" path ; + let body = Markdown.subsections page.intro (List.rev page.sections) in + Markdown.dump ~root ~page:path (Markdown.document body) ; + if meta then + let path = Printf.sprintf "%s/%s.json" root path in + Yojson.Basic.to_file path (metadata page) ; + ) !pages ; + Senv.feedback "[doc] Page: 'readme.md'" ; + if meta then + let path = Printf.sprintf "%s/readme.md.json" root in + Yojson.Basic.to_file path maindata ; + Markdown.(dump ~root ~page:"readme.md" + begin + h1 "Documentation" </> + par (bf "Version" <+> rm Config.version) </> + fmt_block table_of_contents </> + h2 "Index" </> + list (index ()) + end) ; + end + +let () = + Db.Main.extend begin + fun () -> + let root = Senv.Doc.get () in + if root <> "" then + if Sys.file_exists root && Sys.is_directory root then + begin + Senv.feedback "[doc] Root: '%s'" root ; + dump ~root () ; + end + else + Senv.error "[doc] File '%s' is not a directory" root + end + +(* -------------------------------------------------------------------------- *) diff --git a/src/plugins/server/doc.mli b/src/plugins/server/doc.mli new file mode 100644 index 0000000000000000000000000000000000000000..e204916f44b8eec01dcc173221c77821bc990e9b --- /dev/null +++ b/src/plugins/server/doc.mli @@ -0,0 +1,68 @@ +(**************************************************************************) +(* *) +(* This file is part of Frama-C. *) +(* *) +(* Copyright (C) 2007-2019 *) +(* CEA (Commissariat à l'énergie atomique et aux énergies *) +(* alternatives) *) +(* *) +(* you can redistribute it and/or modify it under the terms of the GNU *) +(* Lesser General Public License as published by the Free Software *) +(* Foundation, version 2.1. *) +(* *) +(* It is distributed in the hope that it will be useful, *) +(* but WITHOUT ANY WARRANTY; without even the implied warranty of *) +(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *) +(* GNU Lesser General Public License for more details. *) +(* *) +(* See the GNU Lesser General Public License version 2.1 *) +(* for more details (enclosed in the file licenses/LGPLv2.1). *) +(* *) +(**************************************************************************) + +(* -------------------------------------------------------------------------- *) +(** Server Documentation *) +(* -------------------------------------------------------------------------- *) + +open Markdown + +(** The main chapters of the documentation. *) +type chapter = [ `Protocol | `Kernel | `Plugin of string ] + +(** A page of the server documentation. *) +type page + +val path : page -> string +val href : page -> string -> href +val chapter : page -> chapter + +(** Obtain the given page in the server documentation. + + The page initially contains an introductory section + read from the share directory: + - [frama-c/share/protocol/<filename>] for protocol pages, + - [frama-c/share/server/kernel/<filename>] for kernel pages, + - [frama-c/share/<plugin>/server/<filename>] for plugin's pages. +*) +val page : chapter -> title:string -> filename:string -> page + +(** Adds a section in the corresponding page. + Returns an href to the published section. + If index items are provided, they are added + to the server documentation index. +*) +val publish : + page:page -> + ?name:string -> + ?index:string list -> + title:string -> + Markdown.block -> + Markdown.section list -> + href + +(** Dumps all published pages of documentations. Unless [~meta:false], + also generates METADATA for each page in + [<filename>.json] for each page. *) +val dump : root:string -> ?meta:bool -> unit -> unit + +(* -------------------------------------------------------------------------- *) diff --git a/src/plugins/server/jbuffer.ml b/src/plugins/server/jbuffer.ml new file mode 100644 index 0000000000000000000000000000000000000000..70e5d66af55ac68ad3b4d464a644f168d18f6073 --- /dev/null +++ b/src/plugins/server/jbuffer.ml @@ -0,0 +1,137 @@ +(**************************************************************************) +(* *) +(* This file is part of Frama-C. *) +(* *) +(* Copyright (C) 2007-2019 *) +(* CEA (Commissariat à l'énergie atomique et aux énergies *) +(* alternatives) *) +(* *) +(* you can redistribute it and/or modify it under the terms of the GNU *) +(* Lesser General Public License as published by the Free Software *) +(* Foundation, version 2.1. *) +(* *) +(* It is distributed in the hope that it will be useful, *) +(* but WITHOUT ANY WARRANTY; without even the implied warranty of *) +(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *) +(* GNU Lesser General Public License for more details. *) +(* *) +(* See the GNU Lesser General Public License version 2.1 *) +(* for more details (enclosed in the file licenses/LGPLv2.1). *) +(* *) +(**************************************************************************) + +type json = Yojson.Basic.t + +type buffer = { + text : FCBuffer.t ; + mutable rjson : json list ; (* Current op-codes in reverse order *) + mutable stack : ( string * json list ) list ; + mutable fmt : Format.formatter ; +} + +let append buffer s k n = + FCBuffer.add_substring buffer.text s k n + +let flush buffer () = + let t = buffer.text in + let n = FCBuffer.length t in + if n > 0 then + let js = `String (FCBuffer.contents t) in + buffer.rjson <- js :: buffer.rjson ; + FCBuffer.clear t + +let push_tag buffer tag = + flush buffer () ; + buffer.stack <- ( tag , buffer.rjson ) :: buffer.stack ; + buffer.rjson <- [] + +let pop_tag buffer _tag = + match buffer.stack with + | [] -> () + | (tag,rjson)::stack -> + flush buffer () ; + buffer.stack <- stack ; + let content = List.rev buffer.rjson in + buffer.rjson <- + if content = [] then rjson + else + let block = `List ( `String tag :: content ) in + block :: rjson + +let no_mark _tag = () +let mark_open_tag buffer tg = push_tag buffer tg ; "" +let mark_close_tag buffer tg = pop_tag buffer tg ; "" + +let create ?indent ?margin () = + let buffer = { + fmt = Format.err_formatter ; + text = FCBuffer.create 80 ; rjson = [] ; stack = [] + } in + let fmt = Format.make_formatter (append buffer) (flush buffer) in + buffer.fmt <- fmt ; + begin match indent , margin with + | None , None -> () + | Some k , None -> + let m = Format.pp_get_margin fmt () in + Format.pp_set_max_indent fmt (max 0 (min k m)) + | None , Some m -> + Format.pp_set_margin fmt (max 0 m) ; + let k = Format.pp_get_max_indent fmt () in + if k < m-10 then Format.pp_set_max_indent fmt (max 0 (m-10)) + | Some k , Some m -> + Format.pp_set_margin fmt (max 0 m) ; + Format.pp_set_max_indent fmt (max 0 (min k (m-10))) + end ; + begin + let open Format in + pp_set_formatter_tag_functions fmt { + print_open_tag = no_mark ; + print_close_tag = no_mark ; + mark_open_tag = mark_open_tag buffer ; + mark_close_tag = mark_close_tag buffer ; + } ; + pp_set_print_tags fmt false ; + pp_set_mark_tags fmt true ; + end ; + buffer + +let bprintf buffer msg = Format.fprintf buffer.fmt msg +let formatter buffer = buffer.fmt + +let contents buffer : json = + flush buffer () ; + while buffer.stack <> [] do + pop_tag buffer "" + done ; + match List.rev buffer.rjson with + | [] -> `Null + | [`String _ as text] -> text + | content -> `List ( `String "" :: content ) + +let format ?indent ?margin msg = + let buffer = create ?indent ?margin () in + Format.kfprintf + (fun fmt -> Format.pp_print_flush fmt () ; contents buffer) + buffer.fmt msg + +let to_json ?indent ?margin pp a = + let buffer = create ?indent ?margin () in + pp buffer.fmt a ; + Format.pp_print_flush buffer.fmt () ; + contents buffer + +let rec fprintf fmt = function + | `Null -> () + | `String text -> Format.pp_print_string fmt text + | `List ( `String tag :: content ) -> + if tag <> "" then + begin + Format.fprintf fmt "@{<%s>" tag ; + List.iter (fprintf fmt) content ; + Format.fprintf fmt "@}" ; + end + else + List.iter (fprintf fmt) content + | js -> raise (Yojson.Basic.Util.Type_error("Invalid rich-text format",js)) + +(* -------------------------------------------------------------------------- *) diff --git a/src/plugins/server/jbuffer.mli b/src/plugins/server/jbuffer.mli new file mode 100644 index 0000000000000000000000000000000000000000..3e1e02a1beae8615cf925e52b980b093749766c1 --- /dev/null +++ b/src/plugins/server/jbuffer.mli @@ -0,0 +1,60 @@ +(**************************************************************************) +(* *) +(* This file is part of Frama-C. *) +(* *) +(* Copyright (C) 2007-2019 *) +(* CEA (Commissariat à l'énergie atomique et aux énergies *) +(* alternatives) *) +(* *) +(* you can redistribute it and/or modify it under the terms of the GNU *) +(* Lesser General Public License as published by the Free Software *) +(* Foundation, version 2.1. *) +(* *) +(* It is distributed in the hope that it will be useful, *) +(* but WITHOUT ANY WARRANTY; without even the implied warranty of *) +(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *) +(* GNU Lesser General Public License for more details. *) +(* *) +(* See the GNU Lesser General Public License version 2.1 *) +(* for more details (enclosed in the file licenses/LGPLv2.1). *) +(* *) +(**************************************************************************) + +type json = Json.t + +(** All-in-one formatter. Return the JSON encoding of formatted text. *) +val format : ?indent:int -> ?margin:int -> + ('a,Format.formatter,unit,json) format4 -> 'a + +(** All-in-one formatter. Return the JSON encoding of formatted text. *) +val to_json : ?indent:int -> ?margin:int -> + (Format.formatter -> 'a -> unit) -> 'a -> json + +(** Buffer for encoding formatted text. *) +type buffer + +(** Create a formatter with [~indent] maximum indentation and + [~margin] right-margin. Defaults are those of [Format.make_formatter], + which are [~indent:68] and [~margin:78] with OCaml 4.05. *) +val create : ?indent:int -> ?margin:int -> unit -> buffer + +(** The underlying formatter of a buffer. *) +val formatter : buffer -> Format.formatter + +(** Prints into the buffer's formatter. *) +val bprintf : buffer -> ('a,Format.formatter,unit) format -> 'a + +val append : buffer -> string -> int -> int -> unit +val flush : buffer -> unit -> unit +val push_tag : buffer -> Format.tag -> unit +val pop_tag : buffer -> Format.tag -> unit + +(** Flushes the buffer and returns its JSON enoding. This pops all pending + tags. *) +val contents : buffer -> json + +(** Prints back a JSON encoding onto the provided formatter. + @raise Yojson.Basic.Util.Type_error in case of ill formatted buffer. *) +val fprintf : Format.formatter -> json -> unit + +(* -------------------------------------------------------------------------- *) diff --git a/src/plugins/server/kernel_ast.ml b/src/plugins/server/kernel_ast.ml new file mode 100644 index 0000000000000000000000000000000000000000..229c526ab6f75a73624235f3c09c42b5a4ed27e5 --- /dev/null +++ b/src/plugins/server/kernel_ast.ml @@ -0,0 +1,164 @@ +(**************************************************************************) +(* *) +(* This file is part of Frama-C. *) +(* *) +(* Copyright (C) 2007-2019 *) +(* CEA (Commissariat à l'énergie atomique et aux énergies *) +(* alternatives) *) +(* *) +(* you can redistribute it and/or modify it under the terms of the GNU *) +(* Lesser General Public License as published by the Free Software *) +(* Foundation, version 2.1. *) +(* *) +(* It is distributed in the hope that it will be useful, *) +(* but WITHOUT ANY WARRANTY; without even the implied warranty of *) +(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *) +(* GNU Lesser General Public License for more details. *) +(* *) +(* See the GNU Lesser General Public License version 2.1 *) +(* for more details (enclosed in the file licenses/LGPLv2.1). *) +(* *) +(**************************************************************************) + + +open Data +module Sy = Syntax +module Md = Markdown +module Js = Yojson.Basic.Util +open Cil_types + +let page = Doc.page `Kernel ~title:"Ast Services" ~filename:"ast.md" + +(* -------------------------------------------------------------------------- *) +(* --- Compute Ast --- *) +(* -------------------------------------------------------------------------- *) + +let () = Request.register ~page + ~kind:`EXEC ~name:"kernel.ast.compute" + ~descr:(Md.rm "Ensures that AST is computed") + ~input:(module Junit) ~output:(module Junit) Ast.compute + +(* -------------------------------------------------------------------------- *) +(* --- Printers --- *) +(* -------------------------------------------------------------------------- *) + +module Tag = +struct + + open Printer_tag + + type index = (string,localizable) Hashtbl.t + + let kid = ref 0 + + let index () = Hashtbl.create 0 + + module TYPE : Datatype.S with type t = index = + Datatype.Make + (struct + type t = index + include Datatype.Undefined + let reprs = [index()] + let name = "Server.Jprinter.Index" + let mem_project = Datatype.never_any_project + end) + + module STATE = State_builder.Ref(TYPE) + (struct + let name = "Server.Jprinter.State" + let dependencies = [] + let default = index + end) + + let of_stmt s = Printf.sprintf "#s%d" s.sid + let of_start s = Printf.sprintf "#k%d" s.sid + let of_varinfo v = Printf.sprintf "#v%d" v.vid + + let create_tag = function + | PStmt(_,st) -> of_stmt st + | PStmtStart(_,st) -> of_start st + | PVDecl(_,_,vi) -> of_varinfo vi + | PLval _ -> Printf.sprintf "#l%d" (incr kid ; !kid) + | PExp _ -> Printf.sprintf "#e%d" (incr kid ; !kid) + | PTermLval _ -> Printf.sprintf "#t%d" (incr kid ; !kid) + | PGlobal _ -> Printf.sprintf "#g%d" (incr kid ; !kid) + | PIP _ -> Printf.sprintf "#p%d" (incr kid ; !kid) + + let create item = + let tag = create_tag item in + let index = STATE.get () in + Hashtbl.add index tag item ; tag + + let lookup = Hashtbl.find (STATE.get()) + +end + +module PP = Printer_tag.Make(Tag) + +(* -------------------------------------------------------------------------- *) +(* --- Ast Data --- *) +(* -------------------------------------------------------------------------- *) + +module Stmt = Data.Collection + (struct + type t = stmt + let syntax = Sy.publish ~page ~name:"stmt" + ~synopsis:Sy.ident + ~descr:(Md.rm "Code statement identifier") () + let to_json st = `String (Tag.of_stmt st) + let of_json js = + try + let open Printer_tag in + match Tag.lookup (Js.to_string js) with + | PStmt(_,st) -> st + | _ -> raise Not_found + with Not_found -> + Data.failure js "Unknown stmt id" + end) + +module Ki = Data.Collection + (struct + type t = kinstr + let syntax = Sy.union [ Sy.tag "global" ; Stmt.syntax ] + let to_json = function + | Kglobal -> `String "global" + | Kstmt st -> `String (Tag.of_stmt st) + let of_json = function + | `String "global" -> Kglobal + | js -> Kstmt (Stmt.of_json js) + end) + +module Kf = Data.Collection + (struct + type t = kernel_function + let syntax = Sy.publish ~page ~name:"fct-id" + ~synopsis:Sy.ident + ~descr:(Md.rm "Function identified by its global name.") () + let to_json kf = + `String (Kernel_function.get_name kf) + let of_json js = + try Js.to_string js |> Globals.Functions.find_by_name + with Not_found -> Data.failure js "Undefined function" + end) + +(* -------------------------------------------------------------------------- *) +(* --- Functions --- *) +(* -------------------------------------------------------------------------- *) + +let () = Request.register ~page + ~kind:`GET ~name:"kernel.ast.getFunctions" + ~descr:(Md.rm "Collect all functions in the AST") + ~input:(module Junit) ~output:(module Kf.Jlist) + begin fun () -> + let pool = ref [] in + Globals.Functions.iter (fun kf -> pool := kf :: !pool) ; + List.rev !pool + end + +let () = Request.register ~page + ~kind:`GET ~name:"kernel.ast.printFunction" + ~descr:(Md.rm "Print the AST of a function") + ~input:(module Kf) ~output:(module Jtext) + (fun kf -> Jbuffer.to_json PP.pp_global (Kernel_function.get_global kf)) + +(* -------------------------------------------------------------------------- *) diff --git a/src/plugins/server/kernel_ast.mli b/src/plugins/server/kernel_ast.mli new file mode 100644 index 0000000000000000000000000000000000000000..0b448e0e0bb89b4bd6ff46c94080022a91893f94 --- /dev/null +++ b/src/plugins/server/kernel_ast.mli @@ -0,0 +1,34 @@ +(**************************************************************************) +(* *) +(* This file is part of Frama-C. *) +(* *) +(* Copyright (C) 2007-2019 *) +(* CEA (Commissariat à l'énergie atomique et aux énergies *) +(* alternatives) *) +(* *) +(* you can redistribute it and/or modify it under the terms of the GNU *) +(* Lesser General Public License as published by the Free Software *) +(* Foundation, version 2.1. *) +(* *) +(* It is distributed in the hope that it will be useful, *) +(* but WITHOUT ANY WARRANTY; without even the implied warranty of *) +(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *) +(* GNU Lesser General Public License for more details. *) +(* *) +(* See the GNU Lesser General Public License version 2.1 *) +(* for more details (enclosed in the file licenses/LGPLv2.1). *) +(* *) +(**************************************************************************) + +open Cil_types + +(* -------------------------------------------------------------------------- *) +(** Ast Data *) +(* -------------------------------------------------------------------------- *) + +module PP : Printer_tag.S_pp +module Kf : Data.S_collection with type t = kernel_function +module Ki : Data.S_collection with type t = kinstr +module Stmt : Data.S_collection with type t = stmt + +(* -------------------------------------------------------------------------- *) diff --git a/src/plugins/server/kernel_main.ml b/src/plugins/server/kernel_main.ml new file mode 100644 index 0000000000000000000000000000000000000000..4cfd33596d14017a5ea0e0584435616387d44b84 --- /dev/null +++ b/src/plugins/server/kernel_main.ml @@ -0,0 +1,215 @@ +(**************************************************************************) +(* *) +(* This file is part of Frama-C. *) +(* *) +(* Copyright (C) 2007-2019 *) +(* CEA (Commissariat à l'énergie atomique et aux énergies *) +(* alternatives) *) +(* *) +(* you can redistribute it and/or modify it under the terms of the GNU *) +(* Lesser General Public License as published by the Free Software *) +(* Foundation, version 2.1. *) +(* *) +(* It is distributed in the hope that it will be useful, *) +(* but WITHOUT ANY WARRANTY; without even the implied warranty of *) +(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *) +(* GNU Lesser General Public License for more details. *) +(* *) +(* See the GNU Lesser General Public License version 2.1 *) +(* for more details (enclosed in the file licenses/LGPLv2.1). *) +(* *) +(**************************************************************************) + +open Data +module Sy = Syntax +module Md = Markdown +module Senv = Server_parameters + +(* -------------------------------------------------------------------------- *) +(* --- Frama-C Kernel Services --- *) +(* -------------------------------------------------------------------------- *) + +let page = Doc.page `Kernel ~title:"Kernel Services" ~filename:"kernel.md" + +(* -------------------------------------------------------------------------- *) +(* --- Config --- *) +(* -------------------------------------------------------------------------- *) + +let () = + let get_config = Request.signature + ~page ~kind:`GET ~name:"kernel.getConfig" + ~descr:(Md.rm "Frama-C Kernel configuration") + ~input:(module Junit) () in + let result name descr = + Request.result get_config ~name ~descr:(Md.rm descr) (module Jstring) in + let set_version = result "version" "Frama-C version" in + let set_datadir = result "datadir" "Shared directory (FRAMAC_SHARE)" in + let set_libdir = result "libdir" "Lib directory (FRAMAC_LIB)" in + let set_pluginpath = Request.result get_config + ~name:"pluginpath" ~descr:(Md.rm "Plugin directories (FRAMAC_PLUGIN)") + (module Jstring.Jlist) in + Request.register_sig get_config + begin fun rq () -> + set_version rq Config.version ; + set_datadir rq Config.datadir ; + set_libdir rq Config.libdir ; + set_pluginpath rq Config.plugin_dir ; + end + +(* -------------------------------------------------------------------------- *) +(* --- File Positions --- *) +(* -------------------------------------------------------------------------- *) + +module RawSource = +struct + type t = Filepath.position + let syntax = Sy.publish ~page ~name:"source" + ~synopsis:(Sy.record [ "file" , Sy.string ; "line" , Sy.int ]) + ~descr:(Md.rm "Source file positions.") + ~details:(Md.praw "The file path is normalized, \ + and the line number starts at one.") () + + let to_json p = `Assoc [ + "file" , `String (p.Filepath.pos_path :> string) ; + "line" , `Int p.Filepath.pos_lnum ; + ] + + let of_json = function + | `Assoc [ "file" , `String path ; "line" , `Int line ] + | `Assoc [ "line" , `Int line ; "file" , `String path ] + -> Log.source ~file:(Filepath.Normalized.of_string path) ~line + | js -> failure js "Invalid source format" + +end + +module LogSource = Collection(RawSource) + +(* -------------------------------------------------------------------------- *) +(* --- Log Lind --- *) +(* -------------------------------------------------------------------------- *) + +module RawKind = +struct + type t = Log.kind + let page = page + let name = "kind" + let descr = Md.rm "Frama-C message category." + let values = [ + Log.Error, "ERROR", Md.rm "User Error" ; + Log.Warning, "WARNING", Md.rm "User Warning" ; + Log.Feedback, "FEEDBACK", Md.rm "Analyzer Feedback" ; + Log.Result, "RESULT", Md.rm "Analyzer Result" ; + Log.Failure, "FAILURE", Md.rm "Analyzer Failure" ; + Log.Debug, "DEBUG", Md.rm "Analyser Debug" ; + ] +end + +module LogKind = Dictionary(RawKind) + +(* -------------------------------------------------------------------------- *) +(* --- Log Events --- *) +(* -------------------------------------------------------------------------- *) + +module RawEvent = +struct + + module R = Record + (struct + let page = page + let name = "log" + let descr = Md.rm "Message event record." + end) + + let syntax = R.syntax + + let descr = Md.rm + let kind = R.field "kind" ~descr:(descr "Message kind") (module LogKind) + let plugin = R.field "plugin" ~descr:(descr "Emitter plugin") (module Jstring) + let message = R.field "message" ~descr:(descr "Message text") (module Jstring) + + let category = R.option "category" + ~descr:(descr "Message category (DEBUG or WARNING)") + (module Jstring) + + let source = R.option "source" ~descr:(descr "Source file position") + (module LogSource) + + type t = Log.event + + let to_json evt = + R.default () |> + R.set plugin evt.Log.evt_plugin |> + R.set kind evt.Log.evt_kind |> + R.set category evt.Log.evt_category |> + R.set source evt.Log.evt_source |> + R.set message evt.Log.evt_message |> + R.to_json + + let of_json js = + let r = R.of_json js in + { + Log.evt_plugin = R.get plugin r ; + Log.evt_kind = R.get kind r ; + Log.evt_category = R.get category r ; + Log.evt_source = R.get source r ; + Log.evt_message = R.get message r ; + } + +end + +module LogEvent = Collection(RawEvent) + +(* -------------------------------------------------------------------------- *) +(* --- Log Monitoring --- *) +(* -------------------------------------------------------------------------- *) + +let monitoring = ref false +let monitored = ref false +let events : Log.event Queue.t = Queue.create () + +let monitor flag = + if flag != !monitoring then + ( if flag then + Senv.feedback "Start logs monitoring." + else + Senv.feedback "Stop logs monitoring." ) ; + monitoring := flag ; + if !monitoring && not !monitored then + begin + monitored := true ; + Log.add_listener (fun evt -> if !monitoring then Queue.add evt events) + end + +let monitor_logs () = monitor (Senv.Log.get ()) + +let monitor_server activity = + if activity then monitor true else monitor_logs () + +let () = + Main.on monitor_server ; + Cmdline.run_after_configuring_stage monitor_logs + +(* -------------------------------------------------------------------------- *) +(* --- Log Requests --- *) +(* -------------------------------------------------------------------------- *) + +let () = Request.register + ~page ~kind:`SET ~name:"kernel.setLogs" + ~descr:(Md.rm "Turn logs monitoring on/off") + ~input:(module Jbool) ~output:(module Junit) monitor + +let () = Request.register + ~page ~kind:`GET ~name:"kernel.getLogs" + ~descr:(Md.rm "Flush the last emitted logs since last call (max 100)") + ~input:(module Junit) ~output:(module LogEvent.Jlist) + begin fun () -> + let pool = ref [] in + let count = ref 100 in + while not (Queue.is_empty events) && !count > 0 do + decr count ; + pool := Queue.pop events :: !pool + done ; + List.rev !pool + end + +(* -------------------------------------------------------------------------- *) diff --git a/src/plugins/server/kernel_main.mli b/src/plugins/server/kernel_main.mli new file mode 100644 index 0000000000000000000000000000000000000000..726d654e626ac7c69a35f08b97cc75ca6f60a33c --- /dev/null +++ b/src/plugins/server/kernel_main.mli @@ -0,0 +1,30 @@ +(**************************************************************************) +(* *) +(* This file is part of Frama-C. *) +(* *) +(* Copyright (C) 2007-2019 *) +(* CEA (Commissariat à l'énergie atomique et aux énergies *) +(* alternatives) *) +(* *) +(* you can redistribute it and/or modify it under the terms of the GNU *) +(* Lesser General Public License as published by the Free Software *) +(* Foundation, version 2.1. *) +(* *) +(* It is distributed in the hope that it will be useful, *) +(* but WITHOUT ANY WARRANTY; without even the implied warranty of *) +(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *) +(* GNU Lesser General Public License for more details. *) +(* *) +(* See the GNU Lesser General Public License version 2.1 *) +(* for more details (enclosed in the file licenses/LGPLv2.1). *) +(* *) +(**************************************************************************) + +(* -------------------------------------------------------------------------- *) +(** Kernel Services *) +(* -------------------------------------------------------------------------- *) + +module LogSource : Data.S_collection with type t = Filepath.position +module LogEvent : Data.S_collection with type t = Log.event + +(* -------------------------------------------------------------------------- *) diff --git a/src/plugins/server/kernel_project.ml b/src/plugins/server/kernel_project.ml new file mode 100644 index 0000000000000000000000000000000000000000..883cea34f37b7ec3b8725d2c62282b14c07d22d9 --- /dev/null +++ b/src/plugins/server/kernel_project.ml @@ -0,0 +1,123 @@ +(**************************************************************************) +(* *) +(* This file is part of Frama-C. *) +(* *) +(* Copyright (C) 2007-2019 *) +(* CEA (Commissariat à l'énergie atomique et aux énergies *) +(* alternatives) *) +(* *) +(* you can redistribute it and/or modify it under the terms of the GNU *) +(* Lesser General Public License as published by the Free Software *) +(* Foundation, version 2.1. *) +(* *) +(* It is distributed in the hope that it will be useful, *) +(* but WITHOUT ANY WARRANTY; without even the implied warranty of *) +(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *) +(* GNU Lesser General Public License for more details. *) +(* *) +(* See the GNU Lesser General Public License version 2.1 *) +(* for more details (enclosed in the file licenses/LGPLv2.1). *) +(* *) +(**************************************************************************) + +open Data +module Sy = Syntax +module Md = Markdown +module Js = Yojson.Basic.Util + +let page = Doc.page `Kernel ~title:"Project Management" ~filename:"project.md" + +(* -------------------------------------------------------------------------- *) +(* --- Project Info --- *) +(* -------------------------------------------------------------------------- *) + +module ProjectInfo = + Collection + (struct + type t = Project.t + + let syntax = Sy.publish ~page ~name:"project-info" + ~descr:(Md.rm "Project informations") + ~synopsis:Sy.(record[ "id",ident; "name",string; "current",boolean ]) + () + + let of_json js = + Js.member "id" js |> Js.to_string |> Project.from_unique_name + + let to_json p = + `Assoc [ + "id", `String (Project.get_unique_name p) ; + "name", `String (Project.get_name p) ; + "current", `Bool (Project.is_current p) ; + ] + end) + +(* -------------------------------------------------------------------------- *) +(* --- Project Requests --- *) +(* -------------------------------------------------------------------------- *) + +module ProjectRequest = +struct + + type t = Project.t * string * json + + let syntax = Sy.publish ~page ~name:"project-request" + ~synopsis:(Sy.(record[ "project",ident; "request",string; "data",any; ])) + ~descr:(Md.rm "Request to be executed on the specified project.") () + + let of_json js = + begin + Project.from_unique_name Js.(member "project" js |> to_string) , + Js.(member "request" js |> to_string) , + Js.(member "data" js) + end + + let process kind (project,request,data) = + match Main.find request with + | Some(kd,handler) when kd = kind -> Project.on project handler data + | Some _ -> failwith (Printf.sprintf "Incompatible kind for '%s'" request) + | None -> failwith (Printf.sprintf "Request '%s' undefined" request) + +end + +(* -------------------------------------------------------------------------- *) +(* --- Project Requests --- *) +(* -------------------------------------------------------------------------- *) + +let () = Request.register ~page + ~kind:`GET ~name:"kernel.project.getCurrent" + ~descr:(Md.rm "Returns the current project") + ~input:(module Junit) ~output:(module ProjectInfo) + Project.current + +let () = Request.register ~page + ~kind:`SET ~name:"kernel.project.setCurrent" + ~descr:(Md.rm "Switches the current project") + ~input:(module Jident) ~output:(module Junit) + (fun pid -> Project.(set_current (from_unique_name pid))) + +let () = Request.register ~page + ~kind:`GET ~name:"kernel.project.getList" + ~descr:(Md.rm "Returns the list of all projects") + ~input:(module Junit) ~output:(module ProjectInfo.Jlist) + (fun () -> Project.fold_on_projects (fun ids p -> p :: ids) []) + +let () = Request.register ~page + ~kind:`GET ~name:"kernel.project.getOn" + ~descr:(Md.rm "Execute a GET request within the given project") + ~input:(module ProjectRequest) ~output:(module Jany) + (ProjectRequest.process `GET) + +let () = Request.register ~page + ~kind:`SET ~name:"kernel.project.setOn" + ~descr:(Md.rm "Execute a SET request within the given project") + ~input:(module ProjectRequest) ~output:(module Jany) + (ProjectRequest.process `SET) + +let () = Request.register ~page + ~kind:`EXEC ~name:"kernel.project.execOn" + ~descr:(Md.rm "Execute an EXEC request within the given project") + ~input:(module ProjectRequest) ~output:(module Jany) + (ProjectRequest.process `EXEC) + +(* -------------------------------------------------------------------------- *) diff --git a/src/plugins/server/kernel_project.mli b/src/plugins/server/kernel_project.mli new file mode 100644 index 0000000000000000000000000000000000000000..975e1e094f80f095534935294154b22ef3d95979 --- /dev/null +++ b/src/plugins/server/kernel_project.mli @@ -0,0 +1,32 @@ +(**************************************************************************) +(* *) +(* This file is part of Frama-C. *) +(* *) +(* Copyright (C) 2007-2019 *) +(* CEA (Commissariat à l'énergie atomique et aux énergies *) +(* alternatives) *) +(* *) +(* you can redistribute it and/or modify it under the terms of the GNU *) +(* Lesser General Public License as published by the Free Software *) +(* Foundation, version 2.1. *) +(* *) +(* It is distributed in the hope that it will be useful, *) +(* but WITHOUT ANY WARRANTY; without even the implied warranty of *) +(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *) +(* GNU Lesser General Public License for more details. *) +(* *) +(* See the GNU Lesser General Public License version 2.1 *) +(* for more details (enclosed in the file licenses/LGPLv2.1). *) +(* *) +(**************************************************************************) + +open Data + +(* -------------------------------------------------------------------------- *) +(** Project Services *) +(* -------------------------------------------------------------------------- *) + +module ProjectInfo : Data.S with type t = Project.t +module ProjectRequest : Request.Input with type t = Project.t * string * json + +(* -------------------------------------------------------------------------- *) diff --git a/src/plugins/server/main.ml b/src/plugins/server/main.ml new file mode 100644 index 0000000000000000000000000000000000000000..2602e89fe5f4b7cef908529ccf56db56f41dc3ad --- /dev/null +++ b/src/plugins/server/main.ml @@ -0,0 +1,300 @@ +(**************************************************************************) +(* *) +(* This file is part of Frama-C. *) +(* *) +(* Copyright (C) 2007-2019 *) +(* CEA (Commissariat à l'énergie atomique et aux énergies *) +(* alternatives) *) +(* *) +(* you can redistribute it and/or modify it under the terms of the GNU *) +(* Lesser General Public License as published by the Free Software *) +(* Foundation, version 2.1. *) +(* *) +(* It is distributed in the hope that it will be useful, *) +(* but WITHOUT ANY WARRANTY; without even the implied warranty of *) +(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *) +(* GNU Lesser General Public License for more details. *) +(* *) +(* See the GNU Lesser General Public License version 2.1 *) +(* for more details (enclosed in the file licenses/LGPLv2.1). *) +(* *) +(**************************************************************************) + +(* -------------------------------------------------------------------------- *) +(* --- Server Main Process --- *) +(* -------------------------------------------------------------------------- *) + +module Senv = Server_parameters + +let option f = function None -> () | Some x -> f x + +(* -------------------------------------------------------------------------- *) +(* --- Registry --- *) +(* -------------------------------------------------------------------------- *) + +type kind = [ `GET | `SET | `EXEC ] +let string_of_kind = function `GET -> "GET" | `SET -> "SET" | `EXEC -> "EXEC" +let pp_kind fmt kd = Format.pp_print_string fmt (string_of_kind kd) + +let registry = Hashtbl.create 32 + +let register (kind : kind) request handler = + if Hashtbl.mem registry request then + Server_parameters.failure "Request '%s' already registered" request + else + Hashtbl.add registry request (kind,handler) + +let find request = + try Some (Hashtbl.find registry request) + with Not_found -> None + +let exec request data = (snd (Hashtbl.find registry request)) data + +(* -------------------------------------------------------------------------- *) +(* --- Public API --- *) +(* -------------------------------------------------------------------------- *) + +type json = Json.t + +type 'a request = [ + | `Poll + | `Request of 'a * string * json + | `Kill of 'a + | `Shutdown +] + +type 'a response = [ + | `Data of 'a * json + | `Error of 'a * string + | `Killed of 'a + | `Rejected of 'a +] + +type 'a message = { + requests : 'a request list ; + callback : 'a response list -> unit ; +} + +(* Private API: *) + +type 'a exec = { + id : 'a ; + request : string ; + data : json ; + handler : json -> json ; + yield : bool ; + mutable killed : bool ; +} + +type 'a server = { + rate : int ; + pretty : Format.formatter -> 'a -> unit ; + equal : 'a -> 'a -> bool ; + fetch : unit -> 'a message option ; + q_in : 'a exec Queue.t ; + q_out : 'a response Stack.t ; + mutable shutdown : bool ; + mutable coins : int ; + mutable running : 'a exec option ; +} + +exception Killed + +(* -------------------------------------------------------------------------- *) +(* --- Debug --- *) +(* -------------------------------------------------------------------------- *) + +let pp_request pp fmt (r : _ request) = + match r with + | `Poll -> Format.fprintf fmt "Poll" + | `Shutdown -> Format.fprintf fmt "Shutdown" + | `Kill id -> Format.fprintf fmt "Kill %a" pp id + | `Request(id,request,data) -> + if Senv.debug_atleast 2 then + Format.fprintf fmt "@[<hov 2>Request %s:%a@ %a@]" + request pp id Data.pretty data + else + Format.fprintf fmt "Request %s:%a" request pp id + +let pp_response pp fmt (r : _ response) = + match r with + | `Error(id,err) -> Format.fprintf fmt "Error %a: %s" pp id err + | `Rejected id -> Format.fprintf fmt "Rejected %a" pp id + | `Killed id -> Format.fprintf fmt "Killed %a" pp id + | `Data(id,data) -> + if Senv.debug_atleast 2 then + Format.fprintf fmt "@[<hov 2>Response %a@ %a@]" + pp id Data.pretty data + else + Format.fprintf fmt "Response %a" pp id + +(* -------------------------------------------------------------------------- *) +(* --- Request Handling --- *) +(* -------------------------------------------------------------------------- *) + +let no_yield () = () + +let execute yield exec : _ response = + let db = !Db.progress in + try + Db.progress := if exec.yield then yield else no_yield ; + let data = exec.handler exec.data in + Db.progress := db ; `Data(exec.id,data) + with + | Killed -> Db.progress := db ; `Killed exec.id + | exn -> + Db.progress := db ; + Senv.warning "[%s] Uncaught exception:@\n%s" + exec.request (Cmdline.protect exn) ; + `Error(exec.id,Printexc.to_string exn) + +let execute_debug pp yield exec = + if Senv.debug_atleast 1 then + Senv.debug "Trigger %s:%a" exec.request pp exec.id ; + execute yield exec + +let reply_debug server resp = + if Senv.debug_atleast 1 then + Senv.debug "%a" (pp_response server.pretty) resp ; + Stack.push resp server.q_out + +(* -------------------------------------------------------------------------- *) +(* --- Processing Requests --- *) +(* -------------------------------------------------------------------------- *) + +let raise_if_killed = function { killed } -> if killed then raise Killed +let kill_exec e = e.killed <- true +let kill_request eq id e = if eq id e.id then e.killed <- true + +let process_request (server : 'a server) (request : 'a request) : unit = + if Senv.debug_atleast 1 then + Senv.debug "%a" (pp_request server.pretty) request ; + match request with + | `Poll -> () + | `Shutdown -> + begin + option kill_exec server.running ; + Queue.clear server.q_in ; + Stack.clear server.q_out ; + server.shutdown <- true ; + end + | `Kill id -> + begin + let kill = kill_request server.equal id in + Queue.iter kill server.q_in ; + option kill server.running ; + end + | `Request(id,request,data) -> + begin + match find request with + | None -> reply_debug server (`Rejected id) + | Some( `GET , handler ) -> + let exec = { id ; request ; handler ; data ; + yield = false ; killed = false } in + reply_debug server (execute no_yield exec) + | Some( `SET , handler ) -> + let exec = { id ; request ; handler ; data ; + yield = false ; killed = false } in + Queue.push exec server.q_in + | Some( `EXEC , handler ) -> + let exec = { id ; request ; handler ; data ; + yield = true ; killed = false } in + Queue.push exec server.q_in + end + +(* -------------------------------------------------------------------------- *) +(* --- Fetching a Bunck of Messages --- *) +(* -------------------------------------------------------------------------- *) + +let communicate server = + match server.fetch () with + | None -> false + | Some message -> + let error = + try List.iter (process_request server) message.requests ; None + with exn -> Some exn in (* re-raised after message reply *) + let pool = ref [] in + Stack.iter (fun r -> pool := r :: !pool) server.q_out ; + Stack.clear server.q_out ; + message.callback !pool ; + option raise error ; true + +(* -------------------------------------------------------------------------- *) +(* --- Yielding --- *) +(* -------------------------------------------------------------------------- *) + +let do_yield server () = + begin + option raise_if_killed server.running ; + let n = server.coins in + if n < server.rate then + server.coins <- succ n + else + ( server.coins <- 0 ; ignore ( communicate server ) ) ; + end + +(* -------------------------------------------------------------------------- *) +(* --- One Step Process --- *) +(* -------------------------------------------------------------------------- *) + +let rec fetch_exec q = + if Queue.is_empty q then None + else + let e = Queue.pop q in + if e.killed then fetch_exec q else Some e + +let process server = + match fetch_exec server.q_in with + | None -> communicate server + | Some exec -> + server.running <- Some exec ; + try + reply_debug server (execute_debug server.pretty (do_yield server) exec) ; + server.running <- None ; + true + with exn -> + server.running <- None ; + raise exn + +(* -------------------------------------------------------------------------- *) +(* --- Server Main Loop --- *) +(* -------------------------------------------------------------------------- *) + +let in_range ~min:a ~max:b v = min (max a v) b + +let kill () = raise Killed +let yield () = !Db.progress () + +let demons = ref [] +let on callback = demons := !demons @ [ callback ] +let signal activity = + List.iter (fun f -> try f activity with _ -> ()) !demons + +let run ~pretty ?(equal=(=)) ~fetch () = + begin + let rate = in_range ~min:1 ~max:200 (Senv.Rate.get ()) in + let idle_ms = in_range ~min:1 ~max:2000 (Senv.Idle.get ()) in + let idle_s = float_of_int idle_ms /. 1000.0 in + let server = { + fetch ; coins = 0 ; rate ; equal ; pretty ; + q_in = Queue.create () ; + q_out = Stack.create () ; + running = None ; + shutdown = false ; + } in + try + signal true ; + Senv.feedback "Server running." ; + while not server.shutdown do + let activity = process server in + if not activity then Unix.sleepf idle_s ; + done ; + Senv.feedback "Server shutdown." ; + signal false ; + with err -> + Senv.feedback "Server interruped (fatal error)." ; + signal false ; + raise err + end + +(* -------------------------------------------------------------------------- *) diff --git a/src/plugins/server/main.mli b/src/plugins/server/main.mli new file mode 100644 index 0000000000000000000000000000000000000000..721291d96e9b93c4d65676fb83b216fafba39bd7 --- /dev/null +++ b/src/plugins/server/main.mli @@ -0,0 +1,96 @@ +(**************************************************************************) +(* *) +(* This file is part of Frama-C. *) +(* *) +(* Copyright (C) 2007-2019 *) +(* CEA (Commissariat à l'énergie atomique et aux énergies *) +(* alternatives) *) +(* *) +(* you can redistribute it and/or modify it under the terms of the GNU *) +(* Lesser General Public License as published by the Free Software *) +(* Foundation, version 2.1. *) +(* *) +(* It is distributed in the hope that it will be useful, *) +(* but WITHOUT ANY WARRANTY; without even the implied warranty of *) +(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *) +(* GNU Lesser General Public License for more details. *) +(* *) +(* See the GNU Lesser General Public License version 2.1 *) +(* for more details (enclosed in the file licenses/LGPLv2.1). *) +(* *) +(**************************************************************************) + +(* -------------------------------------------------------------------------- *) +(** Server Main Process *) +(* -------------------------------------------------------------------------- *) + +type json = Json.t +type kind = [ `GET | `SET | `EXEC ] +val string_of_kind : kind -> string +val pp_kind : Format.formatter -> kind -> unit + +(* -------------------------------------------------------------------------- *) +(** {2 Request Registry} *) +(* -------------------------------------------------------------------------- *) + +val register : kind -> string -> (json -> json) -> unit +val find : string -> (kind * (json -> json)) option +val exec : string -> json -> json (** @raises Not_found if not registered *) + +(* -------------------------------------------------------------------------- *) +(** {2 Server Main Process} *) +(* -------------------------------------------------------------------------- *) + +(** Type of request messages. + Parametrized by the type of request identifiers. *) +type 'a request = [ + | `Poll + | `Request of 'a * string * json + | `Kill of 'a + | `Shutdown +] + +(** Type of response messages. + Parametrized by the type of request identifiers. *) +type 'a response = [ + | `Data of 'a * json + | `Error of 'a * string + | `Killed of 'a + | `Rejected of 'a +] + +(** A paired request-response message. + The callback will be called exactly once for each received message. *) +type 'a message = { + requests : 'a request list ; + callback : 'a response list -> unit ; +} + +(** + Run a server with the provided low-level network primitives to + actually exchange data. + + The function does not return until the server is explicitely + Shutdown. Logs are monitored unless [~logs:false] is specified. + + Default equality is the standard `(=)` one. +*) +val run : + pretty:(Format.formatter -> 'a -> unit) -> + ?equal:('a -> 'a -> bool) -> + fetch:(unit -> 'a message option) -> + unit -> unit + +(** Yield the server during the currently running request. + Actually, calls [!Db.progress()]. *) +val yield : unit -> unit + +(** Kills the currently running request. Actually raises an exception. *) +val kill : unit -> 'a + +(** Register a callback to listen for server activity. + All callbacks would be executed in their order of registration. + They shall {i never} raise any exception. *) +val on : (bool -> unit) -> unit + +(* -------------------------------------------------------------------------- *) diff --git a/src/plugins/server/request.ml b/src/plugins/server/request.ml new file mode 100644 index 0000000000000000000000000000000000000000..b355b3907879b1e91eef4345b217d39680fb98bc --- /dev/null +++ b/src/plugins/server/request.ml @@ -0,0 +1,331 @@ +(**************************************************************************) +(* *) +(* This file is part of Frama-C. *) +(* *) +(* Copyright (C) 2007-2019 *) +(* CEA (Commissariat à l'énergie atomique et aux énergies *) +(* alternatives) *) +(* *) +(* you can redistribute it and/or modify it under the terms of the GNU *) +(* Lesser General Public License as published by the Free Software *) +(* Foundation, version 2.1. *) +(* *) +(* It is distributed in the hope that it will be useful, *) +(* but WITHOUT ANY WARRANTY; without even the implied warranty of *) +(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *) +(* GNU Lesser General Public License for more details. *) +(* *) +(* See the GNU Lesser General Public License version 2.1 *) +(* for more details (enclosed in the file licenses/LGPLv2.1). *) +(* *) +(**************************************************************************) + +module Senv = Server_parameters +module Jutil = Yojson.Basic.Util + +(* -------------------------------------------------------------------------- *) +(* --- Request Registry --- *) +(* -------------------------------------------------------------------------- *) + +type json = Data.json +type kind = [ `GET | `SET | `EXEC ] + +module type Input = +sig + type t + val syntax : Syntax.t + val of_json : json -> t +end + +module type Output = +sig + type t + val syntax : Syntax.t + val to_json : t -> json +end + +type 'a input = (module Input with type t = 'a) +type 'a output = (module Output with type t = 'a) + +(* -------------------------------------------------------------------------- *) +(* --- Sanity Checks --- *) +(* -------------------------------------------------------------------------- *) + +let re_set = Str.regexp_string_case_fold "SET" +let re_get = Str.regexp_case_fold "\\(GET\\|PRINT\\)" +let re_exec = Str.regexp_case_fold "\\(EXEC\\|COMPUTE\\)" +let re_name = Str.regexp_case_fold "[a-zA-Z0-9.]+$" + +let wpage = Senv.register_warn_category "inconsistent-page" +let wkind = Senv.register_warn_category "inconsistent-kind" + +let check_name name = + if not (Str.string_match re_name name 0) then + Senv.warning ~wkey:Senv.wname + "Request %S is not a dot-separated list of (camlCased) identifiers" name + +let check_plugin plugin name = + let p = String.lowercase_ascii plugin in + let n = String.lowercase_ascii name in + let k = String.length plugin in + if not (String.length name > k && + String.sub n 0 k = p && + String.get n k = '.') + then + Senv.warning ~wkey:wpage + "Request '%s' shall be named « %s.* »" + name (String.capitalize_ascii plugin) + +let check_page page name = + match Doc.chapter page with + | `Kernel -> check_plugin "kernel" name + | `Plugin plugin -> check_plugin plugin name + | `Protocol -> + Senv.warning ~wkey:wkind + "Request '%s' shall not be published in protocol pages" name + +let check_kind kind name = + let re,key = match kind with + | `GET -> re_get , "get|print" + | `SET -> re_set , "set" + | `EXEC -> re_exec , "exec|compute" + in try ignore (Str.search_forward re name 0) with Not_found -> + Senv.warning "Request '%s' shall be named with « %s »" + name key + +(* -------------------------------------------------------------------------- *) +(* --- Multiple Fields Requests --- *) +(* -------------------------------------------------------------------------- *) + +module Fmap = Map.Make(String) + +type rq = { + mutable param : json Fmap.t ; + mutable result : json Fmap.t ; +} + +let fmap_of_json r js = + List.fold_left + (fun r (fd,js) -> Fmap.add fd js r) + r (Jutil.to_assoc js) + +let fmap_to_json r = + `Assoc (Fmap.fold (fun fd js r -> (fd,js)::r) r []) + +type 'a param = rq -> 'a +type 'a result = rq -> 'a -> unit + +(* -------------------------------------------------------------------------- *) +(* --- Input/Output Request Processing --- *) +(* -------------------------------------------------------------------------- *) + +type _ rq_input = + | Pnone + | Pdata : 'a input -> 'a rq_input + | Pfields : Syntax.field list -> unit rq_input + +type _ rq_output = + | Rnone + | Rdata : 'a output -> 'a rq_output + | Rfields : Syntax.field list -> unit rq_output + +(* json input syntax *) +let sy_input (type a) (input : a rq_input) : Syntax.t = + match input with + | Pnone -> assert false + | Pdata d -> let module D = (val d) in D.syntax + | Pfields _ -> Syntax.record [] + +(* json output syntax *) +let sy_output (type b) (output : b rq_output) : Syntax.t = + match output with + | Rnone -> assert false + | Rdata d -> let module D = (val d) in D.syntax + | Rfields _ -> Syntax.record [] + +(* json input documentation *) +let doc_input (type a) (input : a rq_input) : Markdown.block = + match input with + | Pnone -> assert false + | Pdata _ -> Markdown.empty + | Pfields fs -> Syntax.fields ~title:"Input" (List.rev fs) + +(* json output syntax *) +let doc_output (type b) (output : b rq_output) : Markdown.block = + match output with + | Rnone -> assert false + | Rdata _ -> Markdown.empty + | Rfields fs -> Syntax.fields ~title:"Output" (List.rev fs) + +(* -------------------------------------------------------------------------- *) +(* --- Multi-Parameters Requests --- *) +(* -------------------------------------------------------------------------- *) + +type ('a,'b) signature = { + page : Doc.page ; + kind : kind ; + name : string ; + descr : Markdown.text ; + details : Markdown.block ; + mutable defined : bool ; + mutable defaults : json Fmap.t ; + mutable required : string list ; + mutable input : 'a rq_input ; + mutable output : 'b rq_output ; +} + +let failure_missing fmap name = + Data.failure (fmap_to_json fmap) "Missing parameter '%s'" name + +let check_required fmap fd = + if not (Fmap.mem fd fmap) then failure_missing fmap fd + +(* -------------------------------------------------------------------------- *) +(* --- Named Input Parameters Definitions --- *) +(* -------------------------------------------------------------------------- *) + +(* current input fields *) +let fds_input s : Syntax.field list = + if s.defined then Senv.failure "Request '%s' has been finalized." s.name ; + match s.input with + | Pdata _ -> + Senv.fatal "Can not define named parameters for request '%s'" s.name + | Pnone -> [] + | Pfields fds -> fds + +let param (type a b) (s : (unit,b) signature) ~name ~descr + ?default (input : a input) : a param = + let module D = (val input) in + let syntax = if default = None then D.syntax else Syntax.option D.syntax in + let fd = Syntax.{ name ; syntax ; descr } in + s.input <- Pfields (fd :: fds_input s) ; + fun rq -> + try D.of_json (Fmap.find name rq.param) + with Not_found -> + match default with + | None -> failure_missing rq.param name + | Some v -> v + +let param_opt (type a b) (s : (unit,b) signature) ~name ~descr + (input : a input) : a option param = + let module D = (val input) in + let fd = Syntax.{ name ; syntax = Syntax.option D.syntax ; descr } in + s.input <- Pfields (fd :: fds_input s) ; + fun rq -> + try Some(D.of_json (Fmap.find name rq.param)) + with Not_found -> None + +(* -------------------------------------------------------------------------- *) +(* --- Named Output Parameters Definitions --- *) +(* -------------------------------------------------------------------------- *) + +(* current output fields *) +let fds_output s : Syntax.field list = + if s.defined then Senv.failure "Request '%s' has been finalized." s.name ; + match s.output with + | Rdata _ -> Senv.fatal "Can not define named results request '%s'" s.name + | Rnone -> [] + | Rfields fds -> fds + +let result (type a b) (s : (a,unit) signature) ~name ~descr + ?default (output : b output) : b result = + let module D = (val output) in + let fd = Syntax.{ name ; syntax = D.syntax ; descr } in + s.output <- Rfields (fd :: fds_output s) ; + begin + match default with + | None -> s.required <- name :: s.required + | Some v -> s.defaults <- Fmap.add name (D.to_json v) s.defaults + end ; + fun rq v -> rq.result <- Fmap.add name (D.to_json v) rq.result + +let result_opt (type a b) (s : (a,unit) signature) ~name ~descr + (output : b output) : b option result = + let module D = (val output) in + let fd = Syntax.{ name ; syntax = option D.syntax ; descr } in + s.output <- Rfields (fd :: fds_output s) ; + fun rq opt -> + match opt with None -> () | Some v -> + rq.result <- Fmap.add name (D.to_json v) rq.result + +(* -------------------------------------------------------------------------- *) +(* --- Opened Signature Definition --- *) +(* -------------------------------------------------------------------------- *) + +let signature + ~page ~kind ~name ~descr ?(details=Markdown.empty) + ?input ?output () = + check_name name ; + check_page page name ; + check_kind kind name ; + let input = match input with None -> Pnone | Some d -> Pdata d in + let output = match output with None -> Rnone | Some d -> Rdata d in + { + page ; kind ; name ; descr ; details ; + defaults = Fmap.empty ; required = [] ; + input ; output ; defined = false ; + } + +(* -------------------------------------------------------------------------- *) +(* --- Opened Signature Process --- *) +(* -------------------------------------------------------------------------- *) + +(* json input processing *) +let mk_input (type a) name defaults (input : a rq_input) : (rq -> json -> a) = + match input with + | Pnone -> Senv.fatal "No input defined for request '%s'" name + | Pdata d -> + let module D = (val d) in + (fun rq js -> rq.result <- defaults ; D.of_json js) + | Pfields _ -> + (fun rq js -> rq.param <- fmap_of_json rq.param js) + +(* json output processing *) +let mk_output (type b) name required (output : b rq_output) : (rq -> b -> json) = + match output with + | Rnone -> Senv.fatal "No output defined for request '%s'" name + | Rdata d -> + let module D = (val d) in (fun _rq v -> D.to_json v) + | Rfields _ -> + (fun rq () -> + List.iter (check_required rq.result) required ; + fmap_to_json rq.result) + +let register_sig (type a b) (s : (a,b) signature) (process : rq -> a -> b) = + if s.defined then + Senv.fatal "Request '%s' is defined twice" s.name ; + let input = mk_input s.name s.defaults s.input in + let output = mk_output s.name s.required s.output in + let processor js = + let rq = { param = Fmap.empty ; result = Fmap.empty } in + js |> input rq |> process rq |> output rq + in + let skind = Main.string_of_kind s.kind in + let title = Printf.sprintf "`%s` %s" skind s.name in + let synopsis = + Markdown.table + [`Center "Input" ; `Center "Output" ] + [[ Syntax.format @@ sy_input s.input ; + Syntax.format @@ sy_output s.output ]] in + let content = + Markdown.concat [ + Markdown.par s.descr ; + synopsis ; + s.details ; + doc_input s.input ; + doc_output s.output ; + ] in + let _ = Doc.publish ~page:s.page ~name:s.name ~title content [] in + Main.register s.kind s.name processor ; + s.defined <- true + +(* -------------------------------------------------------------------------- *) +(* --- Request Registration --- *) +(* -------------------------------------------------------------------------- *) + +let register ~page ~kind ~name ~descr ?details ~input ~output process = + register_sig + (signature ~page ~kind ~name ~descr ?details ~input ~output ()) + (fun _rq v -> process v) + +(* -------------------------------------------------------------------------- *) diff --git a/src/plugins/server/request.mli b/src/plugins/server/request.mli new file mode 100644 index 0000000000000000000000000000000000000000..c855405cb85088b1d88e60660a5a6e86e268493e --- /dev/null +++ b/src/plugins/server/request.mli @@ -0,0 +1,195 @@ +(**************************************************************************) +(* *) +(* This file is part of Frama-C. *) +(* *) +(* Copyright (C) 2007-2019 *) +(* CEA (Commissariat à l'énergie atomique et aux énergies *) +(* alternatives) *) +(* *) +(* you can redistribute it and/or modify it under the terms of the GNU *) +(* Lesser General Public License as published by the Free Software *) +(* Foundation, version 2.1. *) +(* *) +(* It is distributed in the hope that it will be useful, *) +(* but WITHOUT ANY WARRANTY; without even the implied warranty of *) +(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *) +(* GNU Lesser General Public License for more details. *) +(* *) +(* See the GNU Lesser General Public License version 2.1 *) +(* for more details (enclosed in the file licenses/LGPLv2.1). *) +(* *) +(**************************************************************************) + +(* -------------------------------------------------------------------------- *) +(** Request Registry *) +(* -------------------------------------------------------------------------- *) + +type json = Data.json +type kind = [ `GET | `SET | `EXEC ] + +module type Input = +sig + type t + val syntax : Syntax.t + val of_json : json -> t +end + +module type Output = +sig + type t + val syntax : Syntax.t + val to_json : t -> json +end + +type 'a input = (module Input with type t = 'a) +type 'b output = (module Output with type t = 'b) + +(** {2 Simple Requests Registration} *) + +(** Register a simple request of type [(a -> b)]. + + Name, page and kind must be consistent with each others: + - No publication on [`Protocol] pages + - Kernel requests shall starts with ["Kernel.*"] + - Plugin requests shall starts with ["<Plugin>.*"] + - SET requests must contain ["set"] (case insensitive) + - GET requests must contain ["get"] or ["print"] (case insensitive) + - EXEC requests must contain ["exec"] or ["compute"] (case insensitive) + +*) +val register : + page:Doc.page -> + kind:kind -> + name:string -> + descr:Markdown.text -> + ?details:Markdown.block -> + input:'a input -> + output:'b output -> + ('a -> 'b) -> unit + +(** {2 Requests with Named Parameters} + + The API below allows for creating requests with + named and optional parameters. Although such requests + could be defined with simple registration and {i record} datatypes, + the helpers below allow more flexibility and a better correspondance + between optional parameters and OCaml option types. + + To register a request with named parameters and/or named results, + you first create a {i signature}. Then you define named + parameters and results, and finally you {i register} the processing + function: + + {[ + (* ---- Exemple of Request Registration --- *) + let () = + let s = Request.signature ~page ~kind ~name ~descr () in + let get_a = Request.param s ~name:"a" ~descr:"..." (module A) in + let get_b = Request.param s ~name:"b" ~descr:"..." (module B) in + let set_c = Request.result s ~name:"c" ~descr:"..." (module C) in + let set_d = Request.result s ~name:"d" ~descr:"..." (module D) in + Request.register_sig s + (fun rq () -> + let (c,d) = some_job (get_a rq) (get_b rq) in + set_c rq c ; set_d rq d) + ]} + +*) + +(** Under definition request signature. *) +type ('a,'b) signature + +(** Create an opened request signature. + Depending on whether [~input] and [~output] datatype are provided, + you shall define named parameters and results before registering the + request processing function. *) +val signature : + page:Doc.page -> + kind:kind -> + name:string -> + descr:Markdown.text -> + ?details:Markdown.block -> + ?input:'a input -> + ?output:'b output -> + unit -> ('a,'b) signature + +(** Request JSON parameters. *) +type rq + +(** Named input parameter. *) +type 'a param = rq -> 'a + +(** Named output parameter. *) +type 'b result = rq -> 'b -> unit + +(** Register the request JSON processing function. + This call finalize the signature definition and shall be called + once on the signature. *) +val register_sig : ('a,'b) signature -> (rq -> 'a -> 'b) -> unit + +(** {2 Named Parameters and Results} + + The functions bellow must be called on a freshly created signature + {i before} its final registration. The obtained getters and setters + shall be only used within the registered process. + + The correspondance between input/output JSON syntax and OCaml values + is summarized in the tables below.Abstract_domain + + For named input parameters: + [ + + API: Input JSON OCaml Getter + ----------------------------------------------------------------------- + Request.param { f: a } 'a (* might raise an exception *) + Request.param ~default { f: a? } 'a (* defined by default *) + Request.param_opt { f: a? } 'a option + + ] + + + For named output parameters: + [ + + API: Input JSON OCaml Setter + ---------------------------------------------------------------------- + Request.result { f: a } 'a (* shall be set by process *) + Request.result ~default { f: a } 'a (* defined by default *) + Request.result_opt { f: a? } 'a option + + ] + +*) + + +(** Named input parameter. If a default value is provided, + the JSON input field becomes optional. Otherwized, it is required. *) +val param : (unit,'b) signature -> + name:string -> + descr:Markdown.text -> + ?default:'a -> + 'a input -> 'a param + +(** Named optional input parameter. *) +val param_opt : (unit,'b) signature -> + name:string -> + descr:Markdown.text -> + 'a input -> 'a option param + +(** Named output parameter. If a default value is provided, + the JSON output field is initialized with it. + Otherwized, it shall be set at each invocation of the request processing + funciton. *) +val result : ('a,unit) signature -> + name:string -> + descr:Markdown.text -> + ?default:'b -> + 'b output -> 'b result + +(** Named optional output parameter. The initial value is set to [None]. *) +val result_opt : ('a,unit) signature -> + name:string -> + descr:Markdown.text -> + 'b output -> 'b option result + +(* -------------------------------------------------------------------------- *) diff --git a/src/plugins/server/server_batch.ml b/src/plugins/server/server_batch.ml new file mode 100644 index 0000000000000000000000000000000000000000..0aa3c03b310a2c1104baf91a712a17bd17a9f01b --- /dev/null +++ b/src/plugins/server/server_batch.ml @@ -0,0 +1,106 @@ +(**************************************************************************) +(* *) +(* This file is part of Frama-C. *) +(* *) +(* Copyright (C) 2007-2019 *) +(* CEA (Commissariat à l'énergie atomique et aux énergies *) +(* alternatives) *) +(* *) +(* you can redistribute it and/or modify it under the terms of the GNU *) +(* Lesser General Public License as published by the Free Software *) +(* Foundation, version 2.1. *) +(* *) +(* It is distributed in the hope that it will be useful, *) +(* but WITHOUT ANY WARRANTY; without even the implied warranty of *) +(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *) +(* GNU Lesser General Public License for more details. *) +(* *) +(* See the GNU Lesser General Public License version 2.1 *) +(* for more details (enclosed in the file licenses/LGPLv2.1). *) +(* *) +(**************************************************************************) + +(* Only Compiled when package Zmq is installed *) +(* No interface, registered via side-effects *) + +(* -------------------------------------------------------------------------- *) +(* --- ZeroMQ Server Options --- *) +(* -------------------------------------------------------------------------- *) + +module Senv = Server_parameters + +let batch_group = Senv.add_group "Protocol BATCH" + +let () = Parameter_customize.set_group batch_group +module Batch = Senv.String_list + (struct + let option_name = "-server-batch" + let arg_name = "file.json,..." + let help = + "Executes all requests in each <file.json>, and save the \ + associated results in <file.out.json>." + end) + +let _ = Doc.page `Protocol ~title:"Batch Protocol" ~filename:"server_batch.md" + +(* -------------------------------------------------------------------------- *) +(* --- Execute JSON --- *) +(* -------------------------------------------------------------------------- *) + +module Js = Yojson.Basic +module Ju = Yojson.Basic.Util + +let pretty = Js.pretty_print ~std:false + +let execute_command js = + let request = Ju.member "request" js |> Ju.to_string in + let id = Ju.member "id" js in + let data = Ju.member "data" js in + match Main.find request with + | None -> + Senv.error "[batch] %a: request %S not found" pretty id request ; + `Assoc [ "id" , id ; "error" , `String "request not found" ] + | Some (kind,handler) -> + try + Senv.feedback "[%a] %s" Main.pp_kind kind request ; + `Assoc [ "id" , id ; "data" , handler data ] + with Ju.Type_error(msg,js) -> + Senv.error "[%s] incorrect encoding:@\n%s@\n@[<hov 2>At: %a@]@." + request msg pretty js ; + `Assoc [ "id" , id ; "error" , `String msg ; "at" , js ] + +let rec execute_batch js = + match js with + | `Null -> `Null + | `List js -> `List (List.map execute_batch js) + | js -> + try execute_command js + with Ju.Type_error(msg,js) -> + Senv.error "[batch] incorrect encoding:@\n%s@\n@[<hov 2>At: %a@]@." + msg pretty js ; + `Null + +(* -------------------------------------------------------------------------- *) +(* --- Execute the Scripts --- *) +(* -------------------------------------------------------------------------- *) + +let execute () = + begin + List.iter + begin fun file -> + Senv.feedback "Script %S" file ; + let response = execute_batch (Js.from_file file) in + let output = Filename.remove_extension file ^ ".out.js" in + Senv.feedback "Output %S" output ; + Js.to_file output response ; + end + (Batch.get()) ; + end + +(* -------------------------------------------------------------------------- *) +(* --- Run the Server from the Command line --- *) +(* -------------------------------------------------------------------------- *) + +let () = Db.Main.extend execute + +(* -------------------------------------------------------------------------- *) diff --git a/src/plugins/server/server_parameters.ml b/src/plugins/server/server_parameters.ml new file mode 100644 index 0000000000000000000000000000000000000000..76a572cdf0cbd164afcf0c948b5fec0f9f40e9a6 --- /dev/null +++ b/src/plugins/server/server_parameters.ml @@ -0,0 +1,70 @@ +(**************************************************************************) +(* *) +(* This file is part of Frama-C. *) +(* *) +(* Copyright (C) 2007-2019 *) +(* CEA (Commissariat à l'énergie atomique et aux énergies *) +(* alternatives) *) +(* *) +(* you can redistribute it and/or modify it under the terms of the GNU *) +(* Lesser General Public License as published by the Free Software *) +(* Foundation, version 2.1. *) +(* *) +(* It is distributed in the hope that it will be useful, *) +(* but WITHOUT ANY WARRANTY; without even the implied warranty of *) +(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *) +(* GNU Lesser General Public License for more details. *) +(* *) +(* See the GNU Lesser General Public License version 2.1 *) +(* for more details (enclosed in the file licenses/LGPLv2.1). *) +(* *) +(**************************************************************************) + +(* -------------------------------------------------------------------------- *) +(* --- Server Plugin & Options --- *) +(* -------------------------------------------------------------------------- *) + +module P = Plugin.Register + (struct + let name = "Server" + let shortname = "server" + let help = "Frama-C Request Server" + end) + +include P + +module Idle = P.Int + (struct + let option_name = "-server-idle" + let arg_name = "ms" + let default = 10 + let help = "Waiting time (in milliseconds) when idle" + end) + +module Rate = P.Int + (struct + let option_name = "-server-rate" + let arg_name = "n" + let default = 100 + let help = "Number of analysis steps between server communications" + end) + +module Doc = P.String + (struct + let option_name = "-server-doc" + let arg_name = "dir" + let default = "" + let help = "Output a markdown documentation of the server in <dir>" + end) + +module Log = P.False + (struct + let option_name = "-server-logs" + let help = "Start (or stop) monitoring logs" + end) + +let wpage = register_warn_category "inconsistent-page" +let wkind = register_warn_category "inconsistent-kind" +let wname = register_warn_category "invalid-name" + +(* -------------------------------------------------------------------------- *) diff --git a/src/plugins/server/server_parameters.mli b/src/plugins/server/server_parameters.mli new file mode 100644 index 0000000000000000000000000000000000000000..5dc5ad153438ddc07353cb1b93cc59f22d4e91de --- /dev/null +++ b/src/plugins/server/server_parameters.mli @@ -0,0 +1,36 @@ +(**************************************************************************) +(* *) +(* This file is part of Frama-C. *) +(* *) +(* Copyright (C) 2007-2019 *) +(* CEA (Commissariat à l'énergie atomique et aux énergies *) +(* alternatives) *) +(* *) +(* you can redistribute it and/or modify it under the terms of the GNU *) +(* Lesser General Public License as published by the Free Software *) +(* Foundation, version 2.1. *) +(* *) +(* It is distributed in the hope that it will be useful, *) +(* but WITHOUT ANY WARRANTY; without even the implied warranty of *) +(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *) +(* GNU Lesser General Public License for more details. *) +(* *) +(* See the GNU Lesser General Public License version 2.1 *) +(* for more details (enclosed in the file licenses/LGPLv2.1). *) +(* *) +(**************************************************************************) + +(** Server Plugin & Options *) + +include Plugin.General_services + +module Idle : Parameter_sig.Int (** Idle waiting time (in ms) *) +module Rate : Parameter_sig.Int (** Number of fetch per yield *) +module Doc : Parameter_sig.String (** Generate documentation *) +module Log : Parameter_sig.Bool (** Monitor logs *) + +val wpage : warn_category (** Inconsistent page warning *) +val wkind : warn_category (** Inconsistent category warning *) +val wname : warn_category (** Invalid name warning *) + +(**************************************************************************) diff --git a/src/plugins/server/server_zmq.ml b/src/plugins/server/server_zmq.ml new file mode 100644 index 0000000000000000000000000000000000000000..82d2ce4316762eb1f638f499c928eb15000d2442 --- /dev/null +++ b/src/plugins/server/server_zmq.ml @@ -0,0 +1,141 @@ +(**************************************************************************) +(* *) +(* This file is part of Frama-C. *) +(* *) +(* Copyright (C) 2007-2019 *) +(* CEA (Commissariat à l'énergie atomique et aux énergies *) +(* alternatives) *) +(* *) +(* you can redistribute it and/or modify it under the terms of the GNU *) +(* Lesser General Public License as published by the Free Software *) +(* Foundation, version 2.1. *) +(* *) +(* It is distributed in the hope that it will be useful, *) +(* but WITHOUT ANY WARRANTY; without even the implied warranty of *) +(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *) +(* GNU Lesser General Public License for more details. *) +(* *) +(* See the GNU Lesser General Public License version 2.1 *) +(* for more details (enclosed in the file licenses/LGPLv2.1). *) +(* *) +(**************************************************************************) + +(* Only Compiled when package Zmq is installed *) +(* No interface, registered via side-effects *) + +(* -------------------------------------------------------------------------- *) +(* --- ZeroMQ Server Options --- *) +(* -------------------------------------------------------------------------- *) + +module Senv = Server_parameters + +let zmq_group = Senv.add_group "Protocol ZeroMQ" + +let () = Parameter_customize.set_group zmq_group +module Enabled = Senv.String + (struct + let option_name = "-server-zmq" + let arg_name = "url" + let default = "" + let help = "Establish a ZeroMQ server and listen for connections" + end) + +let _ = Doc.page `Protocol ~title:"ZeroMQ Protocol" ~filename:"server_zmq.md" + +(* -------------------------------------------------------------------------- *) +(* --- ZMQ Context --- *) +(* -------------------------------------------------------------------------- *) + +let context = + let zmq = ref None in + fun () -> + match !zmq with + | Some ctxt -> ctxt + | None -> + let major,minor,patch = Zmq.version () in + Senv.feedback "ZeroMQ %d.%d.%d" major minor patch ; + let ctxt = Zmq.Context.create () in + at_exit (fun () -> Zmq.Context.terminate ctxt) ; + zmq := Some ctxt ; ctxt + +(* -------------------------------------------------------------------------- *) +(* --- Decoding Requests --- *) +(* -------------------------------------------------------------------------- *) + +exception WrongEncoding of string + +let jdecode txt = + try Yojson.Basic.from_string txt + with exn -> + (* Exception if purely local from Yojson *) + raise (WrongEncoding (Printexc.to_string exn)) + +let jencode js = + try Yojson.Basic.to_string ~std:false js + with exn -> + (* Exception if purely local from Yojson *) + raise (WrongEncoding (Printexc.to_string exn)) + +let rec decode = function + | ("GET"|"SET"|"EXEC")::id::request::data :: w -> + `Request(id,request,jdecode data) :: decode w + | "KILL"::id:: w -> `Kill id :: decode w + | "POLL" :: w -> `Poll :: decode w + | "SHUTDOWN" :: _ -> [`Shutdown] + | cmd::_ -> raise (WrongEncoding cmd) + | [] -> [] + +let rec encode = function + | `Data(id,data) :: w -> "DATA" :: id :: jencode data :: encode w + | `Error(id,msg) :: w -> "ERROR" :: id :: msg :: encode w + | `Killed id :: w -> "KILLED" :: id :: encode w + | `Rejected id :: w -> "REJECTED" :: id :: encode w + | [] -> [] + +(* -------------------------------------------------------------------------- *) +(* --- ZMQ Messages --- *) +(* -------------------------------------------------------------------------- *) + +let callback socket responses = + try + let msg = encode responses in + Zmq.Socket.send_all socket (if msg = [] then ["NONE"] else msg) + with WrongEncoding msg -> + Zmq.Socket.send_all socket [ "WRONG" ; msg ] + +let fetch socket () = + try + let msg = Zmq.Socket.recv_all ~block:false socket in + try Some Main.{ requests = decode msg ; callback = callback socket } + with WrongEncoding msg -> + Zmq.Socket.send_all socket [ "WRONG" ; msg ] ; None + with + | Unix.Unix_error( Unix.EAGAIN , _ , _ ) -> None + | Zmq.ZMQ_exception(_,msg) -> Senv.fatal "ZeroMQ error: %s" msg + +(* -------------------------------------------------------------------------- *) +(* --- Establish the Server --- *) +(* -------------------------------------------------------------------------- *) + +let establish url = + if url <> "" then + begin + let context = context () in + let socket = Zmq.Socket.(create context rep) in + try + Zmq.Socket.bind socket url ; + Senv.feedback "ZeroMQ [%s]" url ; + Main.run ~pretty:Format.pp_print_string ~fetch:(fetch socket) () ; + Zmq.Socket.close socket ; + with exn -> + Zmq.Socket.close socket ; + raise exn + end + +(* -------------------------------------------------------------------------- *) +(* --- Establish the Server from Command line --- *) +(* -------------------------------------------------------------------------- *) + +let () = Db.Main.extend (fun () -> establish (Enabled.get ())) + +(* -------------------------------------------------------------------------- *) diff --git a/src/plugins/server/share/kernel/ast.md b/src/plugins/server/share/kernel/ast.md new file mode 100644 index 0000000000000000000000000000000000000000..b5aaa2d57d7967f620d4cd9cc363691d9df7ddef --- /dev/null +++ b/src/plugins/server/share/kernel/ast.md @@ -0,0 +1,15 @@ +# Ast Services + +The Frama-C internal representation of source files need to be computed before +being accessed. This generally involves preprocessing of sources and finally +parsing, typechecking and normalization. + +Although this step is generally performed silently on-demand inside Frama-C, +from the Server point of view, this is a non-trivial procedure that should _not_ be +triggered outside an `EXEC` request. + +Hence, most AST services might fail or return empty data if the AST has not been +actually computed before. However, in typical usage of Frama-C from the +command-line, the AST would have been computed just before any other plug-in, +including the Server. + diff --git a/src/plugins/server/share/kernel/kernel.md b/src/plugins/server/share/kernel/kernel.md new file mode 100644 index 0000000000000000000000000000000000000000..394e2a7b0e2a5aded0eae70c8f361c78afdf5401 --- /dev/null +++ b/src/plugins/server/share/kernel/kernel.md @@ -0,0 +1,21 @@ +# Kernel Services + +This section deals with requests related to the management +of the Frama-C platform and services offered by the kernel. +This covers several topics: configuration, logs. + +Configuration deals with versioning and resource directories. +Project services allow to work with several Frama-C projects. + +Logs are automatically tracked by the server plug-in and queued. +This monitoring can be controlled by `Kernel.SetLogs` command, but by +default, monitoring is turned on as soon as some server is started +(except for the batch server). The `Kernel.GetLogs` allow to flush this queue, +with a maximum number of messages. Non-flushed messages +can be recovered by subsequent calls, until the requests replies with an empty +message set. + +However, logs emitted prior to the execution of a server, or after its shutdown, +are _not_ collected by default. To enable this monitoring, for instance to collect +messages before the server is started, you shall set the `-server-logs` option, which +takes effect at configuration time (you can also use `... -then -server-logs ...`). diff --git a/src/plugins/server/share/kernel/project.md b/src/plugins/server/share/kernel/project.md new file mode 100644 index 0000000000000000000000000000000000000000..79715b8efc3e93df73d1943768f9394ddbc27f3c --- /dev/null +++ b/src/plugins/server/share/kernel/project.md @@ -0,0 +1,17 @@ +# Project Management + +The Frama-C current project can be managed with the server requests provided below. + +## Current Project + +Initially, the current project is the one selected when the server starts. +Hence, from the Frama-C command line, `-then-on <P> -server-xxx` +would start the server with current project `<P>`. + +When modifying the current project through request `Kernel.Project.SetCurrent`, +client shall wait for an acknowledgement before sending further `GET` requests. +Otherwise, the `GET` might be executed on a different project, due to the +asynchronous behavior of the server. + +However, it is still possible to execute a request on a specific project with +`Kernel.Project.{Get|Set|Exec}On` requests. diff --git a/src/plugins/server/share/kernel/text.md b/src/plugins/server/share/kernel/text.md new file mode 100644 index 0000000000000000000000000000000000000000..b73c79016e9a72b0ed8c3873527b030b23f22161 --- /dev/null +++ b/src/plugins/server/share/kernel/text.md @@ -0,0 +1,47 @@ +# Rich Text Format + +In various place of the server, the Frama-C requests might return +rich-text format, which is text annotated with special tags, +for tagging or styling purpose. + +The JSON encoding of rich-text is defined by the _text_ type, which takes one +of the following possible formats: + +| Format | Description | +|:------:|:------------| +| `"null"` | Empty text | +| _string_ | Standard UTF-8 text | +| `[` (_tag_`,`)? _text_`,`…`,` _text_ `]` | Sequence of text with an optional tag | + +Tags are simple strings, not to be printed, that encode the style or tag to +apply on the sequence. Tags starting with a sharp (`"#…"`) must be understood as +semantic tags, with a meaning depending on the context. Tags starting with +a dot (`".…"`) shall be understood as style names. Other values must be understand +as regular text. + +The empty tag (`""`) shall be ignored, but can used to group sequence of text +together. Concatenation of sequence of text must be performed without any +spacing or cut in the between. + +Text blocks can be nested. For instance, considerer the following JSON +encoding: + +<pre> +[ + "This ", + [ + "#frama-c-server-doc", + "Frama", [ ".tt", "-C" ], " server" + ], + " is ", [ ".it", "awesome" ], " isn't it?" +] +</pre> + +Provided the `#frama-c-server-doc` semantic is understood as a link to the +main page of the Frama-C server documentation, the designated rich-text +shall be printed as: + +> This [Frama-`C` server](../readme.md) is _awesome_ isn't it? + +The precise meaning of styles and semantic tags might depends on the context, +and is detailed in each occurence of _text_ format. diff --git a/src/plugins/server/share/protocol/server.md b/src/plugins/server/share/protocol/server.md new file mode 100644 index 0000000000000000000000000000000000000000..1e479798cef4eba9c42ebf5412a5886e77e6feae --- /dev/null +++ b/src/plugins/server/share/protocol/server.md @@ -0,0 +1,131 @@ +# Architecture + +The Server plug-in provides a _remote procedure call_ (RPC) interface to foreign +applications. The protocol is organized in three logic layers, organized as +follows: + +1. Many external entry points, based on various networking and system facilities +2. A generic logic run-time responsible for scheduling the requests coming from + the various entry points +3. The Frama-C implementation of requests handler, at the kernel or plug-in + level + +The intermediate, logic layer, is responsible for adding a small bit of +parallelism upon the intrinsically synchronous behavior of Frama-C. This makes +Frama-C resembling an asynchronous RPC server. + +The externally visible layer is only focused on transporting external requests +to the logic layer, and transporting back the results to the caller. The only +requirement for an entry point is to be able to transport a sequence of 1-input +message for 1-output message over time. + +The concrete layer is implemented by the Frama-C kernel and its plug-ins. All +requests must be registered _via_ the Frama-C Server OCaml API in order to be +accessible from the entry-points. Some parts of this documentation are +automatically generated from the registered requests. + +## Logical Requests + +From a functional point of view, requests are remote procedures with input +data that reply with output data. Each request is identified by a unique name. +Input and output parameters are encoded into JSON values. + +To adapt the internal synchronous Frama-C implementation with the external +asynchronous entry points, requests are classified into three kinds: + +- `GET` to instantaneously return data from the internal state of Frama-C +- `SET` to instantaneously modifies the state or configure Frama-C plug-ins +- `EXEC` to starts a resource intensive analysis in Frama-C + +During an `EXEC` requests, the implementation of the all resource demanding +computations shall repeatedly call the yielding routine `!Db.progress()` of the +Frama-C kernel to ensures a smooth asynchronous behavior of the Server. During a +_yield_ call, the Server would be allowed to handle few `GET` pending requests, +since they shall be fast without any modification. When the server is idled, any +kind of requests can be started. + +To summarize: + +| Request | During Yields | Allowed to Yield | Computation | +|:--------|:-------------:|:----------------:|:------------:| +| `GET` | ✓ | - | fast, pure | +| `SET` | - | - | fast, side-effects | +| `EXEC` | - | ✓ | resource demanding | + +## Transport Messages + +From the entry points layer, the asynchronous behavior of the Server makes +output data and input data to be dispatched into different messages. However, +from the Client side, we still want to have _one_ response message for each +incoming message. However, answer messages might contains output data from +potentially _any_ previously received requests. + +When the client has no more requests to send, but is simply waiting for pending +requests responses, it must periodically send _polling_ requests to simply get +back the expected responses. + +To implement those features, the Client-Server protocol consists of a sequence of +paired _intput messages_ and _output messages_. Each single input message consists of +a list of _commands_: + +| Commands | Parameters | Description | +|:--------:|:----------:|:------------| +| `POLL` | - | Ask for pending responses, if any | +| `GET` | `id,request,data` | En-queue the given GET request | +| `SET` | `id,request,data` | En-queue the given SET request | +| `EXEC` | `id,request,data` | En-queue the given EXEC request | +| `KILL` | `id` | Cancel the given request or interrupt its execution | +| `SHUTDOWN` | - | Makes the server to stop running | + +Similarly, a single output message consists of a list +of _replies_, listed in table below: + +| Replies | Parameters | Description | +|:--------:|:----------:|:------------| +| `DATA` | `id,data` | Response data from the identified request | +| `ERROR` | `id,message` | Error message from the identified request | +| `KILLED` | `id` | The identified request has been killed or interrupted | +| `REJECTED` | `id` | The identified request was not registered on the Server | + +The logic layer makes no usage of _identifiers_ and simply pass them unchanged into +output messages in response to received requests. + +At the transport message layer, input and output data are made of a +single `JSON` encoded value. Requests are identified by string, and +request identifiers can be of any type from the entry-points. + +**Remark** the `GET`, `SET` or `EXEC` behavior of a request is actually defined +by the request implementation, from the Frama-C internal side. The Server will +silently ignore the request kind from the incoming messages and use the actual +internal one instead. The distinction still appears in the transport protocol +only for a purpose of information, as clients shall know what they are asking +for. + +## Entry Points + +Implementations of entry points layers shall provide a non-blocking `fetch` +function that possibly returns a list of commands, associated with a +callback for emitting the paired list of replies. The Server main +loop is guaranteed to invoke the callback exactly once. + +The Server plug-in implements two entry-points, however, other Frama-C plugins might +implement their own entry-points and call the `Server.Main.run ~fetch ()` function +to make the server starting and exchanging messages with the external world. + +## Request Implementations + +It is the responsibility of Frama-C plug-ins to implement and register requests +into the Server to make them accessible _via_ any entry point. Whereas data is +encoded into JSON structures at the transport layer, requests are processes with +well typed OCaml types from the internal side. + +Hence, the requests implementations also requires data encoder and decoders to +be defined. Some predefined data types are provided by the Server plug-in, but +more complex types can be defined and shared among plug-ins _via_ the +`Server.Data` module factory. + +Registration of requests, data encoder and decoders always comes with their +markdown documentation thanks to the `Markdown` library provided by the Frama-C +kernel. Hence, a full documentation of all implemented requests with their data +formats can be generated consistently at any time. See option `-server-doc` of the +Server plug-in for more details. diff --git a/src/plugins/server/share/protocol/server_batch.md b/src/plugins/server/share/protocol/server_batch.md new file mode 100644 index 0000000000000000000000000000000000000000..1092cc6c5b2a28c8822db87182d5dde7c307ff18 --- /dev/null +++ b/src/plugins/server/share/protocol/server_batch.md @@ -0,0 +1,31 @@ +# Batch Protocol + +This section presents a Frama-C command-line entry point to Server requests. +Although it is not full-featured server entry point, it allows for executing +requests from the command line or JSON scripts. + +The `-server-script` option of the Frama-C/Server plug-in takes a (list of) +script file `<file.json>`, parse it and execute its commands, and output the +reponses in file `<file.out.json>`. + +## Input Script Format + +A JSON script is either a single JSON command or an array of JSON commands, or `null`. +Each command is a record with the following fields: + +| Input Field | Format | Description | +|:------|:-------|:-----------:| +| `id` | _any_ ? | The command identifier (optional) | +| `request` | _string_ | The request name | +| `data` | _any_ | The request input parameters | + +## Output Script Format + +Each command leads to an assiated JSON record, with the following fields: + +| Output Field | Format | Description | +|:------|:-------|:-----------:| +| `id` | _any_ ? | The command identifier (as provided in input) | +| `data` | _any_ ? | The request output parameters (if successfull) | +| `error` | _string_ ? | The request error message (in case of occurence) | +| `at` | _any_ ? | Wrongly encoded part of the request (when appropriate) | diff --git a/src/plugins/server/share/protocol/server_zmq.md b/src/plugins/server/share/protocol/server_zmq.md new file mode 100644 index 0000000000000000000000000000000000000000..f510a31888e81e509a0635425bf6a9ef3cbf75e2 --- /dev/null +++ b/src/plugins/server/share/protocol/server_zmq.md @@ -0,0 +1,62 @@ +# ZeroMQ Protocol + +This section presents a [ZeroMQ](http://zeromq.org) based entry point for Frama-C Server. +It is activated by option `-server-zmq <URL>` option of the Server plug-in, which is compiled +when the OCaml package `zmq` is detected at Frama-C configure time. + +The protocol builds a ZeroMQ socket of type `REP` which is the standard for a request server. +It is meant for accepting connection from a ZeroMQ socket of type `REQ` on the same `URL`. +The paired `REP`-`REQ` sockets use +[ZeroMQ multi-part messages](http://zguide.zeromq.org/page:all#Multipart-Messages) to transfer data. + +A typical example to start a Frama-C server for inter-process communication is: + +```shell +$ frama-c [options...] -then -server-zmq ipc:///tmp/my-server.io +``` + +## Input Message Format + +Each input message consists of a list of commands. Each command takes +a fixed number of parts from the incomming ZeroMQ message. The first part +of each command is a single string identifying the command: + +| Commands | Parts | Part 1 | Part 2 | Part 3 | Part 4 | +|:--------|:-----:|:-------|:-------|:-------|:-------| +| `POLL()` | 1 | `"POLL"` | | | | +| `GET(id,request,data)` | 4 | `"GET"` | id | request | data | +| `SET(id,request,data)` | 4 | `"SET"` | id | request | data | +| `EXEC(id,request,data)` | 4 | `"EXEC"` | id | request | data | +| `KILL(id)` | 2 | `"KILL"` | id | | | +| `SHUTDOWN` | 1 | `"SHUTDOWN"` | | | | + +## Output Message Format + +Each output message consists of a list of replies. Each reply takes +a fixed number of parts from the incomming ZeroMQ message. The first part +of each reply is a finel string identifying the reply: + +| Replies | Parts | Part 1 | Part 2 | Part 3 | +|:--------|:-----:|:-------|:-------|:-------| +| `DATA(id,data)` | 3 | `"DATA"` | id | data | +| `ERROR(id,message)` | 4 | `"ERROR"` | id | message | +| `KILLED(id)` | 2 | `"KILLED"` | id | | +| `REJECTED(id)` | 2 | `"REJECTED"` | id | | +| (special) | 2 | `"WRONG"` | message | | +| (special) | 1 | `"NONE"` | | | + +The two special responses `"WRONG"` and `"NONE"` are used to handle special issues +with the ZeroMQ layer protocol: `WRONG(message)` signals an error in the message formats; +`NONE` is used in the special case where the reply message from the server is completely +empty. This generaly means that the server is busy or idled. + +## Data Format + +Request identifiers can be any string, encoded into a single part of a ZeroMQ message. + +Data are stringified JSON data structures. Each command or reply data shall be packed +into a single JSON data, which leads to a single part of the associated ZeroMQ message. + +Since ZeroMQ prococol accepts any kind of strings as a single +message part, the stringified JSON data might contains spaces, newlines and any +other spacing characters. diff --git a/src/plugins/server/syntax.ml b/src/plugins/server/syntax.ml new file mode 100644 index 0000000000000000000000000000000000000000..565a227cde54a50190a518e5d45f036b9b44d913 --- /dev/null +++ b/src/plugins/server/syntax.ml @@ -0,0 +1,129 @@ +(**************************************************************************) +(* *) +(* This file is part of Frama-C. *) +(* *) +(* Copyright (C) 2007-2019 *) +(* CEA (Commissariat à l'énergie atomique et aux énergies *) +(* alternatives) *) +(* *) +(* you can redistribute it and/or modify it under the terms of the GNU *) +(* Lesser General Public License as published by the Free Software *) +(* Foundation, version 2.1. *) +(* *) +(* It is distributed in the hope that it will be useful, *) +(* but WITHOUT ANY WARRANTY; without even the implied warranty of *) +(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *) +(* GNU Lesser General Public License for more details. *) +(* *) +(* See the GNU Lesser General Public License version 2.1 *) +(* for more details (enclosed in the file licenses/LGPLv2.1). *) +(* *) +(**************************************************************************) + +(* -------------------------------------------------------------------------- *) + +module Senv = Server_parameters + +let check_plugin plugin name = + let p = String.lowercase_ascii plugin in + let n = String.lowercase_ascii name in + let k = String.length plugin in + if not (String.length name > k && + String.sub n 0 k = p && + String.get n k = '.') + then + Senv.warning ~wkey:Senv.wpage + "Data %S shall be named « %s-* »" + name plugin + +let check_page page name = + match Doc.chapter page with + | `Kernel -> () + | `Plugin plugin -> check_plugin plugin name + | `Protocol -> check_plugin "server" name + +let re_name = Str.regexp "[a-z0-9-]+$" + +let check_name name = + if not (Str.string_match re_name name 0) then + Senv.warning ~wkey:Senv.wname + "Data name %S is not a dash-separated list of lowercase identifiers" name + +(* -------------------------------------------------------------------------- *) + +type t = { atomic:bool ; text:Markdown.text } + +let atom md = { atomic=true ; text=md } +let flow md = { atomic=false ; text=md } + +let format { text } = text +let protect a = + if a.atomic then a.text else Markdown.(rm "(" <+> a.text <+> rm ")") + +let publish ~page ~name ~descr ~synopsis ?(details = Markdown.empty) () = + check_name name ; + check_page page name ; + let id = Printf.sprintf "data-%s" name in + let title = Printf.sprintf "`DATA` %s" name in + let format = ref Markdown.nil in + let syntax = Markdown.fmt_block (fun fmt -> + Format.fprintf fmt "> %a ::= %a" + Markdown.pp_text !format + Markdown.pp_text synopsis.text + ) in + let content = Markdown.( par descr </> syntax </> details ) in + let href = Doc.publish ~page ~name:id ~title ~index:[name] content [] in + let link_title = Printf.sprintf "_%s_" name in + let link = Markdown.href ~title:link_title href in + format := link ; atom @@ link + +let unit = atom @@ Markdown.rm "-" +let any = atom @@ Markdown.it "any" +let int = atom @@ Markdown.it "int" +let ident = atom @@ Markdown.it "ident" +let string = atom @@ Markdown.it "string" +let number = atom @@ Markdown.it "number" +let boolean = atom @@ Markdown.it "boolean" + +let escaped name = Markdown.tt @@ Printf.sprintf "'%s'" @@ String.escaped name + +let tag name = atom @@ escaped name + +let array a = atom @@ Markdown.(tt "[" <+> protect a <+> tt ", … ]") + +let tuple ts = + atom @@ Markdown.(tt "[" + <+> glue ~sep:(raw " `,` ") (List.map protect ts) <+> + tt "]") + +let union ts = flow @@ Markdown.(glue ~sep:(raw " | ") (List.map protect ts)) + +let option t = atom @@ Markdown.(protect t <@> tt "?") + +let field (a,t) = Markdown.( escaped a <+> tt ":" <+> t.text ) + +let record fds = + let fields = + if fds = [] then Markdown.rm "…" else + Markdown.(glue ~sep:(raw " `;` ") (List.map field fds)) + in atom @@ Markdown.(tt "{" <+> fields <+> tt "}") + +type field = { + name : string ; + syntax : t ; + descr : Markdown.text ; +} + +let fields ~title (fds : field list) = + let c_field = `Left title in + let c_format = `Center "Format" in + let c_descr = `Left "Description" in + Markdown.table [ c_field ; c_format ; c_descr ] + begin + List.map + (fun f -> + [ Markdown.tt f.name ; format f.syntax ; f.descr ]) + fds + end + +(* -------------------------------------------------------------------------- *) diff --git a/src/plugins/server/syntax.mli b/src/plugins/server/syntax.mli new file mode 100644 index 0000000000000000000000000000000000000000..ff4c575e6c3ed0e65a38b66f593272850942ddaf --- /dev/null +++ b/src/plugins/server/syntax.mli @@ -0,0 +1,59 @@ +(**************************************************************************) +(* *) +(* This file is part of Frama-C. *) +(* *) +(* Copyright (C) 2007-2019 *) +(* CEA (Commissariat à l'énergie atomique et aux énergies *) +(* alternatives) *) +(* *) +(* you can redistribute it and/or modify it under the terms of the GNU *) +(* Lesser General Public License as published by the Free Software *) +(* Foundation, version 2.1. *) +(* *) +(* It is distributed in the hope that it will be useful, *) +(* but WITHOUT ANY WARRANTY; without even the implied warranty of *) +(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *) +(* GNU Lesser General Public License for more details. *) +(* *) +(* See the GNU Lesser General Public License version 2.1 *) +(* for more details (enclosed in the file licenses/LGPLv2.1). *) +(* *) +(**************************************************************************) + +(* -------------------------------------------------------------------------- *) +(** JSON Encoding Documentation *) +(* -------------------------------------------------------------------------- *) + +type t + +val format : t -> Markdown.text + +(** The provided synopsis must be very short, to fit in one line. + Extended definition, like record fields and such, must be detailed in + the description block. *) +val publish : + page:Doc.page -> name:string -> descr:Markdown.text -> + synopsis:t -> ?details:Markdown.block -> unit -> t + +val unit : t +val any : t +val int : t (* small, non-decimal, number *) +val ident : t (* integer of string *) +val string : t +val number : t +val boolean : t + +val tag : string -> t +val array : t -> t +val tuple : t list -> t +val union : t list -> t +val option : t -> t +val record : (string * t) list -> t + +type field = { name : string ; syntax : t ; descr : Markdown.text } + +(** Builds a table with fields column named with [~title] + (shall be capitalized) *) +val fields : title:string -> field list -> Markdown.block + +(* -------------------------------------------------------------------------- *) diff --git a/src/plugins/variadic/standard.ml b/src/plugins/variadic/standard.ml index d5b98d5d1d192291de971216ec7783223cba3101..8d5b77be6e5907ec979ed47cdc5193dfea4f554b 100644 --- a/src/plugins/variadic/standard.ml +++ b/src/plugins/variadic/standard.ml @@ -448,6 +448,16 @@ let build_fun_spec env loc vf format_fun tvparams formals = (* Cil.hasAttribute "const" *) add_lval (lval,dir) in + let make_indirect iterm = + (* Add "indirect" to an identified term, if it isn't already *) + if List.mem "indirect" iterm.it_content.term_name then iterm + else + let it_content = + { iterm.it_content with + term_name = "indirect" :: iterm.it_content.term_name } + in + { iterm with it_content } + in (* Build variadic parameter source/dest list *) let dirs = List.map snd tvparams in @@ -541,14 +551,20 @@ let build_fun_spec env loc vf format_fun tvparams formals = | Syslog, _ -> () end; - (* Add return value dest *) - let rettyp = Cil.getReturnType vf.vf_decl.vtype in - if not (Cil.isVoidType rettyp) then - add_lval ~indirect:true (Build.tresult rettyp, `ArgOut); - - (* Build the assign clause *) + (* Build the assigns clause (without \result, for now; it will be added + separately) *) let froms = List.map (fun iterm -> iterm, From !sources) !dests in - let assigns = Writes froms in + + (* Add return value dest: it is different from above since it is _indirectly_ + assigned from all sources *) + let rettyp = Cil.getReturnType vf.vf_decl.vtype in + let froms_for_result = + if Cil.isVoidType rettyp then [] + else + [iterm (Build.tresult rettyp), + From (List.map make_indirect !sources)] + in + let assigns = Writes (froms_for_result @ froms) in (* Build the default behaviour *) let bhv = Cil.mk_behavior ~assigns diff --git a/src/plugins/variadic/tests/known/oracle/exec.res.oracle b/src/plugins/variadic/tests/known/oracle/exec.res.oracle index ccda67e7ad24969af80102884259c962ece1a69b..956067e6dbe9bc926d55bc7e9ce53dea74f565d3 100644 --- a/src/plugins/variadic/tests/known/oracle/exec.res.oracle +++ b/src/plugins/variadic/tests/known/oracle/exec.res.oracle @@ -35,7 +35,6 @@ sentinel ∈ {0} __retres ∈ {0} /* Generated by Frama-C */ -#include "sys/time.h" #include "unistd.h" int main(void) { diff --git a/src/plugins/variadic/tests/known/oracle/exec_failed_requirement.res.oracle b/src/plugins/variadic/tests/known/oracle/exec_failed_requirement.res.oracle index cb9e737d1bb5298bcc7fd0690090dfd1d7406b6c..47d6f5693dc5bbb245732803a89a277b5287f17b 100644 --- a/src/plugins/variadic/tests/known/oracle/exec_failed_requirement.res.oracle +++ b/src/plugins/variadic/tests/known/oracle/exec_failed_requirement.res.oracle @@ -17,7 +17,6 @@ [eva:final-states] Values at end of function main: NON TERMINATING FUNCTION /* Generated by Frama-C */ -#include "sys/time.h" #include "unistd.h" int main(void) { diff --git a/src/plugins/variadic/tests/known/oracle/print_libc.pretty.c b/src/plugins/variadic/tests/known/oracle/print_libc.pretty.c index 284877a285f94ca211c4ebd5a8348246e422729c..3a496e7bf57c8b5807bd005cfec8ac6a811db5c0 100644 --- a/src/plugins/variadic/tests/known/oracle/print_libc.pretty.c +++ b/src/plugins/variadic/tests/known/oracle/print_libc.pretty.c @@ -7,7 +7,8 @@ assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))); + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))); @@ -32,7 +33,8 @@ int main(void) assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))); + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))); diff --git a/src/plugins/variadic/tests/known/oracle/printf.res.oracle b/src/plugins/variadic/tests/known/oracle/printf.res.oracle index d3eac0b8fd4d4f2e18e10087b2a1bc0f9c5d0f3a..95d6cf5297f29e539893f37b6ec3b2469440b761 100644 --- a/src/plugins/variadic/tests/known/oracle/printf.res.oracle +++ b/src/plugins/variadic/tests/known/oracle/printf.res.oracle @@ -168,7 +168,8 @@ assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))); + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))); @@ -182,8 +183,8 @@ int printf_va_1(char const * __restrict format); assigns \result, __fc_stdout->__fc_FILE_data, *param1; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - *(param0 + (0 ..)); + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: *(param0 + (0 ..))); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -200,8 +201,8 @@ int printf_va_2(char const * __restrict format, char *param0, int *param1); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - *(param0 + (0 ..)); + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: *(param0 + (0 ..))); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -215,8 +216,8 @@ int printf_va_3(char const * __restrict format, wchar_t *param0); assigns \result, __fc_stdout->__fc_FILE_data, *param1; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -235,8 +236,8 @@ int printf_va_4(char const * __restrict format, int param0, assigns \result, __fc_stdout->__fc_FILE_data, *param1; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -254,8 +255,8 @@ int printf_va_5(char const * __restrict format, int param0, short *param1); assigns \result, __fc_stdout->__fc_FILE_data, *param1; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -273,8 +274,8 @@ int printf_va_6(char const * __restrict format, int param0, long *param1); assigns \result, __fc_stdout->__fc_FILE_data, *param1; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -293,8 +294,8 @@ int printf_va_7(char const * __restrict format, long param0, assigns \result, __fc_stdout->__fc_FILE_data, *param1; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -313,8 +314,8 @@ int printf_va_8(char const * __restrict format, long long param0, assigns \result, __fc_stdout->__fc_FILE_data, *param1; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -333,8 +334,8 @@ int printf_va_9(char const * __restrict format, intmax_t param0, assigns \result, __fc_stdout->__fc_FILE_data, *param1; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -351,8 +352,8 @@ int printf_va_10(char const * __restrict format, size_t param0, assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -364,8 +365,8 @@ int printf_va_11(char const * __restrict format, ptrdiff_t param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -377,8 +378,8 @@ int printf_va_12(char const * __restrict format, unsigned int param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -390,8 +391,8 @@ int printf_va_13(char const * __restrict format, int param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -403,8 +404,8 @@ int printf_va_14(char const * __restrict format, int param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -416,8 +417,8 @@ int printf_va_15(char const * __restrict format, unsigned long param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -429,8 +430,8 @@ int printf_va_16(char const * __restrict format, unsigned long long param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -442,8 +443,9 @@ int printf_va_17(char const * __restrict format, uintmax_t param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param1, param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param1), + (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -456,8 +458,8 @@ int printf_va_18(char const * __restrict format, size_t param0, assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -469,8 +471,8 @@ int printf_va_19(char const * __restrict format, unsigned long long param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -482,8 +484,8 @@ int printf_va_20(char const * __restrict format, int param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -495,8 +497,8 @@ int printf_va_21(char const * __restrict format, unsigned long long param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -508,8 +510,9 @@ int printf_va_22(char const * __restrict format, int param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param1, param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param1), + (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -522,8 +525,8 @@ int printf_va_23(char const * __restrict format, double param0, assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -535,8 +538,8 @@ int printf_va_24(char const * __restrict format, int param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -548,8 +551,9 @@ int printf_va_25(char const * __restrict format, void *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param3, param2, param1, param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param3), + (indirect: param2), (indirect: param1), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -563,8 +567,9 @@ int printf_va_26(char const * __restrict format, int param0, int param1, assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - *(param1 + (0 ..)), param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: *(param1 + (0 ..))), + (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -577,8 +582,8 @@ int printf_va_27(char const * __restrict format, int param0, char *param1); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - *(param0 + (0 ..)); + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: *(param0 + (0 ..))); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), 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 new file mode 100644 index 0000000000000000000000000000000000000000..25e8c3610196c5963f1c9e911eb1e8f829319bfe --- /dev/null +++ b/src/plugins/variadic/tests/known/oracle/printf_garbled_mix.res.oracle @@ -0,0 +1,76 @@ +[variadic] FRAMAC_SHARE/libc/stdio.h:165: + Declaration of variadic function fprintf. +[variadic] FRAMAC_SHARE/libc/stdio.h:167: + Declaration of variadic function fscanf. +[variadic] FRAMAC_SHARE/libc/stdio.h:169: + Declaration of variadic function printf. +[variadic] FRAMAC_SHARE/libc/stdio.h:170: + Declaration of variadic function scanf. +[variadic] FRAMAC_SHARE/libc/stdio.h:171: + Declaration of variadic function snprintf. +[variadic] FRAMAC_SHARE/libc/stdio.h:173: + Declaration of variadic function sprintf. +[variadic] FRAMAC_SHARE/libc/stdio.h:175: + Declaration of variadic function sscanf. +[variadic] FRAMAC_SHARE/libc/stdio.h:369: + 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 +[eva] Computing initial state +[eva] Initial state computed +[eva] tests/known/printf_garbled_mix.c:6: + Assigning imprecise value to b. + The imprecision originates from Arithmetic + {tests/known/printf_garbled_mix.c:6} +[eva] using specification for function printf_va_1 +[eva] tests/known/printf_garbled_mix.c:8: + Frama_C_show_each_nb_printed: [-2147483648..2147483647] +[eva] done for function main +[eva] ====== VALUES COMPUTED ====== +[eva:final-states] Values at end of function main: + a[0] ∈ {1} + [1] ∈ {2} + b ∈ {0} + nb_printed ∈ [--..--] + S___fc_stdout[0].__fc_FILE_id ∈ [--..--] + [0].__fc_FILE_data ∈ + {{ garbled mix of &{a} + (origin: Library function + {tests/known/printf_garbled_mix.c:7}) }} + [1] ∈ [--..--] +/* Generated by Frama-C */ +#include "errno.h" +#include "stdarg.h" +#include "stddef.h" +#include "stdio.h" +/*@ assigns \result; + assigns \result \from \nothing; */ +extern int ( /* missing proto */ Frama_C_show_each_nb_printed)(); + +/*@ requires valid_read_string(format); + assigns \result, __fc_stdout->__fc_FILE_data; + assigns \result + \from (indirect: __fc_stdout->__fc_FILE_id), + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); + assigns __fc_stdout->__fc_FILE_data + \from (indirect: __fc_stdout->__fc_FILE_id), + __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), + param0; + */ +int printf_va_1(char const * __restrict format, int param0); + +void main(void) +{ + int a[2] = {1, 2}; + int *b = (int *)((unsigned int)(a) * (unsigned int)2); + int nb_printed = printf_va_1("%d",(int)b); + Frama_C_show_each_nb_printed(nb_printed); + b = (int *)0; + return; +} + + diff --git a/src/plugins/variadic/tests/known/oracle/printf_redefined.res.oracle b/src/plugins/variadic/tests/known/oracle/printf_redefined.res.oracle index 7bf45216955e9b124a78d2eff4c262656f366d58..9b7494fd8342d16b8e56adb562b395d9c87edb25 100644 --- a/src/plugins/variadic/tests/known/oracle/printf_redefined.res.oracle +++ b/src/plugins/variadic/tests/known/oracle/printf_redefined.res.oracle @@ -17,7 +17,8 @@ /* Generated by Frama-C */ typedef unsigned long size_t; /*@ assigns \result; - assigns \result \from (indirect: *(__format + (0 ..))), param0; + assigns \result + \from (indirect: *(__format + (0 ..))), (indirect: param0); */ int printf_va_1(char const * __restrict __format, size_t param0); diff --git a/src/plugins/variadic/tests/known/oracle/printf_wrong_arity.res.oracle b/src/plugins/variadic/tests/known/oracle/printf_wrong_arity.res.oracle index ab84ecbf690af6f9eeca1e86ddd262df7fd12f85..d322a92f77e082966e1f3ba31a4096c403113f6b 100644 --- a/src/plugins/variadic/tests/known/oracle/printf_wrong_arity.res.oracle +++ b/src/plugins/variadic/tests/known/oracle/printf_wrong_arity.res.oracle @@ -48,8 +48,8 @@ assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -61,8 +61,9 @@ int printf_va_1(char const * __restrict format, int param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param1, param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param1), + (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), diff --git a/src/plugins/variadic/tests/known/oracle/printf_wrong_pointers.res.oracle b/src/plugins/variadic/tests/known/oracle/printf_wrong_pointers.res.oracle index 3acc772c1d3ab401b05f19de09877346e9ed4f89..12097cda98fa628de6c3431143db25fd7544f16c 100644 --- a/src/plugins/variadic/tests/known/oracle/printf_wrong_pointers.res.oracle +++ b/src/plugins/variadic/tests/known/oracle/printf_wrong_pointers.res.oracle @@ -58,7 +58,8 @@ assigns \result, __fc_stdout->__fc_FILE_data, *param0; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))); + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))); @@ -74,7 +75,8 @@ int printf_va_1(char const * __restrict format, int *param0); assigns \result, __fc_stdout->__fc_FILE_data, *param0; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))); + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))); @@ -90,7 +92,8 @@ int printf_va_2(char const * __restrict format, int *param0); assigns \result, __fc_stdout->__fc_FILE_data, *param0; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))); + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))); @@ -105,8 +108,8 @@ int printf_va_3(char const * __restrict format, signed char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - *(param0 + (0 ..)); + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: *(param0 + (0 ..))); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -119,8 +122,8 @@ int printf_va_4(char const * __restrict format, char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - *(param0 + (0 ..)); + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: *(param0 + (0 ..))); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), diff --git a/src/plugins/variadic/tests/known/oracle/printf_wrong_types.res.oracle b/src/plugins/variadic/tests/known/oracle/printf_wrong_types.res.oracle index 39f1ae9b900ea71a6413863dd6ced0e450a76c99..40db9d7dbbf143e9c8ced207fd7ac8ac2ebe8d23 100644 --- a/src/plugins/variadic/tests/known/oracle/printf_wrong_types.res.oracle +++ b/src/plugins/variadic/tests/known/oracle/printf_wrong_types.res.oracle @@ -110,8 +110,8 @@ typedef enum __anonenum_RC_1 RC; assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -123,8 +123,8 @@ int printf_va_1(char const * __restrict format, int param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -136,8 +136,8 @@ int printf_va_2(char const * __restrict format, int param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -149,8 +149,8 @@ int printf_va_3(char const * __restrict format, unsigned int param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -162,8 +162,8 @@ int printf_va_4(char const * __restrict format, long param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -175,8 +175,8 @@ int printf_va_5(char const * __restrict format, int param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -188,8 +188,8 @@ int printf_va_6(char const * __restrict format, unsigned long param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -201,8 +201,8 @@ int printf_va_7(char const * __restrict format, unsigned int param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -214,8 +214,8 @@ int printf_va_8(char const * __restrict format, void *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -227,8 +227,8 @@ int printf_va_9(char const * __restrict format, double param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -240,8 +240,8 @@ int printf_va_10(char const * __restrict format, double param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -253,8 +253,8 @@ int printf_va_11(char const * __restrict format, double param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -267,8 +267,8 @@ int printf_va_12(char const * __restrict format, long double param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - *(param0 + (0 ..)); + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: *(param0 + (0 ..))); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -280,8 +280,8 @@ int printf_va_13(char const * __restrict format, char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -293,8 +293,8 @@ int printf_va_14(char const * __restrict format, int param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -306,8 +306,8 @@ int printf_va_15(char const * __restrict format, unsigned int param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -512,8 +512,8 @@ typedef enum __anonenum_RC_1 RC; assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -525,8 +525,8 @@ int printf_va_1(char const * __restrict format, int param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -538,8 +538,8 @@ int printf_va_2(char const * __restrict format, int param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -551,8 +551,8 @@ int printf_va_3(char const * __restrict format, unsigned int param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -564,8 +564,8 @@ int printf_va_4(char const * __restrict format, long param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -577,8 +577,8 @@ int printf_va_5(char const * __restrict format, int param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -590,8 +590,8 @@ int printf_va_6(char const * __restrict format, unsigned long param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -603,8 +603,8 @@ int printf_va_7(char const * __restrict format, unsigned int param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -616,8 +616,8 @@ int printf_va_8(char const * __restrict format, void *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -629,8 +629,8 @@ int printf_va_9(char const * __restrict format, double param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -642,8 +642,8 @@ int printf_va_10(char const * __restrict format, double param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -655,8 +655,8 @@ int printf_va_11(char const * __restrict format, double param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -669,8 +669,8 @@ int printf_va_12(char const * __restrict format, long double param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - *(param0 + (0 ..)); + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: *(param0 + (0 ..))); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -682,8 +682,8 @@ int printf_va_13(char const * __restrict format, char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -695,8 +695,8 @@ int printf_va_14(char const * __restrict format, int param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -708,8 +708,8 @@ int printf_va_15(char const * __restrict format, unsigned int param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), diff --git a/src/plugins/variadic/tests/known/oracle/scanf.res.oracle b/src/plugins/variadic/tests/known/oracle/scanf.res.oracle index e2b30a7dd895f33300054cade576ecafafe22376..22a8fdf1bb42bb62dcd300c2b8a68f3e8d281426 100644 --- a/src/plugins/variadic/tests/known/oracle/scanf.res.oracle +++ b/src/plugins/variadic/tests/known/oracle/scanf.res.oracle @@ -41,7 +41,8 @@ assigns \result, __fc_stdin->__fc_FILE_data, *param2, *param1, *(param0 + (0 ..)); assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, diff --git a/src/plugins/variadic/tests/known/oracle/scanf_loop.res.oracle b/src/plugins/variadic/tests/known/oracle/scanf_loop.res.oracle index a9a7845b251755db6d2e2b4dc57b4347b5d7db6f..0a7a3cb2f389a34ab022bcfa82d62fb3908882ef 100644 --- a/src/plugins/variadic/tests/known/oracle/scanf_loop.res.oracle +++ b/src/plugins/variadic/tests/known/oracle/scanf_loop.res.oracle @@ -36,7 +36,8 @@ int volatile nondet; ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, diff --git a/src/plugins/variadic/tests/known/oracle/scanf_wrong.res.oracle b/src/plugins/variadic/tests/known/oracle/scanf_wrong.res.oracle index 41d5dc140e7a787788e70c9a0c76ade24252cb31..0ad1522b6520cd7aa591efda0f9f72657c9162b1 100644 --- a/src/plugins/variadic/tests/known/oracle/scanf_wrong.res.oracle +++ b/src/plugins/variadic/tests/known/oracle/scanf_wrong.res.oracle @@ -42,7 +42,8 @@ assigns \result, __fc_stdin->__fc_FILE_data, *param2, *param1, *(param0 + (0 ..)); assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, diff --git a/src/plugins/variadic/tests/known/oracle/snprintf.res.oracle b/src/plugins/variadic/tests/known/oracle/snprintf.res.oracle index 5283467af6bbb18db5204643152c4cc5f705fac6..cf8814488a75dd118d8e8abac81f3bab09ad9baa 100644 --- a/src/plugins/variadic/tests/known/oracle/snprintf.res.oracle +++ b/src/plugins/variadic/tests/known/oracle/snprintf.res.oracle @@ -56,7 +56,8 @@ int volatile nondet; requires valid_read_string(param0); assigns \result, *(s + (0 ..)); assigns \result - \from (indirect: n), (indirect: *(format + (0 ..))), *(param0 + (0 ..)); + \from (indirect: n), (indirect: *(format + (0 ..))), + (indirect: *(param0 + (0 ..))); assigns *(s + (0 ..)) \from (indirect: n), (indirect: *(format + (0 ..))), *(param0 + (0 ..)); */ @@ -70,7 +71,8 @@ int snprintf_va_1(char * __restrict s, size_t n, requires valid_read_string(param0); assigns \result, *(s + (0 ..)); assigns \result - \from (indirect: n), (indirect: *(format + (0 ..))), *(param0 + (0 ..)); + \from (indirect: n), (indirect: *(format + (0 ..))), + (indirect: *(param0 + (0 ..))); assigns *(s + (0 ..)) \from (indirect: n), (indirect: *(format + (0 ..))), *(param0 + (0 ..)); */ diff --git a/src/plugins/variadic/tests/known/oracle/stdio_print.res.oracle b/src/plugins/variadic/tests/known/oracle/stdio_print.res.oracle index 3affc42a4ed5738d640e76c6e044fc219e085106..41f785ff02c2f035754f6d27cb48445c435a0f04 100644 --- a/src/plugins/variadic/tests/known/oracle/stdio_print.res.oracle +++ b/src/plugins/variadic/tests/known/oracle/stdio_print.res.oracle @@ -71,9 +71,10 @@ requires valid_read_string(param1); assigns \result, stream->__fc_FILE_data; assigns \result - \from (indirect: stream->__fc_FILE_id), stream->__fc_FILE_data, - (indirect: *(format + (0 ..))), param2, *(param1 + (0 ..)), - param0; + \from (indirect: stream->__fc_FILE_id), + (indirect: stream->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param2), + (indirect: *(param1 + (0 ..))), (indirect: param0); assigns stream->__fc_FILE_data \from (indirect: stream->__fc_FILE_id), stream->__fc_FILE_data, (indirect: *(format + (0 ..))), param2, *(param1 + (0 ..)), @@ -87,8 +88,9 @@ int fprintf_va_1(FILE * __restrict stream, char const * __restrict format, assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param2, *(param1 + (0 ..)), param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param2), + (indirect: *(param1 + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -104,8 +106,9 @@ int printf_va_1(char const * __restrict format, int param0, char *param1, requires valid_read_string(param1); assigns \result, *(s + (0 ..)); assigns \result - \from (indirect: n), (indirect: *(format + (0 ..))), param2, - *(param1 + (0 ..)), param0; + \from (indirect: n), (indirect: *(format + (0 ..))), + (indirect: param2), (indirect: *(param1 + (0 ..))), + (indirect: param0); assigns *(s + (0 ..)) \from (indirect: n), (indirect: *(format + (0 ..))), param2, *(param1 + (0 ..)), param0; @@ -118,8 +121,8 @@ int snprintf_va_1(char * __restrict s, size_t n, requires valid_read_string(param1); assigns \result, *(s + (0 ..)); assigns \result - \from (indirect: *(format + (0 ..))), param2, *(param1 + (0 ..)), - param0; + \from (indirect: *(format + (0 ..))), (indirect: param2), + (indirect: *(param1 + (0 ..))), (indirect: param0); assigns *(s + (0 ..)) \from (indirect: *(format + (0 ..))), param2, *(param1 + (0 ..)), param0; @@ -133,7 +136,8 @@ int sprintf_va_1(char * __restrict s, char const * __restrict format, assigns \result; assigns \result \from (indirect: fd), (indirect: *(format + (0 ..))), - *(param2 + (0 ..)), *(param1 + (0 ..)), param0; + (indirect: *(param2 + (0 ..))), (indirect: *(param1 + (0 ..))), + (indirect: param0); */ int dprintf_va_1(int fd, char const * __restrict format, int param0, char *param1, char *param2); diff --git a/src/plugins/variadic/tests/known/oracle/stdio_scan.res.oracle b/src/plugins/variadic/tests/known/oracle/stdio_scan.res.oracle index 9d9d9383a4ddbc022b77af8f23c1ea97b165e98e..23148c803852e714e6e6460bbb3584c014a6662f 100644 --- a/src/plugins/variadic/tests/known/oracle/stdio_scan.res.oracle +++ b/src/plugins/variadic/tests/known/oracle/stdio_scan.res.oracle @@ -59,7 +59,8 @@ assigns \result, stream->__fc_FILE_data, *param2, *(param1 + (0 ..)), *param0; assigns \result - \from (indirect: stream->__fc_FILE_id), stream->__fc_FILE_data, + \from (indirect: stream->__fc_FILE_id), + (indirect: stream->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns stream->__fc_FILE_data \from (indirect: stream->__fc_FILE_id), stream->__fc_FILE_data, @@ -85,7 +86,8 @@ int fscanf_va_1(FILE * __restrict stream, char const * __restrict format, assigns \result, __fc_stdin->__fc_FILE_data, *param2, *(param1 + (0 ..)), *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, diff --git a/src/plugins/variadic/tests/known/oracle/swprintf.res.oracle b/src/plugins/variadic/tests/known/oracle/swprintf.res.oracle index 84ee5740088cec6cd2618b26d7d683bdb34bcea8..f4694f2f3632e5e0d4fdbcdf9ef2ef527a077e69 100644 --- a/src/plugins/variadic/tests/known/oracle/swprintf.res.oracle +++ b/src/plugins/variadic/tests/known/oracle/swprintf.res.oracle @@ -67,7 +67,8 @@ int volatile nondet; requires valid_read_wstring(param0); assigns \result, *(ws + (0 ..)); assigns \result - \from (indirect: n), (indirect: *(format + (0 ..))), *(param0 + (0 ..)); + \from (indirect: n), (indirect: *(format + (0 ..))), + (indirect: *(param0 + (0 ..))); assigns *(ws + (0 ..)) \from (indirect: n), (indirect: *(format + (0 ..))), *(param0 + (0 ..)); */ @@ -81,7 +82,8 @@ int swprintf_va_1(wchar_t *ws, size_t n, wchar_t const *format, requires valid_read_wstring(param0); assigns \result, *(ws + (0 ..)); assigns \result - \from (indirect: n), (indirect: *(format + (0 ..))), *(param0 + (0 ..)); + \from (indirect: n), (indirect: *(format + (0 ..))), + (indirect: *(param0 + (0 ..))); assigns *(ws + (0 ..)) \from (indirect: n), (indirect: *(format + (0 ..))), *(param0 + (0 ..)); */ diff --git a/src/plugins/variadic/tests/known/oracle/wchar.res.oracle b/src/plugins/variadic/tests/known/oracle/wchar.res.oracle index 6d0225a773070bb675e09debc3d519189cff1cc1..a5376947d85456fcb47acfbcc4979db23dd1eb7a 100644 --- a/src/plugins/variadic/tests/known/oracle/wchar.res.oracle +++ b/src/plugins/variadic/tests/known/oracle/wchar.res.oracle @@ -92,8 +92,9 @@ assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param1, param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param1), + (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -105,8 +106,9 @@ int wprintf_va_1(wchar_t const *format, int param0, long param1); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param1, param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param1), + (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -118,8 +120,10 @@ int wprintf_va_2(wchar_t const *format, int param0, int param1); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param4, param3, param2, param1, param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param4), + (indirect: param3), (indirect: param2), (indirect: param1), + (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -133,8 +137,9 @@ int wprintf_va_3(wchar_t const *format, int param0, unsigned int param1, assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param2, param1, param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param2), + (indirect: param1), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -147,8 +152,9 @@ int wprintf_va_4(wchar_t const *format, double param0, double param1, assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param1, param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param1), + (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -161,8 +167,8 @@ int wprintf_va_5(wchar_t const *format, int param0, int param1); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - *(param0 + (0 ..)); + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: *(param0 + (0 ..))); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -177,8 +183,8 @@ int wprintf_va_6(wchar_t const *format, wchar_t *param0); requires valid_read_string(param0); assigns \result, *(ws + (0 ..)); assigns \result - \from (indirect: n), (indirect: *(format + (0 ..))), param1, - *(param0 + (0 ..)); + \from (indirect: n), (indirect: *(format + (0 ..))), + (indirect: param1), (indirect: *(param0 + (0 ..))); assigns *(ws + (0 ..)) \from (indirect: n), (indirect: *(format + (0 ..))), param1, *(param0 + (0 ..)); @@ -189,7 +195,8 @@ int swprintf_va_1(wchar_t *ws, size_t n, wchar_t const *format, char *param0, /*@ requires valid_read_wstring(format); assigns \result, __fc_stdin->__fc_FILE_data, *(param0 + (0 ..)); assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -207,7 +214,8 @@ int wscanf_va_1(wchar_t const *format, wchar_t *param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param1, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, diff --git a/src/plugins/variadic/tests/known/printf_garbled_mix.c b/src/plugins/variadic/tests/known/printf_garbled_mix.c new file mode 100644 index 0000000000000000000000000000000000000000..1c4381691d8fd686b4baebd65fff7c5ab40a2825 --- /dev/null +++ b/src/plugins/variadic/tests/known/printf_garbled_mix.c @@ -0,0 +1,10 @@ +#include <stdint.h> +#include <stdio.h> + +void main() { + int a[2] = {1, 2}; + int *b = (int *)(((uintptr_t)a)*2); + int nb_printed = printf("%d", (int)b); + Frama_C_show_each_nb_printed(nb_printed); // must NOT contain a garbled mix + b = 0; // minimize diffs in test oracle +} diff --git a/src/plugins/wp/GuiSource.ml b/src/plugins/wp/GuiSource.ml index bd3bd86692720f66ffe99a26c3438354df327044..c4b367f3507ada492ec213e633be8bef55a3e2d7 100644 --- a/src/plugins/wp/GuiSource.ml +++ b/src/plugins/wp/GuiSource.ml @@ -231,7 +231,7 @@ class highlighter (main:Design.main_window_extension_points) = ~(start:int) ~(stop:int) = let buffer = buffer#buffer in begin match loc with - | PStmt( _ , stmt ) -> + | PStmt( _ , stmt ) | PStmtStart( _ , stmt ) -> begin match effect with | Some(s,_) when Stmt.equal stmt s -> @@ -249,7 +249,7 @@ class highlighter (main:Design.main_window_extension_points) = if DEPS.mem ip deps then apply_depend buffer start stop end - | PStmtStart _ | PGlobal _ + | PGlobal _ | PVDecl _ | PTermLval _ | PLval _ | PExp _ -> () end diff --git a/tests/idct/oracle/ieee_1180_1990.res.oracle b/tests/idct/oracle/ieee_1180_1990.res.oracle index a0c2c414fd9f4785327dea18761f3ff05f3f9fa8..0f3499f8f38e8e1815a6b7f9bb68d54d3019a961 100644 --- a/tests/idct/oracle/ieee_1180_1990.res.oracle +++ b/tests/idct/oracle/ieee_1180_1990.res.oracle @@ -3852,7 +3852,7 @@ [ Extern ] Froms (file tests/idct/ieee_1180_1990.c, line 195) assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, + (indirect: __fc_stdout->__fc_FILE_data), (indirect: *(format + (0 ..))); Unverifiable but considered Valid. [ Valid ] Default behavior @@ -3878,7 +3878,7 @@ [ Extern ] Froms (file tests/idct/ieee_1180_1990.c, line 196) assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, + (indirect: __fc_stdout->__fc_FILE_data), (indirect: *(format + (0 ..))); Unverifiable but considered Valid. [ Valid ] Default behavior diff --git a/tests/libc/check_compliance.ml b/tests/libc/check_compliance.ml new file mode 100644 index 0000000000000000000000000000000000000000..ce69f25c601c328fdde8185f26d6a87ccc7d4e4f --- /dev/null +++ b/tests/libc/check_compliance.ml @@ -0,0 +1,144 @@ +open Cil_types + +let add_headers tbl id headers = + try + let old_headers = Hashtbl.find tbl id in + Hashtbl.replace tbl id (old_headers @ headers) + with Not_found -> + Hashtbl.replace tbl id headers + +class stdlib_visitor = object + inherit Visitor.frama_c_inplace + val in_stdlib = ref false + val idents : (string, string list) Hashtbl.t = Hashtbl.create 500 + + method! vglob_aux g = + match Cil.findAttribute "fc_stdlib" (Cil.global_attributes g) with + | [] -> + in_stdlib := false; + Cil.SkipChildren + | attrparams -> + let headers = + Extlib.filter_map' (fun ap -> + match ap with + | AStr s -> s + | _ -> assert false + ) (Extlib.string_suffix ".h") attrparams + in + in_stdlib := true; + begin + match g with + | GEnumTag ({eorig_name = id}, _loc) | GEnumTagDecl ({eorig_name = id}, _loc) + | GCompTag ({corig_name = id}, _loc) | GCompTagDecl ({corig_name = id}, _loc) + | GVar ({vorig_name = id}, _, _loc) | GVarDecl ({vorig_name = id}, _loc) + | GFunDecl (_, {vorig_name = id}, _loc) + | GFun ({svar = {vorig_name = id}}, _loc) -> + add_headers idents id headers + | _ -> () + end; + Cil.DoChildren + + method get_idents = idents +end + +let run_once = ref false + +module StringSet = Set.Make(String) + +let get_idents dir f = + let file = Filename.concat dir f in + let open Yojson.Basic.Util in + Kernel.feedback "parsing %s" f; + let json = Yojson.Basic.from_file file in + let elements = json |> member "data" |> to_list in + List.fold_left (fun acc e -> + let ident = e |> member "ident" |> to_string in + StringSet.add ident acc + ) StringSet.empty elements + +let get_ident_headers dir f = + let file = Filename.concat dir f in + let idents = Hashtbl.create 500 in + let open Yojson.Basic.Util in + Kernel.feedback "parsing %s" f; + let json = Yojson.Basic.from_file file in + let elements = json |> member "data" |> to_list in + List.iter (fun e -> + let ident = e |> member "ident" |> to_string in + let header = e |> member "header" |> to_string in + Hashtbl.replace idents ident header + ) elements; + idents + +let get_ident_headers_and_extensions dir f = + let file = Filename.concat dir f in + let idents = Hashtbl.create 500 in + let open Yojson.Basic.Util in + Kernel.feedback "parsing %s" f; + let json = Yojson.Basic.from_file file in + let elements = json |> member "data" |> to_list in + List.iter (fun e -> + let ident = e |> member "ident" |> to_string in + let header = e |> member "header" |> to_string in + let extensions = e |> member "extensions" |> to_list in + Hashtbl.replace idents ident (header, extensions) + ) elements; + idents + +let () = + Db.Main.extend (fun () -> + if not !run_once then begin + run_once := true; + let vis = new stdlib_visitor in + ignore (Visitor.visitFramacFile (vis :> Visitor.frama_c_visitor) (Ast.get ())); + let fc_stdlib_idents = vis#get_idents in + let dir = Filename.concat Config.datadir "compliance" in + let c11_idents = get_ident_headers dir "c11_functions.json" in + let glibc_idents = get_idents dir "glibc_functions.json" in + let posix_idents = get_ident_headers_and_extensions dir "posix_identifiers.json" in + let nonstandard_idents = get_idents dir "nonstandard_identifiers.json" in + Hashtbl.iter (fun id headers -> + if not (Extlib.string_prefix "__" id) && + not (Extlib.string_prefix "Frama_C" id) && + List.filter (fun h -> not (Extlib.string_prefix "__fc" h)) + headers <> [] + then + let id_in_c11 = Hashtbl.mem c11_idents id in + let id_in_posix = Hashtbl.mem posix_idents id in + let id_in_glibc = StringSet.mem id glibc_idents in + let id_in_nonstd = StringSet.mem id nonstandard_idents in + if id_in_c11 then begin + (* Check that the header is the expected one. + Note that some symbols may appear in more than one header, + possibly due to collisions + (e.g. 'flock' as type and function). *) + let h = Hashtbl.find c11_idents id in + if not (List.mem h headers) then + Kernel.warning "<%a>:%s : C11 says %s" + (Pretty_utils.pp_list ~sep:"," Format.pp_print_string) headers + id h + end + else if id_in_posix then begin + (* check the header is the expected one *) + let (h, _) = Hashtbl.find posix_idents id in + (* arpa/inet.h and netinet/in.h are special cases: due to mutual + inclusion, there are always issues with their symbols; + also, timezone is a special case, since it is a type in + sys/time.h, but a variable in time.h in POSIX. However, its + declaration as extern is erased by rmtmps, since it is + unused. *) + if not (List.mem h headers) && + not (List.mem "arpa/inet.h" headers && h = "netinet/in.h" || + List.mem "netinet/in.h" headers && h = "arpa/inet.h") && + id <> "timezone" + then + Kernel.warning "<%a>:%s : POSIX says %s" + (Pretty_utils.pp_list ~sep:"," Format.pp_print_string) headers + id h + end + else if not (id_in_glibc || id_in_nonstd) then + Kernel.warning "<%a>:%s : unknown identifier" + (Pretty_utils.pp_list ~sep:"," Format.pp_print_string) headers + id + ) fc_stdlib_idents; + end) diff --git a/tests/libc/fc_libc.c b/tests/libc/fc_libc.c index 3baf405b45968983fc9f4ef2316aaf1822b023ba..108fa7a3ad4a0cdf546d0127c2aec388f32077ae 100644 --- a/tests/libc/fc_libc.c +++ b/tests/libc/fc_libc.c @@ -2,9 +2,11 @@ EXECNOW: make -s @PTEST_DIR@/check_libc_naming_conventions.cmxs EXECNOW: make -s @PTEST_DIR@/check_const.cmxs EXECNOW: make -s @PTEST_DIR@/check_parsing_individual_headers.cmxs + EXECNOW: make -s @PTEST_DIR@/check_compliance.cmxs OPT: -load-module @PTEST_DIR@/check_libc_naming_conventions -print -cpp-extra-args='-nostdinc -Ishare/libc' -metrics -metrics-libc -load-module @PTEST_DIR@/check_const -load-module metrics -eva @EVA_CONFIG@ -then -lib-entry -no-print -metrics-no-libc OPT: -print -print-libc OPT: -load-module @PTEST_DIR@/check_parsing_individual_headers + OPT: -load-module @PTEST_DIR@/check_compliance -kernel-msg-key printer:attrs CMD: ./tests/libc/check_full_libc.sh OPT: **/ diff --git a/tests/libc/oracle/fc_libc.0.res.oracle b/tests/libc/oracle/fc_libc.0.res.oracle index 6e3d1931e3a29df6f54f71de3d15181b471bbc54..7edeeaacb72c89e076fde32302ba704b09368783 100644 --- a/tests/libc/oracle/fc_libc.0.res.oracle +++ b/tests/libc/oracle/fc_libc.0.res.oracle @@ -4,10 +4,10 @@ [eva] Initial state computed [eva:initial-state] Values of globals at initialization -[eva] tests/libc/fc_libc.c:149: assertion got status valid. -[eva] tests/libc/fc_libc.c:150: assertion got status valid. [eva] tests/libc/fc_libc.c:151: assertion got status valid. [eva] tests/libc/fc_libc.c:152: assertion got status valid. +[eva] tests/libc/fc_libc.c:153: assertion got status valid. +[eva] tests/libc/fc_libc.c:154: assertion got status valid. [eva] Recording results for main [eva] done for function main [eva] ====== VALUES COMPUTED ====== @@ -157,12 +157,12 @@ wcstombs (0 call); wctomb (0 call); wmemchr (0 call); wmemcmp (0 call); wmemmove (0 call); write (0 call); - 'Extern' global variables (15) + 'Extern' global variables (17) ============================== __fc_basename; __fc_dirname; __fc_getpwuid_pw_dir; __fc_getpwuid_pw_name; - __fc_getpwuid_pw_passwd; __fc_getpwuid_pw_shell; __fc_hostname; - __fc_mblen_state; __fc_mbtowc_state; __fc_ttyname; __fc_wctomb_state; - optarg; opterr; optopt; tzname + __fc_getpwuid_pw_passwd; __fc_getpwuid_pw_shell; __fc_hostname; __fc_locale; + __fc_locale_names; __fc_mblen_state; __fc_mbtowc_state; __fc_ttyname; + __fc_wctomb_state; optarg; opterr; optopt; tzname Potential entry points (1) ========================== @@ -172,7 +172,7 @@ ============== Sloc = 1083 Decision point = 204 - Global variables = 66 + Global variables = 68 If = 195 Loop = 43 Goto = 89 @@ -186,7 +186,6 @@ #include "__fc_builtin.c" #include "__fc_builtin.h" #include "__fc_define_fd_set_t.h" -#include "__fc_define_useconds_t.h" #include "__fc_gcc_builtins.h" #include "__fc_select.h" #include "alloca.h" @@ -214,6 +213,7 @@ #include "math.h" #include "netdb.c" #include "netdb.h" +#include "netinet/in.h" #include "poll.h" #include "pthread.h" #include "pwd.h" diff --git a/tests/libc/oracle/fc_libc.1.res.oracle b/tests/libc/oracle/fc_libc.1.res.oracle index 417ea214e24ff7f7103182badf324309869ad81f..d0942621eceadea65324eea022577dd0fad7f0f9 100644 --- a/tests/libc/oracle/fc_libc.1.res.oracle +++ b/tests/libc/oracle/fc_libc.1.res.oracle @@ -17,6 +17,13 @@ struct __fc_fenv_t { unsigned short __unused5 ; }; typedef struct __fc_fenv_t fenv_t; +typedef int wchar_t; +typedef int ssize_t; +typedef unsigned int gid_t; +typedef unsigned int uid_t; +typedef long off_t; +typedef int pid_t; +typedef unsigned int useconds_t; struct option { char const *name ; int has_arg ; @@ -35,7 +42,6 @@ struct __fc_glob_t { int (*gl_stat)(char const * __restrict , void * __restrict ) ; }; typedef struct __fc_glob_t glob_t; -typedef int wchar_t; struct __fc_div_t { int quot ; int rem ; @@ -119,9 +125,6 @@ struct __fc_pthread_t { int _fc ; }; typedef struct __fc_pthread_t pthread_t; -typedef int pid_t; -typedef unsigned int gid_t; -typedef unsigned int uid_t; typedef unsigned long sigset_t; union sigval { int sival_int ; @@ -151,7 +154,6 @@ struct sockaddr { sa_family_t sa_family ; char sa_data[14] ; }; -typedef int ssize_t; struct iovec { void *iov_base ; size_t iov_len ; @@ -239,7 +241,6 @@ typedef unsigned int blksize_t; typedef unsigned int dev_t; typedef unsigned int mode_t; typedef unsigned int nlink_t; -typedef long off_t; struct stat { dev_t st_dev ; ino_t st_ino ; @@ -301,7 +302,6 @@ struct __fc_fd_set { long __fc_fd_set[(unsigned int)1024 / ((unsigned int)8 * sizeof(long))] ; }; typedef struct __fc_fd_set fd_set; -typedef unsigned int useconds_t; struct flock { short l_type ; short l_whence ; @@ -343,11 +343,11 @@ struct __fc_sigjmp_buf { sigset_t sigs ; }; typedef struct __fc_sigjmp_buf sigjmp_buf; -struct _code { +struct __fc_code { char const *c_name ; int c_val ; }; -typedef struct _code CODE; +typedef struct __fc_code CODE; typedef unsigned long rlim_t; struct rlimit { rlim_t rlim_cur ; @@ -1147,95 +1147,6 @@ int fesetenv(fenv_t const *envp) return __retres; } -extern char *optarg; - -int optind; - -extern int opterr; - -extern int optopt; - -/*@ assigns \result, *optarg, optind, opterr, optopt; - assigns \result - \from argc, *(argv + (0 .. argc - 1)), *(optstring + (0 ..)); - assigns *optarg - \from argc, *(argv + (0 .. argc - 1)), *(optstring + (0 ..)); - assigns optind - \from argc, *(argv + (0 .. argc - 1)), *(optstring + (0 ..)); - assigns opterr - \from argc, *(argv + (0 .. argc - 1)), *(optstring + (0 ..)); - assigns optopt - \from argc, *(argv + (0 .. argc - 1)), *(optstring + (0 ..)); - */ -extern int getopt(int argc, char * const *argv, char const *optstring); - -/*@ assigns \result, *optarg, optind, opterr, optopt, - *((longopts + (0 ..))->flag); - assigns \result - \from argc, *(argv + (0 .. argc - 1)), *(shortopts + (0 ..)), - *(longopts + (0 ..)); - assigns *optarg - \from argc, *(argv + (0 .. argc - 1)), *(shortopts + (0 ..)), - *(longopts + (0 ..)); - assigns optind - \from argc, *(argv + (0 .. argc - 1)), *(shortopts + (0 ..)), - *(longopts + (0 ..)); - assigns opterr - \from argc, *(argv + (0 .. argc - 1)), *(shortopts + (0 ..)), - *(longopts + (0 ..)); - assigns optopt - \from argc, *(argv + (0 .. argc - 1)), *(shortopts + (0 ..)), - *(longopts + (0 ..)); - assigns *((longopts + (0 ..))->flag) - \from argc, *(argv + (0 .. argc - 1)), *(shortopts + (0 ..)), - *(longopts + (0 ..)); - */ -extern int getopt_long(int argc, char * const *argv, char const *shortopts, - struct option const *longopts, int *longind); - -/*@ assigns \result, *optarg, optind, opterr, optopt, - *((longopts + (0 ..))->flag); - assigns \result - \from argc, *(argv + (0 .. argc - 1)), *(shortopts + (0 ..)), - *(longopts + (0 ..)); - assigns *optarg - \from argc, *(argv + (0 .. argc - 1)), *(shortopts + (0 ..)), - *(longopts + (0 ..)); - assigns optind - \from argc, *(argv + (0 .. argc - 1)), *(shortopts + (0 ..)), - *(longopts + (0 ..)); - assigns opterr - \from argc, *(argv + (0 .. argc - 1)), *(shortopts + (0 ..)), - *(longopts + (0 ..)); - assigns optopt - \from argc, *(argv + (0 .. argc - 1)), *(shortopts + (0 ..)), - *(longopts + (0 ..)); - assigns *((longopts + (0 ..))->flag) - \from argc, *(argv + (0 .. argc - 1)), *(shortopts + (0 ..)), - *(longopts + (0 ..)); - */ -extern int getopt_long_only(int argc, char * const *argv, - char const *shortopts, - struct option const *longopts, int *longind); - -int optind = 1; -int glob(char const *pattern, int flags, - int (*errfunc)(char const *epath, int eerrno), glob_t *pglob); - -void globfree(glob_t *pglob); - -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(ℤ n) - reads __fc_heap_status; - - axiom never_allocable{L}: - ∀ ℤ i; i < 0 ∨ i > 4294967295U ⇒ ¬is_allocable(i); - - } - */ /*@ axiomatic MemCmp { logic ℤ memcmp{L1, L2}(char *s1, char *s2, ℤ n) @@ -1523,3398 +1434,2896 @@ predicate valid_wstring_or_null{L}(wchar_t *s) = s ≡ \null ∨ valid_wstring(s); */ -/*@ requires valid_nptr: \valid_read(nptr); +/*@ ghost int __fc_fds[1024]; */ +/*@ requires valid_string_path: valid_read_string(path); + requires valid_amode: (amode & ~((4 | 2) | 1)) ≡ 0 ∨ amode ≡ 0; + ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; assigns \result; - assigns \result \from (indirect: nptr), (indirect: *(nptr + (0 ..))); + assigns \result + \from (indirect: path), (indirect: *(path + (0 ..))), (indirect: amode); */ -extern double atof(char const *nptr); - -int atoi(char const *p); +extern int access(char const *path, int amode); -/*@ requires valid_nptr: \valid_read(nptr); +/*@ requires valid_string_path: valid_read_string(path); + ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; assigns \result; - assigns \result \from (indirect: nptr), (indirect: *(nptr + (0 ..))); + assigns \result \from (indirect: path), (indirect: *(path + (0 ..))); */ -extern long atol(char const *nptr); +extern int chdir(char const *path); -/*@ requires valid_nptr: \valid_read(nptr); +/*@ requires valid_string_path: valid_read_string(path); + ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; assigns \result; - assigns \result \from (indirect: nptr), (indirect: *(nptr + (0 ..))); + assigns \result \from (indirect: path), (indirect: *(path + (0 ..))); */ -extern long long atoll(char const *nptr); +extern int chroot(char const *path); -/*@ requires valid_nptr: \valid_read(nptr); - requires separation: \separated(nptr, endptr); - assigns \result, *endptr; - assigns \result \from (indirect: nptr), (indirect: *(nptr + (0 ..))); - assigns *endptr - \from nptr, (indirect: *(nptr + (0 ..))), (indirect: endptr); - - behavior no_storage: - assumes null_endptr: endptr ≡ \null; - assigns \result; - assigns \result \from (indirect: nptr), (indirect: *(nptr + (0 ..))); - - behavior store_position: - assumes nonnull_endptr: endptr ≢ \null; - requires valid_endptr: \valid(endptr); - ensures initialization: \initialized(\old(endptr)); - ensures valid_endptr: \valid_read(\old(endptr)); - ensures position_subset: \subset(*\old(endptr), \old(nptr) + (0 ..)); - assigns \result, *endptr; - assigns \result \from (indirect: nptr), (indirect: *(nptr + (0 ..))); - assigns *endptr - \from nptr, (indirect: *(nptr + (0 ..))), (indirect: endptr); - - complete behaviors store_position, no_storage; - disjoint behaviors store_position, no_storage; +/*@ requires valid_string_path: valid_read_string(path); + ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; + assigns \result; + assigns \result + \from (indirect: path), (indirect: *(path + (0 ..))), + (indirect: owner), (indirect: group); */ -extern double strtod(char const * __restrict nptr, char ** __restrict endptr); +extern int chown(char const *path, uid_t owner, gid_t group); -/*@ requires valid_nptr: \valid_read(nptr); - requires separation: \separated(nptr, endptr); - assigns \result, *endptr; - assigns \result \from (indirect: nptr), (indirect: *(nptr + (0 ..))); - assigns *endptr - \from nptr, (indirect: *(nptr + (0 ..))), (indirect: endptr); - - behavior no_storage: - assumes null_endptr: endptr ≡ \null; - assigns \result; - assigns \result \from (indirect: nptr), (indirect: *(nptr + (0 ..))); - - behavior store_position: - assumes nonnull_endptr: endptr ≢ \null; - requires valid_endptr: \valid(endptr); - ensures initialization: \initialized(\old(endptr)); - ensures valid_endptr: \valid_read(\old(endptr)); - ensures position_subset: \subset(*\old(endptr), \old(nptr) + (0 ..)); - assigns \result, *endptr; - assigns \result \from (indirect: nptr), (indirect: *(nptr + (0 ..))); - assigns *endptr - \from nptr, (indirect: *(nptr + (0 ..))), (indirect: endptr); - - complete behaviors store_position, no_storage; - disjoint behaviors store_position, no_storage; +/*@ requires valid_fd: 0 ≤ fd < 1024; + ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; + assigns __fc_fds[fd], \result; + assigns __fc_fds[fd] \from fd, __fc_fds[fd]; + assigns \result \from (indirect: fd), (indirect: __fc_fds[fd]); */ -extern float strtof(char const * __restrict nptr, char ** __restrict endptr); +extern int close(int fd); -/*@ requires valid_nptr: \valid_read(nptr); - requires separation: \separated(nptr, endptr); - assigns \result, *endptr; - assigns \result \from (indirect: nptr), (indirect: *(nptr + (0 ..))); - assigns *endptr - \from nptr, (indirect: *(nptr + (0 ..))), (indirect: endptr); - - behavior no_storage: - assumes null_endptr: endptr ≡ \null; - assigns \result; - assigns \result \from (indirect: nptr), (indirect: *(nptr + (0 ..))); - - behavior store_position: - assumes nonnull_endptr: endptr ≢ \null; - requires valid_endptr: \valid(endptr); - ensures initialization: \initialized(\old(endptr)); - ensures valid_endptr: \valid_read(\old(endptr)); - ensures position_subset: \subset(*\old(endptr), \old(nptr) + (0 ..)); - assigns \result, *endptr; - assigns \result \from (indirect: nptr), (indirect: *(nptr + (0 ..))); - assigns *endptr - \from nptr, (indirect: *(nptr + (0 ..))), (indirect: endptr); - - complete behaviors store_position, no_storage; - disjoint behaviors store_position, no_storage; +/*@ requires valid_fildes: 0 ≤ fildes < 1024; + ensures + result_valid_fildes_or_error: + \result ≡ -1 ∨ (\old(fildes) ≤ \result < 1024); + assigns __fc_fds[fildes ..], \result; + assigns __fc_fds[fildes ..] \from fildes; + assigns \result \from fildes; */ -extern long double strtold(char const * __restrict nptr, - char ** __restrict endptr); +extern int dup(int fildes); -/*@ requires valid_nptr: \valid_read(nptr); - requires separation: \separated(nptr, endptr); - requires base_range: base ≡ 0 ∨ (2 ≤ base ≤ 36); - assigns \result, *endptr; +/*@ requires valid_fildes: 0 ≤ fildes < 1024; + requires valid_fildes2: 0 ≤ fildes2 < 1024; + ensures + result_fildes2_or_error: \result ≡ \old(fildes2) ∨ \result ≡ -1; + assigns __fc_fds[fildes2], \result; + assigns __fc_fds[fildes2] \from fildes, fildes2, __fc_fds[fildes2]; assigns \result - \from (indirect: nptr), (indirect: *(nptr + (0 ..))), (indirect: base); - assigns *endptr - \from nptr, (indirect: *(nptr + (0 ..))), (indirect: endptr), - (indirect: base); - - behavior no_storage: - assumes null_endptr: endptr ≡ \null; - assigns \result; - assigns \result - \from (indirect: nptr), (indirect: *(nptr + (0 ..))), - (indirect: base); - - behavior store_position: - assumes nonnull_endptr: endptr ≢ \null; - requires valid_endptr: \valid(endptr); - ensures initialization: \initialized(\old(endptr)); - ensures valid_endptr: \valid_read(\old(endptr)); - ensures position_subset: \subset(*\old(endptr), \old(nptr) + (0 ..)); - assigns \result, *endptr; - assigns \result - \from (indirect: nptr), (indirect: *(nptr + (0 ..))), - (indirect: base); - assigns *endptr - \from nptr, (indirect: *(nptr + (0 ..))), (indirect: endptr), - (indirect: base); - - complete behaviors store_position, no_storage; - disjoint behaviors store_position, no_storage; + \from fildes, fildes2, __fc_fds[fildes], __fc_fds[fildes2]; */ -extern long strtol(char const * __restrict nptr, char ** __restrict endptr, - int base); +extern int dup2(int fildes, int fildes2); -/*@ requires valid_nptr: \valid_read(nptr); - requires separation: \separated(nptr, endptr); - requires base_range: base ≡ 0 ∨ (2 ≤ base ≤ 36); - assigns \result, *endptr; - assigns \result - \from (indirect: nptr), (indirect: *(nptr + (0 ..))), (indirect: base); - assigns *endptr - \from nptr, (indirect: *(nptr + (0 ..))), (indirect: endptr), - (indirect: base); - - behavior no_storage: - assumes null_endptr: endptr ≡ \null; - assigns \result; - assigns \result - \from (indirect: nptr), (indirect: *(nptr + (0 ..))), - (indirect: base); - - behavior store_position: - assumes nonnull_endptr: endptr ≢ \null; - requires valid_endptr: \valid(endptr); - ensures initialization: \initialized(\old(endptr)); - ensures valid_endptr: \valid_read(\old(endptr)); - ensures position_subset: \subset(*\old(endptr), \old(nptr) + (0 ..)); - assigns \result, *endptr; - assigns \result - \from (indirect: nptr), (indirect: *(nptr + (0 ..))), - (indirect: base); - assigns *endptr - \from nptr, (indirect: *(nptr + (0 ..))), (indirect: endptr), - (indirect: base); - - complete behaviors store_position, no_storage; - disjoint behaviors store_position, no_storage; +/*@ requires valid_string_path: valid_read_string(path); + requires valid_string_arg: valid_read_string(arg); + assigns \result; + assigns \result \from *(path + (0 ..)), *(arg + (0 ..)); */ -extern long long strtoll(char const * __restrict nptr, - char ** __restrict endptr, int base); +extern int execl(char const *path, char const *arg, void * const *__va_params); -/*@ requires valid_nptr: \valid_read(nptr); - requires separation: \separated(nptr, endptr); - requires base_range: base ≡ 0 ∨ (2 ≤ base ≤ 36); - assigns \result, *endptr; - assigns \result - \from (indirect: nptr), (indirect: *(nptr + (0 ..))), (indirect: base); - assigns *endptr - \from nptr, (indirect: *(nptr + (0 ..))), (indirect: endptr), - (indirect: base); - - behavior no_storage: - assumes null_endptr: endptr ≡ \null; - assigns \result; - assigns \result - \from (indirect: nptr), (indirect: *(nptr + (0 ..))), - (indirect: base); - - behavior store_position: - assumes nonnull_endptr: endptr ≢ \null; - requires valid_endptr: \valid(endptr); - ensures initialization: \initialized(\old(endptr)); - ensures valid_endptr: \valid_read(\old(endptr)); - ensures position_subset: \subset(*\old(endptr), \old(nptr) + (0 ..)); - assigns \result, *endptr; - assigns \result - \from (indirect: nptr), (indirect: *(nptr + (0 ..))), - (indirect: base); - assigns *endptr - \from nptr, (indirect: *(nptr + (0 ..))), (indirect: endptr), - (indirect: base); - - complete behaviors store_position, no_storage; - disjoint behaviors store_position, no_storage; +/*@ requires valid_string_path: valid_read_string(path); + requires valid_string_arg: valid_read_string(arg); + assigns \result; + assigns \result \from *(path + (0 ..)), *(arg + (0 ..)); */ -extern unsigned long strtoul(char const * __restrict nptr, - char ** __restrict endptr, int base); +extern int execle(char const *path, char const *arg, + void * const *__va_params); -/*@ requires valid_nptr: \valid_read(nptr); - requires separation: \separated(nptr, endptr); - requires base_range: base ≡ 0 ∨ (2 ≤ base ≤ 36); - assigns \result, *endptr; - assigns \result - \from (indirect: nptr), (indirect: *(nptr + (0 ..))), (indirect: base); - assigns *endptr - \from nptr, (indirect: *(nptr + (0 ..))), (indirect: endptr), - (indirect: base); - - behavior no_storage: - assumes null_endptr: endptr ≡ \null; - assigns \result; - assigns \result - \from (indirect: nptr), (indirect: *(nptr + (0 ..))), - (indirect: base); - - behavior store_position: - assumes nonnull_endptr: endptr ≢ \null; - requires valid_endptr: \valid(endptr); - ensures initialization: \initialized(\old(endptr)); - ensures valid_endptr: \valid_read(\old(endptr)); - ensures position_subset: \subset(*\old(endptr), \old(nptr) + (0 ..)); - assigns \result, *endptr; - assigns \result - \from (indirect: nptr), (indirect: *(nptr + (0 ..))), - (indirect: base); - assigns *endptr - \from nptr, (indirect: *(nptr + (0 ..))), (indirect: endptr), - (indirect: base); - - complete behaviors store_position, no_storage; - disjoint behaviors store_position, no_storage; +/*@ requires valid_string_path: valid_read_string(path); + requires valid_string_arg: valid_read_string(arg); + assigns \result; + assigns \result \from *(path + (0 ..)), *(arg + (0 ..)); */ -extern unsigned long long strtoull(char const * __restrict nptr, - char ** __restrict endptr, int base); - -/*@ ghost -extern int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -*/ +extern int execlp(char const *path, char const *arg, + void * const *__va_params); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ensures result_range: 0 ≤ \result ≤ __fc_rand_max; - assigns \result, __fc_random_counter; - assigns \result \from __fc_random_counter; - assigns __fc_random_counter \from __fc_random_counter; +/*@ requires valid_string_path: valid_read_string(path); + requires valid_string_argv0: valid_read_string(*(argv + 0)); + assigns \result; + assigns \result \from *(path + (0 ..)), *(argv + (0 ..)); */ -extern int rand(void); +extern int execv(char const *path, char * const *argv); -/*@ assigns __fc_random_counter; - assigns __fc_random_counter \from seed; */ -extern void srand(unsigned int seed); +/*@ requires valid_path: valid_read_string(path); + requires valid_argv0: valid_read_string(*(argv + 0)); + assigns \result; + assigns \result \from *(path + (0 ..)), *(argv + (0 ..)); + */ +extern int execve(char const *path, char * const *argv, char * const *env); -/*@ ensures result_range: 0 ≤ \result ≤ __fc_rand_max; +/*@ requires valid_string_path: valid_read_string(path); + requires valid_string_argv0: valid_read_string(*(argv + 0)); assigns \result; - assigns \result \from __fc_random_counter; + assigns \result \from *(path + (0 ..)), *(argv + (0 ..)); */ -extern long random(void); +extern int execvp(char const *path, char * const *argv); -/*@ assigns __fc_random_counter; - assigns __fc_random_counter \from seed; */ -extern void srandom(unsigned int seed); +/*@ ensures never_terminates: \false; + assigns \nothing; */ +extern __attribute__((__noreturn__)) void _exit(int); -int __fc_random48_init __attribute__((__FRAMA_C_MODEL__)); -unsigned short __fc_random48_counter[3] __attribute__((__FRAMA_C_MODEL__)); -unsigned short *__fc_p_random48_counter = __fc_random48_counter; -/*@ ensures random48_initialized: __fc_random48_init ≡ 1; - assigns __fc_random48_counter[0 .. 2], __fc_random48_init; - assigns __fc_random48_counter[0 .. 2] \from seed; - assigns __fc_random48_init \from \nothing; +/*@ ensures + result_ok_child_or_error: + \result ≡ 0 ∨ \result > 0 ∨ \result ≡ -1; + assigns \result; + assigns \result \from \nothing; */ -extern void srand48(long seed); +extern pid_t fork(void); -/*@ requires - initialization: initialized_seed16v: \initialized(seed16v + (0 .. 2)); - ensures random48_initialized: __fc_random48_init ≡ 1; - ensures result_counter: \result ≡ __fc_p_random48_counter; - assigns __fc_random48_counter[0 .. 2], __fc_random48_init, \result; - assigns __fc_random48_counter[0 .. 2] - \from (indirect: *(seed16v + (0 .. 2))); - assigns __fc_random48_init \from \nothing; - assigns \result \from __fc_p_random48_counter; +/*@ requires valid_buf: \valid(buf + (0 .. size - 1)); + ensures result_ok_or_error: \result ≡ \null ∨ \result ≡ \old(buf); + assigns *(buf + (0 .. size - 1)), \result; + assigns *(buf + (0 .. size - 1)) \from (indirect: buf), (indirect: size); + assigns \result \from buf, (indirect: size); */ -extern unsigned short *seed48(unsigned short * /*[3]*/ seed16v); +extern char *getcwd(char *buf, size_t size); -/*@ ensures random48_initialized: __fc_random48_init ≡ 1; - assigns __fc_random48_counter[0 .. 2], __fc_random48_init; - assigns __fc_random48_counter[0 .. 2] \from *(param + (0 .. 5)); - assigns __fc_random48_init \from \nothing; - */ -extern void lcong48(unsigned short * /*[7]*/ param); +/*@ assigns \result; + assigns \result \from \nothing; */ +extern gid_t getegid(void); -/*@ requires random48_initialized: __fc_random48_init ≡ 1; - ensures result_range: \is_finite(\result) ∧ 0.0 ≤ \result < 1.0; - assigns __fc_random48_counter[0 .. 2], \result; - assigns __fc_random48_counter[0 .. 2] - \from __fc_random48_counter[0 .. 2]; - assigns \result \from __fc_random48_counter[0 .. 2]; - */ -extern double drand48(void); +/*@ assigns \result; + assigns \result \from \nothing; */ +extern uid_t geteuid(void); -/*@ requires - initialization: initialized_xsubi: \initialized(xsubi + (0 .. 2)); - ensures result_range: \is_finite(\result) ∧ 0.0 ≤ \result < 1.0; - assigns __fc_random48_counter[0 .. 2], \result; - assigns __fc_random48_counter[0 .. 2] - \from __fc_random48_counter[0 .. 2]; - assigns \result \from __fc_random48_counter[0 .. 2]; - */ -extern double erand48(unsigned short * /*[3]*/ xsubi); +/*@ assigns \result; + assigns \result \from \nothing; */ +extern gid_t getgid(void); -/*@ requires random48_initialized: __fc_random48_init ≡ 1; - ensures result_range: 0 ≤ \result < 2147483648; - assigns __fc_random48_counter[0 .. 2], \result; - assigns __fc_random48_counter[0 .. 2] - \from __fc_random48_counter[0 .. 2]; - assigns \result \from __fc_random48_counter[0 .. 2]; +extern char volatile __fc_hostname[64]; + +/*@ requires name_has_room: \valid(name + (0 .. len - 1)); + ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; + assigns \result, *(name + (0 .. len - 1)); + assigns \result + \from (indirect: __fc_hostname[0 .. len]), (indirect: len); + assigns *(name + (0 .. len - 1)) + \from (indirect: __fc_hostname[0 .. len]), (indirect: len); */ -extern long lrand48(void); +extern int gethostname(char *name, size_t len); -/*@ requires - initialization: initialized_xsubi: \initialized(xsubi + (0 .. 2)); - ensures result_range: 0 ≤ \result < 2147483648; - assigns __fc_random48_counter[0 .. 2], \result; - assigns __fc_random48_counter[0 .. 2] - \from __fc_random48_counter[0 .. 2]; - assigns \result \from __fc_random48_counter[0 .. 2]; - */ -extern long nrand48(unsigned short * /*[3]*/ xsubi); - -/*@ requires random48_initialized: __fc_random48_init ≡ 1; - ensures result_range: -2147483648 ≤ \result < 2147483648; - assigns __fc_random48_counter[0 .. 2], \result; - assigns __fc_random48_counter[0 .. 2] - \from __fc_random48_counter[0 .. 2]; - assigns \result \from __fc_random48_counter[0 .. 2]; - */ -extern long mrand48(void); - -/*@ requires - initialization: initialized_xsubi: \initialized(xsubi + (0 .. 2)); - ensures result_range: -2147483648 ≤ \result < 2147483648; - assigns __fc_random48_counter[0 .. 2], \result; - assigns __fc_random48_counter[0 .. 2] - \from __fc_random48_counter[0 .. 2]; - assigns \result \from __fc_random48_counter[0 .. 2]; - */ -extern long jrand48(unsigned short * /*[3]*/ xsubi); - -void *calloc(size_t nmemb, size_t size); - -/*@ assigns __fc_heap_status, \result; - assigns __fc_heap_status \from size, __fc_heap_status; - assigns \result \from (indirect: size), (indirect: __fc_heap_status); - allocates \result; - - behavior allocation: - assumes can_allocate: is_allocable(size); - ensures allocation: \fresh{Old, Here}(\result,\old(size)); - assigns __fc_heap_status, \result; - assigns __fc_heap_status \from size, __fc_heap_status; - assigns \result \from (indirect: size), (indirect: __fc_heap_status); - - behavior no_allocation: - assumes cannot_allocate: ¬is_allocable(size); - ensures null_result: \result ≡ \null; - assigns \result; - assigns \result \from \nothing; - allocates \nothing; - - complete behaviors no_allocation, allocation; - disjoint behaviors no_allocation, allocation; +/*@ requires name_valid_string: valid_read_nstring(name, len); + requires bounded_len: len ≤ 64; + ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; + assigns __fc_hostname[0 .. len], \result; + assigns __fc_hostname[0 .. len] + \from *(name + (0 .. len - 1)), (indirect: len); + assigns \result \from (indirect: __fc_hostname[0 .. len]); */ -extern void *malloc(size_t size); +extern int sethostname(char const *name, size_t len); -/*@ requires freeable: p ≡ \null ∨ \freeable(p); - assigns __fc_heap_status; - assigns __fc_heap_status \from __fc_heap_status; - frees p; - - behavior deallocation: - assumes nonnull_p: p ≢ \null; - ensures freed: \allocable(\old(p)); - assigns __fc_heap_status; - assigns __fc_heap_status \from __fc_heap_status; - - behavior no_deallocation: - assumes null_p: p ≡ \null; - assigns \nothing; - allocates \nothing; - - complete behaviors no_deallocation, deallocation; - disjoint behaviors no_deallocation, deallocation; - */ -extern void free(void *p); +/*@ assigns \result; + assigns \result \from (indirect: pid); */ +extern pid_t getpgid(pid_t pid); -/*@ requires freeable: ptr ≡ \null ∨ \freeable(ptr); - assigns __fc_heap_status, \result; - assigns __fc_heap_status \from __fc_heap_status; - assigns \result \from size, ptr, __fc_heap_status; - frees ptr; - allocates \result; - - behavior allocation: - assumes can_allocate: is_allocable(size); - ensures allocation: \fresh{Old, Here}(\result,\old(size)); - assigns \result; - assigns \result \from size, __fc_heap_status; - allocates \result; - - behavior deallocation: - assumes nonnull_ptr: ptr ≢ \null; - assumes can_allocate: is_allocable(size); - ensures freed: \allocable(\old(ptr)); - ensures freeable: \result ≡ \null ∨ \freeable(\result); - frees ptr; - - behavior fail: - assumes cannot_allocate: ¬is_allocable(size); - ensures null_result: \result ≡ \null; - assigns \result; - assigns \result \from size, __fc_heap_status; - allocates \nothing; - - complete behaviors fail, deallocation, allocation; - disjoint behaviors allocation, fail; - disjoint behaviors deallocation, fail; - */ -extern void *realloc(void *ptr, size_t size); +/*@ assigns \result; + assigns \result \from \nothing; */ +extern pid_t getpgrp(void); -/*@ ensures never_terminates: \false; - assigns \nothing; */ -extern __attribute__((__noreturn__)) void abort(void); +/*@ assigns \result; + assigns \result \from \nothing; */ +extern pid_t getpid(void); /*@ assigns \result; assigns \result \from \nothing; */ -extern int atexit(void (*func)(void)); +extern pid_t getppid(void); /*@ assigns \result; assigns \result \from \nothing; */ -extern int at_quick_exit(void (*func)(void)); +extern pid_t getsid(pid_t); -/*@ ensures never_terminates: \false; - assigns \nothing; */ -extern __attribute__((__noreturn__)) void exit(int status); +/*@ assigns \result; + assigns \result \from \nothing; */ +extern uid_t getuid(void); -/*@ ensures never_terminates: \false; - assigns \nothing; */ -extern __attribute__((__noreturn__)) void _Exit(int status); +/*@ ensures result_true_or_false: \result ≡ 0 ∨ \result ≡ 1; + assigns \result; + assigns \result \from (indirect: fd), (indirect: __fc_fds[fd]); + */ +extern int isatty(int fd); -char *__fc_env[4096] __attribute__((__FRAMA_C_MODEL__)); -char *getenv(char const *name); +/*@ requires valid_fd: 0 ≤ fd < 1024; + requires valid_whence: whence ≡ 0 ∨ whence ≡ 1 ∨ whence ≡ 2; + ensures result_error_or_offset: \result ≡ -1 ∨ 0 ≤ \result; + assigns \result, __fc_fds[fd]; + assigns \result + \from (indirect: fd), (indirect: __fc_fds[fd]), (indirect: offset), + (indirect: whence); + assigns __fc_fds[fd] + \from (indirect: fd), __fc_fds[fd], (indirect: offset), + (indirect: whence); + */ +extern off_t lseek(int fd, off_t offset, int whence); -int putenv(char *string); +/*@ requires valid_path: valid_read_string(path); + assigns \result; + assigns \result \from (indirect: *(path + (0 ..))), (indirect: name); + */ +extern long pathconf(char const *path, int name); -int setenv(char const *name, char const *value, int overwrite); +/*@ ensures initialization: pipefd: \initialized(\old(pipefd) + (0 .. 1)); + ensures valid_fd0: 0 ≤ *(\old(pipefd) + 0) < 1024; + ensures valid_fd1: 0 ≤ *(\old(pipefd) + 1) < 1024; + ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; + assigns *(pipefd + (0 .. 1)), \result; + assigns *(pipefd + (0 .. 1)) \from (indirect: __fc_fds[0 ..]); + assigns \result \from (indirect: __fc_fds[0 ..]); + */ +extern int pipe(int * /*[2]*/ pipefd); -int unsetenv(char const *name); +/*@ requires valid_fd: 0 ≤ fd < 1024; + requires buf_has_room: \valid((char *)buf + (0 .. count - 1)); + ensures + result_error_or_read_length: + (0 ≤ \result ≤ \old(count)) ∨ \result ≡ -1; + ensures + initialization: buf: + \initialized((char *)\old(buf) + (0 .. \result - 1)); + assigns __fc_fds[fd], \result, *((char *)buf + (0 .. count - 1)); + assigns __fc_fds[fd] \from __fc_fds[fd]; + assigns \result \from (indirect: __fc_fds[fd]), (indirect: count); + assigns *((char *)buf + (0 .. count - 1)) + \from (indirect: __fc_fds[fd]), (indirect: count); + */ +extern ssize_t read(int fd, void *buf, size_t count); -/*@ ensures never_terminates: \false; - assigns \nothing; */ -extern __attribute__((__noreturn__)) void quick_exit(int status); +/*@ ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; + assigns \result; + assigns \result \from (indirect: gid); + */ +extern int setegid(gid_t gid); -/*@ requires - null_or_valid_string_command: - command ≡ \null ∨ valid_read_string(command); +/*@ ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; assigns \result; - assigns \result - \from (indirect: command), (indirect: *(command + (0 ..))); + assigns \result \from (indirect: uid); */ -extern int system(char const *command); +extern int seteuid(uid_t uid); -/*@ requires valid_function_compar: \valid_function(compar); - ensures - null_or_correct_result: - \result ≡ \null ∨ - \subset(\result, - (void *)((char *)\old(base) + - (0 .. \old(size) * (\old(nmemb) - 1)))); +/*@ ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; assigns \result; - assigns \result - \from (indirect: key), *((char *)key + (0 .. size - 1)), base, - *((char *)base + (0 .. size * (nmemb - 1))), (indirect: nmemb), - (indirect: size), (indirect: *compar); + assigns \result \from (indirect: gid); */ -extern void *bsearch(void const *key, void const *base, size_t nmemb, - size_t size, int (*compar)(void const *, void const *)); +extern int setgid(gid_t gid); -/*@ requires valid_function_compar: \valid_function(compar); - assigns *((char *)base + (0 ..)); - assigns *((char *)base + (0 ..)) - \from (indirect: base), *((char *)base + (0 ..)), (indirect: nmemb), - (indirect: size), (indirect: compar), (indirect: *compar); +/*@ ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; + assigns \result; + assigns \result \from (indirect: pid), (indirect: pgid); */ -extern void qsort(void *base, size_t nmemb, size_t size, - int (*compar)(void const *, void const *)); +extern int setpgid(pid_t pid, pid_t pgid); -int abs(int i); +/*@ ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; + assigns \result; + assigns \result \from (indirect: rgid), (indirect: egid); + */ +extern int setregid(gid_t rgid, gid_t egid); -/*@ requires abs_representable: j > -2147483647L - 1L; +/*@ ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; assigns \result; - assigns \result \from j; - - behavior negative: - assumes negative: j < 0; - ensures opposite_result: \result ≡ -\old(j); - - behavior nonnegative: - assumes nonnegative: j ≥ 0; - ensures same_result: \result ≡ \old(j); - - complete behaviors nonnegative, negative; - disjoint behaviors nonnegative, negative; + assigns \result \from (indirect: ruid), (indirect: euid); */ -extern long labs(long j); +extern int setreuid(uid_t ruid, uid_t euid); -/*@ requires abs_representable: j > -9223372036854775807LL - 1LL; +/*@ ensures result_pgid_or_error: \result ≡ -1 ∨ \result ≥ 0; assigns \result; - assigns \result \from j; - - behavior negative: - assumes negative: j < 0; - ensures opposite_result: \result ≡ -\old(j); - - behavior nonnegative: - assumes nonnegative: j ≥ 0; - ensures same_result: \result ≡ \old(j); - - complete behaviors nonnegative, negative; - disjoint behaviors nonnegative, negative; + assigns \result \from \nothing; */ -extern long long llabs(long long j); +extern pid_t setsid(void); -/*@ assigns \result; - assigns \result \from numer, denom; */ -extern div_t div(int numer, int denom); +/*@ ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; + assigns \result; + assigns \result \from (indirect: uid); + */ +extern int setuid(uid_t uid); -/*@ assigns \result; - assigns \result \from numer, denom; */ -extern ldiv_t ldiv(long numer, long denom); +/*@ assigns \nothing; */ +extern void sync(void); /*@ assigns \result; - assigns \result \from numer, denom; */ -extern lldiv_t lldiv(long long numer, long long denom); + assigns \result \from (indirect: name); */ +extern long sysconf(int name); -/*@ ghost extern int __fc_mblen_state; */ +extern char volatile __fc_ttyname[32]; -/*@ assigns \result, __fc_mblen_state; - assigns \result - \from (indirect: s), (indirect: *(s + (0 ..))), (indirect: n), - __fc_mblen_state; - assigns __fc_mblen_state - \from (indirect: s), (indirect: *(s + (0 ..))), (indirect: n), - __fc_mblen_state; +char volatile *__fc_p_ttyname = __fc_ttyname; +/*@ ensures + result_name_or_null: \result ≡ __fc_p_ttyname ∨ \result ≡ \null; + assigns \result; + assigns \result \from __fc_p_ttyname, (indirect: fildes); */ -extern int mblen(char const *s, size_t n); +extern char *ttyname(int fildes); -/*@ ghost extern int __fc_mbtowc_state; */ +/*@ requires valid_string_path: valid_read_string(path); + ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; + assigns \result; + assigns \result \from *(path + (0 ..)); + */ +extern int unlink(char const *path); -/*@ requires separation: \separated(pwc, s); - ensures consumed_range: \result ≤ \old(n); - assigns \result, *(pwc + (0 .. \result - 1)), __fc_mbtowc_state; +/*@ ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; + assigns \result, Frama_C_entropy_source; assigns \result - \from (indirect: s), (indirect: *(s + (0 .. n - 1))), (indirect: n), - __fc_mbtowc_state; - assigns *(pwc + (0 .. \result - 1)) - \from (indirect: s), *(s + (0 .. n - 1)), (indirect: n), - __fc_mbtowc_state; - assigns __fc_mbtowc_state - \from (indirect: s), *(s + (0 .. n - 1)), (indirect: n), - __fc_mbtowc_state; + \from (indirect: usec), (indirect: Frama_C_entropy_source); + assigns Frama_C_entropy_source \from Frama_C_entropy_source; */ -extern int mbtowc(wchar_t * __restrict pwc, char const * __restrict s, - size_t n); - -/*@ ghost extern int __fc_wctomb_state; */ +extern int usleep(useconds_t usec); -/*@ assigns \result, *(s + (0 ..)), __fc_wctomb_state; - assigns \result \from (indirect: wc), __fc_wctomb_state; - assigns *(s + (0 ..)) \from wc, __fc_wctomb_state; - assigns __fc_wctomb_state \from wc, __fc_wctomb_state; +/*@ requires valid_fd: 0 ≤ fd < 1024; + requires buf_has_room: \valid_read((char *)buf + (0 .. count - 1)); + ensures + result_error_or_written_bytes: + \result ≡ -1 ∨ (0 ≤ \result ≤ \old(count)); + assigns __fc_fds[fd], \result; + assigns __fc_fds[fd] + \from (indirect: fd), (indirect: count), __fc_fds[fd]; + assigns \result + \from (indirect: fd), (indirect: count), (indirect: __fc_fds[fd]); */ -extern int wctomb(char *s, wchar_t wc); +extern ssize_t write(int fd, void const *buf, size_t count); -/*@ requires separation: \separated(pwcs, s); - assigns \result, *(pwcs + (0 .. n - 1)); +/*@ requires valid_ruid: \valid(ruid); + requires valid_euid: \valid(suid); + requires valid_suid: \valid(euid); + ensures + initialization: result_ok_or_error: + (\result ≡ 0 ∧ \initialized(\old(ruid)) ∧ + \initialized(\old(euid)) ∧ \initialized(\old(suid))) ∨ + \result ≡ -1; + assigns *ruid, *euid, *suid, \result; + assigns *ruid \from \nothing; + assigns *euid \from \nothing; + assigns *suid \from \nothing; assigns \result - \from (indirect: s), (indirect: *(s + (0 .. n - 1))), (indirect: n); - assigns *(pwcs + (0 .. n - 1)) - \from (indirect: s), *(s + (0 .. n - 1)), (indirect: n); + \from (indirect: ruid), (indirect: euid), (indirect: suid); */ -extern size_t mbstowcs(wchar_t * __restrict pwcs, char const * __restrict s, - size_t n); +int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); -/*@ requires separation: \separated(s, pwcs); - assigns \result, *(s + (0 .. n - 1)); +/*@ ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; + assigns \result; assigns \result - \from (indirect: pwcs), (indirect: *(pwcs + (0 .. n - 1))), - (indirect: n); - assigns *(s + (0 .. n - 1)) - \from (indirect: pwcs), *(pwcs + (0 .. n - 1)), (indirect: n); + \from (indirect: ruid), (indirect: euid), (indirect: suid); */ -extern size_t wcstombs(char * __restrict s, wchar_t const * __restrict pwcs, - size_t n); - -int posix_memalign(void **memptr, size_t alignment, size_t size); +int setresuid(uid_t ruid, uid_t euid, uid_t suid); -/*@ requires valid_template: valid_string(templat); +/*@ requires valid_rgid: \valid(rgid); + requires valid_egid: \valid(sgid); + requires valid_sgid: \valid(egid); ensures - result_error_or_valid_fd: \result ≡ -1 ∨ (0 ≤ \result < 16); - assigns *(templat + (0 ..)), \result; - assigns *(templat + (0 ..)) \from \nothing; - assigns \result \from \nothing; + initialization: result_ok_or_error: + (\result ≡ 0 ∧ \initialized(\old(rgid)) ∧ + \initialized(\old(egid)) ∧ \initialized(\old(sgid))) ∨ + \result ≡ -1; + assigns *rgid, *egid, *sgid, \result; + assigns *rgid \from \nothing; + assigns *egid \from \nothing; + assigns *sgid \from \nothing; + assigns \result + \from (indirect: rgid), (indirect: egid), (indirect: sgid); */ -extern int mkstemp(char *templat); +int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); -int glob(char const *pattern, int flags, - int (*errfunc)(char const *epath, int eerrno), glob_t *pglob) -{ - int __retres; - int tmp; - unsigned int tmp_0; - char **tmp_1; - int tmp_4; - tmp = Frama_C_interval(0,10); - pglob->gl_pathc = (unsigned int)tmp; - if (flags & (1 << 3)) tmp_0 = pglob->gl_offs; else tmp_0 = (unsigned int)0; - size_t reserve_offs = tmp_0; - size_t prev_len = (unsigned int)0; - if (flags & (1 << 5)) - while (*(pglob->gl_pathv + (reserve_offs + prev_len))) prev_len += (size_t)1; - if (flags & (1 << 5)) tmp_1 = pglob->gl_pathv; else tmp_1 = (char **)0; - char **path = tmp_1; - if (pglob->gl_pathc == (unsigned int)0) - if (flags & (1 << 4)) { - pglob->gl_pathv = (char **)realloc((void *)path, - ((reserve_offs + prev_len) + (size_t)2) * sizeof(char *)); - if (! pglob->gl_pathv) { - __retres = 1; - goto return_label; - } - { - size_t i = (unsigned int)0; - while (i < reserve_offs) { - *(pglob->gl_pathv + i) = (char *)0; - i += (size_t)1; - } - } - *(pglob->gl_pathv + (reserve_offs + prev_len)) = (char *)pattern; - *(pglob->gl_pathv + ((reserve_offs + prev_len) + (size_t)1)) = (char *)0; - __retres = 0; - goto return_label; - } - else { - __retres = 3; - goto return_label; - } - pglob->gl_pathv = (char **)realloc((void *)path, - (((reserve_offs + prev_len) + pglob->gl_pathc) + (size_t)1) * sizeof(char *)); - if (! pglob->gl_pathv) { - __retres = 1; - goto return_label; - } - { - size_t i_0 = (unsigned int)0; - while (i_0 < reserve_offs) { - *(pglob->gl_pathv + i_0) = (char *)0; - i_0 += (size_t)1; - } - } - { - size_t i_1 = (unsigned int)0; - while (i_1 < pglob->gl_pathc) { - *(pglob->gl_pathv + ((reserve_offs + prev_len) + i_1)) = (char *)"glob result"; - i_1 += (size_t)1; - } - } - *(pglob->gl_pathv + ((prev_len + reserve_offs) + pglob->gl_pathc)) = (char *)0; - tmp_4 = Frama_C_nondet(0,1); - if (tmp_4) { - __retres = 0; - goto return_label; - } - else { - if (errfunc) { - int tmp_3; - int tmp_2; - tmp_2 = Frama_C_interval(0,255); - tmp_3 = (*errfunc)("glob.c error path",tmp_2); - int res = tmp_3; - if (res) { - __retres = 2; - goto return_label; - } - else - if (flags & (1 << 0)) { - __retres = 2; - goto return_label; - } - } - __retres = 0; - goto return_label; - } - return_label: return __retres; -} +/*@ ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; + assigns \result; + assigns \result + \from (indirect: rgid), (indirect: egid), (indirect: sgid); + */ +int setresgid(gid_t rgid, gid_t egid, gid_t sgid); -void globfree(glob_t *pglob) -{ - if (pglob->gl_pathc > (unsigned int)0) free((void *)pglob->gl_pathv); - return; -} +extern char *optarg; -intmax_t imaxabs(intmax_t c); +int optind; -imaxdiv_t imaxdiv(intmax_t numer, intmax_t denom); +extern int opterr; -/*@ assigns \result, *(endptr + (..)), __fc_errno; - assigns \result \from *(nptr + (..)), base; - assigns *(endptr + (..)) \from *(nptr + (..)), base; - assigns __fc_errno \from *(nptr + (..)), base; - */ -extern intmax_t strtoimax(char const * __restrict nptr, - char ** __restrict endptr, int base); +extern int optopt; -/*@ requires abs_representable: (long long)(-c) ≢ c; - assigns \result; - assigns \result \from c; +/*@ assigns \result, *optarg, optind, opterr, optopt; + assigns \result + \from argc, *(argv + (0 .. argc - 1)), *(optstring + (0 ..)); + assigns *optarg + \from argc, *(argv + (0 .. argc - 1)), *(optstring + (0 ..)); + assigns optind + \from argc, *(argv + (0 .. argc - 1)), *(optstring + (0 ..)); + assigns opterr + \from argc, *(argv + (0 .. argc - 1)), *(optstring + (0 ..)); + assigns optopt + \from argc, *(argv + (0 .. argc - 1)), *(optstring + (0 ..)); */ -intmax_t imaxabs(intmax_t c) -{ - intmax_t __retres; - if (c > (intmax_t)0) { - __retres = c; - goto return_label; - } - else { - __retres = - c; - goto return_label; - } - return_label: return __retres; -} +extern int getopt(int argc, char * const *argv, char const *optstring); -/*@ requires no_div_by_zero: denom ≢ 0; - requires no_overflow: denom ≢ -1 ∨ (long long)(-numer) ≢ numer; - ensures correct_div: \result.quot ≡ \old(numer) / \old(denom); - ensures correct_mod: \result.rem ≡ \old(numer) % \old(denom); - assigns \result; - assigns \result \from numer, denom; +/*@ assigns \result, *optarg, optind, opterr, optopt, + *((longopts + (0 ..))->flag); + assigns \result + \from argc, *(argv + (0 .. argc - 1)), *(shortopts + (0 ..)), + *(longopts + (0 ..)); + assigns *optarg + \from argc, *(argv + (0 .. argc - 1)), *(shortopts + (0 ..)), + *(longopts + (0 ..)); + assigns optind + \from argc, *(argv + (0 .. argc - 1)), *(shortopts + (0 ..)), + *(longopts + (0 ..)); + assigns opterr + \from argc, *(argv + (0 .. argc - 1)), *(shortopts + (0 ..)), + *(longopts + (0 ..)); + assigns optopt + \from argc, *(argv + (0 .. argc - 1)), *(shortopts + (0 ..)), + *(longopts + (0 ..)); + assigns *((longopts + (0 ..))->flag) + \from argc, *(argv + (0 .. argc - 1)), *(shortopts + (0 ..)), + *(longopts + (0 ..)); */ -imaxdiv_t imaxdiv(intmax_t numer, intmax_t denom) -{ - imaxdiv_t r; - r.quot = numer / denom; - r.rem = numer % denom; - return r; -} +extern int getopt_long(int argc, char * const *argv, char const *shortopts, + struct option const *longopts, int *longind); -struct lconv *__frama_c_locale; +/*@ assigns \result, *optarg, optind, opterr, optopt, + *((longopts + (0 ..))->flag); + assigns \result + \from argc, *(argv + (0 .. argc - 1)), *(shortopts + (0 ..)), + *(longopts + (0 ..)); + assigns *optarg + \from argc, *(argv + (0 .. argc - 1)), *(shortopts + (0 ..)), + *(longopts + (0 ..)); + assigns optind + \from argc, *(argv + (0 .. argc - 1)), *(shortopts + (0 ..)), + *(longopts + (0 ..)); + assigns opterr + \from argc, *(argv + (0 .. argc - 1)), *(shortopts + (0 ..)), + *(longopts + (0 ..)); + assigns optopt + \from argc, *(argv + (0 .. argc - 1)), *(shortopts + (0 ..)), + *(longopts + (0 ..)); + assigns *((longopts + (0 ..))->flag) + \from argc, *(argv + (0 .. argc - 1)), *(shortopts + (0 ..)), + *(longopts + (0 ..)); + */ +extern int getopt_long_only(int argc, char * const *argv, + char const *shortopts, + struct option const *longopts, int *longind); -char *__frama_c_locale_names[512]; +int optind = 1; +int glob(char const *pattern, int flags, + int (*errfunc)(char const *epath, int eerrno), glob_t *pglob); -char *setlocale(int category, char const *locale); +void globfree(glob_t *pglob); -struct lconv *localeconv(void); +/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ -struct lconv __C_locale = - {.decimal_point = (char *)".", - .thousands_sep = (char *)"", - .grouping = (char *)"", - .int_curr_symbol = (char *)"", - .currency_symbol = (char *)"", - .mon_decimal_point = (char *)"", - .mon_thousands_sep = (char *)"", - .mon_grouping = (char *)"", - .positive_sign = (char *)"", - .negative_sign = (char *)"", - .int_frac_digits = (char)127, - .frac_digits = (char)127, - .p_cs_precedes = (char)127, - .p_sep_by_space = (char)127, - .n_cs_precedes = (char)127, - .n_sep_by_space = (char)127, - .p_sign_posn = (char)127, - .n_sign_posn = (char)127, - .int_p_cs_precedes = (char)127, - .int_p_sep_by_space = (char)127, - .int_n_cs_precedes = (char)127, - .int_n_sep_by_space = (char)127, - .int_p_sign_posn = (char)127, - .int_n_sign_posn = (char)127}; -struct lconv *__frama_c_locale = & __C_locale; -char *__frama_c_locale_names[512] = {(char *)"C"}; -/*@ requires - locale_null_or_valid_string: - locale ≡ \null ∨ valid_read_string(locale); - ensures - result_null_or_locale_name: - \result ≡ \null ∨ - (\valid(\result) ∧ - (∃ ℤ i; \result ≡ __frama_c_locale_names[i])); - assigns __frama_c_locale, \result; - assigns __frama_c_locale \from category, *(locale + (..)); - assigns \result \from __frama_c_locale, category, *(locale + (..)); - */ -char *setlocale(int category, char const *locale) -{ - char *__retres; - if ((int)*locale == 'C') { - __frama_c_locale = & __C_locale; - __retres = __frama_c_locale_names[0]; - goto return_label; +/*@ +axiomatic dynamic_allocation { + predicate is_allocable{L}(ℤ n) + reads __fc_heap_status; + + axiom never_allocable{L}: + ∀ ℤ i; i < 0 ∨ i > 4294967295U ⇒ ¬is_allocable(i); + } - __retres = (char *)0; - return_label: return __retres; -} -/*@ ensures result_current_locale: \result ≡ __frama_c_locale; - assigns \nothing; +*/ +/*@ requires valid_nptr: \valid_read(nptr); + assigns \result; + assigns \result \from (indirect: nptr), (indirect: *(nptr + (0 ..))); */ -struct lconv *localeconv(void) -{ - return __frama_c_locale; -} +extern double atof(char const *nptr); -/*@ assigns \result; - assigns \result \from x; +int atoi(char const *p); + +/*@ requires valid_nptr: \valid_read(nptr); + assigns \result; + assigns \result \from (indirect: nptr), (indirect: *(nptr + (0 ..))); + */ +extern long atol(char const *nptr); + +/*@ requires valid_nptr: \valid_read(nptr); + assigns \result; + assigns \result \from (indirect: nptr), (indirect: *(nptr + (0 ..))); + */ +extern long long atoll(char const *nptr); + +/*@ requires valid_nptr: \valid_read(nptr); + requires separation: \separated(nptr, endptr); + assigns \result, *endptr; + assigns \result \from (indirect: nptr), (indirect: *(nptr + (0 ..))); + assigns *endptr + \from nptr, (indirect: *(nptr + (0 ..))), (indirect: endptr); - behavior nan: - assumes is_nan: \is_NaN(x); - ensures fp_nan: \result ≡ 0; + behavior no_storage: + assumes null_endptr: endptr ≡ \null; + assigns \result; + assigns \result \from (indirect: nptr), (indirect: *(nptr + (0 ..))); - behavior inf: - assumes is_infinite: ¬\is_NaN(x) ∧ ¬\is_finite(x); - ensures fp_infinite: \result ≡ 1; + behavior store_position: + assumes nonnull_endptr: endptr ≢ \null; + requires valid_endptr: \valid(endptr); + ensures initialization: \initialized(\old(endptr)); + ensures valid_endptr: \valid_read(\old(endptr)); + ensures position_subset: \subset(*\old(endptr), \old(nptr) + (0 ..)); + assigns \result, *endptr; + assigns \result \from (indirect: nptr), (indirect: *(nptr + (0 ..))); + assigns *endptr + \from nptr, (indirect: *(nptr + (0 ..))), (indirect: endptr); - behavior zero: - assumes is_a_zero: x ≡ 0.0; - ensures fp_zero: \result ≡ 2; + complete behaviors store_position, no_storage; + disjoint behaviors store_position, no_storage; + */ +extern double strtod(char const * __restrict nptr, char ** __restrict endptr); + +/*@ requires valid_nptr: \valid_read(nptr); + requires separation: \separated(nptr, endptr); + assigns \result, *endptr; + assigns \result \from (indirect: nptr), (indirect: *(nptr + (0 ..))); + assigns *endptr + \from nptr, (indirect: *(nptr + (0 ..))), (indirect: endptr); - behavior subnormal: - assumes is_finite: \is_finite(x); - assumes - is_subnormal: - (x > 0.0 ∧ x < 0x1p-126) ∨ (x < 0.0 ∧ x > -0x1p-126); - ensures fp_subnormal: \result ≡ 3; + behavior no_storage: + assumes null_endptr: endptr ≡ \null; + assigns \result; + assigns \result \from (indirect: nptr), (indirect: *(nptr + (0 ..))); - behavior normal: - assumes is_finite: \is_finite(x); - assumes not_subnormal: x ≤ -0x1p-126 ∨ x ≥ 0x1p-126; - ensures fp_normal: \result ≡ 4; + behavior store_position: + assumes nonnull_endptr: endptr ≢ \null; + requires valid_endptr: \valid(endptr); + ensures initialization: \initialized(\old(endptr)); + ensures valid_endptr: \valid_read(\old(endptr)); + ensures position_subset: \subset(*\old(endptr), \old(nptr) + (0 ..)); + assigns \result, *endptr; + assigns \result \from (indirect: nptr), (indirect: *(nptr + (0 ..))); + assigns *endptr + \from nptr, (indirect: *(nptr + (0 ..))), (indirect: endptr); - complete behaviors normal, subnormal, zero, inf, nan; - disjoint behaviors normal, subnormal, zero, inf, nan; + complete behaviors store_position, no_storage; + disjoint behaviors store_position, no_storage; */ -int __fc_fpclassifyf(float x); +extern float strtof(char const * __restrict nptr, char ** __restrict endptr); -/*@ assigns \result; - assigns \result \from x; - - behavior nan: - assumes is_nan: \is_NaN(x); - ensures fp_nan: \result ≡ 0; +/*@ requires valid_nptr: \valid_read(nptr); + requires separation: \separated(nptr, endptr); + assigns \result, *endptr; + assigns \result \from (indirect: nptr), (indirect: *(nptr + (0 ..))); + assigns *endptr + \from nptr, (indirect: *(nptr + (0 ..))), (indirect: endptr); - behavior inf: - assumes is_infinite: ¬\is_NaN(x) ∧ ¬\is_finite(x); - ensures fp_infinite: \result ≡ 1; - - behavior zero: - assumes is_a_zero: x ≡ 0.0; - ensures fp_zero: \result ≡ 2; - - behavior subnormal: - assumes is_finite: \is_finite(x); - assumes - is_subnormal: - (x > 0.0 ∧ x < 0x1p-1022) ∨ (x < 0.0 ∧ x > -0x1p-1022); - ensures fp_subnormal: \result ≡ 3; - - behavior normal: - assumes is_finite: \is_finite(x); - assumes not_subnormal: x ≤ -0x1p-1022 ∨ x ≥ 0x1p-1022; - ensures fp_normal: \result ≡ 4; - - complete behaviors normal, subnormal, zero, inf, nan; - disjoint behaviors normal, subnormal, zero, inf, nan; - */ -int __fc_fpclassify(double x); - -/*@ assigns __fc_errno, \result; - assigns __fc_errno \from x; - assigns \result \from x; - - behavior normal: - assumes in_domain: \is_finite(x) ∧ \abs(x) ≤ 1; - ensures positive_result: \is_finite(\result) ∧ \result ≥ 0; + behavior no_storage: + assumes null_endptr: endptr ≡ \null; assigns \result; - assigns \result \from x; + assigns \result \from (indirect: nptr), (indirect: *(nptr + (0 ..))); - behavior domain_error: - assumes - out_of_domain: \is_infinite(x) ∨ (\is_finite(x) ∧ \abs(x) > 1); - ensures errno_set: __fc_errno ≡ 1; - assigns __fc_errno, \result; - assigns __fc_errno \from x; - assigns \result \from x; + behavior store_position: + assumes nonnull_endptr: endptr ≢ \null; + requires valid_endptr: \valid(endptr); + ensures initialization: \initialized(\old(endptr)); + ensures valid_endptr: \valid_read(\old(endptr)); + ensures position_subset: \subset(*\old(endptr), \old(nptr) + (0 ..)); + assigns \result, *endptr; + assigns \result \from (indirect: nptr), (indirect: *(nptr + (0 ..))); + assigns *endptr + \from nptr, (indirect: *(nptr + (0 ..))), (indirect: endptr); - disjoint behaviors domain_error, normal; + complete behaviors store_position, no_storage; + disjoint behaviors store_position, no_storage; */ -extern double acos(double x); +extern long double strtold(char const * __restrict nptr, + char ** __restrict endptr); -/*@ assigns __fc_errno, \result; - assigns __fc_errno \from x; - assigns \result \from x; +/*@ requires valid_nptr: \valid_read(nptr); + requires separation: \separated(nptr, endptr); + requires base_range: base ≡ 0 ∨ (2 ≤ base ≤ 36); + assigns \result, *endptr; + assigns \result + \from (indirect: nptr), (indirect: *(nptr + (0 ..))), (indirect: base); + assigns *endptr + \from nptr, (indirect: *(nptr + (0 ..))), (indirect: endptr), + (indirect: base); - behavior normal: - assumes in_domain: \is_finite(x) ∧ \abs(x) ≤ 1; - ensures positive_result: \is_finite(\result) ∧ \result ≥ 0; + behavior no_storage: + assumes null_endptr: endptr ≡ \null; assigns \result; - assigns \result \from x; + assigns \result + \from (indirect: nptr), (indirect: *(nptr + (0 ..))), + (indirect: base); - behavior domain_error: - assumes - out_of_domain: \is_infinite(x) ∨ (\is_finite(x) ∧ \abs(x) > 1); - ensures errno_set: __fc_errno ≡ 1; - assigns __fc_errno, \result; - assigns __fc_errno \from x; - assigns \result \from x; + behavior store_position: + assumes nonnull_endptr: endptr ≢ \null; + requires valid_endptr: \valid(endptr); + ensures initialization: \initialized(\old(endptr)); + ensures valid_endptr: \valid_read(\old(endptr)); + ensures position_subset: \subset(*\old(endptr), \old(nptr) + (0 ..)); + assigns \result, *endptr; + assigns \result + \from (indirect: nptr), (indirect: *(nptr + (0 ..))), + (indirect: base); + assigns *endptr + \from nptr, (indirect: *(nptr + (0 ..))), (indirect: endptr), + (indirect: base); - disjoint behaviors domain_error, normal; + complete behaviors store_position, no_storage; + disjoint behaviors store_position, no_storage; */ -extern float acosf(float x); +extern long strtol(char const * __restrict nptr, char ** __restrict endptr, + int base); -/*@ assigns __fc_errno, \result; - assigns __fc_errno \from x; - assigns \result \from x; +/*@ requires valid_nptr: \valid_read(nptr); + requires separation: \separated(nptr, endptr); + requires base_range: base ≡ 0 ∨ (2 ≤ base ≤ 36); + assigns \result, *endptr; + assigns \result + \from (indirect: nptr), (indirect: *(nptr + (0 ..))), (indirect: base); + assigns *endptr + \from nptr, (indirect: *(nptr + (0 ..))), (indirect: endptr), + (indirect: base); - behavior normal: - assumes in_domain: \is_finite(x) ∧ \abs(x) ≤ 1; - ensures positive_result: \is_finite(\result) ∧ \result ≥ 0; + behavior no_storage: + assumes null_endptr: endptr ≡ \null; assigns \result; - assigns \result \from x; + assigns \result + \from (indirect: nptr), (indirect: *(nptr + (0 ..))), + (indirect: base); - behavior domain_error: - assumes - out_of_domain: \is_infinite(x) ∨ (\is_finite(x) ∧ \abs(x) > 1); - ensures errno_set: __fc_errno ≡ 1; - assigns __fc_errno, \result; - assigns __fc_errno \from x; - assigns \result \from x; + behavior store_position: + assumes nonnull_endptr: endptr ≢ \null; + requires valid_endptr: \valid(endptr); + ensures initialization: \initialized(\old(endptr)); + ensures valid_endptr: \valid_read(\old(endptr)); + ensures position_subset: \subset(*\old(endptr), \old(nptr) + (0 ..)); + assigns \result, *endptr; + assigns \result + \from (indirect: nptr), (indirect: *(nptr + (0 ..))), + (indirect: base); + assigns *endptr + \from nptr, (indirect: *(nptr + (0 ..))), (indirect: endptr), + (indirect: base); - disjoint behaviors domain_error, normal; + complete behaviors store_position, no_storage; + disjoint behaviors store_position, no_storage; */ -extern long double acosl(long double x); +extern long long strtoll(char const * __restrict nptr, + char ** __restrict endptr, int base); -/*@ assigns __fc_errno, \result; - assigns __fc_errno \from x; - assigns \result \from x; +/*@ requires valid_nptr: \valid_read(nptr); + requires separation: \separated(nptr, endptr); + requires base_range: base ≡ 0 ∨ (2 ≤ base ≤ 36); + assigns \result, *endptr; + assigns \result + \from (indirect: nptr), (indirect: *(nptr + (0 ..))), (indirect: base); + assigns *endptr + \from nptr, (indirect: *(nptr + (0 ..))), (indirect: endptr), + (indirect: base); - behavior normal: - assumes in_domain: \is_finite(x) ∧ \abs(x) ≤ 1; - ensures finite_result: \is_finite(\result); + behavior no_storage: + assumes null_endptr: endptr ≡ \null; assigns \result; - assigns \result \from x; + assigns \result + \from (indirect: nptr), (indirect: *(nptr + (0 ..))), + (indirect: base); - behavior domain_error: - assumes - out_of_domain: \is_infinite(x) ∨ (\is_finite(x) ∧ \abs(x) > 1); - ensures errno_set: __fc_errno ≡ 1; - assigns __fc_errno, \result; - assigns __fc_errno \from x; - assigns \result \from x; + behavior store_position: + assumes nonnull_endptr: endptr ≢ \null; + requires valid_endptr: \valid(endptr); + ensures initialization: \initialized(\old(endptr)); + ensures valid_endptr: \valid_read(\old(endptr)); + ensures position_subset: \subset(*\old(endptr), \old(nptr) + (0 ..)); + assigns \result, *endptr; + assigns \result + \from (indirect: nptr), (indirect: *(nptr + (0 ..))), + (indirect: base); + assigns *endptr + \from nptr, (indirect: *(nptr + (0 ..))), (indirect: endptr), + (indirect: base); - disjoint behaviors domain_error, normal; + complete behaviors store_position, no_storage; + disjoint behaviors store_position, no_storage; */ -extern double asin(double x); +extern unsigned long strtoul(char const * __restrict nptr, + char ** __restrict endptr, int base); -/*@ assigns __fc_errno, \result; - assigns __fc_errno \from x; - assigns \result \from x; +/*@ requires valid_nptr: \valid_read(nptr); + requires separation: \separated(nptr, endptr); + requires base_range: base ≡ 0 ∨ (2 ≤ base ≤ 36); + assigns \result, *endptr; + assigns \result + \from (indirect: nptr), (indirect: *(nptr + (0 ..))), (indirect: base); + assigns *endptr + \from nptr, (indirect: *(nptr + (0 ..))), (indirect: endptr), + (indirect: base); - behavior normal: - assumes in_domain: \is_finite(x) ∧ \abs(x) ≤ 1; - ensures finite_result: \is_finite(\result); + behavior no_storage: + assumes null_endptr: endptr ≡ \null; assigns \result; - assigns \result \from x; + assigns \result + \from (indirect: nptr), (indirect: *(nptr + (0 ..))), + (indirect: base); - behavior domain_error: - assumes - out_of_domain: \is_infinite(x) ∨ (\is_finite(x) ∧ \abs(x) > 1); - ensures errno_set: __fc_errno ≡ 1; - assigns __fc_errno, \result; - assigns __fc_errno \from x; - assigns \result \from x; + behavior store_position: + assumes nonnull_endptr: endptr ≢ \null; + requires valid_endptr: \valid(endptr); + ensures initialization: \initialized(\old(endptr)); + ensures valid_endptr: \valid_read(\old(endptr)); + ensures position_subset: \subset(*\old(endptr), \old(nptr) + (0 ..)); + assigns \result, *endptr; + assigns \result + \from (indirect: nptr), (indirect: *(nptr + (0 ..))), + (indirect: base); + assigns *endptr + \from nptr, (indirect: *(nptr + (0 ..))), (indirect: endptr), + (indirect: base); - disjoint behaviors domain_error, normal; + complete behaviors store_position, no_storage; + disjoint behaviors store_position, no_storage; */ -extern float asinf(float x); +extern unsigned long long strtoull(char const * __restrict nptr, + char ** __restrict endptr, int base); -/*@ assigns __fc_errno, \result; - assigns __fc_errno \from x; - assigns \result \from x; - - behavior normal: - assumes in_domain: \is_finite(x) ∧ \abs(x) ≤ 1; - ensures finite_result: \is_finite(\result); - assigns \result; - assigns \result \from x; - - behavior domain_error: - assumes - out_of_domain: \is_infinite(x) ∨ (\is_finite(x) ∧ \abs(x) > 1); - ensures errno_set: __fc_errno ≡ 1; - assigns __fc_errno, \result; - assigns __fc_errno \from x; - assigns \result \from x; - - disjoint behaviors domain_error, normal; - */ -extern long double asinl(long double x); +/*@ ghost +extern int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); +*/ -/*@ requires finite_arg: \is_finite(x); - ensures finite_result: \is_finite(\result); - ensures result_domain: -1.571 ≤ \result ≤ 1.571; - assigns \result; - assigns \result \from x; +unsigned long const __fc_rand_max = (unsigned long)32767; +/*@ ensures result_range: 0 ≤ \result ≤ __fc_rand_max; + assigns \result, __fc_random_counter; + assigns \result \from __fc_random_counter; + assigns __fc_random_counter \from __fc_random_counter; */ -extern float atanf(float x); +extern int rand(void); -/*@ requires finite_arg: \is_finite(x); - ensures finite_result: \is_finite(\result); - ensures result_domain: -1.571 ≤ \result ≤ 1.571; +/*@ assigns __fc_random_counter; + assigns __fc_random_counter \from seed; */ +extern void srand(unsigned int seed); + +/*@ ensures result_range: 0 ≤ \result ≤ __fc_rand_max; assigns \result; - assigns \result \from x; + assigns \result \from __fc_random_counter; */ -extern double atan(double x); +extern long random(void); -/*@ requires finite_arg: \is_finite(x); - ensures finite_result: \is_finite(\result); - ensures result_domain: -1.571 ≤ \result ≤ 1.571; - assigns \result; - assigns \result \from x; +/*@ assigns __fc_random_counter; + assigns __fc_random_counter \from seed; */ +extern void srandom(unsigned int seed); + +int __fc_random48_init __attribute__((__FRAMA_C_MODEL__)); +unsigned short __fc_random48_counter[3] __attribute__((__FRAMA_C_MODEL__)); +unsigned short *__fc_p_random48_counter = __fc_random48_counter; +/*@ ensures random48_initialized: __fc_random48_init ≡ 1; + assigns __fc_random48_counter[0 .. 2], __fc_random48_init; + assigns __fc_random48_counter[0 .. 2] \from seed; + assigns __fc_random48_init \from \nothing; */ -extern long double atanl(long double x); +extern void srand48(long seed); -/*@ requires finite_args: \is_finite(x) ∧ \is_finite(y); - requires finite_result: \is_finite(atan2(x, y)); - ensures finite_result: \is_finite(\result); - assigns \result; - assigns \result \from x, y; +/*@ requires + initialization: initialized_seed16v: \initialized(seed16v + (0 .. 2)); + ensures random48_initialized: __fc_random48_init ≡ 1; + ensures result_counter: \result ≡ __fc_p_random48_counter; + assigns __fc_random48_counter[0 .. 2], __fc_random48_init, \result; + assigns __fc_random48_counter[0 .. 2] + \from (indirect: *(seed16v + (0 .. 2))); + assigns __fc_random48_init \from \nothing; + assigns \result \from __fc_p_random48_counter; */ -extern double atan2(double y, double x); +extern unsigned short *seed48(unsigned short * /*[3]*/ seed16v); -/*@ requires finite_args: \is_finite(x) ∧ \is_finite(y); - requires finite_logic_result: \is_finite(atan2f(x, y)); - ensures finite_result: \is_finite(\result); - assigns \result; - assigns \result \from x, y; +/*@ ensures random48_initialized: __fc_random48_init ≡ 1; + assigns __fc_random48_counter[0 .. 2], __fc_random48_init; + assigns __fc_random48_counter[0 .. 2] \from *(param + (0 .. 5)); + assigns __fc_random48_init \from \nothing; */ -extern float atan2f(float y, float x); +extern void lcong48(unsigned short * /*[7]*/ param); -/*@ requires finite_arg: \is_finite(x); - ensures finite_result: \is_finite(\result); - ensures result_domain: -1. ≤ \result ≤ 1.; - assigns \result; - assigns \result \from x; +/*@ requires random48_initialized: __fc_random48_init ≡ 1; + ensures result_range: \is_finite(\result) ∧ 0.0 ≤ \result < 1.0; + assigns __fc_random48_counter[0 .. 2], \result; + assigns __fc_random48_counter[0 .. 2] + \from __fc_random48_counter[0 .. 2]; + assigns \result \from __fc_random48_counter[0 .. 2]; */ -extern double cos(double x); +extern double drand48(void); -/*@ requires finite_arg: \is_finite(x); - ensures finite_result: \is_finite(\result); - ensures result_domain: -1. ≤ \result ≤ 1.; - assigns \result; - assigns \result \from x; +/*@ requires + initialization: initialized_xsubi: \initialized(xsubi + (0 .. 2)); + ensures result_range: \is_finite(\result) ∧ 0.0 ≤ \result < 1.0; + assigns __fc_random48_counter[0 .. 2], \result; + assigns __fc_random48_counter[0 .. 2] + \from __fc_random48_counter[0 .. 2]; + assigns \result \from __fc_random48_counter[0 .. 2]; */ -extern float cosf(float x); +extern double erand48(unsigned short * /*[3]*/ xsubi); -/*@ requires finite_arg: \is_finite(x); - ensures finite_result: \is_finite(\result); - ensures result_domain: -1. ≤ \result ≤ 1.; - assigns \result; - assigns \result \from x; +/*@ requires random48_initialized: __fc_random48_init ≡ 1; + ensures result_range: 0 ≤ \result < 2147483648; + assigns __fc_random48_counter[0 .. 2], \result; + assigns __fc_random48_counter[0 .. 2] + \from __fc_random48_counter[0 .. 2]; + assigns \result \from __fc_random48_counter[0 .. 2]; */ -extern long double cosl(long double x); +extern long lrand48(void); -/*@ requires finite_arg: \is_finite(x); - ensures finite_result: \is_finite(\result); - ensures result_domain: -1. ≤ \result ≤ 1.; - assigns \result; - assigns \result \from x; +/*@ requires + initialization: initialized_xsubi: \initialized(xsubi + (0 .. 2)); + ensures result_range: 0 ≤ \result < 2147483648; + assigns __fc_random48_counter[0 .. 2], \result; + assigns __fc_random48_counter[0 .. 2] + \from __fc_random48_counter[0 .. 2]; + assigns \result \from __fc_random48_counter[0 .. 2]; */ -extern double sin(double x); +extern long nrand48(unsigned short * /*[3]*/ xsubi); -/*@ requires finite_arg: \is_finite(x); - ensures finite_result: \is_finite(\result); - ensures result_domain: -1. ≤ \result ≤ 1.; - assigns \result; - assigns \result \from x; +/*@ requires random48_initialized: __fc_random48_init ≡ 1; + ensures result_range: -2147483648 ≤ \result < 2147483648; + assigns __fc_random48_counter[0 .. 2], \result; + assigns __fc_random48_counter[0 .. 2] + \from __fc_random48_counter[0 .. 2]; + assigns \result \from __fc_random48_counter[0 .. 2]; */ -extern float sinf(float x); +extern long mrand48(void); -/*@ requires finite_arg: \is_finite(x); - ensures finite_result: \is_finite(\result); - ensures result_domain: -1. ≤ \result ≤ 1.; - assigns \result; - assigns \result \from x; +/*@ requires + initialization: initialized_xsubi: \initialized(xsubi + (0 .. 2)); + ensures result_range: -2147483648 ≤ \result < 2147483648; + assigns __fc_random48_counter[0 .. 2], \result; + assigns __fc_random48_counter[0 .. 2] + \from __fc_random48_counter[0 .. 2]; + assigns \result \from __fc_random48_counter[0 .. 2]; */ -extern long double sinl(long double x); +extern long jrand48(unsigned short * /*[3]*/ xsubi); -/*@ assigns __fc_errno, \result; - assigns __fc_errno \from x; - assigns \result \from x; +void *calloc(size_t nmemb, size_t size); + +/*@ assigns __fc_heap_status, \result; + assigns __fc_heap_status \from size, __fc_heap_status; + assigns \result \from (indirect: size), (indirect: __fc_heap_status); + allocates \result; - behavior normal: - assumes in_domain: \is_finite(x) ∧ x ≥ 1; - ensures positive_result: \is_finite(\result) ∧ \result ≥ 0; - assigns \result; - assigns \result \from x; + behavior allocation: + assumes can_allocate: is_allocable(size); + ensures allocation: \fresh{Old, Here}(\result,\old(size)); + assigns __fc_heap_status, \result; + assigns __fc_heap_status \from size, __fc_heap_status; + assigns \result \from (indirect: size), (indirect: __fc_heap_status); - behavior infinite: - assumes is_plus_infinity: \is_plus_infinity(x); - ensures result_plus_infinity: \is_plus_infinity(\result); + behavior no_allocation: + assumes cannot_allocate: ¬is_allocable(size); + ensures null_result: \result ≡ \null; assigns \result; - assigns \result \from x; - - behavior domain_error: - assumes - out_of_domain: \is_minus_infinity(x) ∨ (\is_finite(x) ∧ x < 1); - ensures errno_set: __fc_errno ≡ 1; - assigns __fc_errno, \result; - assigns __fc_errno \from x; - assigns \result \from x; + assigns \result \from \nothing; + allocates \nothing; - disjoint behaviors domain_error, infinite, normal; + complete behaviors no_allocation, allocation; + disjoint behaviors no_allocation, allocation; */ -extern double acosh(double x); +extern void *malloc(size_t size); -/*@ assigns __fc_errno, \result; - assigns __fc_errno \from x; - assigns \result \from x; - - behavior normal: - assumes in_domain: \is_finite(x) ∧ x ≥ 1; - ensures positive_result: \is_finite(\result) ∧ \result ≥ 0; - assigns \result; - assigns \result \from x; +/*@ requires freeable: p ≡ \null ∨ \freeable(p); + assigns __fc_heap_status; + assigns __fc_heap_status \from __fc_heap_status; + frees p; - behavior infinite: - assumes is_plus_infinity: \is_plus_infinity(x); - ensures result_plus_infinity: \is_plus_infinity(\result); - assigns \result; - assigns \result \from x; + behavior deallocation: + assumes nonnull_p: p ≢ \null; + ensures freed: \allocable(\old(p)); + assigns __fc_heap_status; + assigns __fc_heap_status \from __fc_heap_status; - behavior domain_error: - assumes - out_of_domain: \is_minus_infinity(x) ∨ (\is_finite(x) ∧ x < 1); - ensures errno_set: __fc_errno ≡ 1; - assigns __fc_errno, \result; - assigns __fc_errno \from x; - assigns \result \from x; + behavior no_deallocation: + assumes null_p: p ≡ \null; + assigns \nothing; + allocates \nothing; - disjoint behaviors domain_error, infinite, normal; + complete behaviors no_deallocation, deallocation; + disjoint behaviors no_deallocation, deallocation; */ -extern float acoshf(float x); +extern void free(void *p); -/*@ assigns __fc_errno, \result; - assigns __fc_errno \from x; - assigns \result \from x; +/*@ requires freeable: ptr ≡ \null ∨ \freeable(ptr); + assigns __fc_heap_status, \result; + assigns __fc_heap_status \from __fc_heap_status; + assigns \result \from size, ptr, __fc_heap_status; + frees ptr; + allocates \result; - behavior normal: - assumes in_domain: \is_finite(x) ∧ x ≥ 1; - ensures positive_result: \is_finite(\result) ∧ \result ≥ 0; + behavior allocation: + assumes can_allocate: is_allocable(size); + ensures allocation: \fresh{Old, Here}(\result,\old(size)); assigns \result; - assigns \result \from x; + assigns \result \from size, __fc_heap_status; + allocates \result; - behavior infinite: - assumes is_plus_infinity: \is_plus_infinity(x); - ensures result_plus_infinity: \is_plus_infinity(\result); - assigns \result; - assigns \result \from x; + behavior deallocation: + assumes nonnull_ptr: ptr ≢ \null; + assumes can_allocate: is_allocable(size); + ensures freed: \allocable(\old(ptr)); + ensures freeable: \result ≡ \null ∨ \freeable(\result); + frees ptr; - behavior domain_error: - assumes - out_of_domain: \is_minus_infinity(x) ∨ (\is_finite(x) ∧ x < 1); - ensures errno_set: __fc_errno ≡ 1; - assigns __fc_errno, \result; - assigns __fc_errno \from x; - assigns \result \from x; + behavior fail: + assumes cannot_allocate: ¬is_allocable(size); + ensures null_result: \result ≡ \null; + assigns \result; + assigns \result \from size, __fc_heap_status; + allocates \nothing; - disjoint behaviors domain_error, infinite, normal; + complete behaviors fail, deallocation, allocation; + disjoint behaviors allocation, fail; + disjoint behaviors deallocation, fail; */ -extern long double acoshl(long double x); +extern void *realloc(void *ptr, size_t size); -/*@ requires finite_arg: \is_finite(x); - requires finite_domain: x ≤ 0x1.62e42fefa39efp+9; - ensures res_finite: \is_finite(\result); - ensures positive_result: \result > 0.; - assigns \result; - assigns \result \from x; - */ -extern double exp(double x); +/*@ ensures never_terminates: \false; + assigns \nothing; */ +extern __attribute__((__noreturn__)) void abort(void); -/*@ requires finite_arg: \is_finite(x); - requires res_finite: x ≤ 0x1.62e42ep+6; - ensures res_finite: \is_finite(\result); - ensures positive_result: \result > 0.; - assigns \result; - assigns \result \from x; - */ -extern float expf(float x); +/*@ assigns \result; + assigns \result \from \nothing; */ +extern int atexit(void (*func)(void)); -/*@ requires finite_arg: \is_finite(x); - requires arg_positive: x > 0; - ensures finite_result: \is_finite(\result); - assigns \result; - assigns \result \from x; - */ -extern double log(double x); +/*@ assigns \result; + assigns \result \from \nothing; */ +extern int at_quick_exit(void (*func)(void)); -/*@ requires finite_arg: \is_finite(x); - requires arg_positive: x > 0; - ensures finite_result: \is_finite(\result); - assigns \result; - assigns \result \from x; - */ -extern float logf(float x); +/*@ ensures never_terminates: \false; + assigns \nothing; */ +extern __attribute__((__noreturn__)) void exit(int status); -/*@ requires finite_arg: \is_finite(x); - requires arg_pos: x > 0; - ensures finite_result: \is_finite(\result); - assigns \result; - assigns \result \from x; - */ -extern long double logl(long double x); +/*@ ensures never_terminates: \false; + assigns \nothing; */ +extern __attribute__((__noreturn__)) void _Exit(int status); -/*@ requires finite_arg: \is_finite(x); - requires arg_positive: x > 0; - ensures finite_result: \is_finite(\result); - assigns \result; - assigns \result \from x; - */ -extern double log10(double x); +char *__fc_env[4096] __attribute__((__FRAMA_C_MODEL__)); +char *getenv(char const *name); -/*@ requires finite_arg: \is_finite(x); - requires arg_positive: x > 0; - ensures finite_result: \is_finite(\result); - assigns \result; - assigns \result \from x; - */ -extern float log10f(float x); +int putenv(char *string); -/*@ requires finite_arg: \is_finite(x); - requires arg_postive: x > 0; - ensures finite_result: \is_finite(\result); - assigns \result; - assigns \result \from x; - */ -extern long double log10l(long double x); +int setenv(char const *name, char const *value, int overwrite); -/*@ requires finite_arg: \is_finite(x); - requires arg_positive: x > 0; - ensures finite_result: \is_finite(\result); - assigns \result; - assigns \result \from x; - */ -extern double log2(double x); +int unsetenv(char const *name); -/*@ requires finite_arg: \is_finite(x); - requires arg_positive: x > 0; - ensures finite_result: \is_finite(\result); - assigns \result; - assigns \result \from x; - */ -extern float log2f(float x); +/*@ ensures never_terminates: \false; + assigns \nothing; */ +extern __attribute__((__noreturn__)) void quick_exit(int status); -/*@ requires finite_arg: \is_finite(x); - requires arg_positive: x > 0; - ensures finite_result: \is_finite(\result); +/*@ requires + null_or_valid_string_command: + command ≡ \null ∨ valid_read_string(command); assigns \result; - assigns \result \from x; + assigns \result + \from (indirect: command), (indirect: *(command + (0 ..))); */ -extern long double log2l(long double x); - -double fabs(double x); - -float fabsf(float x); +extern int system(char const *command); -/*@ requires finite_arg: \is_finite(x); - ensures res_finite: \is_finite(\result); - ensures positive_result: \result ≥ 0.; +/*@ requires valid_function_compar: \valid_function(compar); ensures - equal_magnitude_result: \result ≡ \old(x) ∨ \result ≡ -\old(x); + null_or_correct_result: + \result ≡ \null ∨ + \subset(\result, + (void *)((char *)\old(base) + + (0 .. \old(size) * (\old(nmemb) - 1)))); assigns \result; - assigns \result \from x; + assigns \result + \from (indirect: key), *((char *)key + (0 .. size - 1)), base, + *((char *)base + (0 .. size * (nmemb - 1))), (indirect: nmemb), + (indirect: size), (indirect: *compar); */ -extern long double fabsl(long double x); +extern void *bsearch(void const *key, void const *base, size_t nmemb, + size_t size, int (*compar)(void const *, void const *)); -/*@ requires finite_args: \is_finite(x) ∧ \is_finite(y); - requires finite_logic_res: \is_finite(pow(x, y)); - ensures finite_result: \is_finite(\result); - assigns \result; - assigns \result \from x, y; +/*@ requires valid_function_compar: \valid_function(compar); + assigns *((char *)base + (0 ..)); + assigns *((char *)base + (0 ..)) + \from (indirect: base), *((char *)base + (0 ..)), (indirect: nmemb), + (indirect: size), (indirect: compar), (indirect: *compar); */ -extern double pow(double x, double y); +extern void qsort(void *base, size_t nmemb, size_t size, + int (*compar)(void const *, void const *)); -/*@ requires finite_args: \is_finite(x) ∧ \is_finite(y); - requires finite_logic_res: \is_finite(powf(x, y)); - ensures finite_result: \is_finite(\result); - assigns \result; - assigns \result \from x, y; - */ -extern float powf(float x, float y); +int abs(int i); -/*@ requires finite_arg: \is_finite(x); - requires arg_positive: x ≥ -0.; - ensures finite_result: \is_finite(\result); - ensures positive_result: \result ≥ -0.; +/*@ requires abs_representable: j > -2147483647L - 1L; assigns \result; - assigns \result \from x; + assigns \result \from j; + + behavior negative: + assumes negative: j < 0; + ensures opposite_result: \result ≡ -\old(j); + + behavior nonnegative: + assumes nonnegative: j ≥ 0; + ensures same_result: \result ≡ \old(j); + + complete behaviors nonnegative, negative; + disjoint behaviors nonnegative, negative; */ -extern double sqrt(double x); +extern long labs(long j); -/*@ requires finite_arg: \is_finite(x); - requires arg_positive: x ≥ -0.; - ensures finite_result: \is_finite(\result); - ensures positive_result: \result ≥ -0.; +/*@ requires abs_representable: j > -9223372036854775807LL - 1LL; assigns \result; - assigns \result \from x; + assigns \result \from j; + + behavior negative: + assumes negative: j < 0; + ensures opposite_result: \result ≡ -\old(j); + + behavior nonnegative: + assumes nonnegative: j ≥ 0; + ensures same_result: \result ≡ \old(j); + + complete behaviors nonnegative, negative; + disjoint behaviors nonnegative, negative; */ -extern float sqrtf(float x); +extern long long llabs(long long j); -/*@ requires finite_arg: \is_finite(x); - requires arg_positive: x ≥ -0.; - ensures finite_result: \is_finite(\result); - ensures positive_result: \result ≥ -0.; - assigns \result; - assigns \result \from x; - */ -extern long double sqrtl(long double x); +/*@ assigns \result; + assigns \result \from numer, denom; */ +extern div_t div(int numer, int denom); -/*@ requires finite_arg: \is_finite(x); - ensures finite_result: \is_finite(\result); - assigns \result; - assigns \result \from x; - */ -extern double ceil(double x); +/*@ assigns \result; + assigns \result \from numer, denom; */ +extern ldiv_t ldiv(long numer, long denom); -/*@ requires finite_arg: \is_finite(x); - ensures finite_result: \is_finite(\result); - assigns \result; - assigns \result \from x; - */ -extern float ceilf(float x); +/*@ assigns \result; + assigns \result \from numer, denom; */ +extern lldiv_t lldiv(long long numer, long long denom); -/*@ requires finite_arg: \is_finite(x); - ensures finite_result: \is_finite(\result); - assigns \result; - assigns \result \from x; - */ -extern long double ceill(long double x); +/*@ ghost extern int __fc_mblen_state; */ -/*@ requires finite_arg: \is_finite(x); - ensures finite_result: \is_finite(\result); - assigns \result; - assigns \result \from x; +/*@ assigns \result, __fc_mblen_state; + assigns \result + \from (indirect: s), (indirect: *(s + (0 ..))), (indirect: n), + __fc_mblen_state; + assigns __fc_mblen_state + \from (indirect: s), (indirect: *(s + (0 ..))), (indirect: n), + __fc_mblen_state; */ -extern double floor(double x); +extern int mblen(char const *s, size_t n); -/*@ requires finite_arg: \is_finite(x); - ensures finite_result: \is_finite(\result); - assigns \result; - assigns \result \from x; - */ -extern float floorf(float x); +/*@ ghost extern int __fc_mbtowc_state; */ -/*@ requires finite_arg: \is_finite(x); - ensures finite_result: \is_finite(\result); - assigns \result; - assigns \result \from x; +/*@ requires separation: \separated(pwc, s); + ensures consumed_range: \result ≤ \old(n); + assigns \result, *(pwc + (0 .. \result - 1)), __fc_mbtowc_state; + assigns \result + \from (indirect: s), (indirect: *(s + (0 .. n - 1))), (indirect: n), + __fc_mbtowc_state; + assigns *(pwc + (0 .. \result - 1)) + \from (indirect: s), *(s + (0 .. n - 1)), (indirect: n), + __fc_mbtowc_state; + assigns __fc_mbtowc_state + \from (indirect: s), *(s + (0 .. n - 1)), (indirect: n), + __fc_mbtowc_state; */ -extern long double floorl(long double x); +extern int mbtowc(wchar_t * __restrict pwc, char const * __restrict s, + size_t n); -/*@ requires finite_arg: \is_finite(x); - ensures finite_result: \is_finite(\result); - assigns \result; - assigns \result \from x; - */ -extern double round(double x); +/*@ ghost extern int __fc_wctomb_state; */ -/*@ requires finite_arg: \is_finite(x); - ensures finite_result: \is_finite(\result); - assigns \result; - assigns \result \from x; +/*@ assigns \result, *(s + (0 ..)), __fc_wctomb_state; + assigns \result \from (indirect: wc), __fc_wctomb_state; + assigns *(s + (0 ..)) \from wc, __fc_wctomb_state; + assigns __fc_wctomb_state \from wc, __fc_wctomb_state; */ -extern float roundf(float x); +extern int wctomb(char *s, wchar_t wc); -/*@ requires finite_arg: \is_finite(x); - ensures finite_result: \is_finite(\result); - assigns \result; - assigns \result \from x; +/*@ requires separation: \separated(pwcs, s); + assigns \result, *(pwcs + (0 .. n - 1)); + assigns \result + \from (indirect: s), (indirect: *(s + (0 .. n - 1))), (indirect: n); + assigns *(pwcs + (0 .. n - 1)) + \from (indirect: s), *(s + (0 .. n - 1)), (indirect: n); */ -extern long double roundl(long double x); +extern size_t mbstowcs(wchar_t * __restrict pwcs, char const * __restrict s, + size_t n); -/*@ requires finite_arg: \is_finite(x); - ensures finite_result: \is_finite(\result); - assigns \result; - assigns \result \from x; +/*@ requires separation: \separated(s, pwcs); + assigns \result, *(s + (0 .. n - 1)); + assigns \result + \from (indirect: pwcs), (indirect: *(pwcs + (0 .. n - 1))), + (indirect: n); + assigns *(s + (0 .. n - 1)) + \from (indirect: pwcs), *(pwcs + (0 .. n - 1)), (indirect: n); */ -extern double trunc(double x); +extern size_t wcstombs(char * __restrict s, wchar_t const * __restrict pwcs, + size_t n); -/*@ requires finite_arg: \is_finite(x); - ensures finite_result: \is_finite(\result); - assigns \result; - assigns \result \from x; - */ -extern float truncf(float x); +int posix_memalign(void **memptr, size_t alignment, size_t size); -/*@ requires finite_arg: \is_finite(x); - ensures finite_result: \is_finite(\result); - assigns \result; - assigns \result \from x; +/*@ requires valid_template: valid_string(templat); + ensures + result_error_or_valid_fd: \result ≡ -1 ∨ (0 ≤ \result < 16); + assigns *(templat + (0 ..)), \result; + assigns *(templat + (0 ..)) \from \nothing; + assigns \result \from \nothing; */ -extern long double truncl(long double x); +extern int mkstemp(char *templat); -/*@ requires finite_args: \is_finite(x) ∧ \is_finite(y); - requires finite_logic_result: \is_finite(fmod(x, y)); - ensures finite_result: \is_finite(\result); - assigns \result; - assigns \result \from x, y; - */ -extern double fmod(double x, double y); +int glob(char const *pattern, int flags, + int (*errfunc)(char const *epath, int eerrno), glob_t *pglob) +{ + int __retres; + int tmp; + unsigned int tmp_0; + char **tmp_1; + int tmp_4; + tmp = Frama_C_interval(0,10); + pglob->gl_pathc = (unsigned int)tmp; + if (flags & (1 << 3)) tmp_0 = pglob->gl_offs; else tmp_0 = (unsigned int)0; + size_t reserve_offs = tmp_0; + size_t prev_len = (unsigned int)0; + if (flags & (1 << 5)) + while (*(pglob->gl_pathv + (reserve_offs + prev_len))) prev_len += (size_t)1; + if (flags & (1 << 5)) tmp_1 = pglob->gl_pathv; else tmp_1 = (char **)0; + char **path = tmp_1; + if (pglob->gl_pathc == (unsigned int)0) + if (flags & (1 << 4)) { + pglob->gl_pathv = (char **)realloc((void *)path, + ((reserve_offs + prev_len) + (size_t)2) * sizeof(char *)); + if (! pglob->gl_pathv) { + __retres = 1; + goto return_label; + } + { + size_t i = (unsigned int)0; + while (i < reserve_offs) { + *(pglob->gl_pathv + i) = (char *)0; + i += (size_t)1; + } + } + *(pglob->gl_pathv + (reserve_offs + prev_len)) = (char *)pattern; + *(pglob->gl_pathv + ((reserve_offs + prev_len) + (size_t)1)) = (char *)0; + __retres = 0; + goto return_label; + } + else { + __retres = 3; + goto return_label; + } + pglob->gl_pathv = (char **)realloc((void *)path, + (((reserve_offs + prev_len) + pglob->gl_pathc) + (size_t)1) * sizeof(char *)); + if (! pglob->gl_pathv) { + __retres = 1; + goto return_label; + } + { + size_t i_0 = (unsigned int)0; + while (i_0 < reserve_offs) { + *(pglob->gl_pathv + i_0) = (char *)0; + i_0 += (size_t)1; + } + } + { + size_t i_1 = (unsigned int)0; + while (i_1 < pglob->gl_pathc) { + *(pglob->gl_pathv + ((reserve_offs + prev_len) + i_1)) = (char *)"glob result"; + i_1 += (size_t)1; + } + } + *(pglob->gl_pathv + ((prev_len + reserve_offs) + pglob->gl_pathc)) = (char *)0; + tmp_4 = Frama_C_nondet(0,1); + if (tmp_4) { + __retres = 0; + goto return_label; + } + else { + if (errfunc) { + int tmp_3; + int tmp_2; + tmp_2 = Frama_C_interval(0,255); + tmp_3 = (*errfunc)("glob.c error path",tmp_2); + int res = tmp_3; + if (res) { + __retres = 2; + goto return_label; + } + else + if (flags & (1 << 0)) { + __retres = 2; + goto return_label; + } + } + __retres = 0; + goto return_label; + } + return_label: return __retres; +} -/*@ requires finite_args: \is_finite(x) ∧ \is_finite(y); - requires finite_logic_result: \is_finite(fmodf(x, y)); - ensures finite_result: \is_finite(\result); - assigns \result; - assigns \result \from x, y; - */ -extern float fmodf(float x, float y); +void globfree(glob_t *pglob) +{ + if (pglob->gl_pathc > (unsigned int)0) free((void *)pglob->gl_pathv); + return; +} -/*@ requires tagp_valid_string: valid_read_string(tagp); - ensures result_is_nan: \is_NaN(\result); - assigns \result; - assigns \result \from (indirect: *(tagp + (0 ..))); - */ -extern double nan(char const *tagp); +intmax_t imaxabs(intmax_t c); -/*@ requires tagp_valid_string: valid_read_string(tagp); - ensures result_is_nan: \is_NaN(\result); - assigns \result; - assigns \result \from (indirect: *(tagp + (0 ..))); - */ -extern float nanf(char const *tagp); +imaxdiv_t imaxdiv(intmax_t numer, intmax_t denom); -/*@ requires tagp_valid_string: valid_read_string(tagp); - ensures result_is_nan: \is_NaN(\result); - assigns \result; - assigns \result \from (indirect: *(tagp + (0 ..))); +/*@ assigns \result, *(endptr + (..)), __fc_errno; + assigns \result \from *(nptr + (..)), base; + assigns *(endptr + (..)) \from *(nptr + (..)), base; + assigns __fc_errno \from *(nptr + (..)), base; */ -extern long double nanl(char const *tagp); - -int __finitef(float f); - -int __finite(double d); +extern intmax_t strtoimax(char const * __restrict nptr, + char ** __restrict endptr, int base); -/*@ requires finite_arg: \is_finite(x); - ensures res_finite: \is_finite(\result); - ensures positive_result: \result ≥ 0.; - ensures - equal_magnitude_result: \result ≡ \old(x) ∨ \result ≡ -\old(x); +/*@ requires abs_representable: (long long)(-c) ≢ c; assigns \result; - assigns \result \from x; + assigns \result \from c; */ -double fabs(double x) +intmax_t imaxabs(intmax_t c) { - double __retres; - if (x == 0.0) { - __retres = 0.0; + intmax_t __retres; + if (c > (intmax_t)0) { + __retres = c; goto return_label; } - if (x > 0.0) { - __retres = x; + else { + __retres = - c; goto return_label; } - __retres = - x; return_label: return __retres; } -/*@ requires finite_arg: \is_finite(x); - ensures res_finite: \is_finite(\result); - ensures positive_result: \result ≥ 0.; - ensures - equal_magnitude_result: \result ≡ \old(x) ∨ \result ≡ -\old(x); +/*@ requires no_div_by_zero: denom ≢ 0; + requires no_overflow: denom ≢ -1 ∨ (long long)(-numer) ≢ numer; + ensures correct_div: \result.quot ≡ \old(numer) / \old(denom); + ensures correct_mod: \result.rem ≡ \old(numer) % \old(denom); assigns \result; - assigns \result \from x; + assigns \result \from numer, denom; */ -float fabsf(float x) +imaxdiv_t imaxdiv(intmax_t numer, intmax_t denom) { - float __retres; - if (x == 0.0f) { - __retres = 0.0f; - goto return_label; - } - else - if (x > 0.0f) { - __retres = x; - goto return_label; - } - else { - __retres = - x; - goto return_label; - } - return_label: return __retres; + imaxdiv_t r; + r.quot = numer / denom; + r.rem = numer % denom; + return r; } -int __finitef(float f) -{ - int __retres; - union __fc_u_finitef u; - unsigned short usExp; - u.f = f; - usExp = (unsigned short)((int)u.w[1] & 0x7F80); - usExp = (unsigned short)((int)usExp >> 7); - __retres = ! ((int)usExp == 0xff); - return __retres; -} +extern struct lconv *__fc_locale; -int __finite(double d) -{ - int __retres; - union __fc_u_finite u; - unsigned short usExp; - u.d = d; - usExp = (unsigned short)((int)u.w[3] & 0x7F80); - usExp = (unsigned short)((int)usExp >> 7); - __retres = ! ((int)usExp == 0xff); - return __retres; -} +extern char *__fc_locale_names[512]; -/*@ assigns \nothing; */ -extern void (*signal(int sig, void (*func)(int )))(int ); +char *setlocale(int category, char const *locale); -/*@ ensures never_terminates: \false; - assigns \nothing; */ -extern int raise(int sig); +struct lconv *localeconv(void); -/*@ requires valid_set: \valid(set); - ensures initialization: set: \initialized(\old(set)); - ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; - assigns *set, \result; - assigns *set \from \nothing; - assigns \result \from \nothing; +struct lconv __C_locale = + {.decimal_point = (char *)".", + .thousands_sep = (char *)"", + .grouping = (char *)"", + .int_curr_symbol = (char *)"", + .currency_symbol = (char *)"", + .mon_decimal_point = (char *)"", + .mon_thousands_sep = (char *)"", + .mon_grouping = (char *)"", + .positive_sign = (char *)"", + .negative_sign = (char *)"", + .int_frac_digits = (char)127, + .frac_digits = (char)127, + .p_cs_precedes = (char)127, + .p_sep_by_space = (char)127, + .n_cs_precedes = (char)127, + .n_sep_by_space = (char)127, + .p_sign_posn = (char)127, + .n_sign_posn = (char)127, + .int_p_cs_precedes = (char)127, + .int_p_sep_by_space = (char)127, + .int_n_cs_precedes = (char)127, + .int_n_sep_by_space = (char)127, + .int_p_sign_posn = (char)127, + .int_n_sign_posn = (char)127}; +struct lconv *__frama_c_locale = & __C_locale; +char *__frama_c_locale_names[512] = {(char *)"C"}; +/*@ requires + locale_null_or_valid_string: + locale ≡ \null ∨ valid_read_string(locale); + ensures + result_null_or_locale_name: + \result ≡ \null ∨ + (\valid(\result) ∧ (∃ ℤ i; \result ≡ __fc_locale_names[i])); + assigns __fc_locale, \result; + assigns __fc_locale \from category, *(locale + (..)); + assigns \result \from __fc_locale, category, *(locale + (..)); */ -extern int sigemptyset(sigset_t *set); +char *setlocale(int category, char const *locale) +{ + char *__retres; + if ((int)*locale == 'C') { + __frama_c_locale = & __C_locale; + __retres = __frama_c_locale_names[0]; + goto return_label; + } + __retres = (char *)0; + return_label: return __retres; +} -/*@ requires valid_set: \valid(set); - ensures initialization: set: \initialized(\old(set)); - ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; - assigns *set, \result; - assigns *set \from \nothing; - assigns \result \from \nothing; +/*@ ensures result_current_locale: \result ≡ __fc_locale; + assigns \nothing; */ -extern int sigfillset(sigset_t *set); +struct lconv *localeconv(void) +{ + return __frama_c_locale; +} -/*@ requires valid_set: \valid(set); - requires initialization: set: \initialized(set); - ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; - assigns *set, \result; - assigns *set \from (indirect: signum); - assigns \result \from signum; +/*@ assigns \result; + assigns \result \from x; + + behavior nan: + assumes is_nan: \is_NaN(x); + ensures fp_nan: \result ≡ 0; + + behavior inf: + assumes is_infinite: ¬\is_NaN(x) ∧ ¬\is_finite(x); + ensures fp_infinite: \result ≡ 1; + + behavior zero: + assumes is_a_zero: x ≡ 0.0; + ensures fp_zero: \result ≡ 2; + + behavior subnormal: + assumes is_finite: \is_finite(x); + assumes + is_subnormal: + (x > 0.0 ∧ x < 0x1p-126) ∨ (x < 0.0 ∧ x > -0x1p-126); + ensures fp_subnormal: \result ≡ 3; + + behavior normal: + assumes is_finite: \is_finite(x); + assumes not_subnormal: x ≤ -0x1p-126 ∨ x ≥ 0x1p-126; + ensures fp_normal: \result ≡ 4; + + complete behaviors normal, subnormal, zero, inf, nan; + disjoint behaviors normal, subnormal, zero, inf, nan; */ -extern int sigaddset(sigset_t *set, int signum); +int __fc_fpclassifyf(float x); -/*@ requires valid_set: \valid(set); - requires initialization: set: \initialized(set); - ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; - assigns *set, \result; - assigns *set \from (indirect: signum); - assigns \result \from signum; +/*@ assigns \result; + assigns \result \from x; + + behavior nan: + assumes is_nan: \is_NaN(x); + ensures fp_nan: \result ≡ 0; + + behavior inf: + assumes is_infinite: ¬\is_NaN(x) ∧ ¬\is_finite(x); + ensures fp_infinite: \result ≡ 1; + + behavior zero: + assumes is_a_zero: x ≡ 0.0; + ensures fp_zero: \result ≡ 2; + + behavior subnormal: + assumes is_finite: \is_finite(x); + assumes + is_subnormal: + (x > 0.0 ∧ x < 0x1p-1022) ∨ (x < 0.0 ∧ x > -0x1p-1022); + ensures fp_subnormal: \result ≡ 3; + + behavior normal: + assumes is_finite: \is_finite(x); + assumes not_subnormal: x ≤ -0x1p-1022 ∨ x ≥ 0x1p-1022; + ensures fp_normal: \result ≡ 4; + + complete behaviors normal, subnormal, zero, inf, nan; + disjoint behaviors normal, subnormal, zero, inf, nan; */ -extern int sigdelset(sigset_t *set, int signum); +int __fc_fpclassify(double x); -/*@ requires valid_read_set: \valid_read(set); - requires initialization: set: \initialized(set); - ensures - result_found_not_found_or_error: - \result ≡ 0 ∨ \result ≡ 1 ∨ \result ≡ -1; - assigns \result; - assigns \result \from *set, signum; +/*@ assigns __fc_errno, \result; + assigns __fc_errno \from x; + assigns \result \from x; + + behavior normal: + assumes in_domain: \is_finite(x) ∧ \abs(x) ≤ 1; + ensures positive_result: \is_finite(\result) ∧ \result ≥ 0; + assigns \result; + assigns \result \from x; + + behavior domain_error: + assumes + out_of_domain: \is_infinite(x) ∨ (\is_finite(x) ∧ \abs(x) > 1); + ensures errno_set: __fc_errno ≡ 1; + assigns __fc_errno, \result; + assigns __fc_errno \from x; + assigns \result \from x; + + disjoint behaviors domain_error, normal; */ -extern int sigismember(sigset_t const *set, int signum); +extern double acos(double x); -struct sigaction __fc_sigaction[64 + 1]; -struct sigaction *__fc_p_sigaction = __fc_sigaction; -/*@ requires valid_signal: 0 ≤ signum ≤ 64; - requires valid_oldact_or_null: oldact ≡ \null ∨ \valid(oldact); - requires valid_read_act_or_null: act ≡ \null ∨ \valid_read(act); - requires separation: separated_acts: \separated(act, oldact); - ensures - act_changed: - \old(act) ≡ \null ∨ - \subset(*(__fc_p_sigaction + \old(signum)), *\old(act)); - ensures - oldact_assigned: - \old(oldact) ≡ \null ∨ - *\old(oldact) ∈ *(__fc_p_sigaction + \old(signum)); - ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; - assigns *oldact, *(__fc_p_sigaction + signum), \result; - assigns *oldact \from __fc_p_sigaction; - assigns *(__fc_p_sigaction + signum) \from *act; - assigns \result - \from (indirect: signum), (indirect: act), (indirect: *act), - (indirect: oldact), (indirect: *oldact); +/*@ assigns __fc_errno, \result; + assigns __fc_errno \from x; + assigns \result \from x; + + behavior normal: + assumes in_domain: \is_finite(x) ∧ \abs(x) ≤ 1; + ensures positive_result: \is_finite(\result) ∧ \result ≥ 0; + assigns \result; + assigns \result \from x; + + behavior domain_error: + assumes + out_of_domain: \is_infinite(x) ∨ (\is_finite(x) ∧ \abs(x) > 1); + ensures errno_set: __fc_errno ≡ 1; + assigns __fc_errno, \result; + assigns __fc_errno \from x; + assigns \result \from x; + + disjoint behaviors domain_error, normal; */ -extern int sigaction(int signum, struct sigaction const * __restrict act, - struct sigaction * __restrict oldact); +extern float acosf(float x); -/*@ requires valid_set_or_null: set ≡ \null ∨ \valid_read(set); - requires valid_how: set ≢ \null ⇒ how ∈ {0, 2, 1}; - requires valid_oldset_or_null: oldset ≡ \null ∨ \valid(oldset); - requires - separation: (set ≡ oldset ≡ \null) ∨ \separated(set, oldset); - ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; - ensures - initialization: oldset_initialized: - \old(oldset) ≢ \null ∧ \result ≡ 0 ⇒ - \initialized(\old(oldset)); - assigns \result, *oldset; - assigns \result - \from (indirect: how), (indirect: set), (indirect: oldset); - assigns *oldset \from (indirect: how), (indirect: oldset); +/*@ assigns __fc_errno, \result; + assigns __fc_errno \from x; + assigns \result \from x; + + behavior normal: + assumes in_domain: \is_finite(x) ∧ \abs(x) ≤ 1; + ensures positive_result: \is_finite(\result) ∧ \result ≥ 0; + assigns \result; + assigns \result \from x; + + behavior domain_error: + assumes + out_of_domain: \is_infinite(x) ∨ (\is_finite(x) ∧ \abs(x) > 1); + ensures errno_set: __fc_errno ≡ 1; + assigns __fc_errno, \result; + assigns __fc_errno \from x; + assigns \result \from x; + + disjoint behaviors domain_error, normal; */ -extern int sigprocmask(int how, sigset_t const * __restrict set, - sigset_t * __restrict oldset); +extern long double acosl(long double x); -/*@ ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; - assigns \result; - assigns \result \from (indirect: pid), (indirect: sig); +/*@ assigns __fc_errno, \result; + assigns __fc_errno \from x; + assigns \result \from x; + + behavior normal: + assumes in_domain: \is_finite(x) ∧ \abs(x) ≤ 1; + ensures finite_result: \is_finite(\result); + assigns \result; + assigns \result \from x; + + behavior domain_error: + assumes + out_of_domain: \is_infinite(x) ∨ (\is_finite(x) ∧ \abs(x) > 1); + ensures errno_set: __fc_errno ≡ 1; + assigns __fc_errno, \result; + assigns __fc_errno \from x; + assigns \result \from x; + + disjoint behaviors domain_error, normal; */ -extern int kill(pid_t pid, int sig); +extern double asin(double x); -/*@ ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; - assigns \result; - assigns \result \from (indirect: pgrp), (indirect: sig); +/*@ assigns __fc_errno, \result; + assigns __fc_errno \from x; + assigns \result \from x; + + behavior normal: + assumes in_domain: \is_finite(x) ∧ \abs(x) ≤ 1; + ensures finite_result: \is_finite(\result); + assigns \result; + assigns \result \from x; + + behavior domain_error: + assumes + out_of_domain: \is_infinite(x) ∨ (\is_finite(x) ∧ \abs(x) > 1); + ensures errno_set: __fc_errno ≡ 1; + assigns __fc_errno, \result; + assigns __fc_errno \from x; + assigns \result \from x; + + disjoint behaviors domain_error, normal; */ -extern int killpg(pid_t pgrp, int sig); - -/*@ ghost struct __fc_sockfds_type __fc_sockfds[1024]; */ -/*@ ghost extern int __fc_socket_counter __attribute__((__FRAMA_C_MODEL__)); -*/ +extern float asinf(float x); -/*@ ghost int volatile __fc_open_sock_fds; */ -/*@ requires valid_sockfd: 0 ≤ sockfd < 1024; - ensures - result_error_or_valid_new_sockfd: - \result ≡ -1 ∨ (0 ≤ \result < 1024); - assigns \result, *((char *)addr + (0 .. *addrlen - 1)), - __fc_sockfds[sockfd]; - assigns \result \from *addr, *addrlen, __fc_sockfds[sockfd]; - assigns *((char *)addr + (0 .. *addrlen - 1)) - \from *addr, *addrlen, __fc_sockfds[sockfd]; - assigns __fc_sockfds[sockfd] \from *addr, *addrlen, __fc_sockfds[sockfd]; +/*@ assigns __fc_errno, \result; + assigns __fc_errno \from x; + assigns \result \from x; - behavior addr_null: - assumes addr_is_null: addr ≡ \null; - requires addrlen_should_be_null: addrlen ≡ \null; - assigns \result, __fc_sockfds[sockfd]; - assigns \result \from __fc_sockfds[sockfd]; - assigns __fc_sockfds[sockfd] \from __fc_sockfds[sockfd]; + behavior normal: + assumes in_domain: \is_finite(x) ∧ \abs(x) ≤ 1; + ensures finite_result: \is_finite(\result); + assigns \result; + assigns \result \from x; - behavior addr_not_null: - assumes addr_is_not_null: addr ≢ \null; - requires valid_addrlen: \valid(addrlen); - requires addr_has_room: \valid((char *)addr + (0 .. *addrlen - 1)); - ensures - initialization: addr: - \initialized((char *)\old(addr) + (0 .. *\old(addrlen) - 1)); + behavior domain_error: + assumes + out_of_domain: \is_infinite(x) ∨ (\is_finite(x) ∧ \abs(x) > 1); + ensures errno_set: __fc_errno ≡ 1; + assigns __fc_errno, \result; + assigns __fc_errno \from x; + assigns \result \from x; - disjoint behaviors addr_not_null, addr_null; + disjoint behaviors domain_error, normal; */ -extern int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen); +extern long double asinl(long double x); -/*@ requires valid_sockfd: sockfd: 0 ≤ sockfd < 1024; - requires valid_read_addr: \valid_read((char *)addr + (0 .. addrlen - 1)); - ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; - assigns __fc_sockfds[sockfd], \result; - assigns __fc_sockfds[sockfd] - \from sockfd, *addr, addrlen, __fc_sockfds[sockfd]; - assigns \result - \from (indirect: sockfd), (indirect: *addr), (indirect: addrlen), - (indirect: __fc_sockfds[sockfd]); +/*@ requires finite_arg: \is_finite(x); + ensures finite_result: \is_finite(\result); + ensures result_domain: -1.571 ≤ \result ≤ 1.571; + assigns \result; + assigns \result \from x; */ -extern int bind(int sockfd, struct sockaddr const *addr, socklen_t addrlen); +extern float atanf(float x); -/*@ requires valid_sockfd: 0 ≤ sockfd < 1024; - requires valid_read_addr: \valid_read((char *)addr + (0 .. addrlen - 1)); - ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; - assigns __fc_sockfds[sockfd], \result; - assigns __fc_sockfds[sockfd] - \from __fc_sockfds[sockfd], (indirect: sockfd), (indirect: addr), - (indirect: *addr), (indirect: addrlen); - assigns \result - \from (indirect: __fc_sockfds[sockfd]), (indirect: sockfd), - (indirect: addr), (indirect: *addr), (indirect: addrlen); +/*@ requires finite_arg: \is_finite(x); + ensures finite_result: \is_finite(\result); + ensures result_domain: -1.571 ≤ \result ≤ 1.571; + assigns \result; + assigns \result \from x; */ -extern int connect(int sockfd, struct sockaddr const *addr, socklen_t addrlen); +extern double atan(double x); -/*@ requires valid_sockfd: 0 ≤ sockfd < 1024; - requires valid_optlen: \valid(optlen); - ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; - assigns *((char *)optval + (0 ..)), \result, *optlen; - assigns *((char *)optval + (0 ..)) - \from (indirect: sockfd), (indirect: level), (indirect: optname), - (indirect: *optlen), (indirect: optval), - (indirect: __fc_sockfds[sockfd]); - assigns \result - \from (indirect: sockfd), (indirect: level), (indirect: optname), - (indirect: *optlen), (indirect: optval), - (indirect: __fc_sockfds[sockfd]); - assigns *optlen - \from (indirect: sockfd), (indirect: level), (indirect: optname), - *optlen, (indirect: optval), (indirect: __fc_sockfds[sockfd]); - - behavior so_error: - assumes optname_is_error: level ≡ 1 ∧ optname ≡ 4; - requires valid_optlen: \valid(optlen); - requires optlen_value: *optlen ≡ sizeof(int); - requires valid_optval: \valid((int *)optval); - assigns *((int *)optval), \result; - assigns *((int *)optval) - \from (indirect: sockfd), (indirect: optlen), - (indirect: __fc_sockfds[sockfd]); - assigns \result - \from (indirect: sockfd), (indirect: optlen), - (indirect: __fc_sockfds[sockfd]); - - behavior other_options: - assumes optname_not_error: ¬(level ≡ 1 ∧ optname ≡ 4); - requires - optval_null_or_valid: - optval ≡ \null ∨ \valid((char *)optval + (0 ..)); - assigns *((char *)optval + (0 ..)), \result, *optlen; - assigns *((char *)optval + (0 ..)) - \from (indirect: sockfd), (indirect: level), (indirect: optname), - (indirect: *optlen), (indirect: optval), - (indirect: __fc_sockfds[sockfd]); - assigns \result - \from (indirect: sockfd), (indirect: level), (indirect: optname), - (indirect: *optlen), (indirect: optval), - (indirect: __fc_sockfds[sockfd]); - assigns *optlen - \from (indirect: sockfd), (indirect: level), (indirect: optname), - *optlen, (indirect: optval), (indirect: __fc_sockfds[sockfd]); - - complete behaviors other_options, so_error; - disjoint behaviors other_options, so_error; +/*@ requires finite_arg: \is_finite(x); + ensures finite_result: \is_finite(\result); + ensures result_domain: -1.571 ≤ \result ≤ 1.571; + assigns \result; + assigns \result \from x; */ -extern int getsockopt(int sockfd, int level, int optname, void *optval, - socklen_t *optlen); +extern long double atanl(long double x); -/*@ requires valid_sockfd: 0 ≤ sockfd < 1024; - ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; - assigns \result, __fc_sockfds[sockfd]; - assigns \result \from sockfd, __fc_sockfds[sockfd]; - assigns __fc_sockfds[sockfd] \from sockfd, backlog, __fc_sockfds[sockfd]; +/*@ requires finite_args: \is_finite(x) ∧ \is_finite(y); + requires finite_result: \is_finite(atan2(x, y)); + ensures finite_result: \is_finite(\result); + assigns \result; + assigns \result \from x, y; */ -extern int listen(int sockfd, int backlog); - -/*@ requires valid_sockfd: 0 ≤ sockfd < 1024; - requires valid_buffer_length: \valid((char *)buf + (0 .. len - 1)); - ensures - result_error_or_received_length: - \result ≡ -1 ∨ (0 ≤ \result ≤ \old(len)); - ensures - initialization: \initialized((char *)\old(buf) + (0 .. \result - 1)); - assigns *((char *)buf + (0 .. len - 1)), __fc_sockfds[sockfd], \result; - assigns *((char *)buf + (0 .. len - 1)) - \from sockfd, len, flags, __fc_sockfds[sockfd]; - assigns __fc_sockfds[sockfd] - \from sockfd, len, flags, __fc_sockfds[sockfd]; - assigns \result \from sockfd, len, flags, __fc_sockfds[sockfd]; - */ -extern ssize_t recv(int sockfd, void *buf, size_t len, int flags); - -/*@ requires valid_sockfd: 0 ≤ sockfd < 1024; - requires - msg_control_has_room: - \valid((char *)hdr->msg_control + (0 .. hdr->msg_controllen - 1)); - requires - msg_iov_has_room: \valid(hdr->msg_iov + (0 .. hdr->msg_iovlen - 1)); - requires - msg_name_null_or_has_room: - hdr->msg_name ≡ \null ∨ - \valid((char *)hdr->msg_name + (0 .. hdr->msg_namelen - 1)); - ensures - result_error_or_received_length: - \result ≡ -1 ∨ (0 ≤ \result ≤ \old(hdr)->msg_iovlen); - assigns *((char *)hdr->msg_name + (0 .. hdr->msg_namelen - 1)), - hdr->msg_namelen, - *((char *)(hdr->msg_iov + (0 .. hdr->msg_iovlen - 1))->iov_base + - (0 ..)), - *((char *)hdr->msg_control + (0 .. hdr->msg_controllen - 1)), - \result, hdr->msg_controllen, hdr->msg_flags, - __fc_sockfds[sockfd]; - assigns *((char *)hdr->msg_name + (0 .. hdr->msg_namelen - 1)) - \from __fc_sockfds[sockfd]; - assigns hdr->msg_namelen \from __fc_sockfds[sockfd]; - assigns - *((char *)(hdr->msg_iov + (0 .. hdr->msg_iovlen - 1))->iov_base + (0 ..)) - \from __fc_sockfds[sockfd]; - assigns *((char *)hdr->msg_control + (0 .. hdr->msg_controllen - 1)) - \from __fc_sockfds[sockfd]; - assigns \result \from __fc_sockfds[sockfd]; - assigns hdr->msg_controllen \from __fc_sockfds[sockfd]; - assigns hdr->msg_flags \from __fc_sockfds[sockfd]; - assigns __fc_sockfds[sockfd] \from __fc_sockfds[sockfd]; - */ -extern ssize_t recvmsg(int sockfd, struct msghdr *hdr, int flags); +extern double atan2(double y, double x); -/*@ requires available_sockfd: 0 ≤ sockfd < 1024; - requires buf_len_ok: \valid_read((char *)buf + (0 .. len - 1)); - ensures - error_or_chars_sent: \result ≡ -1 ∨ (0 ≤ \result ≤ \old(len)); - assigns __fc_errno, __fc_sockfds[sockfd], \result; - assigns __fc_errno - \from (indirect: sockfd), (indirect: __fc_sockfds[sockfd]), - (indirect: *((char *)buf + (0 .. len))), flags; - assigns __fc_sockfds[sockfd] - \from __fc_sockfds[sockfd], *((char *)buf + (0 .. len)), flags; - assigns \result - \from (indirect: sockfd), (indirect: __fc_sockfds[sockfd]), - (indirect: *((char *)buf + (0 .. len))), (indirect: flags); +/*@ requires finite_args: \is_finite(x) ∧ \is_finite(y); + requires finite_logic_result: \is_finite(atan2f(x, y)); + ensures finite_result: \is_finite(\result); + assigns \result; + assigns \result \from x, y; */ -extern ssize_t send(int sockfd, void const *buf, size_t len, int flags); +extern float atan2f(float y, float x); -/*@ requires valid_sockfd: 0 ≤ sockfd < 1024; - requires - optval_null_or_has_room: - optval ≡ \null ∨ \valid_read((char *)optval + (0 .. optlen - 1)); - ensures result_error_or_ok: \result ≡ 0 ∨ \result ≡ -1; - assigns \result, __fc_sockfds[sockfd]; - assigns \result - \from __fc_sockfds[sockfd], level, optname, - *((char *)optval + (0 .. optlen - 1)), optlen; - assigns __fc_sockfds[sockfd] - \from __fc_sockfds[sockfd], level, optname, - *((char *)optval + (0 .. optlen - 1)), optlen; +/*@ requires finite_arg: \is_finite(x); + ensures finite_result: \is_finite(\result); + ensures result_domain: -1. ≤ \result ≤ 1.; + assigns \result; + assigns \result \from x; */ -extern int setsockopt(int sockfd, int level, int optname, void const *optval, - socklen_t optlen); +extern double cos(double x); -/*@ requires valid_sockfd: 0 ≤ sockfd < 1024; - ensures result_error_or_ok: \result ≡ 0 ∨ \result ≡ -1; - assigns \result, __fc_sockfds[sockfd]; - assigns \result \from how, __fc_sockfds[sockfd]; - assigns __fc_sockfds[sockfd] \from how, __fc_sockfds[sockfd]; +/*@ requires finite_arg: \is_finite(x); + ensures finite_result: \is_finite(\result); + ensures result_domain: -1. ≤ \result ≤ 1.; + assigns \result; + assigns \result \from x; */ -extern int shutdown(int sockfd, int how); +extern float cosf(float x); -/*@ ensures - result_error_or_valid_new_sockfd: - (0 ≤ \result < 1024) ∨ \result ≡ -1; - assigns \result, __fc_socket_counter; - assigns \result - \from (indirect: domain), (indirect: type), (indirect: protocol), - (indirect: __fc_socket_counter); - assigns __fc_socket_counter - \from (indirect: domain), (indirect: type), (indirect: protocol), - __fc_socket_counter; +/*@ requires finite_arg: \is_finite(x); + ensures finite_result: \is_finite(\result); + ensures result_domain: -1. ≤ \result ≤ 1.; + assigns \result; + assigns \result \from x; */ -extern int socket(int domain, int type, int protocol); +extern long double cosl(long double x); -/*@ requires valid_socket_sector: \valid(sv + (0 .. 1)); - ensures result_error_or_ok: \result ≡ 0 ∨ \result ≡ -1; - ensures initialization: sv: \initialized(\old(sv) + (0 .. 1)); - ensures valid_new_sockfd: sv0: 0 ≤ *(\old(sv) + 0) < 1024; - ensures valid_new_sockfd: sv1: 0 ≤ *(\old(sv) + 1) < 1024; - assigns \result, __fc_socket_counter, *(sv + (0 .. 1)); - assigns \result \from __fc_socket_counter; - assigns __fc_socket_counter \from __fc_socket_counter; - assigns *(sv + (0 .. 1)) \from __fc_socket_counter; +/*@ requires finite_arg: \is_finite(x); + ensures finite_result: \is_finite(\result); + ensures result_domain: -1. ≤ \result ≤ 1.; + assigns \result; + assigns \result \from x; */ -extern int socketpair(int domain, int type, int protocol, int * /*[2]*/ sv); - -struct in6_addr const in6addr_any = {.s6_addr = {(unsigned char)0}}; -struct in6_addr const in6addr_loopback = - {.s6_addr = {(unsigned char)0xFF, - (unsigned char)0xFF, - (unsigned char)0xFF, - (unsigned char)0xFF, - (unsigned char)0xFF, - (unsigned char)0xFF, - (unsigned char)0xFF, - (unsigned char)0xFF, - (unsigned char)0xFF, - (unsigned char)0xFF, - (unsigned char)0xFF, - (unsigned char)0xFF, - (unsigned char)0xFF, - (unsigned char)0xFF, - (unsigned char)0xFF, - (unsigned char)0xFF}}; -/*@ assigns \result; - assigns \result \from arg; */ -extern uint32_t htonl(uint32_t arg); - -/*@ assigns \result; - assigns \result \from arg; */ -extern uint16_t htons(uint16_t arg); - -/*@ assigns \result; - assigns \result \from arg; */ -extern uint32_t ntohl(uint32_t arg); - -/*@ assigns \result; - assigns \result \from arg; */ -extern uint16_t ntohs(uint16_t arg); +extern double sin(double x); -/*@ requires valid_arg: valid_read_string(arg); +/*@ requires finite_arg: \is_finite(x); + ensures finite_result: \is_finite(\result); + ensures result_domain: -1. ≤ \result ≤ 1.; assigns \result; - assigns \result \from (indirect: *(arg + (0 ..))); + assigns \result \from x; */ -extern in_addr_t inet_addr(char const *arg); +extern float sinf(float x); -char volatile __fc_inet_ntoa_array[16]; -char *__fc_inet_ntoa = (char *)(__fc_inet_ntoa_array); -/*@ ensures result_static_string: \result ≡ __fc_inet_ntoa; - ensures result_null_terminated: *(\result + 15) ≡ 0; - ensures result_valid_string: valid_read_string(\result); - assigns \result, *(__fc_inet_ntoa + (0 ..)); - assigns \result \from (indirect: arg), __fc_inet_ntoa; - assigns *(__fc_inet_ntoa + (0 ..)) \from (indirect: arg); +/*@ requires finite_arg: \is_finite(x); + ensures finite_result: \is_finite(\result); + ensures result_domain: -1. ≤ \result ≤ 1.; + assigns \result; + assigns \result \from x; */ -extern char *inet_ntoa(struct in_addr arg); +extern long double sinl(long double x); -/*@ assigns \result, *(dst + (0 .. size - 1)); - assigns \result \from dst, af, *((char *)src + (0 ..)); - assigns *(dst + (0 .. size - 1)) \from af, *((char *)src + (0 ..)); +/*@ assigns __fc_errno, \result; + assigns __fc_errno \from x; + assigns \result \from x; + + behavior normal: + assumes in_domain: \is_finite(x) ∧ x ≥ 1; + ensures positive_result: \is_finite(\result) ∧ \result ≥ 0; + assigns \result; + assigns \result \from x; + + behavior infinite: + assumes is_plus_infinity: \is_plus_infinity(x); + ensures result_plus_infinity: \is_plus_infinity(\result); + assigns \result; + assigns \result \from x; + + behavior domain_error: + assumes + out_of_domain: \is_minus_infinity(x) ∨ (\is_finite(x) ∧ x < 1); + ensures errno_set: __fc_errno ≡ 1; + assigns __fc_errno, \result; + assigns __fc_errno \from x; + assigns \result \from x; + + disjoint behaviors domain_error, infinite, normal; */ -extern char const *inet_ntop(int af, void const *src, char *dst, - socklen_t size); +extern double acosh(double x); -/*@ assigns \result, *((char *)dst + (0 ..)); - assigns \result \from af, *(src + (..)); - assigns *((char *)dst + (0 ..)) \from af, *(src + (0 ..)); +/*@ assigns __fc_errno, \result; + assigns __fc_errno \from x; + assigns \result \from x; + + behavior normal: + assumes in_domain: \is_finite(x) ∧ x ≥ 1; + ensures positive_result: \is_finite(\result) ∧ \result ≥ 0; + assigns \result; + assigns \result \from x; + + behavior infinite: + assumes is_plus_infinity: \is_plus_infinity(x); + ensures result_plus_infinity: \is_plus_infinity(\result); + assigns \result; + assigns \result \from x; + + behavior domain_error: + assumes + out_of_domain: \is_minus_infinity(x) ∨ (\is_finite(x) ∧ x < 1); + ensures errno_set: __fc_errno ≡ 1; + assigns __fc_errno, \result; + assigns __fc_errno \from x; + assigns \result \from x; + + disjoint behaviors domain_error, infinite, normal; */ -extern int inet_pton(int af, char const *src, void *dst); +extern float acoshf(float x); -int h_errno; -/*@ requires addrinfo_valid: \valid(addrinfo); - ensures allocation: \allocable(\old(addrinfo)); - assigns \nothing; - frees addrinfo; +/*@ assigns __fc_errno, \result; + assigns __fc_errno \from x; + assigns \result \from x; + + behavior normal: + assumes in_domain: \is_finite(x) ∧ x ≥ 1; + ensures positive_result: \is_finite(\result) ∧ \result ≥ 0; + assigns \result; + assigns \result \from x; + + behavior infinite: + assumes is_plus_infinity: \is_plus_infinity(x); + ensures result_plus_infinity: \is_plus_infinity(\result); + assigns \result; + assigns \result \from x; + + behavior domain_error: + assumes + out_of_domain: \is_minus_infinity(x) ∨ (\is_finite(x) ∧ x < 1); + ensures errno_set: __fc_errno ≡ 1; + assigns __fc_errno, \result; + assigns __fc_errno \from x; + assigns \result \from x; + + disjoint behaviors domain_error, infinite, normal; */ -extern void freeaddrinfo(struct addrinfo *addrinfo); +extern long double acoshl(long double x); -char *__fc_gai_strerror = (char *)"<error message reported by gai_strerror>"; -/*@ ensures result_string: \result ≡ __fc_gai_strerror; - ensures result_valid_string: valid_read_string(\result); +/*@ requires finite_arg: \is_finite(x); + requires finite_domain: x ≤ 0x1.62e42fefa39efp+9; + ensures res_finite: \is_finite(\result); + ensures positive_result: \result > 0.; assigns \result; - assigns \result \from (indirect: errcode), __fc_gai_strerror; + assigns \result \from x; */ -extern char const *gai_strerror(int errcode); +extern double exp(double x); -int getaddrinfo(char const * __restrict nodename, - char const * __restrict servname, - struct addrinfo const * __restrict hints, - struct addrinfo ** __restrict res); +/*@ requires finite_arg: \is_finite(x); + requires res_finite: x ≤ 0x1.62e42ep+6; + ensures res_finite: \is_finite(\result); + ensures positive_result: \result > 0.; + assigns \result; + assigns \result \from x; + */ +extern float expf(float x); -struct hostent *gethostbyname(char const *name); +/*@ requires finite_arg: \is_finite(x); + requires arg_positive: x > 0; + ensures finite_result: \is_finite(\result); + assigns \result; + assigns \result \from x; + */ +extern double log(double x); -/*@ -predicate non_escaping{L}(void *s, size_t n) = - ∀ unsigned int i; 0 ≤ i < n ⇒ ¬\dangling((char *)s + i); +/*@ requires finite_arg: \is_finite(x); + requires arg_positive: x > 0; + ensures finite_result: \is_finite(\result); + assigns \result; + assigns \result \from x; */ -/*@ -predicate empty_block{L}(void *s) = - \block_length((char *)s) ≡ 0 ∧ \offset((char *)s) ≡ 0; +extern float logf(float x); + +/*@ requires finite_arg: \is_finite(x); + requires arg_pos: x > 0; + ensures finite_result: \is_finite(\result); + assigns \result; + assigns \result \from x; */ -/*@ -predicate valid_or_empty{L}(void *s, size_t n) = - (empty_block(s) ∨ \valid_read((char *)s)) ∧ - \valid((char *)s + (0 .. n - 1)); +extern long double logl(long double x); + +/*@ requires finite_arg: \is_finite(x); + requires arg_positive: x > 0; + ensures finite_result: \is_finite(\result); + assigns \result; + assigns \result \from x; */ -/*@ -predicate valid_read_or_empty{L}(void *s, size_t n) = - (empty_block(s) ∨ \valid_read((char *)s)) ∧ - \valid_read((char *)s + (1 .. n - 1)); +extern double log10(double x); -*/ -int memcmp(void const *s1, void const *s2, size_t n); +/*@ requires finite_arg: \is_finite(x); + requires arg_positive: x > 0; + ensures finite_result: \is_finite(\result); + assigns \result; + assigns \result \from x; + */ +extern float log10f(float x); -void *memchr(void const *s, int c, size_t n); +/*@ requires finite_arg: \is_finite(x); + requires arg_postive: x > 0; + ensures finite_result: \is_finite(\result); + assigns \result; + assigns \result \from x; + */ +extern long double log10l(long double x); -void *memcpy(void * __restrict dest, void const * __restrict src, size_t n); +/*@ requires finite_arg: \is_finite(x); + requires arg_positive: x > 0; + ensures finite_result: \is_finite(\result); + assigns \result; + assigns \result \from x; + */ +extern double log2(double x); -void *memmove(void *dest, void const *src, size_t n); +/*@ requires finite_arg: \is_finite(x); + requires arg_positive: x > 0; + ensures finite_result: \is_finite(\result); + assigns \result; + assigns \result \from x; + */ +extern float log2f(float x); -void *memset(void *s, int c, size_t n); +/*@ requires finite_arg: \is_finite(x); + requires arg_positive: x > 0; + ensures finite_result: \is_finite(\result); + assigns \result; + assigns \result \from x; + */ +extern long double log2l(long double x); -size_t strlen(char const *s); +double fabs(double x); -size_t strnlen(char const *s, size_t maxlen); +float fabsf(float x); -int strcmp(char const *s1, char const *s2); +/*@ requires finite_arg: \is_finite(x); + ensures res_finite: \is_finite(\result); + ensures positive_result: \result ≥ 0.; + ensures + equal_magnitude_result: \result ≡ \old(x) ∨ \result ≡ -\old(x); + assigns \result; + assigns \result \from x; + */ +extern long double fabsl(long double x); -int strncmp(char const *s1, char const *s2, size_t n); +/*@ requires finite_args: \is_finite(x) ∧ \is_finite(y); + requires finite_logic_res: \is_finite(pow(x, y)); + ensures finite_result: \is_finite(\result); + assigns \result; + assigns \result \from x, y; + */ +extern double pow(double x, double y); -/*@ requires valid_string_s1: valid_read_string(s1); - requires valid_string_s2: valid_read_string(s2); +/*@ requires finite_args: \is_finite(x) ∧ \is_finite(y); + requires finite_logic_res: \is_finite(powf(x, y)); + ensures finite_result: \is_finite(\result); assigns \result; - assigns \result - \from (indirect: *(s1 + (0 ..))), (indirect: *(s2 + (0 ..))); + assigns \result \from x, y; */ -extern int strcoll(char const *s1, char const *s2); +extern float powf(float x, float y); -char *strchr(char const *s, int c); +/*@ requires finite_arg: \is_finite(x); + requires arg_positive: x ≥ -0.; + ensures finite_result: \is_finite(\result); + ensures positive_result: \result ≥ -0.; + assigns \result; + assigns \result \from x; + */ +extern double sqrt(double x); -char *strrchr(char const *s, int c); +/*@ requires finite_arg: \is_finite(x); + requires arg_positive: x ≥ -0.; + ensures finite_result: \is_finite(\result); + ensures positive_result: \result ≥ -0.; + assigns \result; + assigns \result \from x; + */ +extern float sqrtf(float x); -/*@ requires valid_string_s: valid_read_string(s); - requires valid_string_reject: valid_read_string(reject); - ensures result_bounded: 0 ≤ \result ≤ strlen(\old(s)); +/*@ requires finite_arg: \is_finite(x); + requires arg_positive: x ≥ -0.; + ensures finite_result: \is_finite(\result); + ensures positive_result: \result ≥ -0.; assigns \result; - assigns \result - \from (indirect: *(s + (0 ..))), (indirect: *(reject + (0 ..))); + assigns \result \from x; */ -extern size_t strcspn(char const *s, char const *reject); +extern long double sqrtl(long double x); -/*@ requires valid_string_s: valid_read_string(s); - requires valid_string_accept: valid_read_string(accept); - ensures result_bounded: 0 ≤ \result ≤ strlen(\old(s)); - assigns \result, \result; - assigns \result \from *(s + (0 ..)), *(accept + (0 ..)); - assigns \result - \from (indirect: *(s + (0 ..))), (indirect: *(accept + (0 ..))); +/*@ requires finite_arg: \is_finite(x); + ensures finite_result: \is_finite(\result); + assigns \result; + assigns \result \from x; */ -extern size_t strspn(char const *s, char const *accept); +extern double ceil(double x); -/*@ requires valid_string_s: valid_read_string(s); - requires valid_string_accept: valid_read_string(accept); - ensures - result_null_or_same_base: - \result ≡ \null ∨ \base_addr(\result) ≡ \base_addr(\old(s)); +/*@ requires finite_arg: \is_finite(x); + ensures finite_result: \is_finite(\result); assigns \result; - assigns \result \from s, *(s + (0 ..)), *(accept + (0 ..)); + assigns \result \from x; */ -extern char *strpbrk(char const *s, char const *accept); +extern float ceilf(float x); -char *strstr(char const *haystack, char const *needle); +/*@ requires finite_arg: \is_finite(x); + ensures finite_result: \is_finite(\result); + assigns \result; + assigns \result \from x; + */ +extern long double ceill(long double x); -/*@ requires valid_string_haystack: valid_read_string(haystack); - requires valid_string_needle: valid_read_string(needle); - ensures - result_null_or_in_haystack: - \result ≡ \null ∨ - (\subset(\result, \old(haystack) + (0 ..)) ∧ \valid_read(\result)); +/*@ requires finite_arg: \is_finite(x); + ensures finite_result: \is_finite(\result); assigns \result; - assigns \result - \from haystack, (indirect: *(haystack + (0 ..))), - (indirect: *(needle + (0 ..))); + assigns \result \from x; */ -extern char *strcasestr(char const *haystack, char const *needle); +extern double floor(double x); -char *__fc_strtok_ptr; -/*@ requires valid_string_delim: valid_read_string(delim); - assigns *(s + (0 ..)), *(__fc_strtok_ptr + (0 ..)), \result, - __fc_strtok_ptr; - assigns *(s + (0 ..)) - \from *(s + (0 ..)), (indirect: s), (indirect: __fc_strtok_ptr), - (indirect: *(delim + (0 ..))); - assigns *(__fc_strtok_ptr + (0 ..)) - \from *(__fc_strtok_ptr + (0 ..)), (indirect: s), - (indirect: __fc_strtok_ptr), (indirect: *(delim + (0 ..))); - assigns \result - \from s, __fc_strtok_ptr, (indirect: *(s + (0 ..))), - (indirect: *(__fc_strtok_ptr + (0 ..))), - (indirect: *(delim + (0 ..))); - assigns __fc_strtok_ptr - \from \old(__fc_strtok_ptr), s, - (indirect: *(__fc_strtok_ptr + (0 ..))), - (indirect: *(delim + (0 ..))); - - behavior new_str: - assumes s_not_null: s ≢ \null; - requires - valid_string_s_or_delim_not_found: - valid_string(s) ∨ - (valid_read_string(s) ∧ - (∀ int i; - 0 ≤ i < strlen(delim) ⇒ - ¬(strchr(s, *(delim + i)) ≡ \true))); - ensures - result_subset: - \result ≡ \null ∨ \subset(\result, \old(s) + (0 ..)); - ensures ptr_subset: \subset(__fc_strtok_ptr, \old(s) + (0 ..)); - assigns __fc_strtok_ptr, *(s + (0 ..)), \result; - assigns __fc_strtok_ptr - \from s, (indirect: *(s + (0 ..))), (indirect: *(delim + (0 ..))); - assigns *(s + (0 ..)) - \from *(s + (0 ..)), (indirect: s), (indirect: *(delim + (0 ..))); - assigns \result - \from s, (indirect: *(s + (0 ..))), (indirect: *(delim + (0 ..))); - - behavior resume_str: - assumes s_null: s ≡ \null; - requires not_first_call: __fc_strtok_ptr ≢ \null; - ensures - result_subset: - \result ≡ \null ∨ - \subset(\result, \old(__fc_strtok_ptr) + (0 ..)); - ensures - ptr_subset: \subset(__fc_strtok_ptr, \old(__fc_strtok_ptr) + (0 ..)); - assigns *(__fc_strtok_ptr + (0 ..)), __fc_strtok_ptr, \result; - assigns *(__fc_strtok_ptr + (0 ..)) - \from *(__fc_strtok_ptr + (0 ..)), (indirect: __fc_strtok_ptr), - (indirect: *(delim + (0 ..))); - assigns __fc_strtok_ptr - \from \old(__fc_strtok_ptr), (indirect: *(__fc_strtok_ptr + (0 ..))), - (indirect: *(delim + (0 ..))); - assigns \result - \from __fc_strtok_ptr, (indirect: *(__fc_strtok_ptr + (0 ..))), - (indirect: *(delim + (0 ..))); - - complete behaviors resume_str, new_str; - disjoint behaviors resume_str, new_str; +/*@ requires finite_arg: \is_finite(x); + ensures finite_result: \is_finite(\result); + assigns \result; + assigns \result \from x; */ -extern char *strtok(char * __restrict s, char const * __restrict delim); +extern float floorf(float x); -/*@ requires valid_string_delim: valid_read_string(delim); - requires valid_saveptr: \valid(saveptr); - assigns *(s + (0 ..)), *(*saveptr + (0 ..)), \result, *saveptr; - assigns *(s + (0 ..)) - \from *(s + (0 ..)), (indirect: s), (indirect: *saveptr), - (indirect: *(delim + (0 ..))); - assigns *(*saveptr + (0 ..)) - \from *(*saveptr + (0 ..)), (indirect: s), (indirect: *saveptr), - (indirect: *(delim + (0 ..))); - assigns \result - \from s, *saveptr, (indirect: *(s + (0 ..))), - (indirect: *(*saveptr + (0 ..))), (indirect: *(delim + (0 ..))); - assigns *saveptr - \from \old(*saveptr), s, (indirect: *(*saveptr + (0 ..))), - (indirect: *(delim + (0 ..))); - - behavior new_str: - assumes s_not_null: s ≢ \null; - requires - valid_string_s_or_delim_not_found: - valid_string(s) ∨ - (valid_read_string(s) ∧ - (∀ int i; - 0 ≤ i < strlen(delim) ⇒ - ¬(strchr(s, *(delim + i)) ≡ \true))); - ensures - result_subset: - \result ≡ \null ∨ \subset(\result, \old(s) + (0 ..)); - ensures initialization: \initialized(\old(saveptr)); - ensures saveptr_subset: \subset(*\old(saveptr), \old(s) + (0 ..)); - assigns *saveptr, *(s + (0 ..)), \result; - assigns *saveptr - \from s, (indirect: *(s + (0 ..))), (indirect: *(delim + (0 ..))); - assigns *(s + (0 ..)) - \from *(s + (0 ..)), (indirect: s), (indirect: *(delim + (0 ..))); - assigns \result - \from s, (indirect: *(s + (0 ..))), (indirect: *(delim + (0 ..))); - - behavior resume_str: - assumes s_null: s ≡ \null; - requires not_first_call: *saveptr ≢ \null; - requires initialization: saveptr: \initialized(saveptr); - ensures - result_subset: - \result ≡ \null ∨ \subset(\result, \old(*saveptr) + (0 ..)); - ensures - saveptr_subset: \subset(*\old(saveptr), \old(*saveptr) + (0 ..)); - assigns *(*saveptr + (0 ..)), *saveptr, \result; - assigns *(*saveptr + (0 ..)) - \from *(*saveptr + (0 ..)), (indirect: *saveptr), - (indirect: *(delim + (0 ..))); - assigns *saveptr - \from \old(*saveptr), (indirect: *(*saveptr + (0 ..))), - (indirect: *(delim + (0 ..))); - assigns \result - \from *saveptr, (indirect: *(*saveptr + (0 ..))), - (indirect: *(delim + (0 ..))); - - complete behaviors resume_str, new_str; - disjoint behaviors resume_str, new_str; +/*@ requires finite_arg: \is_finite(x); + ensures finite_result: \is_finite(\result); + assigns \result; + assigns \result \from x; */ -extern char *strtok_r(char * __restrict s, char const * __restrict delim, - char ** __restrict saveptr); +extern long double floorl(long double x); -/*@ requires - valid_string_stringp: \valid(stringp) ∧ valid_string(*stringp); - requires valid_string_delim: valid_read_string(delim); - assigns *stringp, \result; - assigns *stringp \from *(delim + (..)), *(*(stringp + (..))); - assigns \result \from *(delim + (..)), *(*(stringp + (..))); +/*@ requires finite_arg: \is_finite(x); + ensures finite_result: \is_finite(\result); + assigns \result; + assigns \result \from x; */ -extern char *strsep(char **stringp, char const *delim); +extern double round(double x); -char __fc_strerror[64]; -char * const __fc_p_strerror = __fc_strerror; -char *strerror(int errnum); +/*@ requires finite_arg: \is_finite(x); + ensures finite_result: \is_finite(\result); + assigns \result; + assigns \result \from x; + */ +extern float roundf(float x); -char *strcpy(char *dest, char const *src); +/*@ requires finite_arg: \is_finite(x); + ensures finite_result: \is_finite(\result); + assigns \result; + assigns \result \from x; + */ +extern long double roundl(long double x); -char *strncpy(char *dest, char const *src, size_t n); +/*@ requires finite_arg: \is_finite(x); + ensures finite_result: \is_finite(\result); + assigns \result; + assigns \result \from x; + */ +extern double trunc(double x); -/*@ requires valid_string_src: valid_read_string(src); - requires room_nstring: \valid(dest + (0 .. n - 1)); - requires - separation: - \separated( - dest + (0 .. n - 1), src + (0 .. \max(n - 1, strlen(src))) - ); - ensures - initialization: - \initialized(\old(dest) + (0 .. \min(strlen(\old(src)), \old(n) - 1))); - ensures bounded_result: \result ≡ strlen(\old(src)); - assigns *(dest + (0 .. n - 1)), \result; - assigns *(dest + (0 .. n - 1)) \from *(src + (0 .. n - 1)); - assigns \result - \from (indirect: src), (indirect: *(src + (0 .. n - 1))), (indirect: n); +/*@ requires finite_arg: \is_finite(x); + ensures finite_result: \is_finite(\result); + assigns \result; + assigns \result \from x; */ -size_t strlcpy(char * __restrict dest, char const * __restrict src, size_t n); +extern float truncf(float x); -/*@ requires valid_string_src: valid_read_string(src); - requires room_string: \valid(dest + (0 .. strlen(src))); - requires - separation: - \separated(dest + (0 .. strlen(src)), src + (0 .. strlen(src))); - ensures equal_contents: strcmp(\old(dest), \old(src)) ≡ 0; - ensures points_to_end: \result ≡ \old(dest) + strlen(\old(dest)); - assigns *(dest + (0 .. strlen{Old}(src))), \result; - assigns *(dest + (0 .. strlen{Old}(src))) - \from *(src + (0 .. strlen{Old}(src))); - assigns \result \from dest; +/*@ requires finite_arg: \is_finite(x); + ensures finite_result: \is_finite(\result); + assigns \result; + assigns \result \from x; */ -extern char *stpcpy(char * __restrict dest, char const * __restrict src); +extern long double truncl(long double x); -char *strcat(char *dest, char const *src); +/*@ requires finite_args: \is_finite(x) ∧ \is_finite(y); + requires finite_logic_result: \is_finite(fmod(x, y)); + ensures finite_result: \is_finite(\result); + assigns \result; + assigns \result \from x, y; + */ +extern double fmod(double x, double y); -char *strncat(char *dest, char const *src, size_t n); +/*@ requires finite_args: \is_finite(x) ∧ \is_finite(y); + requires finite_logic_result: \is_finite(fmodf(x, y)); + ensures finite_result: \is_finite(\result); + assigns \result; + assigns \result \from x, y; + */ +extern float fmodf(float x, float y); -/*@ requires valid_string_src: valid_read_string(src); - requires valid_string_dest: valid_string(dest); - requires room_nstring: \valid(dest + (0 .. n - 1)); - ensures - bounded_result: \result ≡ strlen(\old(dest)) + strlen(\old(src)); - assigns *(dest + (strlen{Old}(dest) .. n)), \result; - assigns *(dest + (strlen{Old}(dest) .. n)) - \from (indirect: n), *(src + (0 .. strlen{Old}(src))); - assigns \result - \from (indirect: src), (indirect: *(src + (0 .. n - 1))), (indirect: n); +/*@ requires tagp_valid_string: valid_read_string(tagp); + ensures result_is_nan: \is_NaN(\result); + assigns \result; + assigns \result \from (indirect: *(tagp + (0 ..))); */ -extern size_t strlcat(char * __restrict dest, char const * __restrict src, - size_t n); +extern double nan(char const *tagp); -/*@ requires valid_dest: \valid(dest + (0 .. n - 1)); - requires valid_string_src: valid_read_string(src); - assigns *(dest + (0 .. n - 1)), \result; - assigns *(dest + (0 .. n - 1)) - \from (indirect: *(src + (0 ..))), (indirect: n); - assigns \result \from dest; +/*@ requires tagp_valid_string: valid_read_string(tagp); + ensures result_is_nan: \is_NaN(\result); + assigns \result; + assigns \result \from (indirect: *(tagp + (0 ..))); */ -extern size_t strxfrm(char * __restrict dest, char const * __restrict src, - size_t n); +extern float nanf(char const *tagp); -char *strdup(char const *s); +/*@ requires tagp_valid_string: valid_read_string(tagp); + ensures result_is_nan: \is_NaN(\result); + assigns \result; + assigns \result \from (indirect: *(tagp + (0 ..))); + */ +extern long double nanl(char const *tagp); -char *strndup(char const *s, size_t n); +int __finitef(float f); -char __fc_strsignal[64]; -char * const __fc_p_strsignal = __fc_strsignal; -char *strsignal(int signum); +int __finite(double d); -/*@ requires valid_memory_area: \valid((char *)s + (0 .. n - 1)); - ensures - s_initialized: initialization: - \initialized((char *)\old(s) + (0 .. \old(n) - 1)); +/*@ requires finite_arg: \is_finite(x); + ensures res_finite: \is_finite(\result); + ensures positive_result: \result ≥ 0.; ensures - zero_initialized: \subset(*((char *)\old(s) + (0 .. \old(n) - 1)), {0}); - assigns *((char *)s + (0 .. n - 1)); - assigns *((char *)s + (0 .. n - 1)) \from \nothing; - */ -extern void bzero(void *s, size_t n); - -int strcasecmp(char const *s1, char const *s2); - -/*@ requires valid_string_s1: valid_read_nstring(s1, n); - requires valid_string_s2: valid_read_nstring(s2, n); + equal_magnitude_result: \result ≡ \old(x) ∨ \result ≡ -\old(x); assigns \result; - assigns \result - \from (indirect: n), (indirect: *(s1 + (0 .. n - 1))), - (indirect: *(s2 + (0 .. n - 1))); - */ -extern int strncasecmp(char const *s1, char const *s2, size_t n); - -static unsigned int volatile getaddrinfo_net_state; -/*@ requires - nodename_string: nodename ≡ \null ∨ valid_read_string(nodename); - requires - servname_string: servname ≡ \null ∨ valid_read_string(servname); - requires hints_option: hints ≡ \null ∨ \valid_read(hints); - requires valid_res: \valid(res); - assigns *res, \result, __fc_errno; - assigns *res - \from (indirect: nodename), (indirect: servname), (indirect: hints); - assigns \result - \from (indirect: nodename), (indirect: servname), (indirect: hints); - assigns __fc_errno - \from (indirect: nodename), (indirect: servname), (indirect: hints); - allocates *\old(res); - - behavior empty_request: - assumes empty: nodename ≡ \null ∧ servname ≡ \null; - ensures no_name: \result ≡ -2; - assigns \result; - assigns \result \from (indirect: nodename), (indirect: servname); - - behavior normal_request: - assumes has_name: nodename ≢ \null ∨ servname ≢ \null; - ensures - initialization: allocation: success_or_error: - (\result ≡ 0 ∧ - \fresh{Old, Here}(*\old(res),sizeof(*\old(res))) ∧ - \initialized(*\old(res))) ∨ - \result ≡ -3 ∨ \result ≡ -1 ∨ \result ≡ -4 ∨ - \result ≡ -6 ∨ \result ≡ -10 ∨ \result ≡ -8 ∨ - \result ≡ -7 ∨ \result ≡ -11; - - complete behaviors normal_request, empty_request; - disjoint behaviors normal_request, empty_request; + assigns \result \from x; */ -int getaddrinfo(char const * __restrict nodename, - char const * __restrict servname, - struct addrinfo const * __restrict hints, - struct addrinfo ** __restrict res) +double fabs(double x) { - int __retres; - if (nodename == (char const *)0) - if (servname == (char const *)0) { - __retres = -2; - goto return_label; - } - switch (getaddrinfo_net_state) { - case (unsigned int)0: __retres = -1; - goto return_label; - case (unsigned int)1: __retres = -3; - goto return_label; - case (unsigned int)2: __retres = -4; - goto return_label; - case (unsigned int)3: __retres = -6; + double __retres; + if (x == 0.0) { + __retres = 0.0; goto return_label; - case (unsigned int)5: __retres = -8; + } + if (x > 0.0) { + __retres = x; goto return_label; - case (unsigned int)6: __retres = -7; + } + __retres = - x; + return_label: return __retres; +} + +/*@ requires finite_arg: \is_finite(x); + ensures res_finite: \is_finite(\result); + ensures positive_result: \result ≥ 0.; + ensures + equal_magnitude_result: \result ≡ \old(x) ∨ \result ≡ -\old(x); + assigns \result; + assigns \result \from x; + */ +float fabsf(float x) +{ + float __retres; + if (x == 0.0f) { + __retres = 0.0f; goto return_label; - case (unsigned int)7: - { - __fc_errno = 5; - __retres = -11; + } + else + if (x > 0.0f) { + __retres = x; goto return_label; } - default: - { - struct addrinfo *tmp_0; - struct sockaddr *tmp_2; - int tmp_3; - struct addrinfo *ai = malloc(sizeof(*tmp_0)); - if (! ai) { - __retres = -10; - goto return_label; - } - struct sockaddr *sa = malloc(sizeof(*tmp_2)); - if (! sa) { - __retres = -10; - goto return_label; - } - tmp_3 = Frama_C_interval(0,43); - sa->sa_family = (unsigned short)tmp_3; - /*@ slevel 15; */ - { - int i = 0; - while (i < 14) { - { - int tmp_4; - tmp_4 = Frama_C_interval(-128,127); - sa->sa_data[i] = (char)tmp_4; - } - i ++; - } - } - /*@ slevel default; */ - ai->ai_flags = 0; - ai->ai_family = (int)sa->sa_family; - ai->ai_socktype = Frama_C_interval(0,5); - ai->ai_protocol = Frama_C_interval(0,IPPROTO_MAX); - ai->ai_addrlen = sizeof(*sa); - ai->ai_addr = sa; - ai->ai_canonname = (char *)"dummy"; - ai->ai_next = (struct addrinfo *)0; - *res = ai; - __retres = 0; + else { + __retres = - x; goto return_label; } - } return_label: return __retres; } -struct __fc_gethostbyname __fc_ghbn; -int res_search(char const *dname, int class, int type, char *answer, - int anslen) +int __finitef(float f) { - int tmp; - { - int i = 0; - while (i < anslen - 1) { - *(answer + i) = Frama_C_char_interval((char)(-128),(char)127); - i ++; - } - } - *(answer + (anslen - 1)) = (char)0; - tmp = Frama_C_interval(-1,anslen); - return tmp; + int __retres; + union __fc_u_finitef u; + unsigned short usExp; + u.f = f; + usExp = (unsigned short)((int)u.w[1] & 0x7F80); + usExp = (unsigned short)((int)usExp >> 7); + __retres = ! ((int)usExp == 0xff); + return __retres; } -struct hostent *gethostbyname(char const *name) +int __finite(double d) { - struct hostent *__retres; - char buf[128]; - char const *cp; - int n; - int tmp; - __fc_ghbn.host.h_addrtype = 2; - __fc_ghbn.host.h_length = (int)sizeof(struct in_addr); - if ((int)*name >= '0') - if ((int)*name <= '9') { - cp = name; - while (1) { - if (! *cp) { - struct in_addr addr; - cp --; - ; - if ((int)*cp == '.') break; - addr.s_addr = inet_addr(name); - if (addr.s_addr == 0xffffffff) { - __retres = (struct hostent *)0; - goto return_label; - } - memcpy((void *)(__fc_ghbn.host_addr),(void const *)(& addr), - (unsigned int)__fc_ghbn.host.h_length); - strncpy(__fc_ghbn.hostbuf,name,(unsigned int)(128 - 1)); - __fc_ghbn.hostbuf[128 - 1] = (char)'\000'; - __fc_ghbn.host.h_name = __fc_ghbn.hostbuf; - __fc_ghbn.host.h_aliases = __fc_ghbn.host_aliases; - __fc_ghbn.host_aliases[0] = (char *)0; - __fc_ghbn.h_addr_ptrs[0] = (char *)(__fc_ghbn.host_addr); - __fc_ghbn.h_addr_ptrs[1] = (char *)0; - __fc_ghbn.host.h_addr_list = __fc_ghbn.h_addr_ptrs; - __retres = & __fc_ghbn.host; - goto return_label; - } - if ((int)*cp < '0') - if ((int)*cp > '9') - if ((int)*cp != '.') break; - cp ++; - } - } - n = res_search(name,1,1,buf,(int)sizeof(buf)); - if (n < 0) { - __retres = (struct hostent *)0; - goto return_label; - } - tmp = Frama_C_nondet(0,1); - if (tmp) { - __retres = (struct hostent *)0; - goto return_label; - } - else { - struct in_addr addr_0; - addr_0.s_addr = inet_addr(name); - memcpy((void *)(__fc_ghbn.host_addr),(void const *)(& addr_0), - (unsigned int)__fc_ghbn.host.h_length); - strncpy(__fc_ghbn.hostbuf,name,(unsigned int)(128 - 1)); - __fc_ghbn.hostbuf[128 - 1] = (char)'\000'; - __fc_ghbn.host.h_name = __fc_ghbn.hostbuf; - __fc_ghbn.host.h_aliases = __fc_ghbn.host_aliases; - __fc_ghbn.host_aliases[0] = (char *)0; - __fc_ghbn.h_addr_ptrs[0] = (char *)(__fc_ghbn.host_addr); - __fc_ghbn.h_addr_ptrs[1] = (char *)0; - __fc_ghbn.host.h_addr_list = __fc_ghbn.h_addr_ptrs; - __retres = & __fc_ghbn.host; - goto return_label; - } - return_label: return __retres; + int __retres; + union __fc_u_finite u; + unsigned short usExp; + u.d = d; + usExp = (unsigned short)((int)u.w[3] & 0x7F80); + usExp = (unsigned short)((int)usExp >> 7); + __retres = ! ((int)usExp == 0xff); + return __retres; } -FILE *__fc_stderr; - -FILE *__fc_stdin; - -FILE *__fc_stdout; - /*@ assigns \nothing; */ -extern int remove(char const *filename); +extern void (*signal(int sig, void (*func)(int )))(int ); -/*@ assigns \nothing; */ -extern int rename(char const *old_name, char const *new_name); +/*@ ensures never_terminates: \false; + assigns \nothing; */ +extern int raise(int sig); -FILE __fc_fopen[16]; -FILE * const __fc_p_fopen = __fc_fopen; -/*@ ensures - result_null_or_valid_fd: - \result ≡ \null ∨ \subset(\result, &__fc_fopen[0 .. 16 - 1]); - assigns \result; - assigns \result \from __fc_p_fopen; +/*@ requires valid_set: \valid(set); + ensures initialization: set: \initialized(\old(set)); + ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; + assigns *set, \result; + assigns *set \from \nothing; + assigns \result \from \nothing; */ -extern FILE *tmpfile(void); +extern int sigemptyset(sigset_t *set); -/*@ assigns \result, *(s + (..)); - assigns \result \from *(s + (..)); - assigns *(s + (..)) \from \nothing; +/*@ requires valid_set: \valid(set); + ensures initialization: set: \initialized(\old(set)); + ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; + assigns *set, \result; + assigns *set \from \nothing; + assigns \result \from \nothing; */ -extern char *tmpnam(char *s); +extern int sigfillset(sigset_t *set); -/*@ requires valid_stream: \valid(stream); - ensures result_zero_or_EOF: \result ≡ 0 ∨ \result ≡ -1; - assigns \result; - assigns \result \from stream, stream->__fc_FILE_id; +/*@ requires valid_set: \valid(set); + requires initialization: set: \initialized(set); + ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; + assigns *set, \result; + assigns *set \from (indirect: signum); + assigns \result \from signum; */ -extern int fclose(FILE *stream); +extern int sigaddset(sigset_t *set, int signum); -/*@ requires null_or_valid_stream: stream ≡ \null ∨ \valid_read(stream); - ensures result_zero_or_EOF: \result ≡ 0 ∨ \result ≡ -1; - assigns \result; - assigns \result \from stream, stream->__fc_FILE_id; +/*@ requires valid_set: \valid(set); + requires initialization: set: \initialized(set); + ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; + assigns *set, \result; + assigns *set \from (indirect: signum); + assigns \result \from signum; */ -extern int fflush(FILE *stream); +extern int sigdelset(sigset_t *set, int signum); -/*@ requires valid_filename: valid_read_string(filename); - requires valid_mode: valid_read_string(mode); +/*@ requires valid_read_set: \valid_read(set); + requires initialization: set: \initialized(set); ensures - result_null_or_valid_fd: - \result ≡ \null ∨ \subset(\result, &__fc_fopen[0 .. 16 - 1]); + result_found_not_found_or_error: + \result ≡ 0 ∨ \result ≡ 1 ∨ \result ≡ -1; assigns \result; - assigns \result - \from (indirect: *(filename + (..))), (indirect: *(mode + (..))), - __fc_p_fopen; + assigns \result \from *set, signum; */ -extern FILE *fopen(char const * __restrict filename, - char const * __restrict mode); +extern int sigismember(sigset_t const *set, int signum); -/*@ requires valid_mode: valid_read_string(mode); +struct sigaction __fc_sigaction[64 + 1]; +struct sigaction *__fc_p_sigaction = __fc_sigaction; +/*@ requires valid_signal: 0 ≤ signum ≤ 64; + requires valid_oldact_or_null: oldact ≡ \null ∨ \valid(oldact); + requires valid_read_act_or_null: act ≡ \null ∨ \valid_read(act); + requires separation: separated_acts: \separated(act, oldact); ensures - result_null_or_valid_fd: - \result ≡ \null ∨ \subset(\result, &__fc_fopen[0 .. 16 - 1]); - assigns \result, __fc_fopen[fd]; + act_changed: + \old(act) ≡ \null ∨ + \subset(*(__fc_p_sigaction + \old(signum)), *\old(act)); + ensures + oldact_assigned: + \old(oldact) ≡ \null ∨ + *\old(oldact) ∈ *(__fc_p_sigaction + \old(signum)); + ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; + assigns *oldact, *(__fc_p_sigaction + signum), \result; + assigns *oldact \from __fc_p_sigaction; + assigns *(__fc_p_sigaction + signum) \from *act; assigns \result - \from (indirect: fd), (indirect: *(mode + (0 ..))), - (indirect: __fc_fopen[fd]), __fc_p_fopen; - assigns __fc_fopen[fd] - \from (indirect: fd), (indirect: *(mode + (0 ..))), - (indirect: __fc_fopen[fd]), __fc_p_fopen; + \from (indirect: signum), (indirect: act), (indirect: *act), + (indirect: oldact), (indirect: *oldact); */ -extern FILE *fdopen(int fd, char const *mode); +extern int sigaction(int signum, struct sigaction const * __restrict act, + struct sigaction * __restrict oldact); -/*@ requires valid_filename: valid_read_string(filename); - requires valid_mode: valid_read_string(mode); - requires valid_stream: \valid(stream); +/*@ requires valid_set_or_null: set ≡ \null ∨ \valid_read(set); + requires valid_how: set ≢ \null ⇒ how ∈ {0, 2, 1}; + requires valid_oldset_or_null: oldset ≡ \null ∨ \valid(oldset); + requires + separation: (set ≡ oldset ≡ \null) ∨ \separated(set, oldset); + ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; ensures - result_null_or_valid_fd: - \result ≡ \null ∨ \result ∈ &__fc_fopen[0 .. 16 - 1]; - ensures stream_opened: *\old(stream) ∈ __fc_fopen[0 .. 16 - 1]; - assigns \result, *stream; + initialization: oldset_initialized: + \old(oldset) ≢ \null ∧ \result ≡ 0 ⇒ + \initialized(\old(oldset)); + assigns \result, *oldset; assigns \result - \from (indirect: *(filename + (..))), (indirect: *(mode + (..))), - __fc_p_fopen, (indirect: stream); - assigns *stream - \from (indirect: *(filename + (..))), (indirect: *(mode + (..))), - __fc_p_fopen, (indirect: stream); + \from (indirect: how), (indirect: set), (indirect: oldset); + assigns *oldset \from (indirect: how), (indirect: oldset); */ -extern FILE *freopen(char const * __restrict filename, - char const * __restrict mode, FILE * __restrict stream); - -/*@ assigns *stream; - assigns *stream \from buf; */ -extern void setbuf(FILE * __restrict stream, char * __restrict buf); - -/*@ assigns *stream; - assigns *stream \from buf, mode, size; */ -extern int setvbuf(FILE * __restrict stream, char * __restrict buf, int mode, - size_t size); - -/*@ axiomatic format_length { - logic ℤ format_length{L}(char *format) ; - - } - -*/ -/*@ assigns *stream; - assigns *stream \from *(format + (..)), arg; */ -extern int vfprintf(FILE * __restrict stream, char const * __restrict format, - va_list arg); - -/*@ assigns *stream; - assigns *stream \from *(format + (..)), *stream; */ -extern int vfscanf(FILE * __restrict stream, char const * __restrict format, - va_list arg); - -/*@ assigns *__fc_stdout; - assigns *__fc_stdout \from arg; */ -extern int vprintf(char const * __restrict format, va_list arg); - -/*@ assigns *__fc_stdin; - assigns *__fc_stdin \from *(format + (..)); */ -extern int vscanf(char const * __restrict format, va_list arg); +extern int sigprocmask(int how, sigset_t const * __restrict set, + sigset_t * __restrict oldset); -/*@ assigns *(s + (0 .. n - 1)); - assigns *(s + (0 .. n - 1)) \from *(format + (..)), arg; +/*@ ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; + assigns \result; + assigns \result \from (indirect: pid), (indirect: sig); */ -extern int vsnprintf(char * __restrict s, size_t n, - char const * __restrict format, va_list arg); +extern int kill(pid_t pid, int sig); -/*@ assigns *(s + (0 ..)); - assigns *(s + (0 ..)) \from *(format + (..)), arg; +/*@ ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; + assigns \result; + assigns \result \from (indirect: pgrp), (indirect: sig); */ -extern int vsprintf(char * __restrict s, char const * __restrict format, - va_list arg); +extern int killpg(pid_t pgrp, int sig); -/*@ requires valid_stream: \valid(stream); - ensures result_uchar_or_eof: (0 ≤ \result ≤ 255) ∨ \result ≡ -1; - assigns *stream, \result; - assigns *stream \from *stream; - assigns \result \from (indirect: *stream); +/*@ requires valid_read_iov: \valid_read(iov + (0 .. iovcnt - 1)); + assigns *((char *)(iov + (0 .. iovcnt - 1))->iov_base + (0 ..)); */ -extern int fgetc(FILE *stream); +extern ssize_t readv(int fd, struct iovec const *iov, int iovcnt); -/*@ requires valid_stream: \valid(stream); - ensures result_null_or_same: \result ≡ \null ∨ \result ≡ \old(s); +/*@ ghost struct __fc_sockfds_type __fc_sockfds[1024]; */ +/*@ ghost extern int __fc_socket_counter __attribute__((__FRAMA_C_MODEL__)); +*/ + +/*@ ghost int volatile __fc_open_sock_fds; */ +/*@ requires valid_sockfd: 0 ≤ sockfd < 1024; ensures - terminated_string_on_success: - \result ≢ \null ⇒ valid_string(\old(s)); - assigns *(s + (0 .. size)), \result; - assigns *(s + (0 .. size)) \from (indirect: size), (indirect: *stream); - assigns \result \from s, (indirect: size), (indirect: *stream); + result_error_or_valid_new_sockfd: + \result ≡ -1 ∨ (0 ≤ \result < 1024); + assigns \result, *((char *)addr + (0 .. *addrlen - 1)), + __fc_sockfds[sockfd]; + assigns \result \from *addr, *addrlen, __fc_sockfds[sockfd]; + assigns *((char *)addr + (0 .. *addrlen - 1)) + \from *addr, *addrlen, __fc_sockfds[sockfd]; + assigns __fc_sockfds[sockfd] \from *addr, *addrlen, __fc_sockfds[sockfd]; + + behavior addr_null: + assumes addr_is_null: addr ≡ \null; + requires addrlen_should_be_null: addrlen ≡ \null; + assigns \result, __fc_sockfds[sockfd]; + assigns \result \from __fc_sockfds[sockfd]; + assigns __fc_sockfds[sockfd] \from __fc_sockfds[sockfd]; + + behavior addr_not_null: + assumes addr_is_not_null: addr ≢ \null; + requires valid_addrlen: \valid(addrlen); + requires addr_has_room: \valid((char *)addr + (0 .. *addrlen - 1)); + ensures + initialization: addr: + \initialized((char *)\old(addr) + (0 .. *\old(addrlen) - 1)); + + disjoint behaviors addr_not_null, addr_null; */ -extern char *fgets(char * __restrict s, int size, FILE * __restrict stream); - -/*@ assigns *stream; */ -extern int fputc(int c, FILE *stream); - -/*@ assigns *stream; - assigns *stream \from *(s + (..)); */ -extern int fputs(char const * __restrict s, FILE * __restrict stream); +extern int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen); -/*@ assigns \result, *stream; - assigns \result \from *stream; - assigns *stream \from *stream; +/*@ requires valid_sockfd: sockfd: 0 ≤ sockfd < 1024; + requires valid_read_addr: \valid_read((char *)addr + (0 .. addrlen - 1)); + ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; + assigns __fc_sockfds[sockfd], \result; + assigns __fc_sockfds[sockfd] + \from sockfd, *addr, addrlen, __fc_sockfds[sockfd]; + assigns \result + \from (indirect: sockfd), (indirect: *addr), (indirect: addrlen), + (indirect: __fc_sockfds[sockfd]); */ -extern int getc(FILE *stream); +extern int bind(int sockfd, struct sockaddr const *addr, socklen_t addrlen); -/*@ assigns \result; - assigns \result \from *__fc_stdin; */ -extern int getchar(void); - -/*@ ensures result_null_or_same: \result ≡ \old(s) ∨ \result ≡ \null; - assigns *(s + (..)), \result; - assigns *(s + (..)) \from *__fc_stdin; - assigns \result \from s, __fc_stdin; +/*@ requires valid_sockfd: 0 ≤ sockfd < 1024; + requires valid_read_addr: \valid_read((char *)addr + (0 .. addrlen - 1)); + ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; + assigns __fc_sockfds[sockfd], \result; + assigns __fc_sockfds[sockfd] + \from __fc_sockfds[sockfd], (indirect: sockfd), (indirect: addr), + (indirect: *addr), (indirect: addrlen); + assigns \result + \from (indirect: __fc_sockfds[sockfd]), (indirect: sockfd), + (indirect: addr), (indirect: *addr), (indirect: addrlen); */ -extern char *gets(char *s); - -/*@ assigns *stream; - assigns *stream \from c; */ -extern int putc(int c, FILE *stream); - -/*@ assigns *__fc_stdout; - assigns *__fc_stdout \from c; */ -extern int putchar(int c); +extern int connect(int sockfd, struct sockaddr const *addr, socklen_t addrlen); -/*@ assigns *__fc_stdout; - assigns *__fc_stdout \from *(s + (..)); */ -extern int puts(char const *s); +/*@ requires valid_sockfd: 0 ≤ sockfd < 1024; + requires valid_optlen: \valid(optlen); + ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; + assigns *((char *)optval + (0 ..)), \result, *optlen; + assigns *((char *)optval + (0 ..)) + \from (indirect: sockfd), (indirect: level), (indirect: optname), + (indirect: *optlen), (indirect: optval), + (indirect: __fc_sockfds[sockfd]); + assigns \result + \from (indirect: sockfd), (indirect: level), (indirect: optname), + (indirect: *optlen), (indirect: optval), + (indirect: __fc_sockfds[sockfd]); + assigns *optlen + \from (indirect: sockfd), (indirect: level), (indirect: optname), + *optlen, (indirect: optval), (indirect: __fc_sockfds[sockfd]); + + behavior so_error: + assumes optname_is_error: level ≡ 1 ∧ optname ≡ 4; + requires valid_optlen: \valid(optlen); + requires optlen_value: *optlen ≡ sizeof(int); + requires valid_optval: \valid((int *)optval); + assigns *((int *)optval), \result; + assigns *((int *)optval) + \from (indirect: sockfd), (indirect: optlen), + (indirect: __fc_sockfds[sockfd]); + assigns \result + \from (indirect: sockfd), (indirect: optlen), + (indirect: __fc_sockfds[sockfd]); + + behavior other_options: + assumes optname_not_error: ¬(level ≡ 1 ∧ optname ≡ 4); + requires + optval_null_or_valid: + optval ≡ \null ∨ \valid((char *)optval + (0 ..)); + assigns *((char *)optval + (0 ..)), \result, *optlen; + assigns *((char *)optval + (0 ..)) + \from (indirect: sockfd), (indirect: level), (indirect: optname), + (indirect: *optlen), (indirect: optval), + (indirect: __fc_sockfds[sockfd]); + assigns \result + \from (indirect: sockfd), (indirect: level), (indirect: optname), + (indirect: *optlen), (indirect: optval), + (indirect: __fc_sockfds[sockfd]); + assigns *optlen + \from (indirect: sockfd), (indirect: level), (indirect: optname), + *optlen, (indirect: optval), (indirect: __fc_sockfds[sockfd]); + + complete behaviors other_options, so_error; + disjoint behaviors other_options, so_error; + */ +extern int getsockopt(int sockfd, int level, int optname, void *optval, + socklen_t *optlen); -/*@ assigns *stream; - assigns *stream \from c; */ -extern int ungetc(int c, FILE *stream); +/*@ requires valid_sockfd: 0 ≤ sockfd < 1024; + ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; + assigns \result, __fc_sockfds[sockfd]; + assigns \result \from sockfd, __fc_sockfds[sockfd]; + assigns __fc_sockfds[sockfd] \from sockfd, backlog, __fc_sockfds[sockfd]; + */ +extern int listen(int sockfd, int backlog); -/*@ requires valid_ptr_block: \valid((char *)ptr + (0 .. nmemb * size - 1)); - requires valid_stream: \valid(stream); - ensures size_read: \result ≤ \old(nmemb); +/*@ requires valid_sockfd: 0 ≤ sockfd < 1024; + requires valid_buffer_length: \valid((char *)buf + (0 .. len - 1)); ensures - initialization: - \initialized((char *)\old(ptr) + (0 .. \result * \old(size) - 1)); - assigns *((char *)ptr + (0 .. nmemb * size - 1)), \result; - assigns *((char *)ptr + (0 .. nmemb * size - 1)) - \from size, nmemb, *stream; - assigns \result \from size, *stream; + result_error_or_received_length: + \result ≡ -1 ∨ (0 ≤ \result ≤ \old(len)); + ensures + initialization: \initialized((char *)\old(buf) + (0 .. \result - 1)); + assigns *((char *)buf + (0 .. len - 1)), __fc_sockfds[sockfd], \result; + assigns *((char *)buf + (0 .. len - 1)) + \from sockfd, len, flags, __fc_sockfds[sockfd]; + assigns __fc_sockfds[sockfd] + \from sockfd, len, flags, __fc_sockfds[sockfd]; + assigns \result \from sockfd, len, flags, __fc_sockfds[sockfd]; */ -extern size_t fread(void * __restrict ptr, size_t size, size_t nmemb, - FILE * __restrict stream); +extern ssize_t recv(int sockfd, void *buf, size_t len, int flags); -/*@ requires - valid_ptr_block: \valid_read((char *)ptr + (0 .. nmemb * size - 1)); - requires valid_stream: \valid(stream); - ensures size_written: \result ≤ \old(nmemb); - assigns *stream, \result; - assigns *stream \from *((char *)ptr + (0 .. nmemb * size - 1)); - assigns \result \from *((char *)ptr + (0 .. nmemb * size - 1)); +/*@ requires valid_sockfd: 0 ≤ sockfd < 1024; + requires + msg_control_has_room: + \valid((char *)hdr->msg_control + (0 .. hdr->msg_controllen - 1)); + requires + msg_iov_has_room: \valid(hdr->msg_iov + (0 .. hdr->msg_iovlen - 1)); + requires + msg_name_null_or_has_room: + hdr->msg_name ≡ \null ∨ + \valid((char *)hdr->msg_name + (0 .. hdr->msg_namelen - 1)); + ensures + result_error_or_received_length: + \result ≡ -1 ∨ (0 ≤ \result ≤ \old(hdr)->msg_iovlen); + assigns *((char *)hdr->msg_name + (0 .. hdr->msg_namelen - 1)), + hdr->msg_namelen, + *((char *)(hdr->msg_iov + (0 .. hdr->msg_iovlen - 1))->iov_base + + (0 ..)), + *((char *)hdr->msg_control + (0 .. hdr->msg_controllen - 1)), + \result, hdr->msg_controllen, hdr->msg_flags, + __fc_sockfds[sockfd]; + assigns *((char *)hdr->msg_name + (0 .. hdr->msg_namelen - 1)) + \from __fc_sockfds[sockfd]; + assigns hdr->msg_namelen \from __fc_sockfds[sockfd]; + assigns + *((char *)(hdr->msg_iov + (0 .. hdr->msg_iovlen - 1))->iov_base + (0 ..)) + \from __fc_sockfds[sockfd]; + assigns *((char *)hdr->msg_control + (0 .. hdr->msg_controllen - 1)) + \from __fc_sockfds[sockfd]; + assigns \result \from __fc_sockfds[sockfd]; + assigns hdr->msg_controllen \from __fc_sockfds[sockfd]; + assigns hdr->msg_flags \from __fc_sockfds[sockfd]; + assigns __fc_sockfds[sockfd] \from __fc_sockfds[sockfd]; */ -extern size_t fwrite(void const * __restrict ptr, size_t size, size_t nmemb, - FILE * __restrict stream); - -/*@ assigns *pos; - assigns *pos \from *stream; */ -extern int fgetpos(FILE * __restrict stream, fpos_t * __restrict pos); +extern ssize_t recvmsg(int sockfd, struct msghdr *hdr, int flags); -/*@ requires valid_stream: \valid(stream); - requires whence_enum: whence ≡ 0 ∨ whence ≡ 1 ∨ whence ≡ 2; - assigns *stream, \result, __fc_errno; - assigns *stream \from *stream, (indirect: offset), (indirect: whence); - assigns \result - \from (indirect: *stream), (indirect: offset), (indirect: whence); +/*@ requires available_sockfd: 0 ≤ sockfd < 1024; + requires buf_len_ok: \valid_read((char *)buf + (0 .. len - 1)); + ensures + error_or_chars_sent: \result ≡ -1 ∨ (0 ≤ \result ≤ \old(len)); + assigns __fc_errno, __fc_sockfds[sockfd], \result; assigns __fc_errno - \from (indirect: *stream), (indirect: offset), (indirect: whence); + \from (indirect: sockfd), (indirect: __fc_sockfds[sockfd]), + (indirect: *((char *)buf + (0 .. len))), flags; + assigns __fc_sockfds[sockfd] + \from __fc_sockfds[sockfd], *((char *)buf + (0 .. len)), flags; + assigns \result + \from (indirect: sockfd), (indirect: __fc_sockfds[sockfd]), + (indirect: *((char *)buf + (0 .. len))), (indirect: flags); */ -extern int fseek(FILE *stream, long offset, int whence); - -/*@ assigns *stream; - assigns *stream \from *pos; */ -extern int fsetpos(FILE *stream, fpos_t const *pos); +extern ssize_t send(int sockfd, void const *buf, size_t len, int flags); -/*@ requires valid_stream: \valid(stream); - ensures - success_or_error: - \result ≡ -1 ∨ - (\result ≥ 0 ∧ __fc_errno ≡ \old(__fc_errno)); - assigns \result, __fc_errno; - assigns \result \from (indirect: *stream); - assigns __fc_errno \from (indirect: *stream); +/*@ requires valid_sockfd: 0 ≤ sockfd < 1024; + requires + optval_null_or_has_room: + optval ≡ \null ∨ \valid_read((char *)optval + (0 .. optlen - 1)); + ensures result_error_or_ok: \result ≡ 0 ∨ \result ≡ -1; + assigns \result, __fc_sockfds[sockfd]; + assigns \result + \from __fc_sockfds[sockfd], level, optname, + *((char *)optval + (0 .. optlen - 1)), optlen; + assigns __fc_sockfds[sockfd] + \from __fc_sockfds[sockfd], level, optname, + *((char *)optval + (0 .. optlen - 1)), optlen; */ -extern long ftell(FILE *stream); - -/*@ assigns *stream; - assigns *stream \from \nothing; */ -extern void rewind(FILE *stream); - -/*@ assigns *stream; - assigns *stream \from \nothing; */ -extern void clearerr(FILE *stream); - -/*@ assigns \result; - assigns \result \from *stream; */ -extern int feof(FILE *stream); - -/*@ assigns \result; - assigns \result \from *stream; */ -extern int fileno(FILE *stream); - -/*@ assigns *stream; - assigns *stream \from \nothing; */ -extern void flockfile(FILE *stream); +extern int setsockopt(int sockfd, int level, int optname, void const *optval, + socklen_t optlen); -/*@ assigns *stream; - assigns *stream \from \nothing; */ -extern void funlockfile(FILE *stream); +/*@ requires valid_sockfd: 0 ≤ sockfd < 1024; + ensures result_error_or_ok: \result ≡ 0 ∨ \result ≡ -1; + assigns \result, __fc_sockfds[sockfd]; + assigns \result \from how, __fc_sockfds[sockfd]; + assigns __fc_sockfds[sockfd] \from how, __fc_sockfds[sockfd]; + */ +extern int shutdown(int sockfd, int how); -/*@ assigns \result, *stream; - assigns \result \from \nothing; - assigns *stream \from \nothing; +/*@ ensures + result_error_or_valid_new_sockfd: + (0 ≤ \result < 1024) ∨ \result ≡ -1; + assigns \result, __fc_socket_counter; + assigns \result + \from (indirect: domain), (indirect: type), (indirect: protocol), + (indirect: __fc_socket_counter); + assigns __fc_socket_counter + \from (indirect: domain), (indirect: type), (indirect: protocol), + __fc_socket_counter; */ -extern int ftrylockfile(FILE *stream); +extern int socket(int domain, int type, int protocol); -/*@ assigns \result; - assigns \result \from *stream; */ -extern int ferror(FILE *stream); - -/*@ assigns __fc_stdout; - assigns __fc_stdout \from __fc_errno, *(s + (..)); - */ -extern void perror(char const *s); - -/*@ assigns \result, *stream; - assigns \result \from *stream; - assigns *stream \from *stream; +/*@ requires valid_socket_sector: \valid(sv + (0 .. 1)); + ensures result_error_or_ok: \result ≡ 0 ∨ \result ≡ -1; + ensures initialization: sv: \initialized(\old(sv) + (0 .. 1)); + ensures valid_new_sockfd: sv0: 0 ≤ *(\old(sv) + 0) < 1024; + ensures valid_new_sockfd: sv1: 0 ≤ *(\old(sv) + 1) < 1024; + assigns \result, __fc_socket_counter, *(sv + (0 .. 1)); + assigns \result \from __fc_socket_counter; + assigns __fc_socket_counter \from __fc_socket_counter; + assigns *(sv + (0 .. 1)) \from __fc_socket_counter; */ -extern int getc_unlocked(FILE *stream); +extern int socketpair(int domain, int type, int protocol, int * /*[2]*/ sv); +struct in6_addr const in6addr_any = {.s6_addr = {(unsigned char)0}}; +struct in6_addr const in6addr_loopback = + {.s6_addr = {(unsigned char)0xFF, + (unsigned char)0xFF, + (unsigned char)0xFF, + (unsigned char)0xFF, + (unsigned char)0xFF, + (unsigned char)0xFF, + (unsigned char)0xFF, + (unsigned char)0xFF, + (unsigned char)0xFF, + (unsigned char)0xFF, + (unsigned char)0xFF, + (unsigned char)0xFF, + (unsigned char)0xFF, + (unsigned char)0xFF, + (unsigned char)0xFF, + (unsigned char)0xFF}}; /*@ assigns \result; - assigns \result \from *__fc_stdin; */ -extern int getchar_unlocked(void); - -/*@ assigns *stream; - assigns *stream \from c; */ -extern int putc_unlocked(int c, FILE *stream); - -/*@ assigns *__fc_stdout; - assigns *__fc_stdout \from c; */ -extern int putchar_unlocked(int c); - -/*@ assigns *stream; - assigns *stream \from \nothing; */ -extern void clearerr_unlocked(FILE *stream); + assigns \result \from arg; */ +extern uint32_t htonl(uint32_t arg); /*@ assigns \result; - assigns \result \from *stream; */ -extern int feof_unlocked(FILE *stream); + assigns \result \from arg; */ +extern uint16_t htons(uint16_t arg); /*@ assigns \result; - assigns \result \from *stream; */ -extern int ferror_unlocked(FILE *stream); + assigns \result \from arg; */ +extern uint32_t ntohl(uint32_t arg); /*@ assigns \result; - assigns \result \from *stream; */ -extern int fileno_unlocked(FILE *stream); + assigns \result \from arg; */ +extern uint16_t ntohs(uint16_t arg); -/*@ axiomatic pipe_streams { - predicate is_open_pipe{L}(FILE *stream) ; - - } +/*@ requires valid_arg: valid_read_string(arg); + assigns \result; + assigns \result \from (indirect: *(arg + (0 ..))); + */ +extern in_addr_t inet_addr(char const *arg); -*/ -/*@ requires valid_command: valid_read_string(command); - requires valid_type: valid_read_string(type); - ensures - result_error_or_valid_open_pipe: - \result ≡ \null ∨ - (\subset(\result, &__fc_fopen[0 .. 16 - 1]) ∧ is_open_pipe(\result)); - assigns \result, __fc_fopen[0 ..]; - assigns \result - \from (indirect: *command), (indirect: *type), __fc_p_fopen; - assigns __fc_fopen[0 ..] - \from (indirect: *command), (indirect: *type), __fc_fopen[0 ..]; +char volatile __fc_inet_ntoa_array[16]; +char *__fc_inet_ntoa = (char *)(__fc_inet_ntoa_array); +/*@ ensures result_static_string: \result ≡ __fc_inet_ntoa; + ensures result_null_terminated: *(\result + 15) ≡ 0; + ensures result_valid_string: valid_read_string(\result); + assigns \result, *(__fc_inet_ntoa + (0 ..)); + assigns \result \from (indirect: arg), __fc_inet_ntoa; + assigns *(__fc_inet_ntoa + (0 ..)) \from (indirect: arg); */ -extern FILE *popen(char const *command, char const *type); +extern char *inet_ntoa(struct in_addr arg); -/*@ requires valid_stream: \valid(stream); - requires open_pipe: is_open_pipe(stream); - ensures closed_stream: ¬is_open_pipe(\old(stream)); - assigns \result; - assigns \result \from (indirect: *stream); +/*@ assigns \result, *(dst + (0 .. size - 1)); + assigns \result \from dst, af, *((char *)src + (0 ..)); + assigns *(dst + (0 .. size - 1)) \from af, *((char *)src + (0 ..)); */ -extern int pclose(FILE *stream); +extern char const *inet_ntop(int af, void const *src, char *dst, + socklen_t size); -ssize_t getline(char **lineptr, size_t *n, FILE *stream); +/*@ assigns \result, *((char *)dst + (0 ..)); + assigns \result \from af, *(src + (..)); + assigns *((char *)dst + (0 ..)) \from af, *(src + (0 ..)); + */ +extern int inet_pton(int af, char const *src, void *dst); -FILE __fc_initial_stdout = - {.__fc_FILE_id = (unsigned int)1, .__fc_FILE_data = 0U}; -FILE *__fc_stdout = & __fc_initial_stdout; -FILE __fc_initial_stderr = - {.__fc_FILE_id = (unsigned int)2, .__fc_FILE_data = 0U}; -FILE *__fc_stderr = & __fc_initial_stderr; -FILE __fc_initial_stdin = - {.__fc_FILE_id = (unsigned int)0, .__fc_FILE_data = 0U}; -FILE *__fc_stdin = & __fc_initial_stdin; -ssize_t getline(char **lineptr, size_t *n, FILE *stream) -{ - ssize_t __retres; - int tmp; - if (! lineptr) goto _LOR; - else - if (! n) goto _LOR; - else - if (! stream) { - _LOR: { - __fc_errno = 22; - __retres = -1; - goto return_label; - } - } - tmp = ferror(stream); - if (tmp) goto _LOR_0; - else { - int tmp_0; - tmp_0 = feof(stream); - if (tmp_0) { - _LOR_0: { - __retres = -1; - goto return_label; - } - } - } - if (! *lineptr) goto _LOR_1; - else - if (*n == (size_t)0) { - _LOR_1: - { - *lineptr = (char *)malloc((unsigned int)2); - if (! lineptr) { - __fc_errno = 12; - __retres = -1; - goto return_label; - } - *n = (unsigned int)2; - } - } - size_t cur = (unsigned int)0; - while (1) { - int tmp_3; - tmp_3 = ferror(stream); - if (tmp_3) break; - else { - int tmp_4; - tmp_4 = feof(stream); - if (tmp_4) break; - } - { - while (cur < *n - (size_t)1) { - int tmp_1; - tmp_1 = fgetc(stream); - char c = (char)tmp_1; - if ((int)c == -1) - if (cur == (size_t)0) { - __retres = -1; - goto return_label; - } - if ((int)c != -1) { - size_t tmp_2; - tmp_2 = cur; - cur += (size_t)1; - *(*lineptr + tmp_2) = c; - } - if ((int)c == '\n') goto _LOR_2; - else - if ((int)c == -1) { - _LOR_2: - { - *(*lineptr + cur) = (char)'\000'; - __retres = (int)cur; - goto return_label; - } - } - } - if (*n == (size_t)2147483647) { - __fc_errno = 75; - __retres = -1; - goto return_label; - } - size_t new_size = *n + (size_t)1; - *lineptr = (char *)realloc((void *)*lineptr,new_size); - if (! *lineptr) { - __fc_errno = 12; - __retres = -1; - goto return_label; - } - *n = new_size; - } - } - __retres = -1; - return_label: return __retres; -} +int h_errno; +/*@ requires addrinfo_valid: \valid(addrinfo); + ensures allocation: \allocable(\old(addrinfo)); + assigns \nothing; + frees addrinfo; + */ +extern void freeaddrinfo(struct addrinfo *addrinfo); -/*@ requires abs_representable: i > -2147483647 - 1; +char *__fc_gai_strerror = (char *)"<error message reported by gai_strerror>"; +/*@ ensures result_string: \result ≡ __fc_gai_strerror; + ensures result_valid_string: valid_read_string(\result); assigns \result; - assigns \result \from i; - - behavior negative: - assumes negative: i < 0; - ensures opposite_result: \result ≡ -\old(i); - - behavior nonnegative: - assumes nonnegative: i ≥ 0; - ensures same_result: \result ≡ \old(i); - - complete behaviors nonnegative, negative; - disjoint behaviors nonnegative, negative; + assigns \result \from (indirect: errcode), __fc_gai_strerror; */ -int abs(int i) -{ - int __retres; - if (i < 0) { - __retres = - i; - goto return_label; - } - __retres = i; - return_label: return __retres; -} +extern char const *gai_strerror(int errcode); -/*@ requires valid_nptr: \valid_read(p); - assigns \result; - assigns \result \from (indirect: p), (indirect: *(p + (0 ..))); +int getaddrinfo(char const * __restrict nodename, + char const * __restrict servname, + struct addrinfo const * __restrict hints, + struct addrinfo ** __restrict res); + +struct hostent *gethostbyname(char const *name); + +/*@ +predicate non_escaping{L}(void *s, size_t n) = + ∀ unsigned int i; 0 ≤ i < n ⇒ ¬\dangling((char *)s + i); */ -int atoi(char const *p) -{ - int __retres; - int n; - int c; - int tmp_1; - int tmp_3; - int neg = 0; - unsigned char *up = (unsigned char *)p; - c = (int)*up; - tmp_1 = isdigit(c); - if (! tmp_1) { - int tmp_0; - while (1) { - int tmp; - tmp = isspace(c); - if (! tmp) break; - up ++; - c = (int)*up; - } - switch (c) { - case '-': neg ++; - case '+': { /* sequence */ - up ++; - c = (int)*up; - } - } - tmp_0 = isdigit(c); - if (! tmp_0) { - __retres = 0; - goto return_label; - } - } - n = '0' - c; - while (1) { - int tmp_2; - up ++; - c = (int)*up; - tmp_2 = isdigit(c); - if (! tmp_2) break; - n *= 10; - n += '0' - c; - } - if (neg) tmp_3 = n; else tmp_3 = - n; - __retres = tmp_3; - return_label: return __retres; -} +/*@ +predicate empty_block{L}(void *s) = + \block_length((char *)s) ≡ 0 ∧ \offset((char *)s) ≡ 0; + */ +/*@ +predicate valid_or_empty{L}(void *s, size_t n) = + (empty_block(s) ∨ \valid_read((char *)s)) ∧ + \valid((char *)s + (0 .. n - 1)); + */ +/*@ +predicate valid_read_or_empty{L}(void *s, size_t n) = + (empty_block(s) ∨ \valid_read((char *)s)) ∧ + \valid_read((char *)s + (1 .. n - 1)); -/*@ assigns __fc_heap_status, \result; - assigns __fc_heap_status - \from (indirect: nmemb), (indirect: size), __fc_heap_status; +*/ +int memcmp(void const *s1, void const *s2, size_t n); + +void *memchr(void const *s, int c, size_t n); + +void *memcpy(void * __restrict dest, void const * __restrict src, size_t n); + +void *memmove(void *dest, void const *src, size_t n); + +void *memset(void *s, int c, size_t n); + +size_t strlen(char const *s); + +size_t strnlen(char const *s, size_t maxlen); + +int strcmp(char const *s1, char const *s2); + +int strncmp(char const *s1, char const *s2, size_t n); + +/*@ requires valid_string_s1: valid_read_string(s1); + requires valid_string_s2: valid_read_string(s2); + assigns \result; assigns \result - \from (indirect: nmemb), (indirect: size), (indirect: __fc_heap_status); - allocates \result; - - behavior allocation: - assumes can_allocate: is_allocable(nmemb * size); - ensures - allocation: \fresh{Old, Here}(\result,\old(nmemb) * \old(size)); - ensures - initialization: - \initialized((char *)\result + (0 .. \old(nmemb) * \old(size) - 1)); - ensures - zero_initialization: - \subset(*((char *)\result + (0 .. \old(nmemb) * \old(size) - 1)), - {0}); - - behavior no_allocation: - assumes cannot_allocate: ¬is_allocable(nmemb * size); - ensures null_result: \result ≡ \null; - assigns \result; - assigns \result \from \nothing; - allocates \nothing; - - complete behaviors no_allocation, allocation; - disjoint behaviors no_allocation, allocation; + \from (indirect: *(s1 + (0 ..))), (indirect: *(s2 + (0 ..))); */ -void *calloc(size_t nmemb, size_t size) -{ - void *__retres; - size_t l = nmemb * size; - if (size != (size_t)0) - if (l / size != nmemb) { - __retres = (void *)0; - goto return_label; - } - char *p = malloc(l); - if (p) memset((void *)p,0,l); - __retres = (void *)p; - return_label: return __retres; -} +extern int strcoll(char const *s1, char const *s2); -static char __fc_env_strings[64]; -static char __fc_initenv_init; -static void __fc_initenv(void) -{ - if (! __fc_initenv_init) { - Frama_C_make_unknown(__fc_env_strings,(unsigned int)(64 - 1)); - { - int i = 0; - while (i < 4096) { - { - int tmp; - tmp = Frama_C_interval(0,64 - 1); - __fc_env[i] = & __fc_env_strings[tmp]; - } - i ++; - } - } - __fc_initenv_init = (char)1; - } - return; -} +char *strchr(char const *s, int c); -/*@ requires valid_name: valid_read_string(name); - ensures null_or_valid_result: \result ≡ \null ∨ \valid(\result); +char *strrchr(char const *s, int c); + +/*@ requires valid_string_s: valid_read_string(s); + requires valid_string_reject: valid_read_string(reject); + ensures result_bounded: 0 ≤ \result ≤ strlen(\old(s)); assigns \result; - assigns \result \from __fc_env[0 ..], (indirect: name), *(name + (0 ..)); + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(reject + (0 ..))); */ -char *getenv(char const *name) -{ - char *__retres; - int tmp_0; - /*@ assert ¬(strchr(name, '=') ≡ \true); */ ; - __fc_initenv(); - tmp_0 = Frama_C_nondet(0,1); - if (tmp_0) { - int tmp; - tmp = Frama_C_interval(0,4096 - 1); - ; - __retres = __fc_env[tmp]; - goto return_label; - } - else { - __retres = (char *)0; - goto return_label; - } - return_label: return __retres; -} +extern size_t strcspn(char const *s, char const *reject); -/*@ requires valid_string: valid_read_string(string); - assigns __fc_env[0 ..], \result; - assigns __fc_env[0 ..] \from __fc_env[0 ..], string; - assigns \result \from (indirect: __fc_env[0 ..]), (indirect: string); +/*@ requires valid_string_s: valid_read_string(s); + requires valid_string_accept: valid_read_string(accept); + ensures result_bounded: 0 ≤ \result ≤ strlen(\old(s)); + assigns \result, \result; + assigns \result \from *(s + (0 ..)), *(accept + (0 ..)); + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(accept + (0 ..))); */ -int putenv(char *string) -{ - int __retres; - int tmp_3; - char *separator = strchr((char const *)string,'='); - /*@ assert string_contains_separator: separator ≢ \null; */ ; - /*@ assert name_is_not_empty: separator ≢ string; */ ; - __fc_initenv(); - tmp_3 = Frama_C_nondet(0,1); - if (tmp_3) { - int tmp_1; - int tmp_2; - tmp_1 = Frama_C_nondet(0,1); - if (tmp_1) { - int tmp_0; - tmp_0 = Frama_C_interval(-2147483647 - 1,2147483647); - __retres = tmp_0; - goto return_label; - } - tmp_2 = Frama_C_interval(0,4096 - 1); - __fc_env[tmp_2] = string; - } - __retres = 0; - return_label: return __retres; -} +extern size_t strspn(char const *s, char const *accept); -/*@ requires valid_name: valid_read_string(name); - requires valid_value: valid_read_string(value); - ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; - assigns \result, __fc_env[0 ..]; - assigns \result - \from __fc_env[0 ..], (indirect: name), (indirect: *(name + (0 ..))), - (indirect: value), (indirect: *(value + (0 ..))), - (indirect: overwrite); - assigns __fc_env[0 ..] - \from __fc_env[0 ..], (indirect: name), (indirect: *(name + (0 ..))), - (indirect: value), (indirect: *(value + (0 ..))), - (indirect: overwrite); +/*@ requires valid_string_s: valid_read_string(s); + requires valid_string_accept: valid_read_string(accept); + ensures + result_null_or_same_base: + \result ≡ \null ∨ \base_addr(\result) ≡ \base_addr(\old(s)); + assigns \result; + assigns \result \from s, *(s + (0 ..)), *(accept + (0 ..)); */ -int setenv(char const *name, char const *value, int overwrite) -{ - int __retres; - char *tmp; - int tmp_4; - tmp = strchr(name,'='); - if (tmp) { - __retres = -1; - goto return_label; - } - size_t namelen = strlen(name); - if (namelen == (size_t)0) { - __retres = -1; - goto return_label; - } - __fc_initenv(); - tmp_4 = Frama_C_nondet(0,1); - if (tmp_4) { - __retres = -1; - goto return_label; - } - else { - int tmp_1; - int tmp_2; - int tmp_3; - tmp_1 = Frama_C_nondet(0,1); - if (tmp_1) Frama_C_make_unknown(__fc_env_strings,(unsigned int)(64 - 1)); - tmp_2 = Frama_C_interval(0,4096 - 1); - tmp_3 = Frama_C_interval(0,64 - 1); - __fc_env[tmp_2] = & __fc_env_strings[tmp_3]; - __retres = 0; - goto return_label; - } - return_label: return __retres; -} +extern char *strpbrk(char const *s, char const *accept); -/*@ requires valid_name: valid_read_string(name); - ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; - assigns \result, __fc_env[0 ..]; +char *strstr(char const *haystack, char const *needle); + +/*@ requires valid_string_haystack: valid_read_string(haystack); + requires valid_string_needle: valid_read_string(needle); + ensures + result_null_or_in_haystack: + \result ≡ \null ∨ + (\subset(\result, \old(haystack) + (0 ..)) ∧ \valid_read(\result)); + assigns \result; assigns \result - \from __fc_env[0 ..], (indirect: name), (indirect: *(name + (0 ..))); - assigns __fc_env[0 ..] - \from __fc_env[0 ..], (indirect: name), (indirect: *(name + (0 ..))); + \from haystack, (indirect: *(haystack + (0 ..))), + (indirect: *(needle + (0 ..))); */ -int unsetenv(char const *name) -{ - int __retres; - char *tmp; - int tmp_2; - tmp = strchr(name,'='); - if (tmp) { - __retres = -1; - goto return_label; - } - size_t namelen = strlen(name); - if (namelen == (size_t)0) { - __retres = -1; - goto return_label; - } - __fc_initenv(); - tmp_2 = Frama_C_nondet(0,1); - if (tmp_2) { - int tmp_1; - tmp_1 = Frama_C_interval(0,4096 - 1); - __fc_env[tmp_1] = (char *)0; - } - __retres = 0; - return_label: return __retres; -} +extern char *strcasestr(char const *haystack, char const *needle); -/*@ requires valid_memptr: \valid(memptr); - requires - alignment_is_a_suitable_power_of_two: - alignment ≥ sizeof(void *) ∧ - ((size_t)alignment & ((size_t)alignment - 1)) ≡ 0; - assigns __fc_heap_status, \result; - assigns __fc_heap_status - \from (indirect: alignment), size, __fc_heap_status; +char *__fc_strtok_ptr; +/*@ requires valid_string_delim: valid_read_string(delim); + assigns *(s + (0 ..)), *(__fc_strtok_ptr + (0 ..)), \result, + __fc_strtok_ptr; + assigns *(s + (0 ..)) + \from *(s + (0 ..)), (indirect: s), (indirect: __fc_strtok_ptr), + (indirect: *(delim + (0 ..))); + assigns *(__fc_strtok_ptr + (0 ..)) + \from *(__fc_strtok_ptr + (0 ..)), (indirect: s), + (indirect: __fc_strtok_ptr), (indirect: *(delim + (0 ..))); assigns \result - \from (indirect: alignment), (indirect: size), - (indirect: __fc_heap_status); - allocates *\old(memptr); + \from s, __fc_strtok_ptr, (indirect: *(s + (0 ..))), + (indirect: *(__fc_strtok_ptr + (0 ..))), + (indirect: *(delim + (0 ..))); + assigns __fc_strtok_ptr + \from \old(__fc_strtok_ptr), s, + (indirect: *(__fc_strtok_ptr + (0 ..))), + (indirect: *(delim + (0 ..))); - behavior allocation: - assumes can_allocate: is_allocable(size); - ensures allocation: \fresh{Old, Here}(*\old(memptr),\old(size)); - ensures result_zero: \result ≡ 0; - assigns __fc_heap_status, \result; - assigns __fc_heap_status - \from (indirect: alignment), size, __fc_heap_status; + behavior new_str: + assumes s_not_null: s ≢ \null; + requires + valid_string_s_or_delim_not_found: + valid_string(s) ∨ + (valid_read_string(s) ∧ + (∀ int i; + 0 ≤ i < strlen(delim) ⇒ + ¬(strchr(s, *(delim + i)) ≡ \true))); + ensures + result_subset: + \result ≡ \null ∨ \subset(\result, \old(s) + (0 ..)); + ensures ptr_subset: \subset(__fc_strtok_ptr, \old(s) + (0 ..)); + assigns __fc_strtok_ptr, *(s + (0 ..)), \result; + assigns __fc_strtok_ptr + \from s, (indirect: *(s + (0 ..))), (indirect: *(delim + (0 ..))); + assigns *(s + (0 ..)) + \from *(s + (0 ..)), (indirect: s), (indirect: *(delim + (0 ..))); assigns \result - \from (indirect: alignment), (indirect: size), - (indirect: __fc_heap_status); + \from s, (indirect: *(s + (0 ..))), (indirect: *(delim + (0 ..))); - behavior no_allocation: - assumes cannot_allocate: ¬is_allocable(size); - ensures result_non_zero: \result < 0 ∨ \result > 0; - assigns \result; - assigns \result \from (indirect: alignment); - allocates \nothing; + behavior resume_str: + assumes s_null: s ≡ \null; + requires not_first_call: __fc_strtok_ptr ≢ \null; + ensures + result_subset: + \result ≡ \null ∨ + \subset(\result, \old(__fc_strtok_ptr) + (0 ..)); + ensures + ptr_subset: \subset(__fc_strtok_ptr, \old(__fc_strtok_ptr) + (0 ..)); + assigns *(__fc_strtok_ptr + (0 ..)), __fc_strtok_ptr, \result; + assigns *(__fc_strtok_ptr + (0 ..)) + \from *(__fc_strtok_ptr + (0 ..)), (indirect: __fc_strtok_ptr), + (indirect: *(delim + (0 ..))); + assigns __fc_strtok_ptr + \from \old(__fc_strtok_ptr), (indirect: *(__fc_strtok_ptr + (0 ..))), + (indirect: *(delim + (0 ..))); + assigns \result + \from __fc_strtok_ptr, (indirect: *(__fc_strtok_ptr + (0 ..))), + (indirect: *(delim + (0 ..))); - complete behaviors no_allocation, allocation; - disjoint behaviors no_allocation, allocation; - */ -int posix_memalign(void **memptr, size_t alignment, size_t size) -{ - int __retres; - /*@ - assert - alignment_is_a_suitable_power_of_two: - alignment ≥ sizeof(void *) ∧ - ((size_t)alignment & ((size_t)alignment - 1)) ≡ 0; - */ - ; - *memptr = malloc(size); - if (! *memptr) { - __retres = 12; - goto return_label; - } - __retres = 0; - return_label: return __retres; -} - -/*@ requires valid_dest: valid_or_empty(dest, n); - requires valid_src: valid_read_or_empty(src, n); - requires - separation: - \separated((char *)dest + (0 .. n - 1), (char *)src + (0 .. n - 1)); - ensures - copied_contents: - memcmp{Post, Pre}((char *)\old(dest), (char *)\old(src), \old(n)) ≡ - 0; - ensures result_ptr: \result ≡ \old(dest); - assigns *((char *)dest + (0 .. n - 1)), \result; - assigns *((char *)dest + (0 .. n - 1)) - \from *((char *)src + (0 .. n - 1)); - assigns \result \from dest; + complete behaviors resume_str, new_str; + disjoint behaviors resume_str, new_str; */ -void *memcpy(void * __restrict dest, void const * __restrict src, size_t n) -{ - { - size_t i = (unsigned int)0; - /*@ loop invariant no_eva: 0 ≤ i ≤ n; - loop invariant - no_eva: - ∀ ℤ k; - 0 ≤ k < i ⇒ *((char *)dest + k) ≡ *((char *)src + k); - loop assigns i, *((char *)dest + (0 .. n - 1)); - loop variant n - i; - */ - while (i < n) { - *((char *)dest + i) = *((char *)src + i); - i += (size_t)1; - } - } - return dest; -} +extern char *strtok(char * __restrict s, char const * __restrict delim); -/*@ assigns \result; - assigns \result \from (indirect: p), (indirect: q), (indirect: n); +/*@ requires valid_string_delim: valid_read_string(delim); + requires valid_saveptr: \valid(saveptr); + assigns *(s + (0 ..)), *(*saveptr + (0 ..)), \result, *saveptr; + assigns *(s + (0 ..)) + \from *(s + (0 ..)), (indirect: s), (indirect: *saveptr), + (indirect: *(delim + (0 ..))); + assigns *(*saveptr + (0 ..)) + \from *(*saveptr + (0 ..)), (indirect: s), (indirect: *saveptr), + (indirect: *(delim + (0 ..))); + assigns \result + \from s, *saveptr, (indirect: *(s + (0 ..))), + (indirect: *(*saveptr + (0 ..))), (indirect: *(delim + (0 ..))); + assigns *saveptr + \from \old(*saveptr), s, (indirect: *(*saveptr + (0 ..))), + (indirect: *(delim + (0 ..))); - behavior separated: - assumes - separation: no_overlap: - \separated(p + (0 .. n - 1), q + (0 .. n - 1)); - ensures result_no_overlap: \result ≡ 0; + behavior new_str: + assumes s_not_null: s ≢ \null; + requires + valid_string_s_or_delim_not_found: + valid_string(s) ∨ + (valid_read_string(s) ∧ + (∀ int i; + 0 ≤ i < strlen(delim) ⇒ + ¬(strchr(s, *(delim + i)) ≡ \true))); + ensures + result_subset: + \result ≡ \null ∨ \subset(\result, \old(s) + (0 ..)); + ensures initialization: \initialized(\old(saveptr)); + ensures saveptr_subset: \subset(*\old(saveptr), \old(s) + (0 ..)); + assigns *saveptr, *(s + (0 ..)), \result; + assigns *saveptr + \from s, (indirect: *(s + (0 ..))), (indirect: *(delim + (0 ..))); + assigns *(s + (0 ..)) + \from *(s + (0 ..)), (indirect: s), (indirect: *(delim + (0 ..))); + assigns \result + \from s, (indirect: *(s + (0 ..))), (indirect: *(delim + (0 ..))); - behavior not_separated_lt: - assumes - separation: overlap: ¬\separated(p + (0 .. n - 1), q + (0 .. n - 1)); - assumes p_before_q: p ≤ q < p + n; - ensures result_p_before_q: \result ≡ -1; + behavior resume_str: + assumes s_null: s ≡ \null; + requires not_first_call: *saveptr ≢ \null; + requires initialization: saveptr: \initialized(saveptr); + ensures + result_subset: + \result ≡ \null ∨ \subset(\result, \old(*saveptr) + (0 ..)); + ensures + saveptr_subset: \subset(*\old(saveptr), \old(*saveptr) + (0 ..)); + assigns *(*saveptr + (0 ..)), *saveptr, \result; + assigns *(*saveptr + (0 ..)) + \from *(*saveptr + (0 ..)), (indirect: *saveptr), + (indirect: *(delim + (0 ..))); + assigns *saveptr + \from \old(*saveptr), (indirect: *(*saveptr + (0 ..))), + (indirect: *(delim + (0 ..))); + assigns \result + \from *saveptr, (indirect: *(*saveptr + (0 ..))), + (indirect: *(delim + (0 ..))); - behavior not_separated_gt: - assumes - separation: overlap: ¬\separated(p + (0 .. n - 1), q + (0 .. n - 1)); - assumes p_after_q: q < p ≤ q + n; - ensures result_p_after_q: \result ≡ 1; + complete behaviors resume_str, new_str; + disjoint behaviors resume_str, new_str; + */ +extern char *strtok_r(char * __restrict s, char const * __restrict delim, + char ** __restrict saveptr); + +/*@ requires + valid_string_stringp: \valid(stringp) ∧ valid_string(*stringp); + requires valid_string_delim: valid_read_string(delim); + assigns *stringp, \result; + assigns *stringp \from *(delim + (..)), *(*(stringp + (..))); + assigns \result \from *(delim + (..)), *(*(stringp + (..))); + */ +extern char *strsep(char **stringp, char const *delim); + +char __fc_strerror[64]; +char * const __fc_p_strerror = __fc_strerror; +char *strerror(int errnum); + +char *strcpy(char *dest, char const *src); + +char *strncpy(char *dest, char const *src, size_t n); + +/*@ requires valid_string_src: valid_read_string(src); + requires room_nstring: \valid(dest + (0 .. n - 1)); + requires + separation: + \separated( + dest + (0 .. n - 1), src + (0 .. \max(n - 1, strlen(src))) + ); + ensures + initialization: + \initialized(\old(dest) + (0 .. \min(strlen(\old(src)), \old(n) - 1))); + ensures bounded_result: \result ≡ strlen(\old(src)); + assigns *(dest + (0 .. n - 1)), \result; + assigns *(dest + (0 .. n - 1)) \from *(src + (0 .. n - 1)); + assigns \result + \from (indirect: src), (indirect: *(src + (0 .. n - 1))), (indirect: n); + */ +size_t strlcpy(char * __restrict dest, char const * __restrict src, size_t n); + +/*@ requires valid_string_src: valid_read_string(src); + requires room_string: \valid(dest + (0 .. strlen(src))); + requires + separation: + \separated(dest + (0 .. strlen(src)), src + (0 .. strlen(src))); + ensures equal_contents: strcmp(\old(dest), \old(src)) ≡ 0; + ensures points_to_end: \result ≡ \old(dest) + strlen(\old(dest)); + assigns *(dest + (0 .. strlen{Old}(src))), \result; + assigns *(dest + (0 .. strlen{Old}(src))) + \from *(src + (0 .. strlen{Old}(src))); + assigns \result \from dest; + */ +extern char *stpcpy(char * __restrict dest, char const * __restrict src); + +char *strcat(char *dest, char const *src); + +char *strncat(char *dest, char const *src, size_t n); + +/*@ requires valid_string_src: valid_read_string(src); + requires valid_string_dest: valid_string(dest); + requires room_nstring: \valid(dest + (0 .. n - 1)); + ensures + bounded_result: \result ≡ strlen(\old(dest)) + strlen(\old(src)); + assigns *(dest + (strlen{Old}(dest) .. n)), \result; + assigns *(dest + (strlen{Old}(dest) .. n)) + \from (indirect: n), *(src + (0 .. strlen{Old}(src))); + assigns \result + \from (indirect: src), (indirect: *(src + (0 .. n - 1))), (indirect: n); + */ +extern size_t strlcat(char * __restrict dest, char const * __restrict src, + size_t n); + +/*@ requires valid_dest: \valid(dest + (0 .. n - 1)); + requires valid_string_src: valid_read_string(src); + assigns *(dest + (0 .. n - 1)), \result; + assigns *(dest + (0 .. n - 1)) + \from (indirect: *(src + (0 ..))), (indirect: n); + assigns \result \from dest; + */ +extern size_t strxfrm(char * __restrict dest, char const * __restrict src, + size_t n); + +char *strdup(char const *s); + +char *strndup(char const *s, size_t n); + +char __fc_strsignal[64]; +char * const __fc_p_strsignal = __fc_strsignal; +char *strsignal(int signum); + +/*@ requires valid_memory_area: \valid((char *)s + (0 .. n - 1)); + ensures + s_initialized: initialization: + \initialized((char *)\old(s) + (0 .. \old(n) - 1)); + ensures + zero_initialized: \subset(*((char *)\old(s) + (0 .. \old(n) - 1)), {0}); + assigns *((char *)s + (0 .. n - 1)); + assigns *((char *)s + (0 .. n - 1)) \from \nothing; + */ +extern void bzero(void *s, size_t n); + +int strcasecmp(char const *s1, char const *s2); + +/*@ requires valid_string_s1: valid_read_nstring(s1, n); + requires valid_string_s2: valid_read_nstring(s2, n); + assigns \result; + assigns \result + \from (indirect: n), (indirect: *(s1 + (0 .. n - 1))), + (indirect: *(s2 + (0 .. n - 1))); + */ +extern int strncasecmp(char const *s1, char const *s2, size_t n); + +static unsigned int volatile getaddrinfo_net_state; +/*@ requires + nodename_string: nodename ≡ \null ∨ valid_read_string(nodename); + requires + servname_string: servname ≡ \null ∨ valid_read_string(servname); + requires hints_option: hints ≡ \null ∨ \valid_read(hints); + requires valid_res: \valid(res); + assigns *res, \result, __fc_errno; + assigns *res + \from (indirect: nodename), (indirect: servname), (indirect: hints); + assigns \result + \from (indirect: nodename), (indirect: servname), (indirect: hints); + assigns __fc_errno + \from (indirect: nodename), (indirect: servname), (indirect: hints); + allocates *\old(res); - complete behaviors not_separated_gt, not_separated_lt, separated; - disjoint behaviors not_separated_gt, not_separated_lt, separated; + behavior empty_request: + assumes empty: nodename ≡ \null ∧ servname ≡ \null; + ensures no_name: \result ≡ -2; + assigns \result; + assigns \result \from (indirect: nodename), (indirect: servname); + + behavior normal_request: + assumes has_name: nodename ≢ \null ∨ servname ≢ \null; + ensures + initialization: allocation: success_or_error: + (\result ≡ 0 ∧ + \fresh{Old, Here}(*\old(res),sizeof(*\old(res))) ∧ + \initialized(*\old(res))) ∨ + \result ≡ -3 ∨ \result ≡ -1 ∨ \result ≡ -4 ∨ + \result ≡ -6 ∨ \result ≡ -10 ∨ \result ≡ -8 ∨ + \result ≡ -7 ∨ \result ≡ -11; + + complete behaviors normal_request, empty_request; + disjoint behaviors normal_request, empty_request; */ -static int memoverlap(char const *p, char const *q, size_t n) +int getaddrinfo(char const * __restrict nodename, + char const * __restrict servname, + struct addrinfo const * __restrict hints, + struct addrinfo ** __restrict res) { int __retres; - uintptr_t p1 = (unsigned int)p; - uintptr_t p2 = (unsigned int)(p + n); - uintptr_t q1 = (unsigned int)q; - uintptr_t q2 = (unsigned int)(q + n); - if (p1 <= q1) { - if (p2 > q1) { - __retres = -1; + if (nodename == (char const *)0) + if (servname == (char const *)0) { + __retres = -2; goto return_label; } - else goto _LAND; - } - else { - _LAND: ; - if (q1 <= p1) - if (q2 > p1) { - __retres = 1; + switch (getaddrinfo_net_state) { + case (unsigned int)0: __retres = -1; + goto return_label; + case (unsigned int)1: __retres = -3; + goto return_label; + case (unsigned int)2: __retres = -4; + goto return_label; + case (unsigned int)3: __retres = -6; + goto return_label; + case (unsigned int)5: __retres = -8; + goto return_label; + case (unsigned int)6: __retres = -7; + goto return_label; + case (unsigned int)7: + { + __fc_errno = 5; + __retres = -11; + goto return_label; + } + default: + { + struct addrinfo *tmp_0; + struct sockaddr *tmp_2; + int tmp_3; + struct addrinfo *ai = malloc(sizeof(*tmp_0)); + if (! ai) { + __retres = -10; goto return_label; } - else { - __retres = 0; + struct sockaddr *sa = malloc(sizeof(*tmp_2)); + if (! sa) { + __retres = -10; goto return_label; } - else { + tmp_3 = Frama_C_interval(0,43); + sa->sa_family = (unsigned short)tmp_3; + /*@ slevel 15; */ + { + int i = 0; + while (i < 14) { + { + int tmp_4; + tmp_4 = Frama_C_interval(-128,127); + sa->sa_data[i] = (char)tmp_4; + } + i ++; + } + } + /*@ slevel default; */ + ai->ai_flags = 0; + ai->ai_family = (int)sa->sa_family; + ai->ai_socktype = Frama_C_interval(0,5); + ai->ai_protocol = Frama_C_interval(0,IPPROTO_MAX); + ai->ai_addrlen = sizeof(*sa); + ai->ai_addr = sa; + ai->ai_canonname = (char *)"dummy"; + ai->ai_next = (struct addrinfo *)0; + *res = ai; __retres = 0; goto return_label; } @@ -4922,2762 +4331,3353 @@ static int memoverlap(char const *p, char const *q, size_t n) return_label: return __retres; } -/*@ requires valid_dest: valid_or_empty(dest, n); - requires valid_src: valid_read_or_empty(src, n); - ensures - copied_contents: - memcmp{Post, Pre}((char *)\old(dest), (char *)\old(src), \old(n)) ≡ - 0; - ensures result_ptr: \result ≡ \old(dest); - assigns *((char *)dest + (0 .. n - 1)), \result; - assigns *((char *)dest + (0 .. n - 1)) - \from *((char *)src + (0 .. n - 1)); - assigns \result \from dest; - */ -void *memmove(void *dest, void const *src, size_t n) +struct __fc_gethostbyname __fc_ghbn; +int res_search(char const *dname, int class, int type, char *answer, + int anslen) { - void *__retres; int tmp; - if (n == (size_t)0) { - __retres = dest; - goto return_label; - } - char *s = (char *)src; - char *d = (char *)dest; - tmp = memoverlap((char const *)dest,(char const *)src,n); - if (tmp <= 0) { - size_t i = (unsigned int)0; - /*@ loop invariant no_eva: 0 ≤ i ≤ n; - loop invariant - no_eva: - ∀ ℤ k; - 0 ≤ k < i ⇒ - *((char *)dest + k) ≡ \at(*((char *)src + k),LoopEntry); - loop invariant - no_eva: - ∀ ℤ k; - i ≤ k < n ⇒ - *((char *)src + k) ≡ \at(*((char *)src + k),LoopEntry); - loop assigns i, *((char *)dest + (0 .. n - 1)); - loop variant n - i; - */ - while (i < n) { - *(d + i) = *(s + i); - i += (size_t)1; + { + int i = 0; + while (i < anslen - 1) { + *(answer + i) = Frama_C_char_interval((char)(-128),(char)127); + i ++; } } - else { - { - size_t i_0 = n - (size_t)1; - /*@ loop invariant no_eva: 0 ≤ i_0 < n; - loop invariant - no_eva: - ∀ ℤ k; - i_0 < k < n ⇒ - *((char *)dest + k) ≡ \at(*((char *)src + k),LoopEntry); - loop invariant - no_eva: - ∀ ℤ k; - 0 ≤ k ≤ i_0 ⇒ - *((char *)src + k) ≡ \at(*((char *)src + k),LoopEntry); - loop assigns i_0, *((char *)dest + (0 .. n - 1)); - loop variant i_0; - */ - while (i_0 > (size_t)0) { - *(d + i_0) = *(s + i_0); - i_0 -= (size_t)1; + *(answer + (anslen - 1)) = (char)0; + tmp = Frama_C_interval(-1,anslen); + return tmp; +} + +struct hostent *gethostbyname(char const *name) +{ + struct hostent *__retres; + char buf[128]; + char const *cp; + int n; + int tmp; + __fc_ghbn.host.h_addrtype = 2; + __fc_ghbn.host.h_length = (int)sizeof(struct in_addr); + if ((int)*name >= '0') + if ((int)*name <= '9') { + cp = name; + while (1) { + if (! *cp) { + struct in_addr addr; + cp --; + ; + if ((int)*cp == '.') break; + addr.s_addr = inet_addr(name); + if (addr.s_addr == 0xffffffff) { + __retres = (struct hostent *)0; + goto return_label; + } + memcpy((void *)(__fc_ghbn.host_addr),(void const *)(& addr), + (unsigned int)__fc_ghbn.host.h_length); + strncpy(__fc_ghbn.hostbuf,name,(unsigned int)(128 - 1)); + __fc_ghbn.hostbuf[128 - 1] = (char)'\000'; + __fc_ghbn.host.h_name = __fc_ghbn.hostbuf; + __fc_ghbn.host.h_aliases = __fc_ghbn.host_aliases; + __fc_ghbn.host_aliases[0] = (char *)0; + __fc_ghbn.h_addr_ptrs[0] = (char *)(__fc_ghbn.host_addr); + __fc_ghbn.h_addr_ptrs[1] = (char *)0; + __fc_ghbn.host.h_addr_list = __fc_ghbn.h_addr_ptrs; + __retres = & __fc_ghbn.host; + goto return_label; + } + if ((int)*cp < '0') + if ((int)*cp > '9') + if ((int)*cp != '.') break; + cp ++; } } - *(d + 0) = *(s + 0); + n = res_search(name,1,1,buf,(int)sizeof(buf)); + if (n < 0) { + __retres = (struct hostent *)0; + goto return_label; + } + tmp = Frama_C_nondet(0,1); + if (tmp) { + __retres = (struct hostent *)0; + goto return_label; + } + else { + struct in_addr addr_0; + addr_0.s_addr = inet_addr(name); + memcpy((void *)(__fc_ghbn.host_addr),(void const *)(& addr_0), + (unsigned int)__fc_ghbn.host.h_length); + strncpy(__fc_ghbn.hostbuf,name,(unsigned int)(128 - 1)); + __fc_ghbn.hostbuf[128 - 1] = (char)'\000'; + __fc_ghbn.host.h_name = __fc_ghbn.hostbuf; + __fc_ghbn.host.h_aliases = __fc_ghbn.host_aliases; + __fc_ghbn.host_aliases[0] = (char *)0; + __fc_ghbn.h_addr_ptrs[0] = (char *)(__fc_ghbn.host_addr); + __fc_ghbn.h_addr_ptrs[1] = (char *)0; + __fc_ghbn.host.h_addr_list = __fc_ghbn.h_addr_ptrs; + __retres = & __fc_ghbn.host; + goto return_label; } - __retres = dest; return_label: return __retres; } -/*@ requires valid_string_s: valid_read_string(s); - ensures acsl_c_equiv: \result ≡ strlen(\old(s)); +FILE *__fc_stderr; + +FILE *__fc_stdin; + +FILE *__fc_stdout; + +/*@ assigns \nothing; */ +extern int remove(char const *filename); + +/*@ assigns \nothing; */ +extern int rename(char const *old_name, char const *new_name); + +FILE __fc_fopen[16]; +FILE * const __fc_p_fopen = __fc_fopen; +/*@ ensures + result_null_or_valid_fd: + \result ≡ \null ∨ \subset(\result, &__fc_fopen[0 .. 16 - 1]); assigns \result; - assigns \result \from (indirect: *(s + (0 ..))); + assigns \result \from __fc_p_fopen; */ -size_t strlen(char const *s) -{ - size_t i; - i = (unsigned int)0; - while ((int)*(s + i) != 0) i += (size_t)1; - return i; -} +extern FILE *tmpfile(void); -/*@ requires valid_string_s: valid_read_nstring(s, maxlen); - ensures - result_bounded: - \result ≡ strlen(\old(s)) ∨ \result ≡ \old(maxlen); - assigns \result; - assigns \result - \from (indirect: *(s + (0 .. maxlen - 1))), (indirect: maxlen); +/*@ assigns \result, *(s + (..)); + assigns \result \from *(s + (..)); + assigns *(s + (..)) \from \nothing; */ -size_t strnlen(char const *s, size_t maxlen) -{ - size_t i; - i = (unsigned int)0; - while (1) { - if (i < maxlen) { - if (! ((int)*(s + i) != 0)) break; - } - else break; - i += (size_t)1; - } - return i; -} +extern char *tmpnam(char *s); -/*@ requires valid_s: valid_or_empty(s, n); - ensures - acsl_c_equiv: memset((char *)\old(s), \old(c), \old(n)) ≡ \true; - ensures result_ptr: \result ≡ \old(s); - assigns *((char *)s + (0 .. n - 1)), \result; - assigns *((char *)s + (0 .. n - 1)) \from c; - assigns \result \from s; +/*@ requires valid_stream: \valid(stream); + ensures result_zero_or_EOF: \result ≡ 0 ∨ \result ≡ -1; + assigns \result; + assigns \result \from stream, stream->__fc_FILE_id; */ -void *memset(void *s, int c, size_t n) -{ - unsigned char *p = (unsigned char *)s; - { - size_t i = (unsigned int)0; - while (i < n) { - *(p + i) = (unsigned char)c; - i += (size_t)1; - } - } - return s; -} +extern int fclose(FILE *stream); -/*@ requires valid_string_s1: valid_read_string(s1); - requires valid_string_s2: valid_read_string(s2); - ensures acsl_c_equiv: \result ≡ strcmp(\old(s1), \old(s2)); +/*@ requires null_or_valid_stream: stream ≡ \null ∨ \valid_read(stream); + ensures result_zero_or_EOF: \result ≡ 0 ∨ \result ≡ -1; assigns \result; - assigns \result - \from (indirect: *(s1 + (0 ..))), (indirect: *(s2 + (0 ..))); + assigns \result \from stream, stream->__fc_FILE_id; */ -int strcmp(char const *s1, char const *s2) -{ - int __retres; - size_t i; - i = (unsigned int)0; - while ((int)*(s1 + i) == (int)*(s2 + i)) { - if ((int)*(s1 + i) == 0) { - __retres = 0; - goto return_label; - } - i += (size_t)1; - } - __retres = (int)*((unsigned char *)s1 + i) - (int)*((unsigned char *)s2 + i); - return_label: return __retres; -} +extern int fflush(FILE *stream); -/*@ requires valid_string_s1: valid_read_nstring(s1, n); - requires valid_string_s2: valid_read_nstring(s2, n); - ensures acsl_c_equiv: \result ≡ strncmp(\old(s1), \old(s2), \old(n)); +/*@ requires valid_filename: valid_read_string(filename); + requires valid_mode: valid_read_string(mode); + ensures + result_null_or_valid_fd: + \result ≡ \null ∨ \subset(\result, &__fc_fopen[0 .. 16 - 1]); assigns \result; assigns \result - \from (indirect: *(s1 + (0 .. n - 1))), - (indirect: *(s2 + (0 .. n - 1))), (indirect: n); + \from (indirect: *(filename + (..))), (indirect: *(mode + (..))), + __fc_p_fopen; */ -int strncmp(char const *s1, char const *s2, size_t n) -{ - int __retres; - { - size_t i = (unsigned int)0; - while (i < n) { - if ((int)*(s1 + i) != (int)*(s2 + i)) { - __retres = (int)*((unsigned char *)s1 + i) - (int)*((unsigned char *)s2 + i); - goto return_label; - } - if ((int)*(s1 + i) == 0) { - __retres = 0; - goto return_label; - } - i += (size_t)1; - } - } - __retres = 0; - return_label: return __retres; -} +extern FILE *fopen(char const * __restrict filename, + char const * __restrict mode); -/*@ requires valid_s1: valid_read_or_empty(s1, n); - requires valid_s2: valid_read_or_empty(s2, n); - requires initialization: s1: \initialized((char *)s1 + (0 .. n - 1)); - requires initialization: s2: \initialized((char *)s2 + (0 .. n - 1)); - requires danglingness: s1: non_escaping(s1, n); - requires danglingness: s2: non_escaping(s2, n); +/*@ requires valid_mode: valid_read_string(mode); ensures - logic_spec: - \result ≡ - memcmp{Pre, Pre}((char *)\old(s1), (char *)\old(s2), \old(n)); - assigns \result; + result_null_or_valid_fd: + \result ≡ \null ∨ \subset(\result, &__fc_fopen[0 .. 16 - 1]); + assigns \result, __fc_fopen[fd]; assigns \result - \from (indirect: *((char *)s1 + (0 .. n - 1))), - (indirect: *((char *)s2 + (0 .. n - 1))); + \from (indirect: fd), (indirect: *(mode + (0 ..))), + (indirect: __fc_fopen[fd]), __fc_p_fopen; + assigns __fc_fopen[fd] + \from (indirect: fd), (indirect: *(mode + (0 ..))), + (indirect: __fc_fopen[fd]), __fc_p_fopen; */ -int memcmp(void const *s1, void const *s2, size_t n) -{ - int __retres; - unsigned char const *p1; - unsigned char const *p2; - p1 = (unsigned char const *)s1; - p2 = (unsigned char const *)s2; - { - size_t i = (unsigned int)0; - while (i < n) { - if ((int)*(p1 + i) != (int)*(p2 + i)) { - __retres = (int)*(p1 + i) - (int)*(p2 + i); - goto return_label; - } - i += (size_t)1; - } - } - __retres = 0; - return_label: return __retres; -} - -static int char_equal_ignore_case(char c1, char c2) -{ - int __retres; - if ((int)c1 >= 'A') - if ((int)c1 <= 'Z') c1 = (char)((int)c1 - ('A' - 'a')); - if ((int)c2 >= 'A') - if ((int)c2 <= 'Z') c2 = (char)((int)c2 - ('A' - 'a')); - if ((int)c1 == (int)c2) { - __retres = 0; - goto return_label; - } - else { - __retres = (int)((unsigned char)c2) - (int)((unsigned char)c1); - goto return_label; - } - return_label: return __retres; -} +extern FILE *fdopen(int fd, char const *mode); -/*@ requires valid_string_s1: valid_read_string(s1); - requires valid_string_s2: valid_read_string(s2); - assigns \result; +/*@ requires valid_filename: valid_read_string(filename); + requires valid_mode: valid_read_string(mode); + requires valid_stream: \valid(stream); + ensures + result_null_or_valid_fd: + \result ≡ \null ∨ \result ∈ &__fc_fopen[0 .. 16 - 1]; + ensures stream_opened: *\old(stream) ∈ __fc_fopen[0 .. 16 - 1]; + assigns \result, *stream; assigns \result - \from (indirect: *(s1 + (0 ..))), (indirect: *(s2 + (0 ..))); + \from (indirect: *(filename + (..))), (indirect: *(mode + (..))), + __fc_p_fopen, (indirect: stream); + assigns *stream + \from (indirect: *(filename + (..))), (indirect: *(mode + (..))), + __fc_p_fopen, (indirect: stream); */ -int strcasecmp(char const *s1, char const *s2) -{ - int __retres; - size_t i; - i = (unsigned int)0; - while (1) { - if ((int)*(s1 + i) != 0) { - if (! ((int)*(s2 + i) != 0)) break; - } - else break; - { - int res = char_equal_ignore_case(*(s1 + i),*(s2 + i)); - if (res != 0) { - __retres = res; - goto return_label; +extern FILE *freopen(char const * __restrict filename, + char const * __restrict mode, FILE * __restrict stream); + +/*@ assigns *stream; + assigns *stream \from buf; */ +extern void setbuf(FILE * __restrict stream, char * __restrict buf); + +/*@ assigns *stream; + assigns *stream \from buf, mode, size; */ +extern int setvbuf(FILE * __restrict stream, char * __restrict buf, int mode, + size_t size); + +/*@ axiomatic format_length { + logic ℤ format_length{L}(char *format) ; + } - } - i += (size_t)1; - } - if ((int)*(s1 + i) == 0) { - if ((int)*(s2 + i) == 0) { - __retres = 0; - goto return_label; - } - else goto _LAND; - } - else { - _LAND: ; - if ((int)*(s1 + i) == 0) { - __retres = -1; - goto return_label; - } - else { - __retres = 1; - goto return_label; - } - } - return_label: return __retres; -} -/*@ requires valid_string_src: valid_read_string(src); - requires valid_string_dest: valid_string(dest); - requires room_string: \valid(dest + (0 .. strlen(dest) + strlen(src))); - ensures - sum_of_lengths: strlen(\old(dest)) ≡ \old(strlen(dest) + strlen(src)); - ensures - initialization: dest: - \initialized(\old(dest) + (0 .. \old(strlen(dest) + strlen(src)))); - ensures - dest_null_terminated: - *(\old(dest) + \old(strlen(dest) + strlen(src))) ≡ 0; - ensures result_ptr: \result ≡ \old(dest); - assigns *(dest + - (strlen{Old}(dest) .. strlen{Old}(dest) + strlen{Old}(src))), - \result; - assigns - *(dest + (strlen{Old}(dest) .. strlen{Old}(dest) + strlen{Old}(src))) - \from *(src + (0 .. strlen{Old}(src))); - assigns \result \from dest; +*/ +/*@ assigns *stream; + assigns *stream \from *(format + (..)), arg; */ +extern int vfprintf(FILE * __restrict stream, char const * __restrict format, + va_list arg); + +/*@ assigns *stream; + assigns *stream \from *(format + (..)), *stream; */ +extern int vfscanf(FILE * __restrict stream, char const * __restrict format, + va_list arg); + +/*@ assigns *__fc_stdout; + assigns *__fc_stdout \from arg; */ +extern int vprintf(char const * __restrict format, va_list arg); + +/*@ assigns *__fc_stdin; + assigns *__fc_stdin \from *(format + (..)); */ +extern int vscanf(char const * __restrict format, va_list arg); + +/*@ assigns *(s + (0 .. n - 1)); + assigns *(s + (0 .. n - 1)) \from *(format + (..)), arg; */ -char *strcat(char *dest, char const *src) -{ - size_t i; - size_t n = strlen((char const *)dest); - i = (unsigned int)0; - while ((int)*(src + i) != 0) { - *(dest + (n + i)) = *(src + i); - i += (size_t)1; - } - *(dest + (n + i)) = (char)0; - return dest; -} +extern int vsnprintf(char * __restrict s, size_t n, + char const * __restrict format, va_list arg); -/*@ requires valid_nstring_src: valid_read_nstring(src, n); - requires valid_string_dest: valid_string(dest); - ensures result_ptr: \result ≡ \old(dest); - assigns *(dest + (strlen{Old}(dest) .. strlen{Old}(dest) + n)), \result; - assigns *(dest + (strlen{Old}(dest) .. strlen{Old}(dest) + n)) - \from *(src + (0 .. n)); - assigns \result \from dest; - - behavior complete: - assumes - valid_string_src_fits: valid_read_string(src) ∧ strlen(src) ≤ n; - requires - room_string: \valid((dest + strlen(dest)) + (0 .. strlen(src))); - ensures - sum_of_lengths: - strlen(\old(dest)) ≡ \old(strlen(dest) + strlen(src)); - assigns *(dest + - (strlen{Old}(dest) .. strlen{Old}(dest) + strlen{Old}(src))), - \result; - assigns - *(dest + (strlen{Old}(dest) .. strlen{Old}(dest) + strlen{Old}(src))) - \from *(src + (0 .. strlen{Old}(src))); - assigns \result \from dest; - - behavior partial: - assumes - valid_string_src_too_large: - ¬(valid_read_string(src) ∧ strlen(src) ≤ n); - requires room_string: \valid((dest + strlen(dest)) + (0 .. n)); - ensures - sum_of_bounded_lengths: - strlen(\old(dest)) ≡ \old(strlen(dest)) + \old(n); - assigns *(dest + (strlen{Old}(dest) .. strlen{Old}(dest) + n)), - \result; - assigns *(dest + (strlen{Old}(dest) .. strlen{Old}(dest) + n)) - \from *(src + (0 .. strlen{Old}(src))); - assigns \result \from dest; +/*@ assigns *(s + (0 ..)); + assigns *(s + (0 ..)) \from *(format + (..)), arg; */ -char *strncat(char *dest, char const *src, size_t n) -{ - size_t i; - size_t dest_len = strlen((char const *)dest); - i = (unsigned int)0; - while (i < n) { - if ((int)*(src + i) == 0) break; - *(dest + (dest_len + i)) = *(src + i); - i += (size_t)1; - } - *(dest + (dest_len + i)) = (char)0; - return dest; -} +extern int vsprintf(char * __restrict s, char const * __restrict format, + va_list arg); -/*@ requires valid_string_src: valid_read_string(src); - requires room_string: \valid(dest + (0 .. strlen(src))); - requires - separation: - \separated(dest + (0 .. strlen(src)), src + (0 .. strlen(src))); - ensures equal_contents: strcmp(\old(dest), \old(src)) ≡ 0; - ensures result_ptr: \result ≡ \old(dest); - assigns *(dest + (0 .. strlen{Old}(src))), \result; - assigns *(dest + (0 .. strlen{Old}(src))) - \from *(src + (0 .. strlen{Old}(src))); - assigns \result \from dest; +/*@ requires valid_stream: \valid(stream); + ensures result_uchar_or_eof: (0 ≤ \result ≤ 255) ∨ \result ≡ -1; + assigns *stream, \result; + assigns *stream \from *stream; + assigns \result \from (indirect: *stream); */ -char *strcpy(char *dest, char const *src) -{ - size_t i; - i = (unsigned int)0; - while ((int)*(src + i) != 0) { - *(dest + i) = *(src + i); - i += (size_t)1; - } - *(dest + i) = (char)0; - return dest; -} +extern int fgetc(FILE *stream); -/*@ requires valid_string_src: valid_read_string(src); - requires room_nstring: \valid(dest + (0 .. n - 1)); - requires separation: \separated(dest + (0 .. n - 1), src + (0 .. n - 1)); - ensures result_ptr: \result ≡ \old(dest); - ensures initialization: \initialized(\old(dest) + (0 .. \old(n) - 1)); - assigns *(dest + (0 .. n - 1)), \result; - assigns *(dest + (0 .. n - 1)) \from *(src + (0 .. n - 1)); - assigns \result \from dest; - - behavior complete: - assumes src_fits: strlen(src) < n; - ensures equal_after_copy: strcmp(\old(dest), \old(src)) ≡ 0; - - behavior partial: - assumes src_too_long: n ≤ strlen(src); - ensures - equal_prefix: - memcmp{Post, Post}(\old(dest), \old(src), \old(n)) ≡ 0; +/*@ requires valid_stream: \valid(stream); + ensures result_null_or_same: \result ≡ \null ∨ \result ≡ \old(s); + ensures + terminated_string_on_success: + \result ≢ \null ⇒ valid_string(\old(s)); + assigns *(s + (0 .. size)), \result; + assigns *(s + (0 .. size)) \from (indirect: size), (indirect: *stream); + assigns \result \from s, (indirect: size), (indirect: *stream); */ -char *strncpy(char *dest, char const *src, size_t n) -{ - size_t i; - i = (unsigned int)0; - while (i < n) { - *(dest + i) = *(src + i); - if ((int)*(src + i) == 0) break; - i += (size_t)1; - } - while (i < n) { - *(dest + i) = (char)0; - i += (size_t)1; - } - return dest; -} +extern char *fgets(char * __restrict s, int size, FILE * __restrict stream); -/*@ requires valid_string_s: valid_read_string(s); - assigns \result; - assigns \result \from s, *(s + (0 ..)), c; - - behavior found: - assumes char_found: strchr(s, c) ≡ \true; - ensures result_char: *\result ≡ (char)\old(c); - ensures result_same_base: \base_addr(\result) ≡ \base_addr(\old(s)); - ensures - result_in_length: \old(s) ≤ \result ≤ \old(s) + strlen(\old(s)); - ensures result_valid_string: valid_read_string(\result); - ensures - result_first_occur: - ∀ char *p; \old(s) ≤ p < \result ⇒ *p ≢ (char)\old(c); - - behavior not_found: - assumes char_not_found: ¬(strchr(s, c) ≡ \true); - ensures result_null: \result ≡ \null; - - behavior default: - ensures - result_null_or_same_base: - \result ≡ \null ∨ \base_addr(\result) ≡ \base_addr(\old(s)); - */ -char *strchr(char const *s, int c) -{ - char *__retres; - size_t i; - char const ch = (char)c; - i = (unsigned int)0; - while ((int)*(s + i) != (int)ch) { - if ((int)*(s + i) == 0) { - __retres = (char *)0; - goto return_label; - } - i += (size_t)1; - } - __retres = (char *)(s + i); - return_label: return __retres; -} +/*@ assigns *stream; */ +extern int fputc(int c, FILE *stream); -/*@ requires valid_string_s: valid_read_string(s); - assigns \result; - assigns \result \from s, *(s + (0 ..)), c; - - behavior found: - assumes char_found: strchr(s, c) ≡ \true; - ensures result_char: (int)*\result ≡ \old(c); - ensures result_same_base: \base_addr(\result) ≡ \base_addr(\old(s)); - ensures result_valid_string: valid_read_string(\result); - - behavior not_found: - assumes char_not_found: ¬(strchr(s, c) ≡ \true); - ensures result_null: \result ≡ \null; - - behavior default: - ensures - result_null_or_same_base: - \result ≡ \null ∨ \base_addr(\result) ≡ \base_addr(\old(s)); +/*@ assigns *stream; + assigns *stream \from *(s + (..)); */ +extern int fputs(char const * __restrict s, FILE * __restrict stream); + +/*@ assigns \result, *stream; + assigns \result \from *stream; + assigns *stream \from *stream; */ -char *strrchr(char const *s, int c) -{ - char *__retres; - char const ch = (char)c; - { - size_t tmp; - tmp = strlen(s); - size_t i = tmp + (size_t)1; - while (i > (size_t)0) { - if ((int)*(s + (i - (size_t)1)) == (int)ch) { - __retres = (char *)(s + (i - (size_t)1)); - goto return_label; - } - i -= (size_t)1; - } - } - __retres = (char *)0; - return_label: return __retres; -} +extern int getc(FILE *stream); -/*@ requires - valid: - valid_read_or_empty(s, n) ∨ - \valid_read((unsigned char *)s + (0 .. memchr_off((char *)s, c, n))); - requires - initialization: - \initialized((unsigned char *)s + (0 .. n - 1)) ∨ - \initialized((unsigned char *)s + (0 .. memchr_off((char *)s, c, n))); - requires - danglingness: - non_escaping(s, n) ∨ - non_escaping(s, (unsigned int)(memchr_off((char *)s, c, n) + 1)); - assigns \result; - assigns \result \from s, c, *((unsigned char *)s + (0 .. n - 1)); - - behavior found: - assumes char_found: memchr((char *)s, c, n) ≡ \true; - ensures result_same_base: \base_addr(\result) ≡ \base_addr(\old(s)); - ensures result_char: (int)*((char *)\result) ≡ \old(c); - ensures - result_in_str: - ∀ ℤ i; - 0 ≤ i < \old(n) ⇒ - *((unsigned char *)\old(s) + i) ≡ \old(c) ⇒ - \result ≤ \old(s) + i; - - behavior not_found: - assumes char_not_found: ¬(memchr((char *)s, c, n) ≡ \true); - ensures result_null: \result ≡ \null; +/*@ assigns \result; + assigns \result \from *__fc_stdin; */ +extern int getchar(void); + +/*@ ensures result_null_or_same: \result ≡ \old(s) ∨ \result ≡ \null; + assigns *(s + (..)), \result; + assigns *(s + (..)) \from *__fc_stdin; + assigns \result \from s, __fc_stdin; */ -void *memchr(void const *s, int c, size_t n) -{ - void *__retres; - unsigned char const ch = (unsigned char)c; - unsigned char const *ss = (unsigned char const *)s; - { - size_t i = (unsigned int)0; - while (i < n) { - if ((int)*(ss + i) == (int)ch) { - __retres = (void *)(ss + i); - goto return_label; - } - i += (size_t)1; - } - } - __retres = (void *)0; - return_label: return __retres; -} +extern char *gets(char *s); -void *memrchr(void const *s, int c, size_t n) -{ - void *__retres; - unsigned char const ch = (unsigned char)c; - unsigned char const *ss = (unsigned char const *)s; - { - size_t i = n; - while (i > (size_t)0) { - if ((int)*(ss + (i - (size_t)1)) == (int)ch) { - __retres = (void *)(ss + (i - (size_t)1)); - goto return_label; - } - i -= (size_t)1; - } - } - __retres = (void *)0; - return_label: return __retres; -} +/*@ assigns *stream; + assigns *stream \from c; */ +extern int putc(int c, FILE *stream); -/*@ requires valid_string_haystack: valid_read_string(haystack); - requires valid_string_needle: valid_read_string(needle); +/*@ assigns *__fc_stdout; + assigns *__fc_stdout \from c; */ +extern int putchar(int c); + +/*@ assigns *__fc_stdout; + assigns *__fc_stdout \from *(s + (..)); */ +extern int puts(char const *s); + +/*@ assigns *stream; + assigns *stream \from c; */ +extern int ungetc(int c, FILE *stream); + +/*@ requires valid_ptr_block: \valid((char *)ptr + (0 .. nmemb * size - 1)); + requires valid_stream: \valid(stream); + ensures size_read: \result ≤ \old(nmemb); ensures - result_null_or_in_haystack: - \result ≡ \null ∨ - (\subset(\result, \old(haystack) + (0 ..)) ∧ - \valid_read(\result) ∧ - memcmp{Pre, Pre}(\result, \old(needle), strlen(\old(needle))) ≡ 0); - assigns \result; - assigns \result - \from haystack, (indirect: *(haystack + (0 ..))), - (indirect: *(needle + (0 ..))); + initialization: + \initialized((char *)\old(ptr) + (0 .. \result * \old(size) - 1)); + assigns *((char *)ptr + (0 .. nmemb * size - 1)), \result; + assigns *((char *)ptr + (0 .. nmemb * size - 1)) + \from size, nmemb, *stream; + assigns \result \from size, *stream; */ -char *strstr(char const *haystack, char const *needle) -{ - char *__retres; - if ((int)*(needle + 0) == 0) { - __retres = (char *)haystack; - goto return_label; - } - { - size_t i = (unsigned int)0; - while ((int)*(haystack + i) != 0) { - { - size_t j; - j = (unsigned int)0; - while ((int)*(haystack + (i + j)) != 0) { - if ((int)*(haystack + (i + j)) != (int)*(needle + j)) break; - j += (size_t)1; - } - if ((int)*(needle + j) == 0) { - __retres = (char *)(haystack + i); - goto return_label; - } - } - i += (size_t)1; - } - } - __retres = (char *)0; - return_label: return __retres; -} +extern size_t fread(void * __restrict ptr, size_t size, size_t nmemb, + FILE * __restrict stream); -static int __fc_strerror_init; -/*@ ensures result_internal_str: \result ≡ __fc_p_strerror; - ensures result_nul_terminated: *(\result + 63) ≡ 0; - ensures result_valid_string: valid_read_string(\result); - assigns \result; - assigns \result \from __fc_p_strerror, (indirect: errnum); +/*@ requires + valid_ptr_block: \valid_read((char *)ptr + (0 .. nmemb * size - 1)); + requires valid_stream: \valid(stream); + ensures size_written: \result ≤ \old(nmemb); + assigns *stream, \result; + assigns *stream \from *((char *)ptr + (0 .. nmemb * size - 1)); + assigns \result \from *((char *)ptr + (0 .. nmemb * size - 1)); */ -char *strerror(int errnum) -{ - char *__retres; - if (! __fc_strerror_init) { - Frama_C_make_unknown(__fc_strerror,(unsigned int)63); - __fc_strerror[63] = (char)0; - __fc_strerror_init = 1; - } - __retres = __fc_strerror; - return __retres; -} +extern size_t fwrite(void const * __restrict ptr, size_t size, size_t nmemb, + FILE * __restrict stream); -/*@ requires valid_string_s: valid_read_string(s); - assigns \result; - assigns \result - \from (indirect: *(s + (0 .. strlen{Old}(s)))), - (indirect: __fc_heap_status); - allocates \result; - - behavior allocation: - assumes can_allocate: is_allocable(strlen(s)); - ensures allocation: \fresh{Old, Here}(\result,strlen(\old(s))); - ensures - result_valid_string_and_same_contents: - valid_string(\result) ∧ strcmp(\result, \old(s)) ≡ 0; - assigns __fc_heap_status, \result; - assigns __fc_heap_status \from (indirect: s), __fc_heap_status; - assigns \result - \from (indirect: *(s + (0 .. strlen{Old}(s)))), - (indirect: __fc_heap_status); - - behavior no_allocation: - assumes cannot_allocate: ¬is_allocable(strlen(s)); - ensures result_null: \result ≡ \null; - assigns \result; - assigns \result \from \nothing; - allocates \nothing; - */ -char *strdup(char const *s) -{ - char *__retres; - size_t tmp; - tmp = strlen(s); - size_t l = tmp + (size_t)1; - char *p = malloc(l); - if (! p) { - __fc_errno = 12; - __retres = (char *)0; - goto return_label; - } - memcpy((void *)p,(void const *)s,l); - __retres = p; - return_label: return __retres; -} +/*@ assigns *pos; + assigns *pos \from *stream; */ +extern int fgetpos(FILE * __restrict stream, fpos_t * __restrict pos); -/*@ assigns \result; +/*@ requires valid_stream: \valid(stream); + requires whence_enum: whence ≡ 0 ∨ whence ≡ 1 ∨ whence ≡ 2; + assigns *stream, \result, __fc_errno; + assigns *stream \from *stream, (indirect: offset), (indirect: whence); assigns \result - \from (indirect: *(s + (0 .. strlen{Old}(s)))), (indirect: n), - (indirect: __fc_heap_status); - allocates \result; - - behavior allocation: - assumes can_allocate: is_allocable(\min(strlen(s), n + 1)); - ensures - allocation: - \fresh{Old, Here}(\result,\min(strlen(\old(s)), \old(n) + 1)); - ensures - result_valid_string_bounded_and_same_prefix: - \valid(\result + (0 .. \min(strlen(\old(s)), \old(n)))) ∧ - valid_string(\result) ∧ strlen(\result) ≤ \old(n) ∧ - strncmp(\result, \old(s), \old(n)) ≡ 0; - assigns __fc_heap_status, \result; - assigns __fc_heap_status - \from (indirect: s), (indirect: n), __fc_heap_status; - assigns \result - \from (indirect: *(s + (0 .. strlen{Old}(s)))), (indirect: n), - (indirect: __fc_heap_status); - - behavior no_allocation: - assumes cannot_allocate: ¬is_allocable(\min(strlen(s), n + 1)); - ensures result_null: \result ≡ \null; - assigns \result; - assigns \result \from \nothing; - allocates \nothing; + \from (indirect: *stream), (indirect: offset), (indirect: whence); + assigns __fc_errno + \from (indirect: *stream), (indirect: offset), (indirect: whence); */ -char *strndup(char const *s, size_t n) -{ - char *__retres; - size_t l; - l = (unsigned int)0; - while (l < n) { - if ((int)*(s + l) == 0) break; - l += (size_t)1; - } - char *p = malloc(l + (size_t)1); - if (! p) { - __fc_errno = 12; - __retres = (char *)0; - goto return_label; - } - memcpy((void *)p,(void const *)s,l); - *(p + l) = (char)0; - __retres = p; - return_label: return __retres; -} +extern int fseek(FILE *stream, long offset, int whence); -static int __fc_strsignal_init; -/*@ ensures result_internal_str: \result ≡ __fc_p_strsignal; - ensures result_nul_terminated: *(\result + 63) ≡ 0; - ensures result_valid_string: valid_read_string(\result); - assigns \result; - assigns \result \from __fc_p_strsignal, (indirect: signum); +/*@ assigns *stream; + assigns *stream \from *pos; */ +extern int fsetpos(FILE *stream, fpos_t const *pos); + +/*@ requires valid_stream: \valid(stream); + ensures + success_or_error: + \result ≡ -1 ∨ + (\result ≥ 0 ∧ __fc_errno ≡ \old(__fc_errno)); + assigns \result, __fc_errno; + assigns \result \from (indirect: *stream); + assigns __fc_errno \from (indirect: *stream); */ -char *strsignal(int signum) -{ - char *__retres; - if (! __fc_strsignal_init) { - Frama_C_make_unknown(__fc_strsignal,(unsigned int)63); - __fc_strsignal[63] = (char)0; - __fc_strsignal_init = 1; - } - __retres = __fc_strsignal; - return __retres; -} +extern long ftell(FILE *stream); + +/*@ assigns *stream; + assigns *stream \from \nothing; */ +extern void rewind(FILE *stream); + +/*@ assigns *stream; + assigns *stream \from \nothing; */ +extern void clearerr(FILE *stream); -/*@ ghost unsigned int volatile __fc_time __attribute__((__FRAMA_C_MODEL__)); - */ /*@ assigns \result; - assigns \result \from __fc_time; */ -extern clock_t clock(void); + assigns \result \from *stream; */ +extern int feof(FILE *stream); /*@ assigns \result; - assigns \result \from time1, time0; */ -extern double difftime(time_t time1, time_t time0); + assigns \result \from *stream; */ +extern int fileno(FILE *stream); -/*@ assigns *timeptr, \result; - assigns *timeptr \from *timeptr; - assigns \result \from *timeptr; +/*@ assigns *stream; + assigns *stream \from \nothing; */ +extern void flockfile(FILE *stream); + +/*@ assigns *stream; + assigns *stream \from \nothing; */ +extern void funlockfile(FILE *stream); + +/*@ assigns \result, *stream; + assigns \result \from \nothing; + assigns *stream \from \nothing; */ -extern time_t mktime(struct tm *timeptr); +extern int ftrylockfile(FILE *stream); -/*@ assigns *timer, \result; - assigns *timer \from __fc_time; - assigns \result \from __fc_time; - - behavior null: - assumes timer_null: timer ≡ \null; - assigns \result; - assigns \result \from __fc_time; - - behavior not_null: - assumes timer_non_null: timer ≢ \null; - requires valid_timer: \valid(timer); - ensures initialization: timer: \initialized(\old(timer)); - assigns *timer, \result; - assigns *timer \from __fc_time; - assigns \result \from __fc_time; - - complete behaviors not_null, null; - disjoint behaviors not_null, null; +/*@ assigns \result; + assigns \result \from *stream; */ +extern int ferror(FILE *stream); + +/*@ assigns __fc_stdout; + assigns __fc_stdout \from __fc_errno, *(s + (..)); */ -extern time_t time(time_t *timer); +extern void perror(char const *s); -char __fc_ctime[26]; -char * const __fc_p_ctime = __fc_ctime; -/*@ requires valid_timer: \valid_read(timer); - requires initialization: init_timer: \initialized(timer); - ensures result_points_to_ctime: \result ≡ __fc_p_ctime; - ensures result_valid_string: valid_read_string(__fc_p_ctime); - assigns __fc_ctime[0 .. 25], \result; - assigns __fc_ctime[0 .. 25] - \from (indirect: *timer), (indirect: __fc_time); - assigns \result - \from (indirect: *timer), (indirect: __fc_time), __fc_p_ctime; - */ -extern char *ctime(time_t const *timer); - -struct tm __fc_time_tm; -struct tm * const __fc_p_time_tm = & __fc_time_tm; -/*@ ensures - result_null_or_internal_tm: - \result ≡ &__fc_time_tm ∨ \result ≡ \null; - assigns \result, __fc_time_tm; - assigns \result \from __fc_p_time_tm; - assigns __fc_time_tm \from *timer; +/*@ assigns \result, *stream; + assigns \result \from *stream; + assigns *stream \from *stream; */ -extern struct tm *gmtime(time_t const *timer); +extern int getc_unlocked(FILE *stream); -/*@ ensures - result_null_or_internal_tm: - \result ≡ &__fc_time_tm ∨ \result ≡ \null; - assigns \result, __fc_time_tm; - assigns \result \from __fc_p_time_tm; - assigns __fc_time_tm \from *timer; - */ -extern struct tm *localtime(time_t const *timer); +/*@ assigns \result; + assigns \result \from *__fc_stdin; */ +extern int getchar_unlocked(void); -/*@ requires dst_has_room: \valid(s + (0 .. max - 1)); - requires valid_format: valid_read_string(format); - requires valid_tm: \valid_read(tm); - ensures result_bounded: \result ≤ \old(max); - assigns *(s + (0 .. max - 1)), \result; - assigns *(s + (0 .. max - 1)) - \from (indirect: max), (indirect: *(format + (0 ..))), (indirect: *tm); - assigns \result - \from (indirect: max), (indirect: *(format + (0 ..))), (indirect: *tm); - */ -extern size_t strftime(char * __restrict s, size_t max, - char const * __restrict format, - struct tm const * __restrict tm); +/*@ assigns *stream; + assigns *stream \from c; */ +extern int putc_unlocked(int c, FILE *stream); -/*@ requires tp: \valid(tp); - assigns \result, *tp, __fc_time; - assigns \result \from __fc_time; - assigns *tp \from __fc_time; - assigns __fc_time \from __fc_time; - - behavior realtime_clock: - assumes realtime: clk_id ≡ 666; - ensures success: \result ≡ 0; - ensures initialization: \initialized(\old(tp)); - - behavior monotonic_clock: - assumes monotonic: clk_id ≡ 1; - ensures success: \result ≡ 0; - ensures initialization: \initialized(\old(tp)); - - behavior bad_clock_id: - assumes bad_id: clk_id ≢ 666 ∧ clk_id ≢ 1; - ensures error: \result ≡ 22; - assigns \result; - assigns \result \from clk_id; - - complete behaviors bad_clock_id, monotonic_clock, realtime_clock; - disjoint behaviors bad_clock_id, monotonic_clock, realtime_clock; - */ -extern int clock_gettime(clockid_t clk_id, struct timespec *tp); +/*@ assigns *__fc_stdout; + assigns *__fc_stdout \from c; */ +extern int putchar_unlocked(int c); -/*@ -axiomatic nanosleep_predicates { - predicate abs_clock_in_range{L}(clockid_t id, struct timespec *tm) - reads __fc_time; - - predicate valid_clock_id{L}(clockid_t id) - reads __fc_time; - - } +/*@ assigns *stream; + assigns *stream \from \nothing; */ +extern void clearerr_unlocked(FILE *stream); -*/ -/*@ ghost int volatile __fc_interrupted __attribute__((__FRAMA_C_MODEL__)); - */ -/*@ requires valid_request: \valid_read(rqtp); - requires - initialization: initialized_request: - \initialized(&rqtp->tv_sec) ∧ \initialized(&rqtp->tv_nsec); - requires valid_nanosecs: 0 ≤ rqtp->tv_nsec < 1000000000; - requires valid_remaining_or_null: rmtp ≡ \null ∨ \valid(rmtp); - assigns \result; - assigns \result - \from (indirect: __fc_time), (indirect: __fc_interrupted), - (indirect: clock_id), (indirect: flags), (indirect: rqtp), - (indirect: *rqtp); - - behavior absolute: - assumes absolute_time: (flags & 1) ≢ 0; - assumes - no_einval: - abs_clock_in_range(clock_id, rqtp) ∧ valid_clock_id(clock_id); - ensures - result_ok_or_error: - \result ≡ 0 ∨ \result ≡ 4 ∨ \result ≡ 22 ∨ - \result ≡ 95; - assigns \result; - assigns \result - \from (indirect: __fc_time), (indirect: __fc_interrupted), - (indirect: clock_id), (indirect: rqtp), (indirect: *rqtp); - - behavior relative_interrupted: - assumes relative_time: (flags & 1) ≡ 0; - assumes interrupted: __fc_interrupted ≢ 0; - assumes no_einval: valid_clock_id(clock_id); - ensures result_interrupted: \result ≡ 4; - ensures - initialization: interrupted_remaining: - \old(rmtp) ≢ \null ⇒ - \initialized(&\old(rmtp)->tv_sec) ∧ - \initialized(&\old(rmtp)->tv_nsec); - ensures - interrupted_remaining_decreases: - \old(rmtp) ≢ \null ⇒ - \old(rqtp)->tv_sec * 1000000000 + \old(rqtp)->tv_nsec ≥ - \old(rmtp)->tv_sec * 1000000000 + \old(rmtp)->tv_nsec; - ensures - remaining_valid: - \old(rmtp) ≢ \null ⇒ 0 ≤ \old(rmtp)->tv_nsec < 1000000000; - assigns \result, *rmtp; - assigns \result - \from (indirect: __fc_time), (indirect: clock_id), (indirect: rqtp), - (indirect: *rqtp); - assigns *rmtp - \from __fc_time, (indirect: clock_id), (indirect: rqtp), - (indirect: *rqtp), (indirect: rmtp); - - behavior relative_no_error: - assumes relative_time: (flags & 1) ≡ 0; - assumes not_interrupted: __fc_interrupted ≡ 0; - assumes no_einval: valid_clock_id(clock_id); - ensures result_ok: \result ≡ 0; - assigns \result; - assigns \result - \from (indirect: __fc_time), (indirect: clock_id), (indirect: rqtp), - (indirect: *rqtp); - - behavior relative_invalid_clock_id: - assumes relative_time: (flags & 1) ≡ 0; - assumes not_interrupted: __fc_interrupted ≡ 0; - assumes einval: ¬valid_clock_id(clock_id); - ensures result_einval: \result ≡ 22; - assigns \result; - assigns \result - \from (indirect: __fc_time), (indirect: clock_id), (indirect: rqtp), - (indirect: *rqtp); - - complete behaviors relative_invalid_clock_id, - relative_no_error, - relative_interrupted, - absolute; - disjoint behaviors relative_invalid_clock_id, - relative_no_error, - relative_interrupted, - absolute; - */ -extern int clock_nanosleep(clockid_t clock_id, int flags, - struct timespec const *rqtp, struct timespec *rmtp); +/*@ assigns \result; + assigns \result \from *stream; */ +extern int feof_unlocked(FILE *stream); -/*@ requires valid_request: \valid_read(rqtp); - requires - initialization: initialized_request: - \initialized(&rqtp->tv_sec) ∧ \initialized(&rqtp->tv_nsec); - requires valid_nanosecs: 0 ≤ rqtp->tv_nsec < 1000000000; - requires valid_remaining_or_null: rmtp ≡ \null ∨ \valid(rmtp); - ensures result_elapsed_or_interrupted: \result ≡ 0 ∨ \result ≡ -1; - ensures - initialization: interrupted_remaining: - \old(rmtp) ≢ \null ∧ \result ≡ -1 ⇒ - \initialized(&\old(rmtp)->tv_sec) ∧ - \initialized(&\old(rmtp)->tv_nsec); - ensures - interrupted_remaining_decreases: - \old(rmtp) ≢ \null ∧ \result ≡ -1 ⇒ - \old(rqtp)->tv_sec * 1000000000 + \old(rqtp)->tv_nsec ≥ - \old(rmtp)->tv_sec * 1000000000 + \old(rmtp)->tv_nsec; - ensures - interrupted_remaining_valid: - \old(rmtp) ≢ \null ∧ \result ≡ -1 ⇒ - 0 ≤ \old(rmtp)->tv_nsec < 1000000000; - assigns \result, *rmtp; - assigns \result - \from (indirect: __fc_time), (indirect: rqtp), (indirect: *rqtp); - assigns *rmtp - \from (indirect: __fc_time), (indirect: rqtp), (indirect: *rqtp), - (indirect: rmtp); - */ -extern int nanosleep(struct timespec const *rqtp, struct timespec *rmtp); +/*@ assigns \result; + assigns \result \from *stream; */ +extern int ferror_unlocked(FILE *stream); -extern void tzset(void); +/*@ assigns \result; + assigns \result \from *stream; */ +extern int fileno_unlocked(FILE *stream); -extern char *tzname[2]; +/*@ axiomatic pipe_streams { + predicate is_open_pipe{L}(FILE *stream) ; + + } -/*@ assigns *(tzname[0 .. 1] + (0 ..)); - assigns *(tzname[0 .. 1] + (0 ..)) \from \nothing; +*/ +/*@ requires valid_command: valid_read_string(command); + requires valid_type: valid_read_string(type); + ensures + result_error_or_valid_open_pipe: + \result ≡ \null ∨ + (\subset(\result, &__fc_fopen[0 .. 16 - 1]) ∧ is_open_pipe(\result)); + assigns \result, __fc_fopen[0 ..]; + assigns \result + \from (indirect: *command), (indirect: *type), __fc_p_fopen; + assigns __fc_fopen[0 ..] + \from (indirect: *command), (indirect: *type), __fc_fopen[0 ..]; */ -extern void tzset(void); +extern FILE *popen(char const *command, char const *type); -/*@ ensures - result_null_or_inside_s: - \result ≡ \null ∨ \subset(\result, \old(s) + (0 .. \old(n) - 1)); +/*@ requires valid_stream: \valid(stream); + requires open_pipe: is_open_pipe(stream); + ensures closed_stream: ¬is_open_pipe(\old(stream)); assigns \result; - assigns \result - \from s, (indirect: *(s + (0 .. n - 1))), (indirect: c), (indirect: n); + assigns \result \from (indirect: *stream); */ -extern wchar_t *wmemchr(wchar_t const *s, wchar_t c, size_t n); +extern int pclose(FILE *stream); -/*@ assigns \result; - assigns \result - \from (indirect: *(s1 + (0 .. n - 1))), - (indirect: *(s2 + (0 .. n - 1))), (indirect: n); - */ -extern int wmemcmp(wchar_t const *s1, wchar_t const *s2, size_t n); - -wchar_t *wmemcpy(wchar_t *dest, wchar_t const *src, size_t n); - -/*@ ensures result_ptr: \result ≡ \old(dest); - assigns *(dest + (0 .. n - 1)), \result; - assigns *(dest + (0 .. n - 1)) - \from *(src + (0 .. n - 1)), (indirect: src), (indirect: n); - assigns \result \from dest; - */ -extern wchar_t *wmemmove(wchar_t *dest, wchar_t const *src, size_t n); - -wchar_t *wmemset(wchar_t *dest, wchar_t val, size_t len); +ssize_t getline(char **lineptr, size_t *n, FILE *stream); -wchar_t *wcscat(wchar_t *dest, wchar_t const *src); +FILE __fc_initial_stdout = + {.__fc_FILE_id = (unsigned int)1, .__fc_FILE_data = 0U}; +FILE *__fc_stdout = & __fc_initial_stdout; +FILE __fc_initial_stderr = + {.__fc_FILE_id = (unsigned int)2, .__fc_FILE_data = 0U}; +FILE *__fc_stderr = & __fc_initial_stderr; +FILE __fc_initial_stdin = + {.__fc_FILE_id = (unsigned int)0, .__fc_FILE_data = 0U}; +FILE *__fc_stdin = & __fc_initial_stdin; +ssize_t getline(char **lineptr, size_t *n, FILE *stream) +{ + ssize_t __retres; + int tmp; + if (! lineptr) goto _LOR; + else + if (! n) goto _LOR; + else + if (! stream) { + _LOR: { + __fc_errno = 22; + __retres = -1; + goto return_label; + } + } + tmp = ferror(stream); + if (tmp) goto _LOR_0; + else { + int tmp_0; + tmp_0 = feof(stream); + if (tmp_0) { + _LOR_0: { + __retres = -1; + goto return_label; + } + } + } + if (! *lineptr) goto _LOR_1; + else + if (*n == (size_t)0) { + _LOR_1: + { + *lineptr = (char *)malloc((unsigned int)2); + if (! lineptr) { + __fc_errno = 12; + __retres = -1; + goto return_label; + } + *n = (unsigned int)2; + } + } + size_t cur = (unsigned int)0; + while (1) { + int tmp_3; + tmp_3 = ferror(stream); + if (tmp_3) break; + else { + int tmp_4; + tmp_4 = feof(stream); + if (tmp_4) break; + } + { + while (cur < *n - (size_t)1) { + int tmp_1; + tmp_1 = fgetc(stream); + char c = (char)tmp_1; + if ((int)c == -1) + if (cur == (size_t)0) { + __retres = -1; + goto return_label; + } + if ((int)c != -1) { + size_t tmp_2; + tmp_2 = cur; + cur += (size_t)1; + *(*lineptr + tmp_2) = c; + } + if ((int)c == '\n') goto _LOR_2; + else + if ((int)c == -1) { + _LOR_2: + { + *(*lineptr + cur) = (char)'\000'; + __retres = (int)cur; + goto return_label; + } + } + } + if (*n == (size_t)2147483647) { + __fc_errno = 75; + __retres = -1; + goto return_label; + } + size_t new_size = *n + (size_t)1; + *lineptr = (char *)realloc((void *)*lineptr,new_size); + if (! *lineptr) { + __fc_errno = 12; + __retres = -1; + goto return_label; + } + *n = new_size; + } + } + __retres = -1; + return_label: return __retres; +} -/*@ requires valid_wstring_src: valid_read_wstring(wcs); - ensures - result_null_or_inside_wcs: - \result ≡ \null ∨ \subset(\result, \old(wcs) + (0 ..)); +/*@ requires abs_representable: i > -2147483647 - 1; assigns \result; - assigns \result \from wcs, (indirect: *(wcs + (0 ..))), (indirect: wc); + assigns \result \from i; + + behavior negative: + assumes negative: i < 0; + ensures opposite_result: \result ≡ -\old(i); + + behavior nonnegative: + assumes nonnegative: i ≥ 0; + ensures same_result: \result ≡ \old(i); + + complete behaviors nonnegative, negative; + disjoint behaviors nonnegative, negative; */ -extern wchar_t *wcschr(wchar_t const *wcs, wchar_t wc); +int abs(int i) +{ + int __retres; + if (i < 0) { + __retres = - i; + goto return_label; + } + __retres = i; + return_label: return __retres; +} -/*@ assigns \result; - assigns \result - \from (indirect: *(s1 + (0 ..))), (indirect: *(s2 + (0 ..))); +/*@ requires valid_nptr: \valid_read(p); + assigns \result; + assigns \result \from (indirect: p), (indirect: *(p + (0 ..))); */ -extern int wcscmp(wchar_t const *s1, wchar_t const *s2); - -wchar_t *wcscpy(wchar_t *dest, wchar_t const *src); +int atoi(char const *p) +{ + int __retres; + int n; + int c; + int tmp_1; + int tmp_3; + int neg = 0; + unsigned char *up = (unsigned char *)p; + c = (int)*up; + tmp_1 = isdigit(c); + if (! tmp_1) { + int tmp_0; + while (1) { + int tmp; + tmp = isspace(c); + if (! tmp) break; + up ++; + c = (int)*up; + } + switch (c) { + case '-': neg ++; + case '+': { /* sequence */ + up ++; + c = (int)*up; + } + } + tmp_0 = isdigit(c); + if (! tmp_0) { + __retres = 0; + goto return_label; + } + } + n = '0' - c; + while (1) { + int tmp_2; + up ++; + c = (int)*up; + tmp_2 = isdigit(c); + if (! tmp_2) break; + n *= 10; + n += '0' - c; + } + if (neg) tmp_3 = n; else tmp_3 = - n; + __retres = tmp_3; + return_label: return __retres; +} -/*@ assigns \result; +/*@ assigns __fc_heap_status, \result; + assigns __fc_heap_status + \from (indirect: nmemb), (indirect: size), __fc_heap_status; assigns \result - \from (indirect: *(wcs + (0 ..))), (indirect: *(accept + (0 ..))); + \from (indirect: nmemb), (indirect: size), (indirect: __fc_heap_status); + allocates \result; + + behavior allocation: + assumes can_allocate: is_allocable(nmemb * size); + ensures + allocation: \fresh{Old, Here}(\result,\old(nmemb) * \old(size)); + ensures + initialization: + \initialized((char *)\result + (0 .. \old(nmemb) * \old(size) - 1)); + ensures + zero_initialization: + \subset(*((char *)\result + (0 .. \old(nmemb) * \old(size) - 1)), + {0}); + + behavior no_allocation: + assumes cannot_allocate: ¬is_allocable(nmemb * size); + ensures null_result: \result ≡ \null; + assigns \result; + assigns \result \from \nothing; + allocates \nothing; + + complete behaviors no_allocation, allocation; + disjoint behaviors no_allocation, allocation; */ -extern size_t wcscspn(wchar_t const *wcs, wchar_t const *accept); +void *calloc(size_t nmemb, size_t size) +{ + void *__retres; + size_t l = nmemb * size; + if (size != (size_t)0) + if (l / size != nmemb) { + __retres = (void *)0; + goto return_label; + } + char *p = malloc(l); + if (p) memset((void *)p,0,l); + __retres = (void *)p; + return_label: return __retres; +} -/*@ assigns *(dest + (0 ..)), \result; - assigns *(dest + (0 ..)) - \from *(dest + (0 ..)), (indirect: dest), *(src + (0 .. n - 1)), - (indirect: src), (indirect: n); - assigns \result - \from (indirect: *(dest + (0 ..))), (indirect: *(src + (0 .. n - 1))), - (indirect: n); - */ -extern size_t wcslcat(wchar_t * __restrict dest, - wchar_t const * __restrict src, size_t n); - -/*@ requires - separation: dest: src: - \separated(dest + (0 .. n - 1), src + (0 .. n - 1)); - assigns *(dest + (0 .. n - 1)), \result; - assigns *(dest + (0 .. n - 1)) - \from *(src + (0 .. n - 1)), (indirect: src), (indirect: n); - assigns \result - \from (indirect: *(dest + (0 .. n - 1))), (indirect: dest), - (indirect: *(src + (0 .. n - 1))), (indirect: src), (indirect: n); - */ -extern size_t wcslcpy(wchar_t *dest, wchar_t const *src, size_t n); - -size_t wcslen(wchar_t const *str); - -wchar_t *wcsncat(wchar_t *dest, wchar_t const *src, size_t n); - -/*@ assigns \result; - assigns \result - \from (indirect: *(s1 + (0 .. n - 1))), - (indirect: *(s2 + (0 .. n - 1))), (indirect: n); - */ -extern int wcsncmp(wchar_t const *s1, wchar_t const *s2, size_t n); - -wchar_t *wcsncpy(wchar_t *dest, wchar_t const *src, size_t n); - -/*@ ensures - result_null_or_inside_wcs: - \result ≡ \null ∨ \subset(\result, \old(wcs) + (0 ..)); - assigns \result; - assigns \result - \from wcs, (indirect: *(wcs + (0 ..))), (indirect: *(accept + (0 ..))); - */ -extern wchar_t *wcspbrk(wchar_t const *wcs, wchar_t const *accept); - -/*@ ensures - result_null_or_inside_wcs: - \result ≡ \null ∨ \subset(\result, \old(wcs) + (0 ..)); - assigns \result; - assigns \result \from wcs, (indirect: *(wcs + (0 ..))), (indirect: wc); - */ -extern wchar_t *wcsrchr(wchar_t const *wcs, wchar_t wc); - -/*@ assigns \result; - assigns \result - \from (indirect: *(wcs + (0 ..))), (indirect: *(accept + (0 ..))); - */ -extern size_t wcsspn(wchar_t const *wcs, wchar_t const *accept); - -/*@ ensures - result_null_or_inside_haystack: - \result ≡ \null ∨ \subset(\result, \old(haystack) + (0 ..)); - assigns \result; - assigns \result - \from haystack, (indirect: *(haystack + (0 ..))), - (indirect: *(needle + (0 ..))); - */ -extern wchar_t *wcsstr(wchar_t const *haystack, wchar_t const *needle); - -/*@ requires valid_stream: \valid(stream); - ensures result_null_or_same: \result ≡ \null ∨ \result ≡ \old(ws); - ensures - terminated_string_on_success: - \result ≢ \null ⇒ valid_wstring(\old(ws)); - assigns *(ws + (0 .. n)), \result; - assigns *(ws + (0 .. n)) \from (indirect: n), (indirect: *stream); - assigns \result \from ws, (indirect: n), (indirect: *stream); - */ -extern wchar_t *fgetws(wchar_t * __restrict ws, int n, - FILE * __restrict stream); - -/*@ axiomatic wformat_length { - logic ℤ wformat_length{L}(wchar_t *format) ; - +static char __fc_env_strings[64]; +static char __fc_initenv_init; +static void __fc_initenv(void) +{ + if (! __fc_initenv_init) { + Frama_C_make_unknown(__fc_env_strings,(unsigned int)(64 - 1)); + { + int i = 0; + while (i < 4096) { + { + int tmp; + tmp = Frama_C_interval(0,64 - 1); + __fc_env[i] = & __fc_env_strings[tmp]; + } + i ++; } + } + __fc_initenv_init = (char)1; + } + return; +} -*/ -/*@ requires - separation: dest: src: - \separated(dest + (0 .. n - 1), src + (0 .. n - 1)); - ensures result_ptr: \result ≡ \old(dest); - assigns *(dest + (0 .. n - 1)), \result; - assigns *(dest + (0 .. n - 1)) - \from *(src + (0 .. n - 1)), (indirect: src), (indirect: n); - assigns \result \from dest; +/*@ requires valid_name: valid_read_string(name); + ensures null_or_valid_result: \result ≡ \null ∨ \valid(\result); + assigns \result; + assigns \result \from __fc_env[0 ..], (indirect: name), *(name + (0 ..)); */ -wchar_t *wmemcpy(wchar_t *dest, wchar_t const *src, size_t n) +char *getenv(char const *name) { - { - size_t i = (unsigned int)0; - while (i < n) { - *(dest + i) = *(src + i); - i += (size_t)1; - } + char *__retres; + int tmp_0; + /*@ assert ¬(strchr(name, '=') ≡ \true); */ ; + __fc_initenv(); + tmp_0 = Frama_C_nondet(0,1); + if (tmp_0) { + int tmp; + tmp = Frama_C_interval(0,4096 - 1); + ; + __retres = __fc_env[tmp]; + goto return_label; } - return dest; + else { + __retres = (char *)0; + goto return_label; + } + return_label: return __retres; } -/*@ ensures result_ptr: \result ≡ \old(dest); - ensures - initialization: wcs: \initialized(\old(dest) + (0 .. \old(len) - 1)); - ensures - contents_equal_wc: - \subset(*(\old(dest) + (0 .. \old(len) - 1)), \old(val)); - assigns *(dest + (0 .. len - 1)), \result; - assigns *(dest + (0 .. len - 1)) \from val, (indirect: len); - assigns \result \from dest; +/*@ requires valid_string: valid_read_string(string); + assigns __fc_env[0 ..], \result; + assigns __fc_env[0 ..] \from __fc_env[0 ..], string; + assigns \result \from (indirect: __fc_env[0 ..]), (indirect: string); */ -wchar_t *wmemset(wchar_t *dest, wchar_t val, size_t len) +int putenv(char *string) { - { - size_t i = (unsigned int)0; - while (i < len) { - *(dest + i) = val; - i += (size_t)1; + int __retres; + int tmp_3; + char *separator = strchr((char const *)string,'='); + /*@ assert string_contains_separator: separator ≢ \null; */ ; + /*@ assert name_is_not_empty: separator ≢ string; */ ; + __fc_initenv(); + tmp_3 = Frama_C_nondet(0,1); + if (tmp_3) { + int tmp_1; + int tmp_2; + tmp_1 = Frama_C_nondet(0,1); + if (tmp_1) { + int tmp_0; + tmp_0 = Frama_C_interval(-2147483647 - 1,2147483647); + __retres = tmp_0; + goto return_label; } + tmp_2 = Frama_C_interval(0,4096 - 1); + __fc_env[tmp_2] = string; } - return dest; + __retres = 0; + return_label: return __retres; } -/*@ ensures result_ptr: \result ≡ \old(dest); - assigns *(dest + (0 ..)), \result; - assigns *(dest + (0 ..)) - \from *(src + (0 ..)), (indirect: src), *(dest + (0 ..)), - (indirect: dest); - assigns \result \from dest; +/*@ requires valid_name: valid_read_string(name); + requires valid_value: valid_read_string(value); + ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; + assigns \result, __fc_env[0 ..]; + assigns \result + \from __fc_env[0 ..], (indirect: name), (indirect: *(name + (0 ..))), + (indirect: value), (indirect: *(value + (0 ..))), + (indirect: overwrite); + assigns __fc_env[0 ..] + \from __fc_env[0 ..], (indirect: name), (indirect: *(name + (0 ..))), + (indirect: value), (indirect: *(value + (0 ..))), + (indirect: overwrite); */ -wchar_t *wcscpy(wchar_t *dest, wchar_t const *src) +int setenv(char const *name, char const *value, int overwrite) { - size_t i; - i = (unsigned int)0; - while (*(src + i) != 0) { - *(dest + i) = *(src + i); - i += (size_t)1; + int __retres; + char *tmp; + int tmp_4; + tmp = strchr(name,'='); + if (tmp) { + __retres = -1; + goto return_label; } - *(dest + i) = 0; - return dest; + size_t namelen = strlen(name); + if (namelen == (size_t)0) { + __retres = -1; + goto return_label; + } + __fc_initenv(); + tmp_4 = Frama_C_nondet(0,1); + if (tmp_4) { + __retres = -1; + goto return_label; + } + else { + int tmp_1; + int tmp_2; + int tmp_3; + tmp_1 = Frama_C_nondet(0,1); + if (tmp_1) Frama_C_make_unknown(__fc_env_strings,(unsigned int)(64 - 1)); + tmp_2 = Frama_C_interval(0,4096 - 1); + tmp_3 = Frama_C_interval(0,64 - 1); + __fc_env[tmp_2] = & __fc_env_strings[tmp_3]; + __retres = 0; + goto return_label; + } + return_label: return __retres; } -/*@ requires valid_string_s: valid_read_wstring(str); - assigns \result; - assigns \result \from (indirect: *(str + (0 ..))); +/*@ requires valid_name: valid_read_string(name); + ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; + assigns \result, __fc_env[0 ..]; + assigns \result + \from __fc_env[0 ..], (indirect: name), (indirect: *(name + (0 ..))); + assigns __fc_env[0 ..] + \from __fc_env[0 ..], (indirect: name), (indirect: *(name + (0 ..))); */ -size_t wcslen(wchar_t const *str) +int unsetenv(char const *name) { - size_t i; - i = (unsigned int)0; - while (*(str + i) != 0) i += (size_t)1; - return i; -} - -/*@ requires - separation: dest: src: - \separated(dest + (0 .. n - 1), src + (0 .. n - 1)); - ensures result_ptr: \result ≡ \old(dest); - assigns *(dest + (0 .. n - 1)), \result; - assigns *(dest + (0 .. n - 1)) - \from *(src + (0 .. n - 1)), (indirect: src), (indirect: n); - assigns \result \from dest; - */ -wchar_t *wcsncpy(wchar_t *dest, wchar_t const *src, size_t n) -{ - size_t i; - i = (unsigned int)0; - while (i < n) { - *(dest + i) = *(src + i); - if (*(src + i) == 0) break; - i += (size_t)1; + int __retres; + char *tmp; + int tmp_2; + tmp = strchr(name,'='); + if (tmp) { + __retres = -1; + goto return_label; } - while (i < n) { - *(dest + i) = 0; - i += (size_t)1; + size_t namelen = strlen(name); + if (namelen == (size_t)0) { + __retres = -1; + goto return_label; } - return dest; + __fc_initenv(); + tmp_2 = Frama_C_nondet(0,1); + if (tmp_2) { + int tmp_1; + tmp_1 = Frama_C_interval(0,4096 - 1); + __fc_env[tmp_1] = (char *)0; + } + __retres = 0; + return_label: return __retres; } -/*@ ensures result_ptr: \result ≡ \old(dest); - assigns *(dest + (0 ..)), \result; - assigns *(dest + (0 ..)) - \from *(dest + (0 ..)), (indirect: dest), *(src + (0 ..)), - (indirect: src); - assigns \result \from dest; +/*@ requires valid_memptr: \valid(memptr); + requires + alignment_is_a_suitable_power_of_two: + alignment ≥ sizeof(void *) ∧ + ((size_t)alignment & ((size_t)alignment - 1)) ≡ 0; + assigns __fc_heap_status, \result; + assigns __fc_heap_status + \from (indirect: alignment), size, __fc_heap_status; + assigns \result + \from (indirect: alignment), (indirect: size), + (indirect: __fc_heap_status); + allocates *\old(memptr); + + behavior allocation: + assumes can_allocate: is_allocable(size); + ensures allocation: \fresh{Old, Here}(*\old(memptr),\old(size)); + ensures result_zero: \result ≡ 0; + assigns __fc_heap_status, \result; + assigns __fc_heap_status + \from (indirect: alignment), size, __fc_heap_status; + assigns \result + \from (indirect: alignment), (indirect: size), + (indirect: __fc_heap_status); + + behavior no_allocation: + assumes cannot_allocate: ¬is_allocable(size); + ensures result_non_zero: \result < 0 ∨ \result > 0; + assigns \result; + assigns \result \from (indirect: alignment); + allocates \nothing; + + complete behaviors no_allocation, allocation; + disjoint behaviors no_allocation, allocation; */ -wchar_t *wcscat(wchar_t *dest, wchar_t const *src) +int posix_memalign(void **memptr, size_t alignment, size_t size) { - size_t i; - size_t n = wcslen((wchar_t const *)dest); - i = (unsigned int)0; - while (*(src + i) != 0) { - *(dest + (n + i)) = *(src + i); - i += (size_t)1; + int __retres; + /*@ + assert + alignment_is_a_suitable_power_of_two: + alignment ≥ sizeof(void *) ∧ + ((size_t)alignment & ((size_t)alignment - 1)) ≡ 0; + */ + ; + *memptr = malloc(size); + if (! *memptr) { + __retres = 12; + goto return_label; } - *(dest + (n + i)) = 0; - return dest; + __retres = 0; + return_label: return __retres; } -/*@ ensures result_ptr: \result ≡ \old(dest); - assigns *(dest + (0 ..)), \result; - assigns *(dest + (0 ..)) - \from *(dest + (0 ..)), (indirect: dest), *(src + (0 .. n - 1)), - (indirect: src), (indirect: n); +/*@ requires valid_dest: valid_or_empty(dest, n); + requires valid_src: valid_read_or_empty(src, n); + requires + separation: + \separated((char *)dest + (0 .. n - 1), (char *)src + (0 .. n - 1)); + ensures + copied_contents: + memcmp{Post, Pre}((char *)\old(dest), (char *)\old(src), \old(n)) ≡ + 0; + ensures result_ptr: \result ≡ \old(dest); + assigns *((char *)dest + (0 .. n - 1)), \result; + assigns *((char *)dest + (0 .. n - 1)) + \from *((char *)src + (0 .. n - 1)); assigns \result \from dest; */ -wchar_t *wcsncat(wchar_t *dest, wchar_t const *src, size_t n) +void *memcpy(void * __restrict dest, void const * __restrict src, size_t n) { - size_t i; - size_t dest_len = wcslen((wchar_t const *)dest); - i = (unsigned int)0; - while (1) { - if (i < n) { - if (! (*(src + i) != 0)) break; + { + size_t i = (unsigned int)0; + /*@ loop invariant no_eva: 0 ≤ i ≤ n; + loop invariant + no_eva: + ∀ ℤ k; + 0 ≤ k < i ⇒ *((char *)dest + k) ≡ *((char *)src + k); + loop assigns i, *((char *)dest + (0 .. n - 1)); + loop variant n - i; + */ + while (i < n) { + *((char *)dest + i) = *((char *)src + i); + i += (size_t)1; } - else break; - *(dest + (dest_len + i)) = *(src + i); - i += (size_t)1; } - *(dest + (dest_len + i)) = 0; return dest; } -/*@ ghost extern int __fc_stack_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ ensures allocation: \fresh{Old, Here}(\result,\old(size)); - assigns __fc_stack_status, \result; - assigns __fc_stack_status \from size, __fc_stack_status; - assigns \result \from (indirect: size), (indirect: __fc_stack_status); - allocates \result; - */ -extern void *alloca(size_t size); - -DIR __fc_opendir[16]; -DIR * const __fc_p_opendir = __fc_opendir; -/*@ requires - dirp_valid_dir_stream: \subset(dirp, &__fc_opendir[0 .. 16 - 1]); - ensures - err_or_closed_on_success: - (\result ≡ 0 ∧ \old(dirp)->__fc_dir_inode ≡ \null) ∨ - \result ≡ -1; - assigns \result, __fc_errno, *dirp; - assigns \result \from dirp, *dirp, __fc_p_opendir; - assigns __fc_errno \from dirp, *dirp, __fc_p_opendir; - assigns *dirp \from dirp, *dirp, __fc_p_opendir; +/*@ assigns \result; + assigns \result \from (indirect: p), (indirect: q), (indirect: n); + + behavior separated: + assumes + separation: no_overlap: + \separated(p + (0 .. n - 1), q + (0 .. n - 1)); + ensures result_no_overlap: \result ≡ 0; + + behavior not_separated_lt: + assumes + separation: overlap: ¬\separated(p + (0 .. n - 1), q + (0 .. n - 1)); + assumes p_before_q: p ≤ q < p + n; + ensures result_p_before_q: \result ≡ -1; + + behavior not_separated_gt: + assumes + separation: overlap: ¬\separated(p + (0 .. n - 1), q + (0 .. n - 1)); + assumes p_after_q: q < p ≤ q + n; + ensures result_p_after_q: \result ≡ 1; + + complete behaviors not_separated_gt, not_separated_lt, separated; + disjoint behaviors not_separated_gt, not_separated_lt, separated; */ -extern int closedir(DIR *dirp); +static int memoverlap(char const *p, char const *q, size_t n) +{ + int __retres; + uintptr_t p1 = (unsigned int)p; + uintptr_t p2 = (unsigned int)(p + n); + uintptr_t q1 = (unsigned int)q; + uintptr_t q2 = (unsigned int)(q + n); + if (p1 <= q1) { + if (p2 > q1) { + __retres = -1; + goto return_label; + } + else goto _LAND; + } + else { + _LAND: ; + if (q1 <= p1) + if (q2 > p1) { + __retres = 1; + goto return_label; + } + else { + __retres = 0; + goto return_label; + } + else { + __retres = 0; + goto return_label; + } + } + return_label: return __retres; +} -/*@ ensures result_null_or_valid: \result ≡ \null ∨ \valid(\result); - ensures - valid_dir_stream_on_success: - \result ≢ \null ⇒ \result ≡ &__fc_opendir[\result->__fc_dir_id]; +/*@ requires valid_dest: valid_or_empty(dest, n); + requires valid_src: valid_read_or_empty(src, n); ensures - stream_positioned_on_success: - \result ≢ \null ⇒ \result->__fc_dir_inode ≢ \null; - assigns \result, __fc_errno; - assigns \result \from *(path + (0 ..)), __fc_p_opendir; - assigns __fc_errno \from *(path + (0 ..)), __fc_p_opendir; - */ -extern DIR *opendir(char const *path); - -/*@ requires - dirp_valid_dir_stream: \subset(dirp, &__fc_opendir[0 .. 16 - 1]); - ensures result_null_or_valid: \result ≡ \null ∨ \valid(\result); - assigns \result, dirp->__fc_dir_position, __fc_errno; - assigns \result \from *dirp, __fc_p_opendir; - assigns dirp->__fc_dir_position \from dirp->__fc_dir_position; - assigns __fc_errno \from dirp, *dirp, __fc_p_opendir; + copied_contents: + memcmp{Post, Pre}((char *)\old(dest), (char *)\old(src), \old(n)) ≡ + 0; + ensures result_ptr: \result ≡ \old(dest); + assigns *((char *)dest + (0 .. n - 1)), \result; + assigns *((char *)dest + (0 .. n - 1)) + \from *((char *)src + (0 .. n - 1)); + assigns \result \from dest; */ -extern struct dirent *readdir(DIR *dirp); - -/*@ requires valid_fdset: \valid(fdset); - requires initialization: \initialized(fdset); - assigns *fdset; - assigns *fdset \from *fdset, (indirect: fd); - */ -extern void FD_CLR(int fd, fd_set *fdset); +void *memmove(void *dest, void const *src, size_t n) +{ + void *__retres; + int tmp; + if (n == (size_t)0) { + __retres = dest; + goto return_label; + } + char *s = (char *)src; + char *d = (char *)dest; + tmp = memoverlap((char const *)dest,(char const *)src,n); + if (tmp <= 0) { + size_t i = (unsigned int)0; + /*@ loop invariant no_eva: 0 ≤ i ≤ n; + loop invariant + no_eva: + ∀ ℤ k; + 0 ≤ k < i ⇒ + *((char *)dest + k) ≡ \at(*((char *)src + k),LoopEntry); + loop invariant + no_eva: + ∀ ℤ k; + i ≤ k < n ⇒ + *((char *)src + k) ≡ \at(*((char *)src + k),LoopEntry); + loop assigns i, *((char *)dest + (0 .. n - 1)); + loop variant n - i; + */ + while (i < n) { + *(d + i) = *(s + i); + i += (size_t)1; + } + } + else { + { + size_t i_0 = n - (size_t)1; + /*@ loop invariant no_eva: 0 ≤ i_0 < n; + loop invariant + no_eva: + ∀ ℤ k; + i_0 < k < n ⇒ + *((char *)dest + k) ≡ \at(*((char *)src + k),LoopEntry); + loop invariant + no_eva: + ∀ ℤ k; + 0 ≤ k ≤ i_0 ⇒ + *((char *)src + k) ≡ \at(*((char *)src + k),LoopEntry); + loop assigns i_0, *((char *)dest + (0 .. n - 1)); + loop variant i_0; + */ + while (i_0 > (size_t)0) { + *(d + i_0) = *(s + i_0); + i_0 -= (size_t)1; + } + } + *(d + 0) = *(s + 0); + } + __retres = dest; + return_label: return __retres; +} -/*@ requires valid_fdset: \valid_read(fdset); - requires initialization: \initialized(fdset); +/*@ requires valid_string_s: valid_read_string(s); + ensures acsl_c_equiv: \result ≡ strlen(\old(s)); assigns \result; - assigns \result \from (indirect: *fdset), (indirect: fd); - */ -extern int FD_ISSET(int fd, fd_set const *fdset); - -/*@ requires valid_fdset: \valid(fdset); - requires initialization: \initialized(fdset); - assigns *fdset; - assigns *fdset \from *fdset, (indirect: fd); - */ -extern void FD_SET(int fd, fd_set *fdset); - -/*@ requires valid_fdset: \valid(fdset); - ensures initialization: \initialized(\old(fdset)); - assigns *fdset; - assigns *fdset \from \nothing; + assigns \result \from (indirect: *(s + (0 ..))); */ -extern void FD_ZERO(fd_set *fdset); +size_t strlen(char const *s) +{ + size_t i; + i = (unsigned int)0; + while ((int)*(s + i) != 0) i += (size_t)1; + return i; +} -/*@ requires valid_res: \valid(res); - ensures initialization: res: \initialized(\old(res)); - ensures res_wrapped: *\old(res) ≡ (int)(\old(a) + \old(b)); +/*@ requires valid_string_s: valid_read_nstring(s, maxlen); ensures - result_overflow: - \old(a) + \old(b) ≡ (int)(\old(a) + \old(b))? - \result ≡ 0: - \result ≡ 1; - assigns \result, *res; - assigns \result \from a, b; - assigns *res \from a, b; + result_bounded: + \result ≡ strlen(\old(s)) ∨ \result ≡ \old(maxlen); + assigns \result; + assigns \result + \from (indirect: *(s + (0 .. maxlen - 1))), (indirect: maxlen); */ -_Bool __builtin_sadd_overflow(int a, int b, int *res); +size_t strnlen(char const *s, size_t maxlen) +{ + size_t i; + i = (unsigned int)0; + while (1) { + if (i < maxlen) { + if (! ((int)*(s + i) != 0)) break; + } + else break; + i += (size_t)1; + } + return i; +} -/*@ requires valid_res: \valid(res); - ensures initialization: res: \initialized(\old(res)); - ensures res_wrapped: *\old(res) ≡ (long)(\old(a) + \old(b)); +/*@ requires valid_s: valid_or_empty(s, n); ensures - result_overflow: - \old(a) + \old(b) ≡ (long)(\old(a) + \old(b))? - \result ≡ 0: - \result ≡ 1; - assigns \result, *res; - assigns \result \from a, b; - assigns *res \from a, b; + acsl_c_equiv: memset((char *)\old(s), \old(c), \old(n)) ≡ \true; + ensures result_ptr: \result ≡ \old(s); + assigns *((char *)s + (0 .. n - 1)), \result; + assigns *((char *)s + (0 .. n - 1)) \from c; + assigns \result \from s; */ -_Bool __builtin_saddl_overflow(long a, long b, long *res); +void *memset(void *s, int c, size_t n) +{ + unsigned char *p = (unsigned char *)s; + { + size_t i = (unsigned int)0; + while (i < n) { + *(p + i) = (unsigned char)c; + i += (size_t)1; + } + } + return s; +} -/*@ requires valid_res: \valid(res); - ensures initialization: res: \initialized(\old(res)); - ensures res_wrapped: *\old(res) ≡ (long long)(\old(a) + \old(b)); - ensures - result_overflow: - \old(a) + \old(b) ≡ (long long)(\old(a) + \old(b))? - \result ≡ 0: - \result ≡ 1; - assigns \result, *res; - assigns \result \from a, b; - assigns *res \from a, b; +/*@ requires valid_string_s1: valid_read_string(s1); + requires valid_string_s2: valid_read_string(s2); + ensures acsl_c_equiv: \result ≡ strcmp(\old(s1), \old(s2)); + assigns \result; + assigns \result + \from (indirect: *(s1 + (0 ..))), (indirect: *(s2 + (0 ..))); */ -_Bool __builtin_saddll_overflow(long long a, long long b, long long *res); +int strcmp(char const *s1, char const *s2) +{ + int __retres; + size_t i; + i = (unsigned int)0; + while ((int)*(s1 + i) == (int)*(s2 + i)) { + if ((int)*(s1 + i) == 0) { + __retres = 0; + goto return_label; + } + i += (size_t)1; + } + __retres = (int)*((unsigned char *)s1 + i) - (int)*((unsigned char *)s2 + i); + return_label: return __retres; +} -/*@ requires valid_res: \valid(res); - ensures initialization: res: \initialized(\old(res)); - ensures res_wrapped: *\old(res) ≡ (unsigned int)(\old(a) + \old(b)); - ensures - result_overflow: - \old(a) + \old(b) ≡ (unsigned int)(\old(a) + \old(b))? - \result ≡ 0: - \result ≡ 1; - assigns \result, *res; - assigns \result \from a, b; - assigns *res \from a, b; +/*@ requires valid_string_s1: valid_read_nstring(s1, n); + requires valid_string_s2: valid_read_nstring(s2, n); + ensures acsl_c_equiv: \result ≡ strncmp(\old(s1), \old(s2), \old(n)); + assigns \result; + assigns \result + \from (indirect: *(s1 + (0 .. n - 1))), + (indirect: *(s2 + (0 .. n - 1))), (indirect: n); */ -_Bool __builtin_uadd_overflow(unsigned int a, unsigned int b, - unsigned int *res); +int strncmp(char const *s1, char const *s2, size_t n) +{ + int __retres; + { + size_t i = (unsigned int)0; + while (i < n) { + if ((int)*(s1 + i) != (int)*(s2 + i)) { + __retres = (int)*((unsigned char *)s1 + i) - (int)*((unsigned char *)s2 + i); + goto return_label; + } + if ((int)*(s1 + i) == 0) { + __retres = 0; + goto return_label; + } + i += (size_t)1; + } + } + __retres = 0; + return_label: return __retres; +} -/*@ requires valid_res: \valid(res); - ensures initialization: res: \initialized(\old(res)); - ensures res_wrapped: *\old(res) ≡ (unsigned long)(\old(a) + \old(b)); +/*@ requires valid_s1: valid_read_or_empty(s1, n); + requires valid_s2: valid_read_or_empty(s2, n); + requires initialization: s1: \initialized((char *)s1 + (0 .. n - 1)); + requires initialization: s2: \initialized((char *)s2 + (0 .. n - 1)); + requires danglingness: s1: non_escaping(s1, n); + requires danglingness: s2: non_escaping(s2, n); ensures - result_overflow: - \old(a) + \old(b) ≡ (unsigned long)(\old(a) + \old(b))? - \result ≡ 0: - \result ≡ 1; - assigns \result, *res; - assigns \result \from a, b; - assigns *res \from a, b; + logic_spec: + \result ≡ + memcmp{Pre, Pre}((char *)\old(s1), (char *)\old(s2), \old(n)); + assigns \result; + assigns \result + \from (indirect: *((char *)s1 + (0 .. n - 1))), + (indirect: *((char *)s2 + (0 .. n - 1))); */ -_Bool __builtin_uaddl_overflow(unsigned long a, unsigned long b, - unsigned long *res); - -/*@ requires valid_res: \valid(res); - ensures initialization: res: \initialized(\old(res)); - ensures - res_wrapped: *\old(res) ≡ (unsigned long long)(\old(a) + \old(b)); - ensures - result_overflow: - \old(a) + \old(b) ≡ (unsigned long long)(\old(a) + \old(b))? - \result ≡ 0: - \result ≡ 1; - assigns \result, *res; - assigns \result \from a, b; - assigns *res \from a, b; - */ -_Bool __builtin_uaddll_overflow(unsigned long long a, unsigned long long b, - unsigned long long *res); +int memcmp(void const *s1, void const *s2, size_t n) +{ + int __retres; + unsigned char const *p1; + unsigned char const *p2; + p1 = (unsigned char const *)s1; + p2 = (unsigned char const *)s2; + { + size_t i = (unsigned int)0; + while (i < n) { + if ((int)*(p1 + i) != (int)*(p2 + i)) { + __retres = (int)*(p1 + i) - (int)*(p2 + i); + goto return_label; + } + i += (size_t)1; + } + } + __retres = 0; + return_label: return __retres; +} -/*@ requires valid_res: \valid(res); - ensures initialization: res: \initialized(\old(res)); - ensures res_wrapped: *\old(res) ≡ (int)(\old(a) - \old(b)); - ensures - result_overflow: - \old(a) - \old(b) ≡ (int)(\old(a) - \old(b))? - \result ≡ 0: - \result ≡ 1; - assigns \result, *res; - assigns \result \from a, b; - assigns *res \from a, b; - */ -_Bool __builtin_ssub_overflow(int a, int b, int *res); +static int char_equal_ignore_case(char c1, char c2) +{ + int __retres; + if ((int)c1 >= 'A') + if ((int)c1 <= 'Z') c1 = (char)((int)c1 - ('A' - 'a')); + if ((int)c2 >= 'A') + if ((int)c2 <= 'Z') c2 = (char)((int)c2 - ('A' - 'a')); + if ((int)c1 == (int)c2) { + __retres = 0; + goto return_label; + } + else { + __retres = (int)((unsigned char)c2) - (int)((unsigned char)c1); + goto return_label; + } + return_label: return __retres; +} -/*@ requires valid_res: \valid(res); - ensures initialization: res: \initialized(\old(res)); - ensures res_wrapped: *\old(res) ≡ (long)(\old(a) - \old(b)); - ensures - result_overflow: - \old(a) - \old(b) ≡ (long)(\old(a) - \old(b))? - \result ≡ 0: - \result ≡ 1; - assigns \result, *res; - assigns \result \from a, b; - assigns *res \from a, b; +/*@ requires valid_string_s1: valid_read_string(s1); + requires valid_string_s2: valid_read_string(s2); + assigns \result; + assigns \result + \from (indirect: *(s1 + (0 ..))), (indirect: *(s2 + (0 ..))); */ -_Bool __builtin_ssubl_overflow(long a, long b, long *res); +int strcasecmp(char const *s1, char const *s2) +{ + int __retres; + size_t i; + i = (unsigned int)0; + while (1) { + if ((int)*(s1 + i) != 0) { + if (! ((int)*(s2 + i) != 0)) break; + } + else break; + { + int res = char_equal_ignore_case(*(s1 + i),*(s2 + i)); + if (res != 0) { + __retres = res; + goto return_label; + } + } + i += (size_t)1; + } + if ((int)*(s1 + i) == 0) { + if ((int)*(s2 + i) == 0) { + __retres = 0; + goto return_label; + } + else goto _LAND; + } + else { + _LAND: ; + if ((int)*(s1 + i) == 0) { + __retres = -1; + goto return_label; + } + else { + __retres = 1; + goto return_label; + } + } + return_label: return __retres; +} -/*@ requires valid_res: \valid(res); - ensures initialization: res: \initialized(\old(res)); - ensures res_wrapped: *\old(res) ≡ (long long)(\old(a) - \old(b)); +/*@ requires valid_string_src: valid_read_string(src); + requires valid_string_dest: valid_string(dest); + requires room_string: \valid(dest + (0 .. strlen(dest) + strlen(src))); ensures - result_overflow: - \old(a) - \old(b) ≡ (long long)(\old(a) - \old(b))? - \result ≡ 0: - \result ≡ 1; - assigns \result, *res; - assigns \result \from a, b; - assigns *res \from a, b; - */ -_Bool __builtin_ssubll_overflow(long long a, long long b, long long *res); - -/*@ requires valid_res: \valid(res); - ensures initialization: res: \initialized(\old(res)); - ensures res_wrapped: *\old(res) ≡ (unsigned int)(\old(a) - \old(b)); + sum_of_lengths: strlen(\old(dest)) ≡ \old(strlen(dest) + strlen(src)); ensures - result_overflow: - \old(a) - \old(b) ≡ (unsigned int)(\old(a) - \old(b))? - \result ≡ 0: - \result ≡ 1; - assigns \result, *res; - assigns \result \from a, b; - assigns *res \from a, b; - */ -_Bool __builtin_usub_overflow(unsigned int a, unsigned int b, - unsigned int *res); - -/*@ requires valid_res: \valid(res); - ensures initialization: res: \initialized(\old(res)); - ensures res_wrapped: *\old(res) ≡ (unsigned long)(\old(a) - \old(b)); + initialization: dest: + \initialized(\old(dest) + (0 .. \old(strlen(dest) + strlen(src)))); ensures - result_overflow: - \old(a) - \old(b) ≡ (unsigned long)(\old(a) - \old(b))? - \result ≡ 0: - \result ≡ 1; - assigns \result, *res; - assigns \result \from a, b; - assigns *res \from a, b; + dest_null_terminated: + *(\old(dest) + \old(strlen(dest) + strlen(src))) ≡ 0; + ensures result_ptr: \result ≡ \old(dest); + assigns *(dest + + (strlen{Old}(dest) .. strlen{Old}(dest) + strlen{Old}(src))), + \result; + assigns + *(dest + (strlen{Old}(dest) .. strlen{Old}(dest) + strlen{Old}(src))) + \from *(src + (0 .. strlen{Old}(src))); + assigns \result \from dest; */ -_Bool __builtin_usubl_overflow(unsigned long a, unsigned long b, - unsigned long *res); +char *strcat(char *dest, char const *src) +{ + size_t i; + size_t n = strlen((char const *)dest); + i = (unsigned int)0; + while ((int)*(src + i) != 0) { + *(dest + (n + i)) = *(src + i); + i += (size_t)1; + } + *(dest + (n + i)) = (char)0; + return dest; +} -/*@ requires valid_res: \valid(res); - ensures initialization: res: \initialized(\old(res)); - ensures - res_wrapped: *\old(res) ≡ (unsigned long long)(\old(a) - \old(b)); - ensures - result_overflow: - \old(a) - \old(b) ≡ (unsigned long long)(\old(a) - \old(b))? - \result ≡ 0: - \result ≡ 1; - assigns \result, *res; - assigns \result \from a, b; - assigns *res \from a, b; +/*@ requires valid_nstring_src: valid_read_nstring(src, n); + requires valid_string_dest: valid_string(dest); + ensures result_ptr: \result ≡ \old(dest); + assigns *(dest + (strlen{Old}(dest) .. strlen{Old}(dest) + n)), \result; + assigns *(dest + (strlen{Old}(dest) .. strlen{Old}(dest) + n)) + \from *(src + (0 .. n)); + assigns \result \from dest; + + behavior complete: + assumes + valid_string_src_fits: valid_read_string(src) ∧ strlen(src) ≤ n; + requires + room_string: \valid((dest + strlen(dest)) + (0 .. strlen(src))); + ensures + sum_of_lengths: + strlen(\old(dest)) ≡ \old(strlen(dest) + strlen(src)); + assigns *(dest + + (strlen{Old}(dest) .. strlen{Old}(dest) + strlen{Old}(src))), + \result; + assigns + *(dest + (strlen{Old}(dest) .. strlen{Old}(dest) + strlen{Old}(src))) + \from *(src + (0 .. strlen{Old}(src))); + assigns \result \from dest; + + behavior partial: + assumes + valid_string_src_too_large: + ¬(valid_read_string(src) ∧ strlen(src) ≤ n); + requires room_string: \valid((dest + strlen(dest)) + (0 .. n)); + ensures + sum_of_bounded_lengths: + strlen(\old(dest)) ≡ \old(strlen(dest)) + \old(n); + assigns *(dest + (strlen{Old}(dest) .. strlen{Old}(dest) + n)), + \result; + assigns *(dest + (strlen{Old}(dest) .. strlen{Old}(dest) + n)) + \from *(src + (0 .. strlen{Old}(src))); + assigns \result \from dest; */ -_Bool __builtin_usubll_overflow(unsigned long long a, unsigned long long b, - unsigned long long *res); +char *strncat(char *dest, char const *src, size_t n) +{ + size_t i; + size_t dest_len = strlen((char const *)dest); + i = (unsigned int)0; + while (i < n) { + if ((int)*(src + i) == 0) break; + *(dest + (dest_len + i)) = *(src + i); + i += (size_t)1; + } + *(dest + (dest_len + i)) = (char)0; + return dest; +} -/*@ requires valid_res: \valid(res); - ensures initialization: res: \initialized(\old(res)); - ensures res_wrapped: *\old(res) ≡ (int)(\old(a) * \old(b)); - ensures - result_overflow: - \old(a) * \old(b) ≡ (int)(\old(a) * \old(b))? - \result ≡ 0: - \result ≡ 1; - assigns \result, *res; - assigns \result \from a, b; - assigns *res \from a, b; - */ -_Bool __builtin_smul_overflow(int a, int b, int *res); - -/*@ requires valid_res: \valid(res); - ensures initialization: res: \initialized(\old(res)); - ensures res_wrapped: *\old(res) ≡ (long)(\old(a) * \old(b)); - ensures - result_overflow: - \old(a) * \old(b) ≡ (long)(\old(a) * \old(b))? - \result ≡ 0: - \result ≡ 1; - assigns \result, *res; - assigns \result \from a, b; - assigns *res \from a, b; - */ -_Bool __builtin_smull_overflow(long a, long b, long *res); - -/*@ requires valid_res: \valid(res); - ensures initialization: res: \initialized(\old(res)); - ensures res_wrapped: *\old(res) ≡ (long long)(\old(a) * \old(b)); - ensures - result_overflow: - \old(a) * \old(b) ≡ (long long)(\old(a) * \old(b))? - \result ≡ 0: - \result ≡ 1; - assigns \result, *res; - assigns \result \from a, b; - assigns *res \from a, b; - */ -_Bool __builtin_smulll_overflow(long long a, long long b, long long *res); - -/*@ requires valid_res: \valid(res); - ensures initialization: res: \initialized(\old(res)); - ensures res_wrapped: *\old(res) ≡ (unsigned int)(\old(a) * \old(b)); - ensures - result_overflow: - \old(a) * \old(b) ≡ (unsigned int)(\old(a) * \old(b))? - \result ≡ 0: - \result ≡ 1; - assigns \result, *res; - assigns \result \from a, b; - assigns *res \from a, b; - */ -_Bool __builtin_umul_overflow(unsigned int a, unsigned int b, - unsigned int *res); - -/*@ requires valid_res: \valid(res); - ensures initialization: res: \initialized(\old(res)); - ensures res_wrapped: *\old(res) ≡ (unsigned long)(\old(a) * \old(b)); - ensures - result_overflow: - \old(a) * \old(b) ≡ (unsigned long)(\old(a) * \old(b))? - \result ≡ 0: - \result ≡ 1; - assigns \result, *res; - assigns \result \from a, b; - assigns *res \from a, b; - */ -_Bool __builtin_umull_overflow(unsigned long a, unsigned long b, - unsigned long *res); - -/*@ requires valid_res: \valid(res); - ensures initialization: res: \initialized(\old(res)); - ensures - res_wrapped: *\old(res) ≡ (unsigned long long)(\old(a) * \old(b)); - ensures - result_overflow: - \old(a) * \old(b) ≡ (unsigned long long)(\old(a) * \old(b))? - \result ≡ 0: - \result ≡ 1; - assigns \result, *res; - assigns \result \from a, b; - assigns *res \from a, b; - */ -_Bool __builtin_umulll_overflow(unsigned long long a, unsigned long long b, - unsigned long long *res); - -/*@ requires valid_filename: valid_read_string(filename); - assigns \result; - assigns \result \from (indirect: *(filename + (0 ..))), (indirect: mode); +/*@ requires valid_string_src: valid_read_string(src); + requires room_string: \valid(dest + (0 .. strlen(src))); + requires + separation: + \separated(dest + (0 .. strlen(src)), src + (0 .. strlen(src))); + ensures equal_contents: strcmp(\old(dest), \old(src)) ≡ 0; + ensures result_ptr: \result ≡ \old(dest); + assigns *(dest + (0 .. strlen{Old}(src))), \result; + assigns *(dest + (0 .. strlen{Old}(src))) + \from *(src + (0 .. strlen{Old}(src))); + assigns \result \from dest; */ -extern int creat(char const *filename, mode_t mode); - -/*@ assigns \result; - assigns \result \from fd, cmd; */ -extern int fcntl(int fd, int cmd, void * const *__va_params); +char *strcpy(char *dest, char const *src) +{ + size_t i; + i = (unsigned int)0; + while ((int)*(src + i) != 0) { + *(dest + i) = *(src + i); + i += (size_t)1; + } + *(dest + i) = (char)0; + return dest; +} -/*@ requires valid_filename: valid_read_string(filename); - assigns \result; - assigns \result - \from (indirect: *(filename + (0 ..))), (indirect: flags); +/*@ requires valid_string_src: valid_read_string(src); + requires room_nstring: \valid(dest + (0 .. n - 1)); + requires separation: \separated(dest + (0 .. n - 1), src + (0 .. n - 1)); + ensures result_ptr: \result ≡ \old(dest); + ensures initialization: \initialized(\old(dest) + (0 .. \old(n) - 1)); + assigns *(dest + (0 .. n - 1)), \result; + assigns *(dest + (0 .. n - 1)) \from *(src + (0 .. n - 1)); + assigns \result \from dest; + + behavior complete: + assumes src_fits: strlen(src) < n; + ensures equal_after_copy: strcmp(\old(dest), \old(src)) ≡ 0; + + behavior partial: + assumes src_too_long: n ≤ strlen(src); + ensures + equal_prefix: + memcmp{Post, Post}(\old(dest), \old(src), \old(n)) ≡ 0; */ -extern int open(char const *filename, int flags, void * const *__va_params); +char *strncpy(char *dest, char const *src, size_t n) +{ + size_t i; + i = (unsigned int)0; + while (i < n) { + *(dest + i) = *(src + i); + if ((int)*(src + i) == 0) break; + i += (size_t)1; + } + while (i < n) { + *(dest + i) = (char)0; + i += (size_t)1; + } + return dest; +} -/*@ requires valid_filename: valid_read_string(filename); +/*@ requires valid_string_s: valid_read_string(s); assigns \result; - assigns \result - \from (indirect: dirfd), (indirect: *(filename + (0 ..))), - (indirect: flags); + assigns \result \from s, *(s + (0 ..)), c; + + behavior found: + assumes char_found: strchr(s, c) ≡ \true; + ensures result_char: *\result ≡ (char)\old(c); + ensures result_same_base: \base_addr(\result) ≡ \base_addr(\old(s)); + ensures + result_in_length: \old(s) ≤ \result ≤ \old(s) + strlen(\old(s)); + ensures result_valid_string: valid_read_string(\result); + ensures + result_first_occur: + ∀ char *p; \old(s) ≤ p < \result ⇒ *p ≢ (char)\old(c); + + behavior not_found: + assumes char_not_found: ¬(strchr(s, c) ≡ \true); + ensures result_null: \result ≡ \null; + + behavior default: + ensures + result_null_or_same_base: + \result ≡ \null ∨ \base_addr(\result) ≡ \base_addr(\old(s)); */ -extern int openat(int dirfd, char const *filename, int flags, - void * const *__va_params); +char *strchr(char const *s, int c) +{ + char *__retres; + size_t i; + char const ch = (char)c; + i = (unsigned int)0; + while ((int)*(s + i) != (int)ch) { + if ((int)*(s + i) == 0) { + __retres = (char *)0; + goto return_label; + } + i += (size_t)1; + } + __retres = (char *)(s + i); + return_label: return __retres; +} -/*@ requires cmd_has_void_arg: cmd ≡ 1 ∨ cmd ≡ 3 ∨ cmd ≡ 9; +/*@ requires valid_string_s: valid_read_string(s); assigns \result; - assigns \result \from fd, cmd; + assigns \result \from s, *(s + (0 ..)), c; + + behavior found: + assumes char_found: strchr(s, c) ≡ \true; + ensures result_char: (int)*\result ≡ \old(c); + ensures result_same_base: \base_addr(\result) ≡ \base_addr(\old(s)); + ensures result_valid_string: valid_read_string(\result); + + behavior not_found: + assumes char_not_found: ¬(strchr(s, c) ≡ \true); + ensures result_null: \result ≡ \null; + + behavior default: + ensures + result_null_or_same_base: + \result ≡ \null ∨ \base_addr(\result) ≡ \base_addr(\old(s)); */ -extern int __va_fcntl_void(int fd, int cmd); +char *strrchr(char const *s, int c) +{ + char *__retres; + char const ch = (char)c; + { + size_t tmp; + tmp = strlen(s); + size_t i = tmp + (size_t)1; + while (i > (size_t)0) { + if ((int)*(s + (i - (size_t)1)) == (int)ch) { + __retres = (char *)(s + (i - (size_t)1)); + goto return_label; + } + i -= (size_t)1; + } + } + __retres = (char *)0; + return_label: return __retres; +} /*@ requires - cmd_has_int_arg: - cmd ≡ 0 ∨ cmd ≡ 0x406 ∨ cmd ≡ 4 ∨ cmd ≡ 8 ∨ cmd ≡ 2; - assigns \result; - assigns \result \from fd, cmd, arg; - */ -extern int __va_fcntl_int(int fd, int cmd, int arg); - -/*@ requires cmd_as_flock_arg: cmd ≡ 5 ∨ cmd ≡ 6 ∨ cmd ≡ 7; - requires valid_arg: \valid(arg); - assigns \result, *arg; - assigns \result \from fd, cmd, *arg; - assigns *arg \from fd, cmd, *arg; - */ -extern int __va_fcntl_flock(int fd, int cmd, struct flock *arg); - -/*@ requires valid_filename: valid_read_string(filename); - requires flag_not_CREAT: (flags & 0x40) ≡ 0; + valid: + valid_read_or_empty(s, n) ∨ + \valid_read((unsigned char *)s + (0 .. memchr_off((char *)s, c, n))); + requires + initialization: + \initialized((unsigned char *)s + (0 .. n - 1)) ∨ + \initialized((unsigned char *)s + (0 .. memchr_off((char *)s, c, n))); + requires + danglingness: + non_escaping(s, n) ∨ + non_escaping(s, (unsigned int)(memchr_off((char *)s, c, n) + 1)); assigns \result; - assigns \result - \from (indirect: *(filename + (0 ..))), (indirect: flags); + assigns \result \from s, c, *((unsigned char *)s + (0 .. n - 1)); + + behavior found: + assumes char_found: memchr((char *)s, c, n) ≡ \true; + ensures result_same_base: \base_addr(\result) ≡ \base_addr(\old(s)); + ensures result_char: (int)*((char *)\result) ≡ \old(c); + ensures + result_in_str: + ∀ ℤ i; + 0 ≤ i < \old(n) ⇒ + *((unsigned char *)\old(s) + i) ≡ \old(c) ⇒ + \result ≤ \old(s) + i; + + behavior not_found: + assumes char_not_found: ¬(memchr((char *)s, c, n) ≡ \true); + ensures result_null: \result ≡ \null; */ -extern int __va_open_void(char const *filename, int flags); +void *memchr(void const *s, int c, size_t n) +{ + void *__retres; + unsigned char const ch = (unsigned char)c; + unsigned char const *ss = (unsigned char const *)s; + { + size_t i = (unsigned int)0; + while (i < n) { + if ((int)*(ss + i) == (int)ch) { + __retres = (void *)(ss + i); + goto return_label; + } + i += (size_t)1; + } + } + __retres = (void *)0; + return_label: return __retres; +} -/*@ requires valid_filename: valid_read_string(filename); +void *memrchr(void const *s, int c, size_t n) +{ + void *__retres; + unsigned char const ch = (unsigned char)c; + unsigned char const *ss = (unsigned char const *)s; + { + size_t i = n; + while (i > (size_t)0) { + if ((int)*(ss + (i - (size_t)1)) == (int)ch) { + __retres = (void *)(ss + (i - (size_t)1)); + goto return_label; + } + i -= (size_t)1; + } + } + __retres = (void *)0; + return_label: return __retres; +} + +/*@ requires valid_string_haystack: valid_read_string(haystack); + requires valid_string_needle: valid_read_string(needle); + ensures + result_null_or_in_haystack: + \result ≡ \null ∨ + (\subset(\result, \old(haystack) + (0 ..)) ∧ + \valid_read(\result) ∧ + memcmp{Pre, Pre}(\result, \old(needle), strlen(\old(needle))) ≡ 0); assigns \result; assigns \result - \from (indirect: *(filename + (0 ..))), (indirect: flags), - (indirect: mode); + \from haystack, (indirect: *(haystack + (0 ..))), + (indirect: *(needle + (0 ..))); */ -extern int __va_open_mode_t(char const *filename, int flags, mode_t mode); +char *strstr(char const *haystack, char const *needle) +{ + char *__retres; + if ((int)*(needle + 0) == 0) { + __retres = (char *)haystack; + goto return_label; + } + { + size_t i = (unsigned int)0; + while ((int)*(haystack + i) != 0) { + { + size_t j; + j = (unsigned int)0; + while ((int)*(haystack + (i + j)) != 0) { + if ((int)*(haystack + (i + j)) != (int)*(needle + j)) break; + j += (size_t)1; + } + if ((int)*(needle + j) == 0) { + __retres = (char *)(haystack + i); + goto return_label; + } + } + i += (size_t)1; + } + } + __retres = (char *)0; + return_label: return __retres; +} -/*@ requires valid_filename: valid_read_string(filename); - requires flag_not_CREAT: (flags & 0x40) ≡ 0; +static int __fc_strerror_init; +/*@ ensures result_internal_str: \result ≡ __fc_p_strerror; + ensures result_nul_terminated: *(\result + 63) ≡ 0; + ensures result_valid_string: valid_read_string(\result); assigns \result; - assigns \result - \from (indirect: dirfd), (indirect: *(filename + (0 ..))), - (indirect: flags); + assigns \result \from __fc_p_strerror, (indirect: errnum); */ -extern int __va_openat_void(int dirfd, char const *filename, int flags); +char *strerror(int errnum) +{ + char *__retres; + if (! __fc_strerror_init) { + Frama_C_make_unknown(__fc_strerror,(unsigned int)63); + __fc_strerror[63] = (char)0; + __fc_strerror_init = 1; + } + __retres = __fc_strerror; + return __retres; +} -/*@ requires valid_filename: valid_read_string(filename); +/*@ requires valid_string_s: valid_read_string(s); assigns \result; assigns \result - \from (indirect: dirfd), (indirect: *(filename + (0 ..))), - (indirect: flags), (indirect: mode); + \from (indirect: *(s + (0 .. strlen{Old}(s)))), + (indirect: __fc_heap_status); + allocates \result; + + behavior allocation: + assumes can_allocate: is_allocable(strlen(s)); + ensures allocation: \fresh{Old, Here}(\result,strlen(\old(s))); + ensures + result_valid_string_and_same_contents: + valid_string(\result) ∧ strcmp(\result, \old(s)) ≡ 0; + assigns __fc_heap_status, \result; + assigns __fc_heap_status \from (indirect: s), __fc_heap_status; + assigns \result + \from (indirect: *(s + (0 .. strlen{Old}(s)))), + (indirect: __fc_heap_status); + + behavior no_allocation: + assumes cannot_allocate: ¬is_allocable(strlen(s)); + ensures result_null: \result ≡ \null; + assigns \result; + assigns \result \from \nothing; + allocates \nothing; */ -extern int __va_openat_mode_t(int dirfd, char const *filename, int flags, - mode_t mode); - -/*@ ghost extern int __fc_tz __attribute__((__FRAMA_C_MODEL__)); */ +char *strdup(char const *s) +{ + char *__retres; + size_t tmp; + tmp = strlen(s); + size_t l = tmp + (size_t)1; + char *p = malloc(l); + if (! p) { + __fc_errno = 12; + __retres = (char *)0; + goto return_label; + } + memcpy((void *)p,(void const *)s,l); + __retres = p; + return_label: return __retres; +} /*@ assigns \result; - assigns \result \from *(path + (0 ..)), *(times + (0 .. 1)); - */ -extern int utimes(char const *path, struct timeval const * /*[2]*/ times); - -/*@ ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; - assigns tv->tv_sec, tv->tv_usec, *((struct timezone *)tz), \result; - assigns tv->tv_sec \from __fc_time; - assigns tv->tv_usec \from __fc_time; - assigns *((struct timezone *)tz) \from __fc_tz; assigns \result - \from (indirect: tv), (indirect: tz), *tv, *((struct timezone *)tz), - __fc_tz; - - behavior tv_and_tz_null: - assumes null_tv_tz: tv ≡ \null ∧ tz ≡ \null; - assigns \result; - assigns \result \from (indirect: __fc_tz); + \from (indirect: *(s + (0 .. strlen{Old}(s)))), (indirect: n), + (indirect: __fc_heap_status); + allocates \result; - behavior tv_not_null: - assumes non_null_tv_null_tz: tv ≢ \null ∧ tz ≡ \null; + behavior allocation: + assumes can_allocate: is_allocable(\min(strlen(s), n + 1)); ensures - initialization: tv_sec: tv_usec: - \initialized(&\old(tv)->tv_sec) ∧ - \initialized(&\old(tv)->tv_usec); - ensures tv_usec_bounded: 0 ≤ \old(tv)->tv_usec ≤ 999999; - assigns tv->tv_sec, tv->tv_usec, \result; - assigns tv->tv_sec \from (indirect: __fc_time); - assigns tv->tv_usec \from (indirect: __fc_time); - assigns \result \from (indirect: *tv), (indirect: __fc_tz); - - behavior tz_not_null: - assumes null_tv_non_null_tz: tv ≡ \null ∧ tz ≢ \null; - ensures initialization: tz: \initialized((struct timezone *)\old(tz)); - assigns *((struct timezone *)tz), \result; - assigns *((struct timezone *)tz) \from __fc_tz; - assigns \result - \from (indirect: *((struct timezone *)tz)), (indirect: __fc_tz); - - behavior tv_and_tz_not_null: - assumes non_null_tv_tz: tv ≢ \null ∧ tz ≢ \null; + allocation: + \fresh{Old, Here}(\result,\min(strlen(\old(s)), \old(n) + 1)); ensures - initialization: tv_sec: tv_usec: - \initialized(&\old(tv)->tv_sec) ∧ - \initialized(&\old(tv)->tv_usec); - ensures initialization: tz: \initialized((struct timezone *)\old(tz)); - assigns tv->tv_sec, tv->tv_usec, *((struct timezone *)tz), \result; - assigns tv->tv_sec \from (indirect: __fc_time); - assigns tv->tv_usec \from (indirect: __fc_time); - assigns *((struct timezone *)tz) \from __fc_tz; + result_valid_string_bounded_and_same_prefix: + \valid(\result + (0 .. \min(strlen(\old(s)), \old(n)))) ∧ + valid_string(\result) ∧ strlen(\result) ≤ \old(n) ∧ + strncmp(\result, \old(s), \old(n)) ≡ 0; + assigns __fc_heap_status, \result; + assigns __fc_heap_status + \from (indirect: s), (indirect: n), __fc_heap_status; assigns \result - \from (indirect: *tv), (indirect: *((struct timezone *)tz)), - (indirect: __fc_tz); + \from (indirect: *(s + (0 .. strlen{Old}(s)))), (indirect: n), + (indirect: __fc_heap_status); - complete behaviors tv_and_tz_not_null, - tz_not_null, - tv_not_null, - tv_and_tz_null; - disjoint behaviors tv_and_tz_not_null, - tz_not_null, - tv_not_null, - tv_and_tz_null; - */ -extern int gettimeofday(struct timeval * __restrict tv, void * __restrict tz); - -/*@ assigns \result, __fc_time, __fc_tz; - assigns \result - \from tv->tv_sec, tv->tv_usec, tz->tz_dsttime, tz->tz_minuteswest; - assigns __fc_time - \from tv->tv_sec, tv->tv_usec, tz->tz_dsttime, tz->tz_minuteswest; - assigns __fc_tz - \from tv->tv_sec, tv->tv_usec, tz->tz_dsttime, tz->tz_minuteswest; + behavior no_allocation: + assumes cannot_allocate: ¬is_allocable(\min(strlen(s), n + 1)); + ensures result_null: \result ≡ \null; + assigns \result; + assigns \result \from \nothing; + allocates \nothing; */ -extern int settimeofday(struct timeval const *tv, struct timezone const *tz); - -/*@ ghost - struct itimerval volatile __fc_itimer_real __attribute__((__FRAMA_C_MODEL__)); - */ -/*@ ghost - struct itimerval volatile __fc_itimer_virtual __attribute__((__FRAMA_C_MODEL__)); - */ -/*@ ghost - struct itimerval volatile __fc_itimer_prof __attribute__((__FRAMA_C_MODEL__)); +char *strndup(char const *s, size_t n) +{ + char *__retres; + size_t l; + l = (unsigned int)0; + while (l < n) { + if ((int)*(s + l) == 0) break; + l += (size_t)1; + } + char *p = malloc(l + (size_t)1); + if (! p) { + __fc_errno = 12; + __retres = (char *)0; + goto return_label; + } + memcpy((void *)p,(void const *)s,l); + *(p + l) = (char)0; + __retres = p; + return_label: return __retres; +} + +static int __fc_strsignal_init; +/*@ ensures result_internal_str: \result ≡ __fc_p_strsignal; + ensures result_nul_terminated: *(\result + 63) ≡ 0; + ensures result_valid_string: valid_read_string(\result); + assigns \result; + assigns \result \from __fc_p_strsignal, (indirect: signum); + */ +char *strsignal(int signum) +{ + char *__retres; + if (! __fc_strsignal_init) { + Frama_C_make_unknown(__fc_strsignal,(unsigned int)63); + __fc_strsignal[63] = (char)0; + __fc_strsignal_init = 1; + } + __retres = __fc_strsignal; + return __retres; +} + +/*@ ghost unsigned int volatile __fc_time __attribute__((__FRAMA_C_MODEL__)); */ -/*@ requires valid_curr_value: \valid(curr_value); - ensures initialization: curr_value: \initialized(\old(curr_value)); - assigns \result, *curr_value; - assigns \result \from (indirect: which); - assigns *curr_value - \from __fc_itimer_real, __fc_itimer_virtual, __fc_itimer_prof; - - behavior real: - assumes itimer_real: which ≡ 0; - ensures result_ok: \result ≡ 0; - assigns \result, *curr_value; - assigns \result \from \nothing; - assigns *curr_value \from __fc_itimer_real; - - behavior virtual: - assumes itimer_virtual: which ≡ 1; - ensures result_ok: \result ≡ 0; - assigns \result, *curr_value; - assigns \result \from \nothing; - assigns *curr_value \from __fc_itimer_virtual; - - behavior prof: - assumes itimer_prof: which ≡ 2; - ensures result_ok: \result ≡ 0; - assigns \result, *curr_value; - assigns \result \from \nothing; - assigns *curr_value \from __fc_itimer_prof; +/*@ assigns \result; + assigns \result \from __fc_time; */ +extern clock_t clock(void); + +/*@ assigns \result; + assigns \result \from time1, time0; */ +extern double difftime(time_t time1, time_t time0); + +/*@ assigns *timeptr, \result; + assigns *timeptr \from *timeptr; + assigns \result \from *timeptr; + */ +extern time_t mktime(struct tm *timeptr); + +/*@ assigns *timer, \result; + assigns *timer \from __fc_time; + assigns \result \from __fc_time; - behavior invalid: - assumes invalid_which: which ≢ 0 ∧ which ≢ 1 ∧ which ≢ 2; - ensures result_error: \result ≡ -1; + behavior null: + assumes timer_null: timer ≡ \null; assigns \result; - assigns \result \from \nothing; + assigns \result \from __fc_time; - complete behaviors invalid, prof, virtual, real; - disjoint behaviors invalid, prof, virtual, real; + behavior not_null: + assumes timer_non_null: timer ≢ \null; + requires valid_timer: \valid(timer); + ensures initialization: timer: \initialized(\old(timer)); + assigns *timer, \result; + assigns *timer \from __fc_time; + assigns \result \from __fc_time; + + complete behaviors not_null, null; + disjoint behaviors not_null, null; */ -extern int getitimer(int which, struct itimerval *curr_value); +extern time_t time(time_t *timer); -/*@ requires valid_new_value: \valid_read(new_value); - requires - old_value_null_or_valid: old_value ≡ \null ∨ \valid(old_value); - ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; - assigns *old_value, \result; - assigns *old_value - \from (indirect: which), (indirect: old_value), (indirect: new_value), - __fc_itimer_real, __fc_itimer_virtual, __fc_itimer_prof; +char __fc_ctime[26]; +char * const __fc_p_ctime = __fc_ctime; +/*@ requires valid_timer: \valid_read(timer); + requires initialization: init_timer: \initialized(timer); + ensures result_points_to_ctime: \result ≡ __fc_p_ctime; + ensures result_valid_string: valid_read_string(__fc_p_ctime); + assigns __fc_ctime[0 .. 25], \result; + assigns __fc_ctime[0 .. 25] + \from (indirect: *timer), (indirect: __fc_time); assigns \result - \from (indirect: which), (indirect: new_value), (indirect: *new_value); - - behavior real: - assumes - itimer_real_and_valid: - which ≡ 0 ≤ new_value->it_value.tv_usec ≤ 999999 ∧ - 0 ≤ new_value->it_interval.tv_usec ≤ 999999; - ensures result_ok: \result ≡ 0; - ensures initialization: old_value: \initialized(\old(old_value)); - assigns \result, *old_value, __fc_itimer_real; - assigns \result \from \nothing; - assigns *old_value \from __fc_itimer_real; - assigns __fc_itimer_real \from *new_value; + \from (indirect: *timer), (indirect: __fc_time), __fc_p_ctime; + */ +extern char *ctime(time_t const *timer); + +struct tm __fc_time_tm; +struct tm * const __fc_p_time_tm = & __fc_time_tm; +/*@ ensures + result_null_or_internal_tm: + \result ≡ &__fc_time_tm ∨ \result ≡ \null; + assigns \result, __fc_time_tm; + assigns \result \from __fc_p_time_tm; + assigns __fc_time_tm \from *timer; + */ +extern struct tm *gmtime(time_t const *timer); + +/*@ ensures + result_null_or_internal_tm: + \result ≡ &__fc_time_tm ∨ \result ≡ \null; + assigns \result, __fc_time_tm; + assigns \result \from __fc_p_time_tm; + assigns __fc_time_tm \from *timer; + */ +extern struct tm *localtime(time_t const *timer); + +/*@ requires dst_has_room: \valid(s + (0 .. max - 1)); + requires valid_format: valid_read_string(format); + requires valid_tm: \valid_read(tm); + ensures result_bounded: \result ≤ \old(max); + assigns *(s + (0 .. max - 1)), \result; + assigns *(s + (0 .. max - 1)) + \from (indirect: max), (indirect: *(format + (0 ..))), (indirect: *tm); + assigns \result + \from (indirect: max), (indirect: *(format + (0 ..))), (indirect: *tm); + */ +extern size_t strftime(char * __restrict s, size_t max, + char const * __restrict format, + struct tm const * __restrict tm); + +/*@ requires tp: \valid(tp); + assigns \result, *tp, __fc_time; + assigns \result \from __fc_time; + assigns *tp \from __fc_time; + assigns __fc_time \from __fc_time; - behavior virtual: - assumes - itimer_virtual_and_valid: - which ≡ 1 ∧ 0 ≤ new_value->it_value.tv_usec ≤ 999999 ∧ - 0 ≤ new_value->it_interval.tv_usec ≤ 999999; - ensures result_ok: \result ≡ 0; - ensures initialization: old_value: \initialized(\old(old_value)); - assigns \result, *old_value; - assigns \result \from \nothing; - assigns *old_value \from __fc_itimer_virtual; + behavior realtime_clock: + assumes realtime: clk_id ≡ 666; + ensures success: \result ≡ 0; + ensures initialization: \initialized(\old(tp)); - behavior prof: - assumes - itimer_prof_and_valid: - which ≡ 2 ∧ 0 ≤ new_value->it_value.tv_usec ≤ 999999 ∧ - 0 ≤ new_value->it_interval.tv_usec ≤ 999999; - ensures result_ok: \result ≡ 0; - ensures initialization: old_value: \initialized(\old(old_value)); - assigns \result, *old_value; - assigns \result \from \nothing; - assigns *old_value \from __fc_itimer_prof; + behavior monotonic_clock: + assumes monotonic: clk_id ≡ 1; + ensures success: \result ≡ 0; + ensures initialization: \initialized(\old(tp)); - behavior invalid: - assumes - invalid_itimer_or_new_value: - (which ≢ 0 ∧ which ≢ 1 ∧ which ≢ 2) ∨ - ¬(0 ≤ new_value->it_value.tv_usec ≤ 999999 ∧ - 0 ≤ new_value->it_interval.tv_usec ≤ 999999); - ensures result_error: \result ≡ -1; + behavior bad_clock_id: + assumes bad_id: clk_id ≢ 666 ∧ clk_id ≢ 1; + ensures error: \result ≡ 22; assigns \result; - assigns \result \from \nothing; + assigns \result \from clk_id; - disjoint behaviors invalid, prof, virtual, real; + complete behaviors bad_clock_id, monotonic_clock, realtime_clock; + disjoint behaviors bad_clock_id, monotonic_clock, realtime_clock; */ -extern int setitimer(int which, - struct itimerval const * __restrict new_value, - struct itimerval * __restrict old_value); +extern int clock_gettime(clockid_t clk_id, struct timespec *tp); -/*@ ghost int volatile __fc_fds_state; */ -/*@ requires nfds: nfds ≥ 0; - requires readfs: readfds ≡ \null ∨ \valid(readfds); - requires writefds: writefds ≡ \null ∨ \valid(writefds); - requires errorfds: errorfds ≡ \null ∨ \valid(errorfds); - requires timeout: timeout ≡ \null ∨ \valid(timeout); - assigns __fc_fds_state, *readfds, *writefds, *errorfds, *timeout, - \result; - assigns __fc_fds_state \from __fc_fds_state; - assigns *readfds - \from (indirect: nfds), (indirect: readfds), (indirect: *readfds), - (indirect: writefds), (indirect: *writefds), - (indirect: errorfds), (indirect: *errorfds), (indirect: timeout), - (indirect: *timeout), __fc_fds_state; - assigns *writefds - \from (indirect: nfds), (indirect: readfds), (indirect: *readfds), - (indirect: writefds), (indirect: *writefds), - (indirect: errorfds), (indirect: *errorfds), (indirect: timeout), - (indirect: *timeout), __fc_fds_state; - assigns *errorfds - \from (indirect: nfds), (indirect: readfds), (indirect: *readfds), - (indirect: writefds), (indirect: *writefds), - (indirect: errorfds), (indirect: *errorfds), (indirect: timeout), - (indirect: *timeout), __fc_fds_state; - assigns *timeout - \from (indirect: nfds), (indirect: readfds), (indirect: *readfds), - (indirect: writefds), (indirect: *writefds), - (indirect: errorfds), (indirect: *errorfds), (indirect: timeout), - (indirect: *timeout), __fc_fds_state; +/*@ +axiomatic nanosleep_predicates { + predicate abs_clock_in_range{L}(clockid_t id, struct timespec *tm) + reads __fc_time; + + predicate valid_clock_id{L}(clockid_t id) + reads __fc_time; + + } + +*/ +/*@ ghost int volatile __fc_interrupted __attribute__((__FRAMA_C_MODEL__)); + */ +/*@ requires valid_request: \valid_read(rqtp); + requires + initialization: initialized_request: + \initialized(&rqtp->tv_sec) ∧ \initialized(&rqtp->tv_nsec); + requires valid_nanosecs: 0 ≤ rqtp->tv_nsec < 1000000000; + requires valid_remaining_or_null: rmtp ≡ \null ∨ \valid(rmtp); + assigns \result; assigns \result - \from (indirect: nfds), (indirect: readfds), (indirect: *readfds), - (indirect: writefds), (indirect: *writefds), - (indirect: errorfds), (indirect: *errorfds), (indirect: timeout), - (indirect: *timeout), __fc_fds_state; + \from (indirect: __fc_time), (indirect: __fc_interrupted), + (indirect: clock_id), (indirect: flags), (indirect: rqtp), + (indirect: *rqtp); - behavior read_notnull: - assumes readfds_is_not_null: readfds ≢ \null; - ensures initialization: readfds: \initialized(\old(readfds)); + behavior absolute: + assumes absolute_time: (flags & 1) ≢ 0; + assumes + no_einval: + abs_clock_in_range(clock_id, rqtp) ∧ valid_clock_id(clock_id); + ensures + result_ok_or_error: + \result ≡ 0 ∨ \result ≡ 4 ∨ \result ≡ 22 ∨ + \result ≡ 95; + assigns \result; + assigns \result + \from (indirect: __fc_time), (indirect: __fc_interrupted), + (indirect: clock_id), (indirect: rqtp), (indirect: *rqtp); - behavior write_notnull: - assumes writefds_is_not_null: writefds ≢ \null; - ensures initialization: writefds: \initialized(\old(writefds)); + behavior relative_interrupted: + assumes relative_time: (flags & 1) ≡ 0; + assumes interrupted: __fc_interrupted ≢ 0; + assumes no_einval: valid_clock_id(clock_id); + ensures result_interrupted: \result ≡ 4; + ensures + initialization: interrupted_remaining: + \old(rmtp) ≢ \null ⇒ + \initialized(&\old(rmtp)->tv_sec) ∧ + \initialized(&\old(rmtp)->tv_nsec); + ensures + interrupted_remaining_decreases: + \old(rmtp) ≢ \null ⇒ + \old(rqtp)->tv_sec * 1000000000 + \old(rqtp)->tv_nsec ≥ + \old(rmtp)->tv_sec * 1000000000 + \old(rmtp)->tv_nsec; + ensures + remaining_valid: + \old(rmtp) ≢ \null ⇒ 0 ≤ \old(rmtp)->tv_nsec < 1000000000; + assigns \result, *rmtp; + assigns \result + \from (indirect: __fc_time), (indirect: clock_id), (indirect: rqtp), + (indirect: *rqtp); + assigns *rmtp + \from __fc_time, (indirect: clock_id), (indirect: rqtp), + (indirect: *rqtp), (indirect: rmtp); - behavior error_notnull: - assumes errorfds_is_not_null: errorfds ≢ \null; - ensures initialization: errorfds: \initialized(\old(errorfds)); + behavior relative_no_error: + assumes relative_time: (flags & 1) ≡ 0; + assumes not_interrupted: __fc_interrupted ≡ 0; + assumes no_einval: valid_clock_id(clock_id); + ensures result_ok: \result ≡ 0; + assigns \result; + assigns \result + \from (indirect: __fc_time), (indirect: clock_id), (indirect: rqtp), + (indirect: *rqtp); - behavior timeout_notnull: - assumes timeout_is_not_null: timeout ≢ \null; - ensures initialization: timeout: \initialized(\old(timeout)); + behavior relative_invalid_clock_id: + assumes relative_time: (flags & 1) ≡ 0; + assumes not_interrupted: __fc_interrupted ≡ 0; + assumes einval: ¬valid_clock_id(clock_id); + ensures result_einval: \result ≡ 22; + assigns \result; + assigns \result + \from (indirect: __fc_time), (indirect: clock_id), (indirect: rqtp), + (indirect: *rqtp); + + complete behaviors relative_invalid_clock_id, + relative_no_error, + relative_interrupted, + absolute; + disjoint behaviors relative_invalid_clock_id, + relative_no_error, + relative_interrupted, + absolute; + */ +extern int clock_nanosleep(clockid_t clock_id, int flags, + struct timespec const *rqtp, struct timespec *rmtp); + +/*@ requires valid_request: \valid_read(rqtp); + requires + initialization: initialized_request: + \initialized(&rqtp->tv_sec) ∧ \initialized(&rqtp->tv_nsec); + requires valid_nanosecs: 0 ≤ rqtp->tv_nsec < 1000000000; + requires valid_remaining_or_null: rmtp ≡ \null ∨ \valid(rmtp); + ensures result_elapsed_or_interrupted: \result ≡ 0 ∨ \result ≡ -1; + ensures + initialization: interrupted_remaining: + \old(rmtp) ≢ \null ∧ \result ≡ -1 ⇒ + \initialized(&\old(rmtp)->tv_sec) ∧ + \initialized(&\old(rmtp)->tv_nsec); + ensures + interrupted_remaining_decreases: + \old(rmtp) ≢ \null ∧ \result ≡ -1 ⇒ + \old(rqtp)->tv_sec * 1000000000 + \old(rqtp)->tv_nsec ≥ + \old(rmtp)->tv_sec * 1000000000 + \old(rmtp)->tv_nsec; + ensures + interrupted_remaining_valid: + \old(rmtp) ≢ \null ∧ \result ≡ -1 ⇒ + 0 ≤ \old(rmtp)->tv_nsec < 1000000000; + assigns \result, *rmtp; + assigns \result + \from (indirect: __fc_time), (indirect: rqtp), (indirect: *rqtp); + assigns *rmtp + \from (indirect: __fc_time), (indirect: rqtp), (indirect: *rqtp), + (indirect: rmtp); + */ +extern int nanosleep(struct timespec const *rqtp, struct timespec *rmtp); + +extern void tzset(void); + +extern char *tzname[2]; + +/*@ assigns *(tzname[0 .. 1] + (0 ..)); + assigns *(tzname[0 .. 1] + (0 ..)) \from \nothing; + */ +extern void tzset(void); + +/*@ ensures + result_null_or_inside_s: + \result ≡ \null ∨ \subset(\result, \old(s) + (0 .. \old(n) - 1)); + assigns \result; + assigns \result + \from s, (indirect: *(s + (0 .. n - 1))), (indirect: c), (indirect: n); + */ +extern wchar_t *wmemchr(wchar_t const *s, wchar_t c, size_t n); + +/*@ assigns \result; + assigns \result + \from (indirect: *(s1 + (0 .. n - 1))), + (indirect: *(s2 + (0 .. n - 1))), (indirect: n); + */ +extern int wmemcmp(wchar_t const *s1, wchar_t const *s2, size_t n); + +wchar_t *wmemcpy(wchar_t *dest, wchar_t const *src, size_t n); + +/*@ ensures result_ptr: \result ≡ \old(dest); + assigns *(dest + (0 .. n - 1)), \result; + assigns *(dest + (0 .. n - 1)) + \from *(src + (0 .. n - 1)), (indirect: src), (indirect: n); + assigns \result \from dest; + */ +extern wchar_t *wmemmove(wchar_t *dest, wchar_t const *src, size_t n); + +wchar_t *wmemset(wchar_t *dest, wchar_t val, size_t len); + +wchar_t *wcscat(wchar_t *dest, wchar_t const *src); + +/*@ requires valid_wstring_src: valid_read_wstring(wcs); + ensures + result_null_or_inside_wcs: + \result ≡ \null ∨ \subset(\result, \old(wcs) + (0 ..)); + assigns \result; + assigns \result \from wcs, (indirect: *(wcs + (0 ..))), (indirect: wc); + */ +extern wchar_t *wcschr(wchar_t const *wcs, wchar_t wc); + +/*@ assigns \result; + assigns \result + \from (indirect: *(s1 + (0 ..))), (indirect: *(s2 + (0 ..))); + */ +extern int wcscmp(wchar_t const *s1, wchar_t const *s2); + +wchar_t *wcscpy(wchar_t *dest, wchar_t const *src); + +/*@ assigns \result; + assigns \result + \from (indirect: *(wcs + (0 ..))), (indirect: *(accept + (0 ..))); + */ +extern size_t wcscspn(wchar_t const *wcs, wchar_t const *accept); + +/*@ assigns *(dest + (0 ..)), \result; + assigns *(dest + (0 ..)) + \from *(dest + (0 ..)), (indirect: dest), *(src + (0 .. n - 1)), + (indirect: src), (indirect: n); + assigns \result + \from (indirect: *(dest + (0 ..))), (indirect: *(src + (0 .. n - 1))), + (indirect: n); + */ +extern size_t wcslcat(wchar_t * __restrict dest, + wchar_t const * __restrict src, size_t n); + +/*@ requires + separation: dest: src: + \separated(dest + (0 .. n - 1), src + (0 .. n - 1)); + assigns *(dest + (0 .. n - 1)), \result; + assigns *(dest + (0 .. n - 1)) + \from *(src + (0 .. n - 1)), (indirect: src), (indirect: n); + assigns \result + \from (indirect: *(dest + (0 .. n - 1))), (indirect: dest), + (indirect: *(src + (0 .. n - 1))), (indirect: src), (indirect: n); + */ +extern size_t wcslcpy(wchar_t *dest, wchar_t const *src, size_t n); + +size_t wcslen(wchar_t const *str); + +wchar_t *wcsncat(wchar_t *dest, wchar_t const *src, size_t n); + +/*@ assigns \result; + assigns \result + \from (indirect: *(s1 + (0 .. n - 1))), + (indirect: *(s2 + (0 .. n - 1))), (indirect: n); + */ +extern int wcsncmp(wchar_t const *s1, wchar_t const *s2, size_t n); + +wchar_t *wcsncpy(wchar_t *dest, wchar_t const *src, size_t n); + +/*@ ensures + result_null_or_inside_wcs: + \result ≡ \null ∨ \subset(\result, \old(wcs) + (0 ..)); + assigns \result; + assigns \result + \from wcs, (indirect: *(wcs + (0 ..))), (indirect: *(accept + (0 ..))); + */ +extern wchar_t *wcspbrk(wchar_t const *wcs, wchar_t const *accept); + +/*@ ensures + result_null_or_inside_wcs: + \result ≡ \null ∨ \subset(\result, \old(wcs) + (0 ..)); + assigns \result; + assigns \result \from wcs, (indirect: *(wcs + (0 ..))), (indirect: wc); + */ +extern wchar_t *wcsrchr(wchar_t const *wcs, wchar_t wc); + +/*@ assigns \result; + assigns \result + \from (indirect: *(wcs + (0 ..))), (indirect: *(accept + (0 ..))); + */ +extern size_t wcsspn(wchar_t const *wcs, wchar_t const *accept); + +/*@ ensures + result_null_or_inside_haystack: + \result ≡ \null ∨ \subset(\result, \old(haystack) + (0 ..)); + assigns \result; + assigns \result + \from haystack, (indirect: *(haystack + (0 ..))), + (indirect: *(needle + (0 ..))); + */ +extern wchar_t *wcsstr(wchar_t const *haystack, wchar_t const *needle); + +/*@ requires valid_stream: \valid(stream); + ensures result_null_or_same: \result ≡ \null ∨ \result ≡ \old(ws); + ensures + terminated_string_on_success: + \result ≢ \null ⇒ valid_wstring(\old(ws)); + assigns *(ws + (0 .. n)), \result; + assigns *(ws + (0 .. n)) \from (indirect: n), (indirect: *stream); + assigns \result \from ws, (indirect: n), (indirect: *stream); + */ +extern wchar_t *fgetws(wchar_t * __restrict ws, int n, + FILE * __restrict stream); + +/*@ axiomatic wformat_length { + logic ℤ wformat_length{L}(wchar_t *format) ; + + } + +*/ +/*@ requires + separation: dest: src: + \separated(dest + (0 .. n - 1), src + (0 .. n - 1)); + ensures result_ptr: \result ≡ \old(dest); + assigns *(dest + (0 .. n - 1)), \result; + assigns *(dest + (0 .. n - 1)) + \from *(src + (0 .. n - 1)), (indirect: src), (indirect: n); + assigns \result \from dest; + */ +wchar_t *wmemcpy(wchar_t *dest, wchar_t const *src, size_t n) +{ + { + size_t i = (unsigned int)0; + while (i < n) { + *(dest + i) = *(src + i); + i += (size_t)1; + } + } + return dest; +} + +/*@ ensures result_ptr: \result ≡ \old(dest); + ensures + initialization: wcs: \initialized(\old(dest) + (0 .. \old(len) - 1)); + ensures + contents_equal_wc: + \subset(*(\old(dest) + (0 .. \old(len) - 1)), \old(val)); + assigns *(dest + (0 .. len - 1)), \result; + assigns *(dest + (0 .. len - 1)) \from val, (indirect: len); + assigns \result \from dest; + */ +wchar_t *wmemset(wchar_t *dest, wchar_t val, size_t len) +{ + { + size_t i = (unsigned int)0; + while (i < len) { + *(dest + i) = val; + i += (size_t)1; + } + } + return dest; +} + +/*@ ensures result_ptr: \result ≡ \old(dest); + assigns *(dest + (0 ..)), \result; + assigns *(dest + (0 ..)) + \from *(src + (0 ..)), (indirect: src), *(dest + (0 ..)), + (indirect: dest); + assigns \result \from dest; + */ +wchar_t *wcscpy(wchar_t *dest, wchar_t const *src) +{ + size_t i; + i = (unsigned int)0; + while (*(src + i) != 0) { + *(dest + i) = *(src + i); + i += (size_t)1; + } + *(dest + i) = 0; + return dest; +} + +/*@ requires valid_string_s: valid_read_wstring(str); + assigns \result; + assigns \result \from (indirect: *(str + (0 ..))); + */ +size_t wcslen(wchar_t const *str) +{ + size_t i; + i = (unsigned int)0; + while (*(str + i) != 0) i += (size_t)1; + return i; +} + +/*@ requires + separation: dest: src: + \separated(dest + (0 .. n - 1), src + (0 .. n - 1)); + ensures result_ptr: \result ≡ \old(dest); + assigns *(dest + (0 .. n - 1)), \result; + assigns *(dest + (0 .. n - 1)) + \from *(src + (0 .. n - 1)), (indirect: src), (indirect: n); + assigns \result \from dest; + */ +wchar_t *wcsncpy(wchar_t *dest, wchar_t const *src, size_t n) +{ + size_t i; + i = (unsigned int)0; + while (i < n) { + *(dest + i) = *(src + i); + if (*(src + i) == 0) break; + i += (size_t)1; + } + while (i < n) { + *(dest + i) = 0; + i += (size_t)1; + } + return dest; +} + +/*@ ensures result_ptr: \result ≡ \old(dest); + assigns *(dest + (0 ..)), \result; + assigns *(dest + (0 ..)) + \from *(dest + (0 ..)), (indirect: dest), *(src + (0 ..)), + (indirect: src); + assigns \result \from dest; + */ +wchar_t *wcscat(wchar_t *dest, wchar_t const *src) +{ + size_t i; + size_t n = wcslen((wchar_t const *)dest); + i = (unsigned int)0; + while (*(src + i) != 0) { + *(dest + (n + i)) = *(src + i); + i += (size_t)1; + } + *(dest + (n + i)) = 0; + return dest; +} + +/*@ ensures result_ptr: \result ≡ \old(dest); + assigns *(dest + (0 ..)), \result; + assigns *(dest + (0 ..)) + \from *(dest + (0 ..)), (indirect: dest), *(src + (0 .. n - 1)), + (indirect: src), (indirect: n); + assigns \result \from dest; + */ +wchar_t *wcsncat(wchar_t *dest, wchar_t const *src, size_t n) +{ + size_t i; + size_t dest_len = wcslen((wchar_t const *)dest); + i = (unsigned int)0; + while (1) { + if (i < n) { + if (! (*(src + i) != 0)) break; + } + else break; + *(dest + (dest_len + i)) = *(src + i); + i += (size_t)1; + } + *(dest + (dest_len + i)) = 0; + return dest; +} + +/*@ ghost extern int __fc_stack_status __attribute__((__FRAMA_C_MODEL__)); */ + +/*@ ensures allocation: \fresh{Old, Here}(\result,\old(size)); + assigns __fc_stack_status, \result; + assigns __fc_stack_status \from size, __fc_stack_status; + assigns \result \from (indirect: size), (indirect: __fc_stack_status); + allocates \result; */ -extern int select(int nfds, fd_set *readfds, fd_set *writefds, - fd_set *errorfds, struct timeval *timeout); +extern void *alloca(size_t size); -/*@ requires valid_string_path: valid_read_string(path); - ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; - assigns \result; - assigns \result - \from (indirect: path), (indirect: *(path + (0 ..))), (indirect: mode); +DIR __fc_opendir[16]; +DIR * const __fc_p_opendir = __fc_opendir; +/*@ requires + dirp_valid_dir_stream: \subset(dirp, &__fc_opendir[0 .. 16 - 1]); + ensures + err_or_closed_on_success: + (\result ≡ 0 ∧ \old(dirp)->__fc_dir_inode ≡ \null) ∨ + \result ≡ -1; + assigns \result, __fc_errno, *dirp; + assigns \result \from dirp, *dirp, __fc_p_opendir; + assigns __fc_errno \from dirp, *dirp, __fc_p_opendir; + assigns *dirp \from dirp, *dirp, __fc_p_opendir; */ -extern int mkdir(char const *path, mode_t mode); +extern int closedir(DIR *dirp); -/*@ requires valid_pathname: valid_read_string(pathname); - requires valid_buf: \valid(buf); - ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; +/*@ ensures result_null_or_valid: \result ≡ \null ∨ \valid(\result); ensures - init_on_success: initialization: buf: - \result ≡ 0 ⇒ \initialized(\old(buf)); - assigns \result, *buf; - assigns \result \from *(pathname + (0 ..)); - assigns *buf \from *(pathname + (0 ..)); + valid_dir_stream_on_success: + \result ≢ \null ⇒ \result ≡ &__fc_opendir[\result->__fc_dir_id]; + ensures + stream_positioned_on_success: + \result ≢ \null ⇒ \result->__fc_dir_inode ≢ \null; + assigns \result, __fc_errno; + assigns \result \from *(path + (0 ..)), __fc_p_opendir; + assigns __fc_errno \from *(path + (0 ..)), __fc_p_opendir; */ -extern int stat(char const *pathname, struct stat *buf); +extern DIR *opendir(char const *path); -/*@ assigns \result; - assigns \result \from (indirect: cmask); */ -extern mode_t umask(mode_t cmask); +/*@ requires + dirp_valid_dir_stream: \subset(dirp, &__fc_opendir[0 .. 16 - 1]); + ensures result_null_or_valid: \result ≡ \null ∨ \valid(\result); + assigns \result, dirp->__fc_dir_position, __fc_errno; + assigns \result \from *dirp, __fc_p_opendir; + assigns dirp->__fc_dir_position \from dirp->__fc_dir_position; + assigns __fc_errno \from dirp, *dirp, __fc_p_opendir; + */ +extern struct dirent *readdir(DIR *dirp); -/*@ assigns *(*(outbuf + (0 .. *outbytesleft - 1))), __fc_errno; - assigns *(*(outbuf + (0 .. *outbytesleft - 1))) - \from *(*(inbuf + (0 .. *inbytesleft - 1))); +/*@ requires valid_fdset: \valid(fdset); + requires initialization: \initialized(fdset); + assigns *fdset; + assigns *fdset \from *fdset, (indirect: fd); */ -extern size_t iconv(iconv_t cd, char ** __restrict inbuf, - size_t * __restrict inbytesleft, - char ** __restrict outbuf, - size_t * __restrict outbytesleft); +extern void FD_CLR(int fd, fd_set *fdset); -/*@ ensures result_zero_or_neg: \result ≡ 0 ∨ \result ≡ -1; - assigns __fc_errno; +/*@ requires valid_fdset: \valid_read(fdset); + requires initialization: \initialized(fdset); + assigns \result; + assigns \result \from (indirect: *fdset), (indirect: fd); */ -extern int iconv_close(iconv_t); +extern int FD_ISSET(int fd, fd_set const *fdset); -/*@ assigns \result, __fc_errno; - assigns \result \from *(tocode + (..)), *(fromcode + (..)); +/*@ requires valid_fdset: \valid(fdset); + requires initialization: \initialized(fdset); + assigns *fdset; + assigns *fdset \from *fdset, (indirect: fd); */ -extern iconv_t iconv_open(char const *tocode, char const *fromcode); +extern void FD_SET(int fd, fd_set *fdset); -extern char __fc_basename[256]; +/*@ requires valid_fdset: \valid(fdset); + ensures initialization: \initialized(\old(fdset)); + assigns *fdset; + assigns *fdset \from \nothing; + */ +extern void FD_ZERO(fd_set *fdset); -char *__fc_p_basename = __fc_basename; -/*@ requires - null_or_valid_string_path: path ≡ \null ∨ valid_read_string(path); +/*@ requires valid_res: \valid(res); + ensures initialization: res: \initialized(\old(res)); + ensures res_wrapped: *\old(res) ≡ (int)(\old(a) + \old(b)); ensures - result_points_to_internal_storage_or_path: - \subset(\result, {__fc_p_basename, \old(path)}); - assigns *(path + (0 ..)), __fc_basename[0 ..], \result; - assigns *(path + (0 ..)) \from *(path + (0 ..)), __fc_basename[0 ..]; - assigns __fc_basename[0 ..] \from *(path + (0 ..)), __fc_basename[0 ..]; - assigns \result \from __fc_p_basename, path; + result_overflow: + \old(a) + \old(b) ≡ (int)(\old(a) + \old(b))? + \result ≡ 0: + \result ≡ 1; + assigns \result, *res; + assigns \result \from a, b; + assigns *res \from a, b; */ -extern char *basename(char *path); +_Bool __builtin_sadd_overflow(int a, int b, int *res); -extern char __fc_dirname[256]; +/*@ requires valid_res: \valid(res); + ensures initialization: res: \initialized(\old(res)); + ensures res_wrapped: *\old(res) ≡ (long)(\old(a) + \old(b)); + ensures + result_overflow: + \old(a) + \old(b) ≡ (long)(\old(a) + \old(b))? + \result ≡ 0: + \result ≡ 1; + assigns \result, *res; + assigns \result \from a, b; + assigns *res \from a, b; + */ +_Bool __builtin_saddl_overflow(long a, long b, long *res); -char *__fc_p_dirname = __fc_dirname; -/*@ requires - null_or_valid_string_path: path ≡ \null ∨ valid_read_string(path); +/*@ requires valid_res: \valid(res); + ensures initialization: res: \initialized(\old(res)); + ensures res_wrapped: *\old(res) ≡ (long long)(\old(a) + \old(b)); ensures - result_points_to_internal_storage_or_path: - \subset(\result, {__fc_p_dirname, \old(path)}); - assigns *(path + (0 ..)), __fc_dirname[0 ..], \result; - assigns *(path + (0 ..)) \from *(path + (0 ..)), __fc_dirname[0 ..]; - assigns __fc_dirname[0 ..] \from *(path + (0 ..)), __fc_dirname[0 ..]; - assigns \result \from __fc_p_dirname, path; + result_overflow: + \old(a) + \old(b) ≡ (long long)(\old(a) + \old(b))? + \result ≡ 0: + \result ≡ 1; + assigns \result, *res; + assigns \result \from a, b; + assigns *res \from a, b; */ -extern char *dirname(char *path); +_Bool __builtin_saddll_overflow(long long a, long long b, long long *res); -/*@ requires valid_file_descriptors: \valid(fds + (0 .. nfds - 1)); +/*@ requires valid_res: \valid(res); + ensures initialization: res: \initialized(\old(res)); + ensures res_wrapped: *\old(res) ≡ (unsigned int)(\old(a) + \old(b)); ensures - error_timeout_or_bounded: - \result ≡ -1 ∨ \result ≡ 0 ∨ (1 ≤ \result ≤ \old(nfds)); + result_overflow: + \old(a) + \old(b) ≡ (unsigned int)(\old(a) + \old(b))? + \result ≡ 0: + \result ≡ 1; + assigns \result, *res; + assigns \result \from a, b; + assigns *res \from a, b; + */ +_Bool __builtin_uadd_overflow(unsigned int a, unsigned int b, + unsigned int *res); + +/*@ requires valid_res: \valid(res); + ensures initialization: res: \initialized(\old(res)); + ensures res_wrapped: *\old(res) ≡ (unsigned long)(\old(a) + \old(b)); ensures - initialization: revents: - \initialized(&(\old(fds) + (0 .. \old(nfds) - 1))->revents); - assigns (fds + (0 .. nfds - 1))->revents, \result; - assigns (fds + (0 .. nfds - 1))->revents - \from (indirect: (fds + (0 .. nfds - 1))->fd), - (fds + (0 .. nfds - 1))->events, (indirect: nfds), - (indirect: timeout), (indirect: Frama_C_entropy_source); - assigns \result - \from (indirect: (fds + (0 .. nfds - 1))->fd), - (indirect: (fds + (0 .. nfds - 1))->events), (indirect: nfds), - (indirect: timeout), (indirect: Frama_C_entropy_source); + result_overflow: + \old(a) + \old(b) ≡ (unsigned long)(\old(a) + \old(b))? + \result ≡ 0: + \result ≡ 1; + assigns \result, *res; + assigns \result \from a, b; + assigns *res \from a, b; */ -extern int poll(struct pollfd *fds, nfds_t nfds, int timeout); +_Bool __builtin_uaddl_overflow(unsigned long a, unsigned long b, + unsigned long *res); -/*@ requires valid_cond: \valid(cond); - ensures sucess: \result ≡ 0; - assigns \result; - assigns \result \from \nothing; +/*@ requires valid_res: \valid(res); + ensures initialization: res: \initialized(\old(res)); + ensures + res_wrapped: *\old(res) ≡ (unsigned long long)(\old(a) + \old(b)); + ensures + result_overflow: + \old(a) + \old(b) ≡ (unsigned long long)(\old(a) + \old(b))? + \result ≡ 0: + \result ≡ 1; + assigns \result, *res; + assigns \result \from a, b; + assigns *res \from a, b; + */ +_Bool __builtin_uaddll_overflow(unsigned long long a, unsigned long long b, + unsigned long long *res); + +/*@ requires valid_res: \valid(res); + ensures initialization: res: \initialized(\old(res)); + ensures res_wrapped: *\old(res) ≡ (int)(\old(a) - \old(b)); + ensures + result_overflow: + \old(a) - \old(b) ≡ (int)(\old(a) - \old(b))? + \result ≡ 0: + \result ≡ 1; + assigns \result, *res; + assigns \result \from a, b; + assigns *res \from a, b; + */ +_Bool __builtin_ssub_overflow(int a, int b, int *res); + +/*@ requires valid_res: \valid(res); + ensures initialization: res: \initialized(\old(res)); + ensures res_wrapped: *\old(res) ≡ (long)(\old(a) - \old(b)); + ensures + result_overflow: + \old(a) - \old(b) ≡ (long)(\old(a) - \old(b))? + \result ≡ 0: + \result ≡ 1; + assigns \result, *res; + assigns \result \from a, b; + assigns *res \from a, b; + */ +_Bool __builtin_ssubl_overflow(long a, long b, long *res); + +/*@ requires valid_res: \valid(res); + ensures initialization: res: \initialized(\old(res)); + ensures res_wrapped: *\old(res) ≡ (long long)(\old(a) - \old(b)); + ensures + result_overflow: + \old(a) - \old(b) ≡ (long long)(\old(a) - \old(b))? + \result ≡ 0: + \result ≡ 1; + assigns \result, *res; + assigns \result \from a, b; + assigns *res \from a, b; + */ +_Bool __builtin_ssubll_overflow(long long a, long long b, long long *res); + +/*@ requires valid_res: \valid(res); + ensures initialization: res: \initialized(\old(res)); + ensures res_wrapped: *\old(res) ≡ (unsigned int)(\old(a) - \old(b)); + ensures + result_overflow: + \old(a) - \old(b) ≡ (unsigned int)(\old(a) - \old(b))? + \result ≡ 0: + \result ≡ 1; + assigns \result, *res; + assigns \result \from a, b; + assigns *res \from a, b; */ -extern int pthread_cond_broadcast(pthread_cond_t *cond); +_Bool __builtin_usub_overflow(unsigned int a, unsigned int b, + unsigned int *res); -/*@ requires valid_cond: \valid(cond); - ensures success_or_error: \result ≡ 0 ∨ \result ≡ 16; - assigns \result; - assigns \result \from (indirect: *cond); +/*@ requires valid_res: \valid(res); + ensures initialization: res: \initialized(\old(res)); + ensures res_wrapped: *\old(res) ≡ (unsigned long)(\old(a) - \old(b)); + ensures + result_overflow: + \old(a) - \old(b) ≡ (unsigned long)(\old(a) - \old(b))? + \result ≡ 0: + \result ≡ 1; + assigns \result, *res; + assigns \result \from a, b; + assigns *res \from a, b; */ -extern int pthread_cond_destroy(pthread_cond_t *cond); +_Bool __builtin_usubl_overflow(unsigned long a, unsigned long b, + unsigned long *res); -/*@ requires valid_cond: \valid(cond); - requires valid_null_attr: attr ≡ \null ∨ \valid_read(attr); - ensures initialization: cond: \initialized(\old(cond)); - ensures success: \result ≡ 0; - assigns *cond, \result; - assigns *cond \from *attr; - assigns \result \from \nothing; +/*@ requires valid_res: \valid(res); + ensures initialization: res: \initialized(\old(res)); + ensures + res_wrapped: *\old(res) ≡ (unsigned long long)(\old(a) - \old(b)); + ensures + result_overflow: + \old(a) - \old(b) ≡ (unsigned long long)(\old(a) - \old(b))? + \result ≡ 0: + \result ≡ 1; + assigns \result, *res; + assigns \result \from a, b; + assigns *res \from a, b; */ -extern int pthread_cond_init(pthread_cond_t * __restrict cond, - pthread_condattr_t const * __restrict attr); +_Bool __builtin_usubll_overflow(unsigned long long a, unsigned long long b, + unsigned long long *res); -/*@ requires valid_cond: \valid(cond); - requires valid_mutex: \valid(mutex); - ensures success: \result ≡ 0; - assigns \result; - assigns \result \from \nothing; +/*@ requires valid_res: \valid(res); + ensures initialization: res: \initialized(\old(res)); + ensures res_wrapped: *\old(res) ≡ (int)(\old(a) * \old(b)); + ensures + result_overflow: + \old(a) * \old(b) ≡ (int)(\old(a) * \old(b))? + \result ≡ 0: + \result ≡ 1; + assigns \result, *res; + assigns \result \from a, b; + assigns *res \from a, b; */ -extern int pthread_cond_wait(pthread_cond_t * __restrict cond, - pthread_mutex_t * __restrict mutex); +_Bool __builtin_smul_overflow(int a, int b, int *res); -/*@ requires valid_thread: \valid(thread); - requires valid_null_attr: attr ≡ \null ∨ \valid_read(attr); - requires valid_routine: \valid_function(start_routine); - requires valid_null_arg: arg ≡ \null ∨ \valid((char *)arg); +/*@ requires valid_res: \valid(res); + ensures initialization: res: \initialized(\old(res)); + ensures res_wrapped: *\old(res) ≡ (long)(\old(a) * \old(b)); ensures - success_or_error: - \result ≡ 0 ∨ \result ≡ 11 ∨ \result ≡ 22 ∨ \result ≡ 1; - assigns *thread, \result; - assigns *thread \from *attr; - assigns \result \from (indirect: *attr); + result_overflow: + \old(a) * \old(b) ≡ (long)(\old(a) * \old(b))? + \result ≡ 0: + \result ≡ 1; + assigns \result, *res; + assigns \result \from a, b; + assigns *res \from a, b; */ -extern int pthread_create(pthread_t * __restrict thread, - pthread_attr_t const * __restrict attr, - void *(*start_routine)(void *), - void * __restrict arg); +_Bool __builtin_smull_overflow(long a, long b, long *res); -/*@ requires valid_or_null_retval: retval ≡ \null ∨ \valid(retval); +/*@ requires valid_res: \valid(res); + ensures initialization: res: \initialized(\old(res)); + ensures res_wrapped: *\old(res) ≡ (long long)(\old(a) * \old(b)); ensures - success_or_error: - \result ≡ 0 ∨ \result ≡ 35 ∨ \result ≡ 22 ∨ \result ≡ 3; - assigns *retval, \result; - assigns *retval \from thread; - assigns \result \from (indirect: thread); - - behavior ignore_retval: - assumes null_retval: retval ≡ \null; - assigns \result; - assigns \result \from (indirect: thread); - - behavior use_retval: - assumes valid_retval: \valid(retval); - assigns *retval, \result; - assigns *retval \from thread; - assigns \result \from (indirect: thread); + result_overflow: + \old(a) * \old(b) ≡ (long long)(\old(a) * \old(b))? + \result ≡ 0: + \result ≡ 1; + assigns \result, *res; + assigns \result \from a, b; + assigns *res \from a, b; */ -extern int pthread_join(pthread_t thread, void **retval); +_Bool __builtin_smulll_overflow(long long a, long long b, long long *res); -/*@ requires mutex_valid: \valid(mutex); - ensures init_or_busy: \result ≡ 0 ∨ \result ≡ 16; - assigns *mutex, \result; - assigns *mutex \from *mutex; - assigns \result \from (indirect: *mutex); +/*@ requires valid_res: \valid(res); + ensures initialization: res: \initialized(\old(res)); + ensures res_wrapped: *\old(res) ≡ (unsigned int)(\old(a) * \old(b)); + ensures + result_overflow: + \old(a) * \old(b) ≡ (unsigned int)(\old(a) * \old(b))? + \result ≡ 0: + \result ≡ 1; + assigns \result, *res; + assigns \result \from a, b; + assigns *res \from a, b; */ -extern int pthread_mutex_destroy(pthread_mutex_t *mutex); +_Bool __builtin_umul_overflow(unsigned int a, unsigned int b, + unsigned int *res); -/*@ requires mutex_valid: \valid(mutex); - requires attrs_valid_or_null: attrs ≡ \null ∨ \valid_read(attrs); +/*@ requires valid_res: \valid(res); + ensures initialization: res: \initialized(\old(res)); + ensures res_wrapped: *\old(res) ≡ (unsigned long)(\old(a) * \old(b)); ensures - initialization: success_or_error: - (\result ≡ 0 ∧ \initialized(\old(mutex))) ∨ \result ≡ 11 ∨ - \result ≡ 12 ∨ \result ≡ 1 ∨ \result ≡ 22; - assigns *mutex, \result; - assigns *mutex \from *mutex, *attrs; - assigns \result \from (indirect: *mutex), (indirect: *attrs); + result_overflow: + \old(a) * \old(b) ≡ (unsigned long)(\old(a) * \old(b))? + \result ≡ 0: + \result ≡ 1; + assigns \result, *res; + assigns \result \from a, b; + assigns *res \from a, b; */ -extern int pthread_mutex_init(pthread_mutex_t * __restrict mutex, - pthread_mutexattr_t const * __restrict attrs); +_Bool __builtin_umull_overflow(unsigned long a, unsigned long b, + unsigned long *res); -/*@ requires mutex_valid: \valid(mutex); +/*@ requires valid_res: \valid(res); + ensures initialization: res: \initialized(\old(res)); ensures - success_or_error: - \result ≡ 0 ∨ \result ≡ 11 ∨ \result ≡ 22 ∨ - \result ≡ 35; - assigns *mutex, \result; - assigns *mutex \from *mutex; - assigns \result \from (indirect: *mutex); + res_wrapped: *\old(res) ≡ (unsigned long long)(\old(a) * \old(b)); + ensures + result_overflow: + \old(a) * \old(b) ≡ (unsigned long long)(\old(a) * \old(b))? + \result ≡ 0: + \result ≡ 1; + assigns \result, *res; + assigns \result \from a, b; + assigns *res \from a, b; */ -extern int pthread_mutex_lock(pthread_mutex_t *mutex); +_Bool __builtin_umulll_overflow(unsigned long long a, unsigned long long b, + unsigned long long *res); -/*@ requires mutex_valid: \valid(mutex); - ensures success_or_error: \result ≡ 0 ∨ \result ≡ 1; - assigns *mutex, \result; - assigns *mutex \from *mutex; - assigns \result \from (indirect: *mutex); +/*@ requires valid_filename: valid_read_string(filename); + assigns \result; + assigns \result \from (indirect: *(filename + (0 ..))), (indirect: mode); */ -extern int pthread_mutex_unlock(pthread_mutex_t *mutex); - -extern char __fc_getpwuid_pw_name[64]; - -extern char __fc_getpwuid_pw_passwd[64]; - -extern char __fc_getpwuid_pw_dir[64]; +extern int creat(char const *filename, mode_t mode); -extern char __fc_getpwuid_pw_shell[64]; +/*@ assigns \result; + assigns \result \from fd, cmd; */ +extern int fcntl(int fd, int cmd, void * const *__va_params); -struct passwd __fc_pwd = - {.pw_name = __fc_getpwuid_pw_name, - .pw_passwd = __fc_getpwuid_pw_passwd, - .pw_uid = 0U, - .pw_gid = 0U, - .pw_gecos = (char *)0, - .pw_dir = __fc_getpwuid_pw_dir, - .pw_shell = __fc_getpwuid_pw_shell}; -struct passwd *__fc_p_pwd = & __fc_pwd; -/*@ requires valid_name: valid_read_string(name); - ensures - result_null_or_internal_struct: - \result ≡ \null ∨ \result ≡ __fc_p_pwd; - assigns \result, __fc_pwd; - assigns \result \from __fc_p_pwd, (indirect: *(name + (0 ..))); - assigns __fc_pwd \from (indirect: *(name + (0 ..))); +/*@ requires valid_filename: valid_read_string(filename); + assigns \result; + assigns \result + \from (indirect: *(filename + (0 ..))), (indirect: flags); */ -extern struct passwd *getpwnam(char const *name); +extern int open(char const *filename, int flags, void * const *__va_params); -/*@ ensures - result_null_or_internal_struct: - \result ≡ \null ∨ \result ≡ __fc_p_pwd; - assigns \result, __fc_pwd; - assigns \result \from __fc_p_pwd, (indirect: uid); - assigns __fc_pwd \from (indirect: uid); +/*@ requires valid_filename: valid_read_string(filename); + assigns \result; + assigns \result + \from (indirect: dirfd), (indirect: *(filename + (0 ..))), + (indirect: flags); */ -extern struct passwd *getpwuid(uid_t uid); - -/*@ assigns *(env + (0 .. 4)); */ -extern int setjmp(int * /*[5]*/ env); +extern int openat(int dirfd, char const *filename, int flags, + void * const *__va_params); -/*@ ensures never_terminates: \false; - assigns \nothing; */ -extern void longjmp(int * /*[5]*/ env, int val); +/*@ requires cmd_has_void_arg: cmd ≡ 1 ∨ cmd ≡ 3 ∨ cmd ≡ 9; + assigns \result; + assigns \result \from fd, cmd; + */ +extern int __va_fcntl_void(int fd, int cmd); -/*@ ensures never_terminates: \false; - assigns \nothing; */ -extern void siglongjmp(sigjmp_buf env, int val); +/*@ requires + cmd_has_int_arg: + cmd ≡ 0 ∨ cmd ≡ 0x406 ∨ cmd ≡ 4 ∨ cmd ≡ 8 ∨ cmd ≡ 2; + assigns \result; + assigns \result \from fd, cmd, arg; + */ +extern int __va_fcntl_int(int fd, int cmd, int arg); -/*@ assigns \result; - assigns \result \from (indirect: fd), (indirect: request); +/*@ requires cmd_as_flock_arg: cmd ≡ 5 ∨ cmd ≡ 6 ∨ cmd ≡ 7; + requires valid_arg: \valid(arg); + assigns \result, *arg; + assigns \result \from fd, cmd, *arg; + assigns *arg \from fd, cmd, *arg; */ -extern int __va_ioctl_void(int fd, int request); +extern int __va_fcntl_flock(int fd, int cmd, struct flock *arg); -/*@ assigns \result; +/*@ requires valid_filename: valid_read_string(filename); + requires flag_not_CREAT: (flags & 0x40) ≡ 0; + assigns \result; assigns \result - \from (indirect: fd), (indirect: request), (indirect: arg); + \from (indirect: *(filename + (0 ..))), (indirect: flags); */ -extern int __va_ioctl_int(int fd, int request, int arg); +extern int __va_open_void(char const *filename, int flags); -/*@ assigns \result, *((char *)argp + (0 ..)); +/*@ requires valid_filename: valid_read_string(filename); + assigns \result; assigns \result - \from (indirect: fd), (indirect: request), - (indirect: *((char *)argp + (0 ..))); - assigns *((char *)argp + (0 ..)) - \from (indirect: fd), (indirect: request), *((char *)argp + (0 ..)); + \from (indirect: *(filename + (0 ..))), (indirect: flags), + (indirect: mode); */ -extern int __va_ioctl_ptr(int fd, int request, void *argp); +extern int __va_open_mode_t(char const *filename, int flags, mode_t mode); -/*@ ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; +/*@ requires valid_filename: valid_read_string(filename); + requires flag_not_CREAT: (flags & 0x40) ≡ 0; assigns \result; - assigns \result \from (indirect: fd), (indirect: operation); + assigns \result + \from (indirect: dirfd), (indirect: *(filename + (0 ..))), + (indirect: flags); */ -extern int flock(int fd, int operation); - -CODE facilitynames[23] = - {{.c_name = "auth", .c_val = 4 << 3}, - {.c_name = "authpriv", .c_val = 10 << 3}, - {.c_name = "cron", .c_val = 9 << 3}, - {.c_name = "daemon", .c_val = 3 << 3}, - {.c_name = "ftp", .c_val = 11 << 3}, - {.c_name = "kern", .c_val = 0 << 3}, - {.c_name = "lpr", .c_val = 6 << 3}, - {.c_name = "mail", .c_val = 2 << 3}, - {.c_name = "mark", .c_val = 24 | 0}, - {.c_name = "news", .c_val = 7 << 3}, - {.c_name = "security", .c_val = 4 << 3}, - {.c_name = "syslog", .c_val = 5 << 3}, - {.c_name = "user", .c_val = 1 << 3}, - {.c_name = "uucp", .c_val = 8 << 3}, - {.c_name = "local0", .c_val = 16 << 3}, - {.c_name = "local1", .c_val = 17 << 3}, - {.c_name = "local2", .c_val = 18 << 3}, - {.c_name = "local3", .c_val = 19 << 3}, - {.c_name = "local4", .c_val = 20 << 3}, - {.c_name = "local5", .c_val = 21 << 3}, - {.c_name = "local6", .c_val = 22 << 3}, - {.c_name = "local7", .c_val = 23 << 3}, - {.c_name = (char const *)0, .c_val = -1}}; -CODE prioritynames[13] = - {{.c_name = "alert", .c_val = 1}, - {.c_name = "crit", .c_val = 2}, - {.c_name = "debug", .c_val = 7}, - {.c_name = "emerg", .c_val = 0}, - {.c_name = "err", .c_val = 3}, - {.c_name = "error", .c_val = 3}, - {.c_name = "info", .c_val = 6}, - {.c_name = "none", .c_val = 0x10}, - {.c_name = "notice", .c_val = 5}, - {.c_name = "panic", .c_val = 0}, - {.c_name = "warn", .c_val = 4}, - {.c_name = "warning", .c_val = 4}, - {.c_name = (char const *)0, .c_val = -1}}; -/*@ assigns \nothing; */ -extern void closelog(void); - -/*@ assigns \nothing; */ -extern void openlog(char const *, int, int); - -/*@ assigns \nothing; */ -extern int setlogmask(int); - -/*@ assigns \nothing; */ -extern void syslog(int, char const *, void * const *__va_params); - -/*@ assigns \nothing; */ -extern void vsyslog(int, char const *, va_list); - -/*@ assigns \result; - assigns \result \from which, who; */ -extern int getpriority(int which, id_t who); - -/*@ assigns \result; - assigns \result \from which, who, prio; */ -extern int setpriority(int which, id_t who, int prio); +extern int __va_openat_void(int dirfd, char const *filename, int flags); -/*@ assigns \result, rl->rlim_cur, rl->rlim_max; - assigns \result \from r; - assigns rl->rlim_cur \from r; - assigns rl->rlim_max \from r; +/*@ requires valid_filename: valid_read_string(filename); + assigns \result; + assigns \result + \from (indirect: dirfd), (indirect: *(filename + (0 ..))), + (indirect: flags), (indirect: mode); */ -extern int getrlimit(int r, struct rlimit *rl); +extern int __va_openat_mode_t(int dirfd, char const *filename, int flags, + mode_t mode); -/*@ assigns \result, ru->ru_utime, ru->ru_stime; - assigns \result \from r; - assigns ru->ru_utime \from r; - assigns ru->ru_stime \from r; - */ -extern int getrusage(int r, struct rusage *ru); +/*@ ghost extern int __fc_tz __attribute__((__FRAMA_C_MODEL__)); */ /*@ assigns \result; - assigns \result \from r, rl->rlim_cur, rl->rlim_max; */ -extern int setrlimit(int r, struct rlimit const *rl); + assigns \result \from *(path + (0 ..)), *(times + (0 .. 1)); + */ +extern int utimes(char const *path, struct timeval const * /*[2]*/ times); -/*@ requires valid_buffer: \valid(buffer); - assigns \result, *buffer; - assigns \result \from __fc_time; - assigns *buffer \from __fc_time; +/*@ ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; + assigns tv->tv_sec, tv->tv_usec, *((struct timezone *)tz), \result; + assigns tv->tv_sec \from __fc_time; + assigns tv->tv_usec \from __fc_time; + assigns *((struct timezone *)tz) \from __fc_tz; + assigns \result + \from (indirect: tv), (indirect: tz), *tv, *((struct timezone *)tz), + __fc_tz; + + behavior tv_and_tz_null: + assumes null_tv_tz: tv ≡ \null ∧ tz ≡ \null; + assigns \result; + assigns \result \from (indirect: __fc_tz); + + behavior tv_not_null: + assumes non_null_tv_null_tz: tv ≢ \null ∧ tz ≡ \null; + ensures + initialization: tv_sec: tv_usec: + \initialized(&\old(tv)->tv_sec) ∧ + \initialized(&\old(tv)->tv_usec); + ensures tv_usec_bounded: 0 ≤ \old(tv)->tv_usec ≤ 999999; + assigns tv->tv_sec, tv->tv_usec, \result; + assigns tv->tv_sec \from (indirect: __fc_time); + assigns tv->tv_usec \from (indirect: __fc_time); + assigns \result \from (indirect: *tv), (indirect: __fc_tz); + + behavior tz_not_null: + assumes null_tv_non_null_tz: tv ≡ \null ∧ tz ≢ \null; + ensures initialization: tz: \initialized((struct timezone *)\old(tz)); + assigns *((struct timezone *)tz), \result; + assigns *((struct timezone *)tz) \from __fc_tz; + assigns \result + \from (indirect: *((struct timezone *)tz)), (indirect: __fc_tz); + + behavior tv_and_tz_not_null: + assumes non_null_tv_tz: tv ≢ \null ∧ tz ≢ \null; + ensures + initialization: tv_sec: tv_usec: + \initialized(&\old(tv)->tv_sec) ∧ + \initialized(&\old(tv)->tv_usec); + ensures initialization: tz: \initialized((struct timezone *)\old(tz)); + assigns tv->tv_sec, tv->tv_usec, *((struct timezone *)tz), \result; + assigns tv->tv_sec \from (indirect: __fc_time); + assigns tv->tv_usec \from (indirect: __fc_time); + assigns *((struct timezone *)tz) \from __fc_tz; + assigns \result + \from (indirect: *tv), (indirect: *((struct timezone *)tz)), + (indirect: __fc_tz); + + complete behaviors tv_and_tz_not_null, + tz_not_null, + tv_not_null, + tv_and_tz_null; + disjoint behaviors tv_and_tz_not_null, + tz_not_null, + tv_not_null, + tv_and_tz_null; */ -extern clock_t times(struct tms *buffer); +extern int gettimeofday(struct timeval * __restrict tv, void * __restrict tz); -/*@ requires valid_read_iov: \valid_read(iov + (0 .. iovcnt - 1)); - assigns *((char *)(iov + (0 .. iovcnt - 1))->iov_base + (0 ..)); +/*@ assigns \result, __fc_time, __fc_tz; + assigns \result + \from tv->tv_sec, tv->tv_usec, tz->tz_dsttime, tz->tz_minuteswest; + assigns __fc_time + \from tv->tv_sec, tv->tv_usec, tz->tz_dsttime, tz->tz_minuteswest; + assigns __fc_tz + \from tv->tv_sec, tv->tv_usec, tz->tz_dsttime, tz->tz_minuteswest; */ -extern ssize_t readv(int fd, struct iovec const *iov, int iovcnt); +extern int settimeofday(struct timeval const *tv, struct timezone const *tz); -/*@ ensures result_ok_or_error: \result ≡ -1 ∨ \result ≥ 0; - ensures - initialization: stat_loc_init_on_success: - \result ≥ 0 ∧ \old(stat_loc) ≢ \null ⇒ - \initialized(\old(stat_loc)); - assigns \result, *stat_loc; - assigns \result \from \nothing; - assigns *stat_loc \from \nothing; +/*@ ghost + struct itimerval volatile __fc_itimer_real __attribute__((__FRAMA_C_MODEL__)); + */ +/*@ ghost + struct itimerval volatile __fc_itimer_virtual __attribute__((__FRAMA_C_MODEL__)); + */ +/*@ ghost + struct itimerval volatile __fc_itimer_prof __attribute__((__FRAMA_C_MODEL__)); + */ +/*@ requires valid_curr_value: \valid(curr_value); + ensures initialization: curr_value: \initialized(\old(curr_value)); + assigns \result, *curr_value; + assigns \result \from (indirect: which); + assigns *curr_value + \from __fc_itimer_real, __fc_itimer_virtual, __fc_itimer_prof; - behavior stat_loc_null: - assumes stat_loc_null: stat_loc ≡ \null; - assigns \result; + behavior real: + assumes itimer_real: which ≡ 0; + ensures result_ok: \result ≡ 0; + assigns \result, *curr_value; assigns \result \from \nothing; + assigns *curr_value \from __fc_itimer_real; - behavior stat_loc_non_null: - assumes stat_loc_non_null: stat_loc ≢ \null; - requires valid_stat_loc: \valid(stat_loc); - */ -extern pid_t wait(int *stat_loc); - -/*@ ensures result_ok_or_error: \result ≡ -1 ∨ \result ≥ 0; - ensures - initialization: stat_loc_init_on_success: - \result ≥ 0 ∧ \old(stat_loc) ≢ \null ⇒ - \initialized(\old(stat_loc)); - assigns \result, *stat_loc; - assigns \result \from (indirect: options); - assigns *stat_loc \from (indirect: options); + behavior virtual: + assumes itimer_virtual: which ≡ 1; + ensures result_ok: \result ≡ 0; + assigns \result, *curr_value; + assigns \result \from \nothing; + assigns *curr_value \from __fc_itimer_virtual; + + behavior prof: + assumes itimer_prof: which ≡ 2; + ensures result_ok: \result ≡ 0; + assigns \result, *curr_value; + assigns \result \from \nothing; + assigns *curr_value \from __fc_itimer_prof; - behavior stat_loc_null: - assumes stat_loc_null: stat_loc ≡ \null; + behavior invalid: + assumes invalid_which: which ≢ 0 ∧ which ≢ 1 ∧ which ≢ 2; + ensures result_error: \result ≡ -1; assigns \result; assigns \result \from \nothing; - behavior stat_loc_non_null: - assumes stat_loc_non_null: stat_loc ≢ \null; - requires valid_stat_loc: \valid(stat_loc); + complete behaviors invalid, prof, virtual, real; + disjoint behaviors invalid, prof, virtual, real; */ -extern pid_t waitpid(pid_t pid, int *stat_loc, int options); +extern int getitimer(int which, struct itimerval *curr_value); -/*@ requires valid_termios_p: \valid(termios_p); - assigns \result, *termios_p, Frama_C_entropy_source; - assigns \result \from (indirect: fd), (indirect: Frama_C_entropy_source); - assigns *termios_p - \from (indirect: fd), (indirect: Frama_C_entropy_source); - assigns Frama_C_entropy_source \from Frama_C_entropy_source; +/*@ requires valid_new_value: \valid_read(new_value); + requires + old_value_null_or_valid: old_value ≡ \null ∨ \valid(old_value); + ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; + assigns *old_value, \result; + assigns *old_value + \from (indirect: which), (indirect: old_value), (indirect: new_value), + __fc_itimer_real, __fc_itimer_virtual, __fc_itimer_prof; + assigns \result + \from (indirect: which), (indirect: new_value), (indirect: *new_value); - behavior ok: - assumes nondet: Frama_C_entropy_source ≡ 0; - ensures initialization: termios_p: \initialized(\old(termios_p)); + behavior real: + assumes + itimer_real_and_valid: + which ≡ 0 ≤ new_value->it_value.tv_usec ≤ 999999 ∧ + 0 ≤ new_value->it_interval.tv_usec ≤ 999999; ensures result_ok: \result ≡ 0; + ensures initialization: old_value: \initialized(\old(old_value)); + assigns \result, *old_value, __fc_itimer_real; + assigns \result \from \nothing; + assigns *old_value \from __fc_itimer_real; + assigns __fc_itimer_real \from *new_value; - behavior error: - assumes nondet: Frama_C_entropy_source ≢ 0; + behavior virtual: + assumes + itimer_virtual_and_valid: + which ≡ 1 ∧ 0 ≤ new_value->it_value.tv_usec ≤ 999999 ∧ + 0 ≤ new_value->it_interval.tv_usec ≤ 999999; + ensures result_ok: \result ≡ 0; + ensures initialization: old_value: \initialized(\old(old_value)); + assigns \result, *old_value; + assigns \result \from \nothing; + assigns *old_value \from __fc_itimer_virtual; + + behavior prof: + assumes + itimer_prof_and_valid: + which ≡ 2 ∧ 0 ≤ new_value->it_value.tv_usec ≤ 999999 ∧ + 0 ≤ new_value->it_interval.tv_usec ≤ 999999; + ensures result_ok: \result ≡ 0; + ensures initialization: old_value: \initialized(\old(old_value)); + assigns \result, *old_value; + assigns \result \from \nothing; + assigns *old_value \from __fc_itimer_prof; + + behavior invalid: + assumes + invalid_itimer_or_new_value: + (which ≢ 0 ∧ which ≢ 1 ∧ which ≢ 2) ∨ + ¬(0 ≤ new_value->it_value.tv_usec ≤ 999999 ∧ + 0 ≤ new_value->it_interval.tv_usec ≤ 999999); ensures result_error: \result ≡ -1; + assigns \result; + assigns \result \from \nothing; - complete behaviors error, ok; - disjoint behaviors error, ok; + disjoint behaviors invalid, prof, virtual, real; */ -extern int tcgetattr(int fd, struct termios *termios_p); +extern int setitimer(int which, + struct itimerval const * __restrict new_value, + struct itimerval * __restrict old_value); -/*@ requires valid_termios_p: \valid(termios_p); - ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; - assigns *termios_p, Frama_C_entropy_source, \result; - assigns *termios_p - \from (indirect: fd), (indirect: optional_actions), - (indirect: Frama_C_entropy_source), *termios_p; - assigns Frama_C_entropy_source \from Frama_C_entropy_source; +/*@ ghost int volatile __fc_fds_state; */ +/*@ requires nfds: nfds ≥ 0; + requires readfs: readfds ≡ \null ∨ \valid(readfds); + requires writefds: writefds ≡ \null ∨ \valid(writefds); + requires errorfds: errorfds ≡ \null ∨ \valid(errorfds); + requires timeout: timeout ≡ \null ∨ \valid(timeout); + assigns __fc_fds_state, *readfds, *writefds, *errorfds, *timeout, + \result; + assigns __fc_fds_state \from __fc_fds_state; + assigns *readfds + \from (indirect: nfds), (indirect: readfds), (indirect: *readfds), + (indirect: writefds), (indirect: *writefds), + (indirect: errorfds), (indirect: *errorfds), (indirect: timeout), + (indirect: *timeout), __fc_fds_state; + assigns *writefds + \from (indirect: nfds), (indirect: readfds), (indirect: *readfds), + (indirect: writefds), (indirect: *writefds), + (indirect: errorfds), (indirect: *errorfds), (indirect: timeout), + (indirect: *timeout), __fc_fds_state; + assigns *errorfds + \from (indirect: nfds), (indirect: readfds), (indirect: *readfds), + (indirect: writefds), (indirect: *writefds), + (indirect: errorfds), (indirect: *errorfds), (indirect: timeout), + (indirect: *timeout), __fc_fds_state; + assigns *timeout + \from (indirect: nfds), (indirect: readfds), (indirect: *readfds), + (indirect: writefds), (indirect: *writefds), + (indirect: errorfds), (indirect: *errorfds), (indirect: timeout), + (indirect: *timeout), __fc_fds_state; assigns \result - \from (indirect: fd), (indirect: optional_actions), - (indirect: Frama_C_entropy_source), (indirect: *termios_p); + \from (indirect: nfds), (indirect: readfds), (indirect: *readfds), + (indirect: writefds), (indirect: *writefds), + (indirect: errorfds), (indirect: *errorfds), (indirect: timeout), + (indirect: *timeout), __fc_fds_state; + + behavior read_notnull: + assumes readfds_is_not_null: readfds ≢ \null; + ensures initialization: readfds: \initialized(\old(readfds)); + + behavior write_notnull: + assumes writefds_is_not_null: writefds ≢ \null; + ensures initialization: writefds: \initialized(\old(writefds)); + + behavior error_notnull: + assumes errorfds_is_not_null: errorfds ≢ \null; + ensures initialization: errorfds: \initialized(\old(errorfds)); + + behavior timeout_notnull: + assumes timeout_is_not_null: timeout ≢ \null; + ensures initialization: timeout: \initialized(\old(timeout)); */ -extern int tcsetattr(int fd, int optional_actions, struct termios *termios_p); +extern int select(int nfds, fd_set *readfds, fd_set *writefds, + fd_set *errorfds, struct timeval *timeout); -/*@ ghost int __fc_fds[1024]; */ /*@ requires valid_string_path: valid_read_string(path); - requires valid_amode: (amode & ~((4 | 2) | 1)) ≡ 0 ∨ amode ≡ 0; ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; assigns \result; assigns \result - \from (indirect: path), (indirect: *(path + (0 ..))), (indirect: amode); + \from (indirect: path), (indirect: *(path + (0 ..))), (indirect: mode); */ -extern int access(char const *path, int amode); +extern int mkdir(char const *path, mode_t mode); -/*@ requires valid_string_path: valid_read_string(path); +/*@ requires valid_pathname: valid_read_string(pathname); + requires valid_buf: \valid(buf); ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; - assigns \result; - assigns \result \from (indirect: path), (indirect: *(path + (0 ..))); + ensures + init_on_success: initialization: buf: + \result ≡ 0 ⇒ \initialized(\old(buf)); + assigns \result, *buf; + assigns \result \from *(pathname + (0 ..)); + assigns *buf \from *(pathname + (0 ..)); */ -extern int chdir(char const *path); +extern int stat(char const *pathname, struct stat *buf); -/*@ requires valid_string_path: valid_read_string(path); - ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; - assigns \result; - assigns \result \from (indirect: path), (indirect: *(path + (0 ..))); - */ -extern int chroot(char const *path); +/*@ assigns \result; + assigns \result \from (indirect: cmask); */ +extern mode_t umask(mode_t cmask); -/*@ requires valid_string_path: valid_read_string(path); - ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; - assigns \result; - assigns \result - \from (indirect: path), (indirect: *(path + (0 ..))), - (indirect: owner), (indirect: group); +/*@ assigns *(*(outbuf + (0 .. *outbytesleft - 1))), __fc_errno; + assigns *(*(outbuf + (0 .. *outbytesleft - 1))) + \from *(*(inbuf + (0 .. *inbytesleft - 1))); */ -extern int chown(char const *path, uid_t owner, gid_t group); +extern size_t iconv(iconv_t cd, char ** __restrict inbuf, + size_t * __restrict inbytesleft, + char ** __restrict outbuf, + size_t * __restrict outbytesleft); -/*@ requires valid_fd: 0 ≤ fd < 1024; - ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; - assigns __fc_fds[fd], \result; - assigns __fc_fds[fd] \from fd, __fc_fds[fd]; - assigns \result \from (indirect: fd), (indirect: __fc_fds[fd]); +/*@ ensures result_zero_or_neg: \result ≡ 0 ∨ \result ≡ -1; + assigns __fc_errno; */ -extern int close(int fd); +extern int iconv_close(iconv_t); -/*@ requires valid_fildes: 0 ≤ fildes < 1024; - ensures - result_valid_fildes_or_error: - \result ≡ -1 ∨ (\old(fildes) ≤ \result < 1024); - assigns __fc_fds[fildes ..], \result; - assigns __fc_fds[fildes ..] \from fildes; - assigns \result \from fildes; +/*@ assigns \result, __fc_errno; + assigns \result \from *(tocode + (..)), *(fromcode + (..)); */ -extern int dup(int fildes); +extern iconv_t iconv_open(char const *tocode, char const *fromcode); -/*@ requires valid_fildes: 0 ≤ fildes < 1024; - requires valid_fildes2: 0 ≤ fildes2 < 1024; +extern char __fc_basename[256]; + +char *__fc_p_basename = __fc_basename; +/*@ requires + null_or_valid_string_path: path ≡ \null ∨ valid_read_string(path); ensures - result_fildes2_or_error: \result ≡ \old(fildes2) ∨ \result ≡ -1; - assigns __fc_fds[fildes2], \result; - assigns __fc_fds[fildes2] \from fildes, fildes2, __fc_fds[fildes2]; - assigns \result - \from fildes, fildes2, __fc_fds[fildes], __fc_fds[fildes2]; + result_points_to_internal_storage_or_path: + \subset(\result, {__fc_p_basename, \old(path)}); + assigns *(path + (0 ..)), __fc_basename[0 ..], \result; + assigns *(path + (0 ..)) \from *(path + (0 ..)), __fc_basename[0 ..]; + assigns __fc_basename[0 ..] \from *(path + (0 ..)), __fc_basename[0 ..]; + assigns \result \from __fc_p_basename, path; */ -extern int dup2(int fildes, int fildes2); +extern char *basename(char *path); -/*@ requires valid_string_path: valid_read_string(path); - requires valid_string_arg: valid_read_string(arg); - assigns \result; - assigns \result \from *(path + (0 ..)), *(arg + (0 ..)); - */ -extern int execl(char const *path, char const *arg, void * const *__va_params); +extern char __fc_dirname[256]; -/*@ requires valid_string_path: valid_read_string(path); - requires valid_string_arg: valid_read_string(arg); - assigns \result; - assigns \result \from *(path + (0 ..)), *(arg + (0 ..)); +char *__fc_p_dirname = __fc_dirname; +/*@ requires + null_or_valid_string_path: path ≡ \null ∨ valid_read_string(path); + ensures + result_points_to_internal_storage_or_path: + \subset(\result, {__fc_p_dirname, \old(path)}); + assigns *(path + (0 ..)), __fc_dirname[0 ..], \result; + assigns *(path + (0 ..)) \from *(path + (0 ..)), __fc_dirname[0 ..]; + assigns __fc_dirname[0 ..] \from *(path + (0 ..)), __fc_dirname[0 ..]; + assigns \result \from __fc_p_dirname, path; */ -extern int execle(char const *path, char const *arg, - void * const *__va_params); +extern char *dirname(char *path); -/*@ requires valid_string_path: valid_read_string(path); - requires valid_string_arg: valid_read_string(arg); - assigns \result; - assigns \result \from *(path + (0 ..)), *(arg + (0 ..)); +/*@ requires valid_file_descriptors: \valid(fds + (0 .. nfds - 1)); + ensures + error_timeout_or_bounded: + \result ≡ -1 ∨ \result ≡ 0 ∨ (1 ≤ \result ≤ \old(nfds)); + ensures + initialization: revents: + \initialized(&(\old(fds) + (0 .. \old(nfds) - 1))->revents); + assigns (fds + (0 .. nfds - 1))->revents, \result; + assigns (fds + (0 .. nfds - 1))->revents + \from (indirect: (fds + (0 .. nfds - 1))->fd), + (fds + (0 .. nfds - 1))->events, (indirect: nfds), + (indirect: timeout), (indirect: Frama_C_entropy_source); + assigns \result + \from (indirect: (fds + (0 .. nfds - 1))->fd), + (indirect: (fds + (0 .. nfds - 1))->events), (indirect: nfds), + (indirect: timeout), (indirect: Frama_C_entropy_source); */ -extern int execlp(char const *path, char const *arg, - void * const *__va_params); +extern int poll(struct pollfd *fds, nfds_t nfds, int timeout); -/*@ requires valid_string_path: valid_read_string(path); - requires valid_string_argv0: valid_read_string(*(argv + 0)); +/*@ requires valid_cond: \valid(cond); + ensures sucess: \result ≡ 0; assigns \result; - assigns \result \from *(path + (0 ..)), *(argv + (0 ..)); + assigns \result \from \nothing; */ -extern int execv(char const *path, char * const *argv); +extern int pthread_cond_broadcast(pthread_cond_t *cond); -/*@ requires valid_path: valid_read_string(path); - requires valid_argv0: valid_read_string(*(argv + 0)); +/*@ requires valid_cond: \valid(cond); + ensures success_or_error: \result ≡ 0 ∨ \result ≡ 16; assigns \result; - assigns \result \from *(path + (0 ..)), *(argv + (0 ..)); + assigns \result \from (indirect: *cond); */ -extern int execve(char const *path, char * const *argv, char * const *env); +extern int pthread_cond_destroy(pthread_cond_t *cond); -/*@ requires valid_string_path: valid_read_string(path); - requires valid_string_argv0: valid_read_string(*(argv + 0)); - assigns \result; - assigns \result \from *(path + (0 ..)), *(argv + (0 ..)); +/*@ requires valid_cond: \valid(cond); + requires valid_null_attr: attr ≡ \null ∨ \valid_read(attr); + ensures initialization: cond: \initialized(\old(cond)); + ensures success: \result ≡ 0; + assigns *cond, \result; + assigns *cond \from *attr; + assigns \result \from \nothing; */ -extern int execvp(char const *path, char * const *argv); - -/*@ ensures never_terminates: \false; - assigns \nothing; */ -extern __attribute__((__noreturn__)) void _exit(int); +extern int pthread_cond_init(pthread_cond_t * __restrict cond, + pthread_condattr_t const * __restrict attr); -/*@ ensures - result_ok_child_or_error: - \result ≡ 0 ∨ \result > 0 ∨ \result ≡ -1; +/*@ requires valid_cond: \valid(cond); + requires valid_mutex: \valid(mutex); + ensures success: \result ≡ 0; assigns \result; assigns \result \from \nothing; */ -extern pid_t fork(void); +extern int pthread_cond_wait(pthread_cond_t * __restrict cond, + pthread_mutex_t * __restrict mutex); -/*@ requires valid_buf: \valid(buf + (0 .. size - 1)); - ensures result_ok_or_error: \result ≡ \null ∨ \result ≡ \old(buf); - assigns *(buf + (0 .. size - 1)), \result; - assigns *(buf + (0 .. size - 1)) \from (indirect: buf), (indirect: size); - assigns \result \from buf, (indirect: size); +/*@ requires valid_thread: \valid(thread); + requires valid_null_attr: attr ≡ \null ∨ \valid_read(attr); + requires valid_routine: \valid_function(start_routine); + requires valid_null_arg: arg ≡ \null ∨ \valid((char *)arg); + ensures + success_or_error: + \result ≡ 0 ∨ \result ≡ 11 ∨ \result ≡ 22 ∨ \result ≡ 1; + assigns *thread, \result; + assigns *thread \from *attr; + assigns \result \from (indirect: *attr); */ -extern char *getcwd(char *buf, size_t size); - -/*@ assigns \result; - assigns \result \from \nothing; */ -extern gid_t getegid(void); - -/*@ assigns \result; - assigns \result \from \nothing; */ -extern uid_t geteuid(void); - -/*@ assigns \result; - assigns \result \from \nothing; */ -extern gid_t getgid(void); +extern int pthread_create(pthread_t * __restrict thread, + pthread_attr_t const * __restrict attr, + void *(*start_routine)(void *), + void * __restrict arg); -extern char volatile __fc_hostname[64]; +/*@ requires valid_or_null_retval: retval ≡ \null ∨ \valid(retval); + ensures + success_or_error: + \result ≡ 0 ∨ \result ≡ 35 ∨ \result ≡ 22 ∨ \result ≡ 3; + assigns *retval, \result; + assigns *retval \from thread; + assigns \result \from (indirect: thread); + + behavior ignore_retval: + assumes null_retval: retval ≡ \null; + assigns \result; + assigns \result \from (indirect: thread); + + behavior use_retval: + assumes valid_retval: \valid(retval); + assigns *retval, \result; + assigns *retval \from thread; + assigns \result \from (indirect: thread); + */ +extern int pthread_join(pthread_t thread, void **retval); -/*@ requires name_has_room: \valid(name + (0 .. len - 1)); - ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; - assigns \result, *(name + (0 .. len - 1)); - assigns \result - \from (indirect: __fc_hostname[0 .. len]), (indirect: len); - assigns *(name + (0 .. len - 1)) - \from (indirect: __fc_hostname[0 .. len]), (indirect: len); +/*@ requires mutex_valid: \valid(mutex); + ensures init_or_busy: \result ≡ 0 ∨ \result ≡ 16; + assigns *mutex, \result; + assigns *mutex \from *mutex; + assigns \result \from (indirect: *mutex); */ -extern int gethostname(char *name, size_t len); +extern int pthread_mutex_destroy(pthread_mutex_t *mutex); -/*@ requires name_valid_string: valid_read_nstring(name, len); - requires bounded_len: len ≤ 64; - ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; - assigns __fc_hostname[0 .. len], \result; - assigns __fc_hostname[0 .. len] - \from *(name + (0 .. len - 1)), (indirect: len); - assigns \result \from (indirect: __fc_hostname[0 .. len]); +/*@ requires mutex_valid: \valid(mutex); + requires attrs_valid_or_null: attrs ≡ \null ∨ \valid_read(attrs); + ensures + initialization: success_or_error: + (\result ≡ 0 ∧ \initialized(\old(mutex))) ∨ \result ≡ 11 ∨ + \result ≡ 12 ∨ \result ≡ 1 ∨ \result ≡ 22; + assigns *mutex, \result; + assigns *mutex \from *mutex, *attrs; + assigns \result \from (indirect: *mutex), (indirect: *attrs); */ -extern int sethostname(char const *name, size_t len); +extern int pthread_mutex_init(pthread_mutex_t * __restrict mutex, + pthread_mutexattr_t const * __restrict attrs); -/*@ assigns \result; - assigns \result \from (indirect: pid); */ -extern pid_t getpgid(pid_t pid); +/*@ requires mutex_valid: \valid(mutex); + ensures + success_or_error: + \result ≡ 0 ∨ \result ≡ 11 ∨ \result ≡ 22 ∨ + \result ≡ 35; + assigns *mutex, \result; + assigns *mutex \from *mutex; + assigns \result \from (indirect: *mutex); + */ +extern int pthread_mutex_lock(pthread_mutex_t *mutex); -/*@ assigns \result; - assigns \result \from \nothing; */ -extern pid_t getpgrp(void); +/*@ requires mutex_valid: \valid(mutex); + ensures success_or_error: \result ≡ 0 ∨ \result ≡ 1; + assigns *mutex, \result; + assigns *mutex \from *mutex; + assigns \result \from (indirect: *mutex); + */ +extern int pthread_mutex_unlock(pthread_mutex_t *mutex); -/*@ assigns \result; - assigns \result \from \nothing; */ -extern pid_t getpid(void); +extern char __fc_getpwuid_pw_name[64]; -/*@ assigns \result; - assigns \result \from \nothing; */ -extern pid_t getppid(void); +extern char __fc_getpwuid_pw_passwd[64]; -/*@ assigns \result; - assigns \result \from \nothing; */ -extern pid_t getsid(pid_t); +extern char __fc_getpwuid_pw_dir[64]; -/*@ assigns \result; - assigns \result \from \nothing; */ -extern uid_t getuid(void); +extern char __fc_getpwuid_pw_shell[64]; -/*@ ensures result_true_or_false: \result ≡ 0 ∨ \result ≡ 1; - assigns \result; - assigns \result \from (indirect: fd), (indirect: __fc_fds[fd]); +struct passwd __fc_pwd = + {.pw_name = __fc_getpwuid_pw_name, + .pw_passwd = __fc_getpwuid_pw_passwd, + .pw_uid = 0U, + .pw_gid = 0U, + .pw_gecos = (char *)0, + .pw_dir = __fc_getpwuid_pw_dir, + .pw_shell = __fc_getpwuid_pw_shell}; +struct passwd *__fc_p_pwd = & __fc_pwd; +/*@ requires valid_name: valid_read_string(name); + ensures + result_null_or_internal_struct: + \result ≡ \null ∨ \result ≡ __fc_p_pwd; + assigns \result, __fc_pwd; + assigns \result \from __fc_p_pwd, (indirect: *(name + (0 ..))); + assigns __fc_pwd \from (indirect: *(name + (0 ..))); */ -extern int isatty(int fd); +extern struct passwd *getpwnam(char const *name); -/*@ requires valid_fd: 0 ≤ fd < 1024; - requires valid_whence: whence ≡ 0 ∨ whence ≡ 1 ∨ whence ≡ 2; - ensures result_error_or_offset: \result ≡ -1 ∨ 0 ≤ \result; - assigns \result, __fc_fds[fd]; - assigns \result - \from (indirect: fd), (indirect: __fc_fds[fd]), (indirect: offset), - (indirect: whence); - assigns __fc_fds[fd] - \from (indirect: fd), __fc_fds[fd], (indirect: offset), - (indirect: whence); +/*@ ensures + result_null_or_internal_struct: + \result ≡ \null ∨ \result ≡ __fc_p_pwd; + assigns \result, __fc_pwd; + assigns \result \from __fc_p_pwd, (indirect: uid); + assigns __fc_pwd \from (indirect: uid); */ -extern off_t lseek(int fd, off_t offset, int whence); +extern struct passwd *getpwuid(uid_t uid); -/*@ requires valid_path: valid_read_string(path); - assigns \result; - assigns \result \from (indirect: *(path + (0 ..))), (indirect: name); - */ -extern long pathconf(char const *path, int name); +/*@ assigns *(env + (0 .. 4)); */ +extern int setjmp(int * /*[5]*/ env); -/*@ ensures initialization: pipefd: \initialized(\old(pipefd) + (0 .. 1)); - ensures valid_fd0: 0 ≤ *(\old(pipefd) + 0) < 1024; - ensures valid_fd1: 0 ≤ *(\old(pipefd) + 1) < 1024; - ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; - assigns *(pipefd + (0 .. 1)), \result; - assigns *(pipefd + (0 .. 1)) \from (indirect: __fc_fds[0 ..]); - assigns \result \from (indirect: __fc_fds[0 ..]); - */ -extern int pipe(int * /*[2]*/ pipefd); +/*@ ensures never_terminates: \false; + assigns \nothing; */ +extern void longjmp(int * /*[5]*/ env, int val); -/*@ requires valid_fd: 0 ≤ fd < 1024; - requires buf_has_room: \valid((char *)buf + (0 .. count - 1)); - ensures - result_error_or_read_length: - (0 ≤ \result ≤ \old(count)) ∨ \result ≡ -1; - ensures - initialization: buf: - \initialized((char *)\old(buf) + (0 .. \result - 1)); - assigns __fc_fds[fd], \result, *((char *)buf + (0 .. count - 1)); - assigns __fc_fds[fd] \from __fc_fds[fd]; - assigns \result \from (indirect: __fc_fds[fd]), (indirect: count); - assigns *((char *)buf + (0 .. count - 1)) - \from (indirect: __fc_fds[fd]), (indirect: count); - */ -extern ssize_t read(int fd, void *buf, size_t count); +/*@ ensures never_terminates: \false; + assigns \nothing; */ +extern void siglongjmp(sigjmp_buf env, int val); -/*@ ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; - assigns \result; - assigns \result \from (indirect: gid); +/*@ assigns \result; + assigns \result \from (indirect: fd), (indirect: request); */ -extern int setegid(gid_t gid); +extern int __va_ioctl_void(int fd, int request); -/*@ ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; - assigns \result; - assigns \result \from (indirect: uid); +/*@ assigns \result; + assigns \result + \from (indirect: fd), (indirect: request), (indirect: arg); */ -extern int seteuid(uid_t uid); +extern int __va_ioctl_int(int fd, int request, int arg); -/*@ ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; - assigns \result; - assigns \result \from (indirect: gid); +/*@ assigns \result, *((char *)argp + (0 ..)); + assigns \result + \from (indirect: fd), (indirect: request), + (indirect: *((char *)argp + (0 ..))); + assigns *((char *)argp + (0 ..)) + \from (indirect: fd), (indirect: request), *((char *)argp + (0 ..)); */ -extern int setgid(gid_t gid); +extern int __va_ioctl_ptr(int fd, int request, void *argp); /*@ ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; assigns \result; - assigns \result \from (indirect: pid), (indirect: pgid); + assigns \result \from (indirect: fd), (indirect: operation); */ -extern int setpgid(pid_t pid, pid_t pgid); +extern int flock(int fd, int operation); -/*@ ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; - assigns \result; - assigns \result \from (indirect: rgid), (indirect: egid); - */ -extern int setregid(gid_t rgid, gid_t egid); +CODE facilitynames[23] = + {{.c_name = "auth", .c_val = 4 << 3}, + {.c_name = "authpriv", .c_val = 10 << 3}, + {.c_name = "cron", .c_val = 9 << 3}, + {.c_name = "daemon", .c_val = 3 << 3}, + {.c_name = "ftp", .c_val = 11 << 3}, + {.c_name = "kern", .c_val = 0 << 3}, + {.c_name = "lpr", .c_val = 6 << 3}, + {.c_name = "mail", .c_val = 2 << 3}, + {.c_name = "mark", .c_val = 24 | 0}, + {.c_name = "news", .c_val = 7 << 3}, + {.c_name = "security", .c_val = 4 << 3}, + {.c_name = "syslog", .c_val = 5 << 3}, + {.c_name = "user", .c_val = 1 << 3}, + {.c_name = "uucp", .c_val = 8 << 3}, + {.c_name = "local0", .c_val = 16 << 3}, + {.c_name = "local1", .c_val = 17 << 3}, + {.c_name = "local2", .c_val = 18 << 3}, + {.c_name = "local3", .c_val = 19 << 3}, + {.c_name = "local4", .c_val = 20 << 3}, + {.c_name = "local5", .c_val = 21 << 3}, + {.c_name = "local6", .c_val = 22 << 3}, + {.c_name = "local7", .c_val = 23 << 3}, + {.c_name = (char const *)0, .c_val = -1}}; +CODE prioritynames[13] = + {{.c_name = "alert", .c_val = 1}, + {.c_name = "crit", .c_val = 2}, + {.c_name = "debug", .c_val = 7}, + {.c_name = "emerg", .c_val = 0}, + {.c_name = "err", .c_val = 3}, + {.c_name = "error", .c_val = 3}, + {.c_name = "info", .c_val = 6}, + {.c_name = "none", .c_val = 0x10}, + {.c_name = "notice", .c_val = 5}, + {.c_name = "panic", .c_val = 0}, + {.c_name = "warn", .c_val = 4}, + {.c_name = "warning", .c_val = 4}, + {.c_name = (char const *)0, .c_val = -1}}; +/*@ assigns \nothing; */ +extern void closelog(void); -/*@ ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; - assigns \result; - assigns \result \from (indirect: ruid), (indirect: euid); - */ -extern int setreuid(uid_t ruid, uid_t euid); +/*@ assigns \nothing; */ +extern void openlog(char const *, int, int); -/*@ ensures result_pgid_or_error: \result ≡ -1 ∨ \result ≥ 0; - assigns \result; - assigns \result \from \nothing; - */ -extern pid_t setsid(void); +/*@ assigns \nothing; */ +extern int setlogmask(int); -/*@ ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; - assigns \result; - assigns \result \from (indirect: uid); - */ -extern int setuid(uid_t uid); +/*@ assigns \nothing; */ +extern void syslog(int, char const *, void * const *__va_params); /*@ assigns \nothing; */ -extern void sync(void); +extern void vsyslog(int, char const *, va_list); /*@ assigns \result; - assigns \result \from (indirect: name); */ -extern long sysconf(int name); + assigns \result \from which, who; */ +extern int getpriority(int which, id_t who); -extern char volatile __fc_ttyname[32]; +/*@ assigns \result; + assigns \result \from which, who, prio; */ +extern int setpriority(int which, id_t who, int prio); -char *__fc_p_ttyname = (char *)(__fc_ttyname); -/*@ ensures - result_name_or_null: \result ≡ __fc_p_ttyname ∨ \result ≡ \null; - assigns \result; - assigns \result \from __fc_p_ttyname, (indirect: fildes); +/*@ assigns \result, rl->rlim_cur, rl->rlim_max; + assigns \result \from r; + assigns rl->rlim_cur \from r; + assigns rl->rlim_max \from r; */ -extern char *ttyname(int fildes); +extern int getrlimit(int r, struct rlimit *rl); -/*@ requires valid_string_path: valid_read_string(path); - ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; - assigns \result; - assigns \result \from *(path + (0 ..)); +/*@ assigns \result, ru->ru_utime, ru->ru_stime; + assigns \result \from r; + assigns ru->ru_utime \from r; + assigns ru->ru_stime \from r; */ -extern int unlink(char const *path); +extern int getrusage(int r, struct rusage *ru); -/*@ ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; - assigns \result, Frama_C_entropy_source; - assigns \result - \from (indirect: usec), (indirect: Frama_C_entropy_source); - assigns Frama_C_entropy_source \from Frama_C_entropy_source; - */ -extern int usleep(useconds_t usec); +/*@ assigns \result; + assigns \result \from r, rl->rlim_cur, rl->rlim_max; */ +extern int setrlimit(int r, struct rlimit const *rl); -/*@ requires valid_fd: 0 ≤ fd < 1024; - requires buf_has_room: \valid_read((char *)buf + (0 .. count - 1)); - ensures - result_error_or_written_bytes: - \result ≡ -1 ∨ (0 ≤ \result ≤ \old(count)); - assigns __fc_fds[fd], \result; - assigns __fc_fds[fd] - \from (indirect: fd), (indirect: count), __fc_fds[fd]; - assigns \result - \from (indirect: fd), (indirect: count), (indirect: __fc_fds[fd]); +/*@ requires valid_buffer: \valid(buffer); + assigns \result, *buffer; + assigns \result \from __fc_time; + assigns *buffer \from __fc_time; */ -extern ssize_t write(int fd, void const *buf, size_t count); +extern clock_t times(struct tms *buffer); -/*@ requires valid_ruid: \valid(ruid); - requires valid_euid: \valid(suid); - requires valid_suid: \valid(euid); +/*@ ensures result_ok_or_error: \result ≡ -1 ∨ \result ≥ 0; ensures - initialization: result_ok_or_error: - (\result ≡ 0 ∧ \initialized(\old(ruid)) ∧ - \initialized(\old(euid)) ∧ \initialized(\old(suid))) ∨ - \result ≡ -1; - assigns *ruid, *euid, *suid, \result; - assigns *ruid \from \nothing; - assigns *euid \from \nothing; - assigns *suid \from \nothing; - assigns \result - \from (indirect: ruid), (indirect: euid), (indirect: suid); + initialization: stat_loc_init_on_success: + \result ≥ 0 ∧ \old(stat_loc) ≢ \null ⇒ + \initialized(\old(stat_loc)); + assigns \result, *stat_loc; + assigns \result \from \nothing; + assigns *stat_loc \from \nothing; + + behavior stat_loc_null: + assumes stat_loc_null: stat_loc ≡ \null; + assigns \result; + assigns \result \from \nothing; + + behavior stat_loc_non_null: + assumes stat_loc_non_null: stat_loc ≢ \null; + requires valid_stat_loc: \valid(stat_loc); */ -int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); +extern pid_t wait(int *stat_loc); -/*@ ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; - assigns \result; - assigns \result - \from (indirect: ruid), (indirect: euid), (indirect: suid); +/*@ ensures result_ok_or_error: \result ≡ -1 ∨ \result ≥ 0; + ensures + initialization: stat_loc_init_on_success: + \result ≥ 0 ∧ \old(stat_loc) ≢ \null ⇒ + \initialized(\old(stat_loc)); + assigns \result, *stat_loc; + assigns \result \from (indirect: options); + assigns *stat_loc \from (indirect: options); + + behavior stat_loc_null: + assumes stat_loc_null: stat_loc ≡ \null; + assigns \result; + assigns \result \from \nothing; + + behavior stat_loc_non_null: + assumes stat_loc_non_null: stat_loc ≢ \null; + requires valid_stat_loc: \valid(stat_loc); */ -int setresuid(uid_t ruid, uid_t euid, uid_t suid); +extern pid_t waitpid(pid_t pid, int *stat_loc, int options); -/*@ requires valid_rgid: \valid(rgid); - requires valid_egid: \valid(sgid); - requires valid_sgid: \valid(egid); - ensures - initialization: result_ok_or_error: - (\result ≡ 0 ∧ \initialized(\old(rgid)) ∧ - \initialized(\old(egid)) ∧ \initialized(\old(sgid))) ∨ - \result ≡ -1; - assigns *rgid, *egid, *sgid, \result; - assigns *rgid \from \nothing; - assigns *egid \from \nothing; - assigns *sgid \from \nothing; - assigns \result - \from (indirect: rgid), (indirect: egid), (indirect: sgid); +/*@ requires valid_termios_p: \valid(termios_p); + assigns \result, *termios_p, Frama_C_entropy_source; + assigns \result \from (indirect: fd), (indirect: Frama_C_entropy_source); + assigns *termios_p + \from (indirect: fd), (indirect: Frama_C_entropy_source); + assigns Frama_C_entropy_source \from Frama_C_entropy_source; + + behavior ok: + assumes nondet: Frama_C_entropy_source ≡ 0; + ensures initialization: termios_p: \initialized(\old(termios_p)); + ensures result_ok: \result ≡ 0; + + behavior error: + assumes nondet: Frama_C_entropy_source ≢ 0; + ensures result_error: \result ≡ -1; + + complete behaviors error, ok; + disjoint behaviors error, ok; */ -int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); +extern int tcgetattr(int fd, struct termios *termios_p); -/*@ ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; - assigns \result; +/*@ requires valid_termios_p: \valid(termios_p); + ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; + assigns *termios_p, Frama_C_entropy_source, \result; + assigns *termios_p + \from (indirect: fd), (indirect: optional_actions), + (indirect: Frama_C_entropy_source), *termios_p; + assigns Frama_C_entropy_source \from Frama_C_entropy_source; assigns \result - \from (indirect: rgid), (indirect: egid), (indirect: sgid); + \from (indirect: fd), (indirect: optional_actions), + (indirect: Frama_C_entropy_source), (indirect: *termios_p); */ -int setresgid(gid_t rgid, gid_t egid, gid_t sgid); +extern int tcsetattr(int fd, int optional_actions, struct termios *termios_p); void main(void) { diff --git a/tests/libc/oracle/fc_libc.3.res.oracle b/tests/libc/oracle/fc_libc.3.res.oracle index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..5d4b6982df1e929a36eb1f4f623ad3ca169e8c76 100644 --- a/tests/libc/oracle/fc_libc.3.res.oracle +++ b/tests/libc/oracle/fc_libc.3.res.oracle @@ -0,0 +1,5 @@ +[kernel] Parsing tests/libc/fc_libc.c (with preprocessing) +[kernel] parsing c11_functions.json +[kernel] parsing glibc_functions.json +[kernel] parsing posix_identifiers.json +[kernel] parsing nonstandard_identifiers.json diff --git a/tests/libc/oracle/fc_libc.4.res.oracle b/tests/libc/oracle/fc_libc.4.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/tests/libc/oracle/inttypes_h.0.res.oracle b/tests/libc/oracle/inttypes_h.0.res.oracle index eaaa132d690dde79c31b64fed1258454417d0d00..aa91e7cdb995b263008e7086a223d16076671962 100644 --- a/tests/libc/oracle/inttypes_h.0.res.oracle +++ b/tests/libc/oracle/inttypes_h.0.res.oracle @@ -11,7 +11,8 @@ ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -26,8 +27,8 @@ int scanf_va_1(char const * __restrict format, signed char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -40,7 +41,8 @@ int printf_va_1(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -55,8 +57,8 @@ int scanf_va_2(char const * __restrict format, signed char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -69,7 +71,8 @@ int printf_va_2(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -84,8 +87,8 @@ int scanf_va_3(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -98,7 +101,8 @@ int printf_va_3(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -113,8 +117,8 @@ int scanf_va_4(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -127,7 +131,8 @@ int printf_va_4(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -142,8 +147,8 @@ int scanf_va_5(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -156,7 +161,8 @@ int printf_va_5(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -171,8 +177,8 @@ int scanf_va_6(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -185,7 +191,8 @@ int printf_va_6(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -200,8 +207,8 @@ int scanf_va_7(char const * __restrict format, short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -214,7 +221,8 @@ int printf_va_7(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -229,8 +237,8 @@ int scanf_va_8(char const * __restrict format, short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -243,7 +251,8 @@ int printf_va_8(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -258,8 +267,8 @@ int scanf_va_9(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -272,7 +281,8 @@ int printf_va_9(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -287,8 +297,8 @@ int scanf_va_10(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -301,7 +311,8 @@ int printf_va_10(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -316,8 +327,8 @@ int scanf_va_11(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -330,7 +341,8 @@ int printf_va_11(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -345,8 +357,8 @@ int scanf_va_12(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -359,7 +371,8 @@ int printf_va_12(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -374,8 +387,8 @@ int scanf_va_13(char const * __restrict format, long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -388,7 +401,8 @@ int printf_va_13(char const * __restrict format, long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -403,8 +417,8 @@ int scanf_va_14(char const * __restrict format, long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -417,7 +431,8 @@ int printf_va_14(char const * __restrict format, long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -432,8 +447,8 @@ int scanf_va_15(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -446,7 +461,8 @@ int printf_va_15(char const * __restrict format, unsigned long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -461,8 +477,8 @@ int scanf_va_16(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -475,7 +491,8 @@ int printf_va_16(char const * __restrict format, unsigned long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -490,8 +507,8 @@ int scanf_va_17(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -504,7 +521,8 @@ int printf_va_17(char const * __restrict format, unsigned long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -519,8 +537,8 @@ int scanf_va_18(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -533,7 +551,8 @@ int printf_va_18(char const * __restrict format, unsigned long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -548,8 +567,8 @@ int scanf_va_19(char const * __restrict format, long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -562,7 +581,8 @@ int printf_va_19(char const * __restrict format, long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -577,8 +597,8 @@ int scanf_va_20(char const * __restrict format, long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -591,7 +611,8 @@ int printf_va_20(char const * __restrict format, long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -606,8 +627,8 @@ int scanf_va_21(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -620,7 +641,8 @@ int printf_va_21(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -635,8 +657,8 @@ int scanf_va_22(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -649,7 +671,8 @@ int printf_va_22(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -664,8 +687,8 @@ int scanf_va_23(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -678,7 +701,8 @@ int printf_va_23(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -693,8 +717,8 @@ int scanf_va_24(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -707,7 +731,8 @@ int printf_va_24(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -722,8 +747,8 @@ int scanf_va_25(char const * __restrict format, signed char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -736,7 +761,8 @@ int printf_va_25(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -751,8 +777,8 @@ int scanf_va_26(char const * __restrict format, signed char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -765,7 +791,8 @@ int printf_va_26(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -780,8 +807,8 @@ int scanf_va_27(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -794,7 +821,8 @@ int printf_va_27(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -809,8 +837,8 @@ int scanf_va_28(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -823,7 +851,8 @@ int printf_va_28(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -838,8 +867,8 @@ int scanf_va_29(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -852,7 +881,8 @@ int printf_va_29(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -867,8 +897,8 @@ int scanf_va_30(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -881,7 +911,8 @@ int printf_va_30(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -896,8 +927,8 @@ int scanf_va_31(char const * __restrict format, short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -910,7 +941,8 @@ int printf_va_31(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -925,8 +957,8 @@ int scanf_va_32(char const * __restrict format, short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -939,7 +971,8 @@ int printf_va_32(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -954,8 +987,8 @@ int scanf_va_33(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -968,7 +1001,8 @@ int printf_va_33(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -983,8 +1017,8 @@ int scanf_va_34(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -997,7 +1031,8 @@ int printf_va_34(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1012,8 +1047,8 @@ int scanf_va_35(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1026,7 +1061,8 @@ int printf_va_35(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1041,8 +1077,8 @@ int scanf_va_36(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1055,7 +1091,8 @@ int printf_va_36(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1070,8 +1107,8 @@ int scanf_va_37(char const * __restrict format, long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1084,7 +1121,8 @@ int printf_va_37(char const * __restrict format, long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1099,8 +1137,8 @@ int scanf_va_38(char const * __restrict format, long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1113,7 +1151,8 @@ int printf_va_38(char const * __restrict format, long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1128,8 +1167,8 @@ int scanf_va_39(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1142,7 +1181,8 @@ int printf_va_39(char const * __restrict format, unsigned long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1157,8 +1197,8 @@ int scanf_va_40(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1171,7 +1211,8 @@ int printf_va_40(char const * __restrict format, unsigned long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1186,8 +1227,8 @@ int scanf_va_41(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1200,7 +1241,8 @@ int printf_va_41(char const * __restrict format, unsigned long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1215,8 +1257,8 @@ int scanf_va_42(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1229,7 +1271,8 @@ int printf_va_42(char const * __restrict format, unsigned long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1244,8 +1287,8 @@ int scanf_va_43(char const * __restrict format, long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1258,7 +1301,8 @@ int printf_va_43(char const * __restrict format, long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1273,8 +1317,8 @@ int scanf_va_44(char const * __restrict format, long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1287,7 +1331,8 @@ int printf_va_44(char const * __restrict format, long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1302,8 +1347,8 @@ int scanf_va_45(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1316,7 +1361,8 @@ int printf_va_45(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1331,8 +1377,8 @@ int scanf_va_46(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1345,7 +1391,8 @@ int printf_va_46(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1360,8 +1407,8 @@ int scanf_va_47(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1374,7 +1421,8 @@ int printf_va_47(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1389,8 +1437,8 @@ int scanf_va_48(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1403,7 +1451,8 @@ int printf_va_48(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1418,8 +1467,8 @@ int scanf_va_49(char const * __restrict format, signed char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1432,7 +1481,8 @@ int printf_va_49(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1447,8 +1497,8 @@ int scanf_va_50(char const * __restrict format, signed char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1461,7 +1511,8 @@ int printf_va_50(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1476,8 +1527,8 @@ int scanf_va_51(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1490,7 +1541,8 @@ int printf_va_51(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1505,8 +1557,8 @@ int scanf_va_52(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1519,7 +1571,8 @@ int printf_va_52(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1534,8 +1587,8 @@ int scanf_va_53(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1548,7 +1601,8 @@ int printf_va_53(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1563,8 +1617,8 @@ int scanf_va_54(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1577,7 +1631,8 @@ int printf_va_54(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1592,8 +1647,8 @@ int scanf_va_55(char const * __restrict format, int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1606,7 +1661,8 @@ int printf_va_55(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1621,8 +1677,8 @@ int scanf_va_56(char const * __restrict format, int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1635,7 +1691,8 @@ int printf_va_56(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1650,8 +1707,8 @@ int scanf_va_57(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1664,7 +1721,8 @@ int printf_va_57(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1679,8 +1737,8 @@ int scanf_va_58(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1693,7 +1751,8 @@ int printf_va_58(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1708,8 +1767,8 @@ int scanf_va_59(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1722,7 +1781,8 @@ int printf_va_59(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1737,8 +1797,8 @@ int scanf_va_60(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1751,7 +1811,8 @@ int printf_va_60(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1766,8 +1827,8 @@ int scanf_va_61(char const * __restrict format, long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1780,7 +1841,8 @@ int printf_va_61(char const * __restrict format, long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1795,8 +1857,8 @@ int scanf_va_62(char const * __restrict format, long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1809,7 +1871,8 @@ int printf_va_62(char const * __restrict format, long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1824,8 +1887,8 @@ int scanf_va_63(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1838,7 +1901,8 @@ int printf_va_63(char const * __restrict format, unsigned long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1853,8 +1917,8 @@ int scanf_va_64(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1867,7 +1931,8 @@ int printf_va_64(char const * __restrict format, unsigned long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1882,8 +1947,8 @@ int scanf_va_65(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1896,7 +1961,8 @@ int printf_va_65(char const * __restrict format, unsigned long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1911,8 +1977,8 @@ int scanf_va_66(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1925,7 +1991,8 @@ int printf_va_66(char const * __restrict format, unsigned long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1940,8 +2007,8 @@ int scanf_va_67(char const * __restrict format, long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1954,7 +2021,8 @@ int printf_va_67(char const * __restrict format, long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1969,8 +2037,8 @@ int scanf_va_68(char const * __restrict format, long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1983,7 +2051,8 @@ int printf_va_68(char const * __restrict format, long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1998,8 +2067,8 @@ int scanf_va_69(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2012,7 +2081,8 @@ int printf_va_69(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2027,8 +2097,8 @@ int scanf_va_70(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2041,7 +2111,8 @@ int printf_va_70(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2056,8 +2127,8 @@ int scanf_va_71(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2070,7 +2141,8 @@ int printf_va_71(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2085,8 +2157,8 @@ int scanf_va_72(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2099,7 +2171,8 @@ int printf_va_72(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2114,8 +2187,8 @@ int scanf_va_73(char const * __restrict format, long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2128,7 +2201,8 @@ int printf_va_73(char const * __restrict format, long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2143,8 +2217,8 @@ int scanf_va_74(char const * __restrict format, long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2157,7 +2231,8 @@ int printf_va_74(char const * __restrict format, long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2172,8 +2247,8 @@ int scanf_va_75(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2186,7 +2261,8 @@ int printf_va_75(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2201,8 +2277,8 @@ int scanf_va_76(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2215,7 +2291,8 @@ int printf_va_76(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2230,8 +2307,8 @@ int scanf_va_77(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2244,7 +2321,8 @@ int printf_va_77(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2259,8 +2337,8 @@ int scanf_va_78(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2273,7 +2351,8 @@ int printf_va_78(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2288,8 +2367,8 @@ int scanf_va_79(char const * __restrict format, long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2302,7 +2381,8 @@ int printf_va_79(char const * __restrict format, long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2317,8 +2397,8 @@ int scanf_va_80(char const * __restrict format, long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2331,7 +2411,8 @@ int printf_va_80(char const * __restrict format, long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2346,8 +2427,8 @@ int scanf_va_81(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2360,7 +2441,8 @@ int printf_va_81(char const * __restrict format, unsigned long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2375,8 +2457,8 @@ int scanf_va_82(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2389,7 +2471,8 @@ int printf_va_82(char const * __restrict format, unsigned long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2404,8 +2487,8 @@ int scanf_va_83(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2418,7 +2501,8 @@ int printf_va_83(char const * __restrict format, unsigned long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2433,8 +2517,8 @@ int scanf_va_84(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), diff --git a/tests/libc/oracle/inttypes_h.1.res.oracle b/tests/libc/oracle/inttypes_h.1.res.oracle index ee3b253caf33cceda5773e2ab7553f01ef3d5e2d..d369e0541c8787ae84964c5bb823d66898a27f47 100644 --- a/tests/libc/oracle/inttypes_h.1.res.oracle +++ b/tests/libc/oracle/inttypes_h.1.res.oracle @@ -11,7 +11,8 @@ ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -26,8 +27,8 @@ int scanf_va_1(char const * __restrict format, signed char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -40,7 +41,8 @@ int printf_va_1(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -55,8 +57,8 @@ int scanf_va_2(char const * __restrict format, signed char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -69,7 +71,8 @@ int printf_va_2(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -84,8 +87,8 @@ int scanf_va_3(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -98,7 +101,8 @@ int printf_va_3(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -113,8 +117,8 @@ int scanf_va_4(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -127,7 +131,8 @@ int printf_va_4(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -142,8 +147,8 @@ int scanf_va_5(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -156,7 +161,8 @@ int printf_va_5(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -171,8 +177,8 @@ int scanf_va_6(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -185,7 +191,8 @@ int printf_va_6(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -200,8 +207,8 @@ int scanf_va_7(char const * __restrict format, short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -214,7 +221,8 @@ int printf_va_7(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -229,8 +237,8 @@ int scanf_va_8(char const * __restrict format, short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -243,7 +251,8 @@ int printf_va_8(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -258,8 +267,8 @@ int scanf_va_9(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -272,7 +281,8 @@ int printf_va_9(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -287,8 +297,8 @@ int scanf_va_10(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -301,7 +311,8 @@ int printf_va_10(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -316,8 +327,8 @@ int scanf_va_11(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -330,7 +341,8 @@ int printf_va_11(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -345,8 +357,8 @@ int scanf_va_12(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -359,7 +371,8 @@ int printf_va_12(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -374,8 +387,8 @@ int scanf_va_13(char const * __restrict format, int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -388,7 +401,8 @@ int printf_va_13(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -403,8 +417,8 @@ int scanf_va_14(char const * __restrict format, int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -417,7 +431,8 @@ int printf_va_14(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -432,8 +447,8 @@ int scanf_va_15(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -446,7 +461,8 @@ int printf_va_15(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -461,8 +477,8 @@ int scanf_va_16(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -475,7 +491,8 @@ int printf_va_16(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -490,8 +507,8 @@ int scanf_va_17(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -504,7 +521,8 @@ int printf_va_17(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -519,8 +537,8 @@ int scanf_va_18(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -533,7 +551,8 @@ int printf_va_18(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -548,8 +567,8 @@ int scanf_va_19(char const * __restrict format, long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -562,7 +581,8 @@ int printf_va_19(char const * __restrict format, long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -577,8 +597,8 @@ int scanf_va_20(char const * __restrict format, long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -591,7 +611,8 @@ int printf_va_20(char const * __restrict format, long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -606,8 +627,8 @@ int scanf_va_21(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -620,7 +641,8 @@ int printf_va_21(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -635,8 +657,8 @@ int scanf_va_22(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -649,7 +671,8 @@ int printf_va_22(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -664,8 +687,8 @@ int scanf_va_23(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -678,7 +701,8 @@ int printf_va_23(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -693,8 +717,8 @@ int scanf_va_24(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -707,7 +731,8 @@ int printf_va_24(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -722,8 +747,8 @@ int scanf_va_25(char const * __restrict format, signed char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -736,7 +761,8 @@ int printf_va_25(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -751,8 +777,8 @@ int scanf_va_26(char const * __restrict format, signed char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -765,7 +791,8 @@ int printf_va_26(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -780,8 +807,8 @@ int scanf_va_27(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -794,7 +821,8 @@ int printf_va_27(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -809,8 +837,8 @@ int scanf_va_28(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -823,7 +851,8 @@ int printf_va_28(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -838,8 +867,8 @@ int scanf_va_29(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -852,7 +881,8 @@ int printf_va_29(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -867,8 +897,8 @@ int scanf_va_30(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -881,7 +911,8 @@ int printf_va_30(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -896,8 +927,8 @@ int scanf_va_31(char const * __restrict format, short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -910,7 +941,8 @@ int printf_va_31(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -925,8 +957,8 @@ int scanf_va_32(char const * __restrict format, short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -939,7 +971,8 @@ int printf_va_32(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -954,8 +987,8 @@ int scanf_va_33(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -968,7 +1001,8 @@ int printf_va_33(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -983,8 +1017,8 @@ int scanf_va_34(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -997,7 +1031,8 @@ int printf_va_34(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1012,8 +1047,8 @@ int scanf_va_35(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1026,7 +1061,8 @@ int printf_va_35(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1041,8 +1077,8 @@ int scanf_va_36(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1055,7 +1091,8 @@ int printf_va_36(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1070,8 +1107,8 @@ int scanf_va_37(char const * __restrict format, int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1084,7 +1121,8 @@ int printf_va_37(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1099,8 +1137,8 @@ int scanf_va_38(char const * __restrict format, int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1113,7 +1151,8 @@ int printf_va_38(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1128,8 +1167,8 @@ int scanf_va_39(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1142,7 +1181,8 @@ int printf_va_39(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1157,8 +1197,8 @@ int scanf_va_40(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1171,7 +1211,8 @@ int printf_va_40(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1186,8 +1227,8 @@ int scanf_va_41(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1200,7 +1241,8 @@ int printf_va_41(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1215,8 +1257,8 @@ int scanf_va_42(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1229,7 +1271,8 @@ int printf_va_42(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1244,8 +1287,8 @@ int scanf_va_43(char const * __restrict format, long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1258,7 +1301,8 @@ int printf_va_43(char const * __restrict format, long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1273,8 +1317,8 @@ int scanf_va_44(char const * __restrict format, long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1287,7 +1331,8 @@ int printf_va_44(char const * __restrict format, long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1302,8 +1347,8 @@ int scanf_va_45(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1316,7 +1361,8 @@ int printf_va_45(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1331,8 +1377,8 @@ int scanf_va_46(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1345,7 +1391,8 @@ int printf_va_46(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1360,8 +1407,8 @@ int scanf_va_47(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1374,7 +1421,8 @@ int printf_va_47(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1389,8 +1437,8 @@ int scanf_va_48(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1403,7 +1451,8 @@ int printf_va_48(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1418,8 +1467,8 @@ int scanf_va_49(char const * __restrict format, signed char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1432,7 +1481,8 @@ int printf_va_49(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1447,8 +1497,8 @@ int scanf_va_50(char const * __restrict format, signed char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1461,7 +1511,8 @@ int printf_va_50(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1476,8 +1527,8 @@ int scanf_va_51(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1490,7 +1541,8 @@ int printf_va_51(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1505,8 +1557,8 @@ int scanf_va_52(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1519,7 +1571,8 @@ int printf_va_52(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1534,8 +1587,8 @@ int scanf_va_53(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1548,7 +1601,8 @@ int printf_va_53(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1563,8 +1617,8 @@ int scanf_va_54(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1577,7 +1631,8 @@ int printf_va_54(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1592,8 +1647,8 @@ int scanf_va_55(char const * __restrict format, int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1606,7 +1661,8 @@ int printf_va_55(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1621,8 +1677,8 @@ int scanf_va_56(char const * __restrict format, int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1635,7 +1691,8 @@ int printf_va_56(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1650,8 +1707,8 @@ int scanf_va_57(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1664,7 +1721,8 @@ int printf_va_57(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1679,8 +1737,8 @@ int scanf_va_58(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1693,7 +1751,8 @@ int printf_va_58(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1708,8 +1767,8 @@ int scanf_va_59(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1722,7 +1781,8 @@ int printf_va_59(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1737,8 +1797,8 @@ int scanf_va_60(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1751,7 +1811,8 @@ int printf_va_60(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1766,8 +1827,8 @@ int scanf_va_61(char const * __restrict format, int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1780,7 +1841,8 @@ int printf_va_61(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1795,8 +1857,8 @@ int scanf_va_62(char const * __restrict format, int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1809,7 +1871,8 @@ int printf_va_62(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1824,8 +1887,8 @@ int scanf_va_63(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1838,7 +1901,8 @@ int printf_va_63(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1853,8 +1917,8 @@ int scanf_va_64(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1867,7 +1931,8 @@ int printf_va_64(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1882,8 +1947,8 @@ int scanf_va_65(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1896,7 +1961,8 @@ int printf_va_65(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1911,8 +1977,8 @@ int scanf_va_66(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1925,7 +1991,8 @@ int printf_va_66(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1940,8 +2007,8 @@ int scanf_va_67(char const * __restrict format, long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1954,7 +2021,8 @@ int printf_va_67(char const * __restrict format, long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1969,8 +2037,8 @@ int scanf_va_68(char const * __restrict format, long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1983,7 +2051,8 @@ int printf_va_68(char const * __restrict format, long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1998,8 +2067,8 @@ int scanf_va_69(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2012,7 +2081,8 @@ int printf_va_69(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2027,8 +2097,8 @@ int scanf_va_70(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2041,7 +2111,8 @@ int printf_va_70(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2056,8 +2127,8 @@ int scanf_va_71(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2070,7 +2141,8 @@ int printf_va_71(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2085,8 +2157,8 @@ int scanf_va_72(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2099,7 +2171,8 @@ int printf_va_72(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2114,8 +2187,8 @@ int scanf_va_73(char const * __restrict format, long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2128,7 +2201,8 @@ int printf_va_73(char const * __restrict format, long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2143,8 +2217,8 @@ int scanf_va_74(char const * __restrict format, long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2157,7 +2231,8 @@ int printf_va_74(char const * __restrict format, long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2172,8 +2247,8 @@ int scanf_va_75(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2186,7 +2261,8 @@ int printf_va_75(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2201,8 +2277,8 @@ int scanf_va_76(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2215,7 +2291,8 @@ int printf_va_76(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2230,8 +2307,8 @@ int scanf_va_77(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2244,7 +2321,8 @@ int printf_va_77(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2259,8 +2337,8 @@ int scanf_va_78(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2273,7 +2351,8 @@ int printf_va_78(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2288,8 +2367,8 @@ int scanf_va_79(char const * __restrict format, int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2302,7 +2381,8 @@ int printf_va_79(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2317,8 +2397,8 @@ int scanf_va_80(char const * __restrict format, int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2331,7 +2411,8 @@ int printf_va_80(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2346,8 +2427,8 @@ int scanf_va_81(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2360,7 +2441,8 @@ int printf_va_81(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2375,8 +2457,8 @@ int scanf_va_82(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2389,7 +2471,8 @@ int printf_va_82(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2404,8 +2487,8 @@ int scanf_va_83(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2418,7 +2501,8 @@ int printf_va_83(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2433,8 +2517,8 @@ int scanf_va_84(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), diff --git a/tests/libc/oracle/inttypes_h.2.res.oracle b/tests/libc/oracle/inttypes_h.2.res.oracle index a70f22663383c9b382e0ba42f879d9fb625fa700..0270a3902c68a7b8e1b9a34ab1efdd9f14cbb8cd 100644 --- a/tests/libc/oracle/inttypes_h.2.res.oracle +++ b/tests/libc/oracle/inttypes_h.2.res.oracle @@ -11,7 +11,8 @@ ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -26,8 +27,8 @@ int scanf_va_1(char const * __restrict format, signed char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -40,7 +41,8 @@ int printf_va_1(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -55,8 +57,8 @@ int scanf_va_2(char const * __restrict format, signed char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -69,7 +71,8 @@ int printf_va_2(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -84,8 +87,8 @@ int scanf_va_3(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -98,7 +101,8 @@ int printf_va_3(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -113,8 +117,8 @@ int scanf_va_4(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -127,7 +131,8 @@ int printf_va_4(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -142,8 +147,8 @@ int scanf_va_5(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -156,7 +161,8 @@ int printf_va_5(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -171,8 +177,8 @@ int scanf_va_6(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -185,7 +191,8 @@ int printf_va_6(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -200,8 +207,8 @@ int scanf_va_7(char const * __restrict format, short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -214,7 +221,8 @@ int printf_va_7(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -229,8 +237,8 @@ int scanf_va_8(char const * __restrict format, short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -243,7 +251,8 @@ int printf_va_8(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -258,8 +267,8 @@ int scanf_va_9(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -272,7 +281,8 @@ int printf_va_9(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -287,8 +297,8 @@ int scanf_va_10(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -301,7 +311,8 @@ int printf_va_10(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -316,8 +327,8 @@ int scanf_va_11(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -330,7 +341,8 @@ int printf_va_11(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -345,8 +357,8 @@ int scanf_va_12(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -359,7 +371,8 @@ int printf_va_12(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -374,8 +387,8 @@ int scanf_va_13(char const * __restrict format, int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -388,7 +401,8 @@ int printf_va_13(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -403,8 +417,8 @@ int scanf_va_14(char const * __restrict format, int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -417,7 +431,8 @@ int printf_va_14(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -432,8 +447,8 @@ int scanf_va_15(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -446,7 +461,8 @@ int printf_va_15(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -461,8 +477,8 @@ int scanf_va_16(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -475,7 +491,8 @@ int printf_va_16(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -490,8 +507,8 @@ int scanf_va_17(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -504,7 +521,8 @@ int printf_va_17(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -519,8 +537,8 @@ int scanf_va_18(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -533,7 +551,8 @@ int printf_va_18(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -548,8 +567,8 @@ int scanf_va_19(char const * __restrict format, long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -562,7 +581,8 @@ int printf_va_19(char const * __restrict format, long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -577,8 +597,8 @@ int scanf_va_20(char const * __restrict format, long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -591,7 +611,8 @@ int printf_va_20(char const * __restrict format, long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -606,8 +627,8 @@ int scanf_va_21(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -620,7 +641,8 @@ int printf_va_21(char const * __restrict format, unsigned long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -635,8 +657,8 @@ int scanf_va_22(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -649,7 +671,8 @@ int printf_va_22(char const * __restrict format, unsigned long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -664,8 +687,8 @@ int scanf_va_23(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -678,7 +701,8 @@ int printf_va_23(char const * __restrict format, unsigned long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -693,8 +717,8 @@ int scanf_va_24(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -707,7 +731,8 @@ int printf_va_24(char const * __restrict format, unsigned long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -722,8 +747,8 @@ int scanf_va_25(char const * __restrict format, signed char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -736,7 +761,8 @@ int printf_va_25(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -751,8 +777,8 @@ int scanf_va_26(char const * __restrict format, signed char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -765,7 +791,8 @@ int printf_va_26(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -780,8 +807,8 @@ int scanf_va_27(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -794,7 +821,8 @@ int printf_va_27(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -809,8 +837,8 @@ int scanf_va_28(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -823,7 +851,8 @@ int printf_va_28(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -838,8 +867,8 @@ int scanf_va_29(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -852,7 +881,8 @@ int printf_va_29(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -867,8 +897,8 @@ int scanf_va_30(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -881,7 +911,8 @@ int printf_va_30(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -896,8 +927,8 @@ int scanf_va_31(char const * __restrict format, short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -910,7 +941,8 @@ int printf_va_31(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -925,8 +957,8 @@ int scanf_va_32(char const * __restrict format, short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -939,7 +971,8 @@ int printf_va_32(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -954,8 +987,8 @@ int scanf_va_33(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -968,7 +1001,8 @@ int printf_va_33(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -983,8 +1017,8 @@ int scanf_va_34(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -997,7 +1031,8 @@ int printf_va_34(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1012,8 +1047,8 @@ int scanf_va_35(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1026,7 +1061,8 @@ int printf_va_35(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1041,8 +1077,8 @@ int scanf_va_36(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1055,7 +1091,8 @@ int printf_va_36(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1070,8 +1107,8 @@ int scanf_va_37(char const * __restrict format, int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1084,7 +1121,8 @@ int printf_va_37(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1099,8 +1137,8 @@ int scanf_va_38(char const * __restrict format, int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1113,7 +1151,8 @@ int printf_va_38(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1128,8 +1167,8 @@ int scanf_va_39(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1142,7 +1181,8 @@ int printf_va_39(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1157,8 +1197,8 @@ int scanf_va_40(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1171,7 +1211,8 @@ int printf_va_40(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1186,8 +1227,8 @@ int scanf_va_41(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1200,7 +1241,8 @@ int printf_va_41(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1215,8 +1257,8 @@ int scanf_va_42(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1229,7 +1271,8 @@ int printf_va_42(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1244,8 +1287,8 @@ int scanf_va_43(char const * __restrict format, long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1258,7 +1301,8 @@ int printf_va_43(char const * __restrict format, long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1273,8 +1317,8 @@ int scanf_va_44(char const * __restrict format, long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1287,7 +1331,8 @@ int printf_va_44(char const * __restrict format, long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1302,8 +1347,8 @@ int scanf_va_45(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1316,7 +1361,8 @@ int printf_va_45(char const * __restrict format, unsigned long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1331,8 +1377,8 @@ int scanf_va_46(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1345,7 +1391,8 @@ int printf_va_46(char const * __restrict format, unsigned long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1360,8 +1407,8 @@ int scanf_va_47(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1374,7 +1421,8 @@ int printf_va_47(char const * __restrict format, unsigned long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1389,8 +1437,8 @@ int scanf_va_48(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1403,7 +1451,8 @@ int printf_va_48(char const * __restrict format, unsigned long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1418,8 +1467,8 @@ int scanf_va_49(char const * __restrict format, signed char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1432,7 +1481,8 @@ int printf_va_49(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1447,8 +1497,8 @@ int scanf_va_50(char const * __restrict format, signed char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1461,7 +1511,8 @@ int printf_va_50(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1476,8 +1527,8 @@ int scanf_va_51(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1490,7 +1541,8 @@ int printf_va_51(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1505,8 +1557,8 @@ int scanf_va_52(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1519,7 +1571,8 @@ int printf_va_52(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1534,8 +1587,8 @@ int scanf_va_53(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1548,7 +1601,8 @@ int printf_va_53(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1563,8 +1617,8 @@ int scanf_va_54(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1577,7 +1631,8 @@ int printf_va_54(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1592,8 +1647,8 @@ int scanf_va_55(char const * __restrict format, int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1606,7 +1661,8 @@ int printf_va_55(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1621,8 +1677,8 @@ int scanf_va_56(char const * __restrict format, int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1635,7 +1691,8 @@ int printf_va_56(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1650,8 +1707,8 @@ int scanf_va_57(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1664,7 +1721,8 @@ int printf_va_57(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1679,8 +1737,8 @@ int scanf_va_58(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1693,7 +1751,8 @@ int printf_va_58(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1708,8 +1767,8 @@ int scanf_va_59(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1722,7 +1781,8 @@ int printf_va_59(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1737,8 +1797,8 @@ int scanf_va_60(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1751,7 +1811,8 @@ int printf_va_60(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1766,8 +1827,8 @@ int scanf_va_61(char const * __restrict format, int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1780,7 +1841,8 @@ int printf_va_61(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1795,8 +1857,8 @@ int scanf_va_62(char const * __restrict format, int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1809,7 +1871,8 @@ int printf_va_62(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1824,8 +1887,8 @@ int scanf_va_63(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1838,7 +1901,8 @@ int printf_va_63(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1853,8 +1917,8 @@ int scanf_va_64(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1867,7 +1931,8 @@ int printf_va_64(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1882,8 +1947,8 @@ int scanf_va_65(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1896,7 +1961,8 @@ int printf_va_65(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1911,8 +1977,8 @@ int scanf_va_66(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1925,7 +1991,8 @@ int printf_va_66(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1940,8 +2007,8 @@ int scanf_va_67(char const * __restrict format, long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1954,7 +2021,8 @@ int printf_va_67(char const * __restrict format, long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1969,8 +2037,8 @@ int scanf_va_68(char const * __restrict format, long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1983,7 +2051,8 @@ int printf_va_68(char const * __restrict format, long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1998,8 +2067,8 @@ int scanf_va_69(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2012,7 +2081,8 @@ int printf_va_69(char const * __restrict format, unsigned long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2027,8 +2097,8 @@ int scanf_va_70(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2041,7 +2111,8 @@ int printf_va_70(char const * __restrict format, unsigned long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2056,8 +2127,8 @@ int scanf_va_71(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2070,7 +2141,8 @@ int printf_va_71(char const * __restrict format, unsigned long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2085,8 +2157,8 @@ int scanf_va_72(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2099,7 +2171,8 @@ int printf_va_72(char const * __restrict format, unsigned long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2114,8 +2187,8 @@ int scanf_va_73(char const * __restrict format, long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2128,7 +2201,8 @@ int printf_va_73(char const * __restrict format, long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2143,8 +2217,8 @@ int scanf_va_74(char const * __restrict format, long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2157,7 +2231,8 @@ int printf_va_74(char const * __restrict format, long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2172,8 +2247,8 @@ int scanf_va_75(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2186,7 +2261,8 @@ int printf_va_75(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2201,8 +2277,8 @@ int scanf_va_76(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2215,7 +2291,8 @@ int printf_va_76(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2230,8 +2307,8 @@ int scanf_va_77(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2244,7 +2321,8 @@ int printf_va_77(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2259,8 +2337,8 @@ int scanf_va_78(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2273,7 +2351,8 @@ int printf_va_78(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2288,8 +2367,8 @@ int scanf_va_79(char const * __restrict format, long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2302,7 +2381,8 @@ int printf_va_79(char const * __restrict format, long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2317,8 +2397,8 @@ int scanf_va_80(char const * __restrict format, long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2331,7 +2411,8 @@ int printf_va_80(char const * __restrict format, long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2346,8 +2427,8 @@ int scanf_va_81(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2360,7 +2441,8 @@ int printf_va_81(char const * __restrict format, unsigned long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2375,8 +2457,8 @@ int scanf_va_82(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2389,7 +2471,8 @@ int printf_va_82(char const * __restrict format, unsigned long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2404,8 +2487,8 @@ int scanf_va_83(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2418,7 +2501,8 @@ int printf_va_83(char const * __restrict format, unsigned long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2433,8 +2517,8 @@ int scanf_va_84(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), diff --git a/tests/libc/oracle/inttypes_h.3.res.oracle b/tests/libc/oracle/inttypes_h.3.res.oracle index eaaa132d690dde79c31b64fed1258454417d0d00..aa91e7cdb995b263008e7086a223d16076671962 100644 --- a/tests/libc/oracle/inttypes_h.3.res.oracle +++ b/tests/libc/oracle/inttypes_h.3.res.oracle @@ -11,7 +11,8 @@ ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -26,8 +27,8 @@ int scanf_va_1(char const * __restrict format, signed char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -40,7 +41,8 @@ int printf_va_1(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -55,8 +57,8 @@ int scanf_va_2(char const * __restrict format, signed char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -69,7 +71,8 @@ int printf_va_2(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -84,8 +87,8 @@ int scanf_va_3(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -98,7 +101,8 @@ int printf_va_3(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -113,8 +117,8 @@ int scanf_va_4(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -127,7 +131,8 @@ int printf_va_4(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -142,8 +147,8 @@ int scanf_va_5(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -156,7 +161,8 @@ int printf_va_5(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -171,8 +177,8 @@ int scanf_va_6(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -185,7 +191,8 @@ int printf_va_6(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -200,8 +207,8 @@ int scanf_va_7(char const * __restrict format, short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -214,7 +221,8 @@ int printf_va_7(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -229,8 +237,8 @@ int scanf_va_8(char const * __restrict format, short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -243,7 +251,8 @@ int printf_va_8(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -258,8 +267,8 @@ int scanf_va_9(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -272,7 +281,8 @@ int printf_va_9(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -287,8 +297,8 @@ int scanf_va_10(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -301,7 +311,8 @@ int printf_va_10(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -316,8 +327,8 @@ int scanf_va_11(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -330,7 +341,8 @@ int printf_va_11(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -345,8 +357,8 @@ int scanf_va_12(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -359,7 +371,8 @@ int printf_va_12(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -374,8 +387,8 @@ int scanf_va_13(char const * __restrict format, long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -388,7 +401,8 @@ int printf_va_13(char const * __restrict format, long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -403,8 +417,8 @@ int scanf_va_14(char const * __restrict format, long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -417,7 +431,8 @@ int printf_va_14(char const * __restrict format, long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -432,8 +447,8 @@ int scanf_va_15(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -446,7 +461,8 @@ int printf_va_15(char const * __restrict format, unsigned long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -461,8 +477,8 @@ int scanf_va_16(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -475,7 +491,8 @@ int printf_va_16(char const * __restrict format, unsigned long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -490,8 +507,8 @@ int scanf_va_17(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -504,7 +521,8 @@ int printf_va_17(char const * __restrict format, unsigned long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -519,8 +537,8 @@ int scanf_va_18(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -533,7 +551,8 @@ int printf_va_18(char const * __restrict format, unsigned long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -548,8 +567,8 @@ int scanf_va_19(char const * __restrict format, long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -562,7 +581,8 @@ int printf_va_19(char const * __restrict format, long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -577,8 +597,8 @@ int scanf_va_20(char const * __restrict format, long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -591,7 +611,8 @@ int printf_va_20(char const * __restrict format, long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -606,8 +627,8 @@ int scanf_va_21(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -620,7 +641,8 @@ int printf_va_21(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -635,8 +657,8 @@ int scanf_va_22(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -649,7 +671,8 @@ int printf_va_22(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -664,8 +687,8 @@ int scanf_va_23(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -678,7 +701,8 @@ int printf_va_23(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -693,8 +717,8 @@ int scanf_va_24(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -707,7 +731,8 @@ int printf_va_24(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -722,8 +747,8 @@ int scanf_va_25(char const * __restrict format, signed char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -736,7 +761,8 @@ int printf_va_25(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -751,8 +777,8 @@ int scanf_va_26(char const * __restrict format, signed char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -765,7 +791,8 @@ int printf_va_26(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -780,8 +807,8 @@ int scanf_va_27(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -794,7 +821,8 @@ int printf_va_27(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -809,8 +837,8 @@ int scanf_va_28(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -823,7 +851,8 @@ int printf_va_28(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -838,8 +867,8 @@ int scanf_va_29(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -852,7 +881,8 @@ int printf_va_29(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -867,8 +897,8 @@ int scanf_va_30(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -881,7 +911,8 @@ int printf_va_30(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -896,8 +927,8 @@ int scanf_va_31(char const * __restrict format, short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -910,7 +941,8 @@ int printf_va_31(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -925,8 +957,8 @@ int scanf_va_32(char const * __restrict format, short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -939,7 +971,8 @@ int printf_va_32(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -954,8 +987,8 @@ int scanf_va_33(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -968,7 +1001,8 @@ int printf_va_33(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -983,8 +1017,8 @@ int scanf_va_34(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -997,7 +1031,8 @@ int printf_va_34(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1012,8 +1047,8 @@ int scanf_va_35(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1026,7 +1061,8 @@ int printf_va_35(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1041,8 +1077,8 @@ int scanf_va_36(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1055,7 +1091,8 @@ int printf_va_36(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1070,8 +1107,8 @@ int scanf_va_37(char const * __restrict format, long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1084,7 +1121,8 @@ int printf_va_37(char const * __restrict format, long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1099,8 +1137,8 @@ int scanf_va_38(char const * __restrict format, long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1113,7 +1151,8 @@ int printf_va_38(char const * __restrict format, long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1128,8 +1167,8 @@ int scanf_va_39(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1142,7 +1181,8 @@ int printf_va_39(char const * __restrict format, unsigned long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1157,8 +1197,8 @@ int scanf_va_40(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1171,7 +1211,8 @@ int printf_va_40(char const * __restrict format, unsigned long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1186,8 +1227,8 @@ int scanf_va_41(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1200,7 +1241,8 @@ int printf_va_41(char const * __restrict format, unsigned long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1215,8 +1257,8 @@ int scanf_va_42(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1229,7 +1271,8 @@ int printf_va_42(char const * __restrict format, unsigned long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1244,8 +1287,8 @@ int scanf_va_43(char const * __restrict format, long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1258,7 +1301,8 @@ int printf_va_43(char const * __restrict format, long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1273,8 +1317,8 @@ int scanf_va_44(char const * __restrict format, long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1287,7 +1331,8 @@ int printf_va_44(char const * __restrict format, long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1302,8 +1347,8 @@ int scanf_va_45(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1316,7 +1361,8 @@ int printf_va_45(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1331,8 +1377,8 @@ int scanf_va_46(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1345,7 +1391,8 @@ int printf_va_46(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1360,8 +1407,8 @@ int scanf_va_47(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1374,7 +1421,8 @@ int printf_va_47(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1389,8 +1437,8 @@ int scanf_va_48(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1403,7 +1451,8 @@ int printf_va_48(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1418,8 +1467,8 @@ int scanf_va_49(char const * __restrict format, signed char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1432,7 +1481,8 @@ int printf_va_49(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1447,8 +1497,8 @@ int scanf_va_50(char const * __restrict format, signed char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1461,7 +1511,8 @@ int printf_va_50(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1476,8 +1527,8 @@ int scanf_va_51(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1490,7 +1541,8 @@ int printf_va_51(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1505,8 +1557,8 @@ int scanf_va_52(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1519,7 +1571,8 @@ int printf_va_52(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1534,8 +1587,8 @@ int scanf_va_53(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1548,7 +1601,8 @@ int printf_va_53(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1563,8 +1617,8 @@ int scanf_va_54(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1577,7 +1631,8 @@ int printf_va_54(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1592,8 +1647,8 @@ int scanf_va_55(char const * __restrict format, int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1606,7 +1661,8 @@ int printf_va_55(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1621,8 +1677,8 @@ int scanf_va_56(char const * __restrict format, int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1635,7 +1691,8 @@ int printf_va_56(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1650,8 +1707,8 @@ int scanf_va_57(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1664,7 +1721,8 @@ int printf_va_57(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1679,8 +1737,8 @@ int scanf_va_58(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1693,7 +1751,8 @@ int printf_va_58(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1708,8 +1767,8 @@ int scanf_va_59(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1722,7 +1781,8 @@ int printf_va_59(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1737,8 +1797,8 @@ int scanf_va_60(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1751,7 +1811,8 @@ int printf_va_60(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1766,8 +1827,8 @@ int scanf_va_61(char const * __restrict format, long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1780,7 +1841,8 @@ int printf_va_61(char const * __restrict format, long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1795,8 +1857,8 @@ int scanf_va_62(char const * __restrict format, long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1809,7 +1871,8 @@ int printf_va_62(char const * __restrict format, long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1824,8 +1887,8 @@ int scanf_va_63(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1838,7 +1901,8 @@ int printf_va_63(char const * __restrict format, unsigned long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1853,8 +1917,8 @@ int scanf_va_64(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1867,7 +1931,8 @@ int printf_va_64(char const * __restrict format, unsigned long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1882,8 +1947,8 @@ int scanf_va_65(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1896,7 +1961,8 @@ int printf_va_65(char const * __restrict format, unsigned long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1911,8 +1977,8 @@ int scanf_va_66(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1925,7 +1991,8 @@ int printf_va_66(char const * __restrict format, unsigned long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1940,8 +2007,8 @@ int scanf_va_67(char const * __restrict format, long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1954,7 +2021,8 @@ int printf_va_67(char const * __restrict format, long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1969,8 +2037,8 @@ int scanf_va_68(char const * __restrict format, long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1983,7 +2051,8 @@ int printf_va_68(char const * __restrict format, long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1998,8 +2067,8 @@ int scanf_va_69(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2012,7 +2081,8 @@ int printf_va_69(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2027,8 +2097,8 @@ int scanf_va_70(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2041,7 +2111,8 @@ int printf_va_70(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2056,8 +2127,8 @@ int scanf_va_71(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2070,7 +2141,8 @@ int printf_va_71(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2085,8 +2157,8 @@ int scanf_va_72(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2099,7 +2171,8 @@ int printf_va_72(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2114,8 +2187,8 @@ int scanf_va_73(char const * __restrict format, long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2128,7 +2201,8 @@ int printf_va_73(char const * __restrict format, long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2143,8 +2217,8 @@ int scanf_va_74(char const * __restrict format, long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2157,7 +2231,8 @@ int printf_va_74(char const * __restrict format, long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2172,8 +2247,8 @@ int scanf_va_75(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2186,7 +2261,8 @@ int printf_va_75(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2201,8 +2277,8 @@ int scanf_va_76(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2215,7 +2291,8 @@ int printf_va_76(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2230,8 +2307,8 @@ int scanf_va_77(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2244,7 +2321,8 @@ int printf_va_77(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2259,8 +2337,8 @@ int scanf_va_78(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2273,7 +2351,8 @@ int printf_va_78(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2288,8 +2367,8 @@ int scanf_va_79(char const * __restrict format, long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2302,7 +2381,8 @@ int printf_va_79(char const * __restrict format, long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2317,8 +2397,8 @@ int scanf_va_80(char const * __restrict format, long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2331,7 +2411,8 @@ int printf_va_80(char const * __restrict format, long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2346,8 +2427,8 @@ int scanf_va_81(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2360,7 +2441,8 @@ int printf_va_81(char const * __restrict format, unsigned long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2375,8 +2457,8 @@ int scanf_va_82(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2389,7 +2471,8 @@ int printf_va_82(char const * __restrict format, unsigned long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2404,8 +2487,8 @@ int scanf_va_83(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2418,7 +2501,8 @@ int printf_va_83(char const * __restrict format, unsigned long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2433,8 +2517,8 @@ int scanf_va_84(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), diff --git a/tests/libc/oracle/inttypes_h.4.res.oracle b/tests/libc/oracle/inttypes_h.4.res.oracle index ee3b253caf33cceda5773e2ab7553f01ef3d5e2d..d369e0541c8787ae84964c5bb823d66898a27f47 100644 --- a/tests/libc/oracle/inttypes_h.4.res.oracle +++ b/tests/libc/oracle/inttypes_h.4.res.oracle @@ -11,7 +11,8 @@ ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -26,8 +27,8 @@ int scanf_va_1(char const * __restrict format, signed char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -40,7 +41,8 @@ int printf_va_1(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -55,8 +57,8 @@ int scanf_va_2(char const * __restrict format, signed char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -69,7 +71,8 @@ int printf_va_2(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -84,8 +87,8 @@ int scanf_va_3(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -98,7 +101,8 @@ int printf_va_3(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -113,8 +117,8 @@ int scanf_va_4(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -127,7 +131,8 @@ int printf_va_4(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -142,8 +147,8 @@ int scanf_va_5(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -156,7 +161,8 @@ int printf_va_5(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -171,8 +177,8 @@ int scanf_va_6(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -185,7 +191,8 @@ int printf_va_6(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -200,8 +207,8 @@ int scanf_va_7(char const * __restrict format, short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -214,7 +221,8 @@ int printf_va_7(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -229,8 +237,8 @@ int scanf_va_8(char const * __restrict format, short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -243,7 +251,8 @@ int printf_va_8(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -258,8 +267,8 @@ int scanf_va_9(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -272,7 +281,8 @@ int printf_va_9(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -287,8 +297,8 @@ int scanf_va_10(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -301,7 +311,8 @@ int printf_va_10(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -316,8 +327,8 @@ int scanf_va_11(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -330,7 +341,8 @@ int printf_va_11(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -345,8 +357,8 @@ int scanf_va_12(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -359,7 +371,8 @@ int printf_va_12(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -374,8 +387,8 @@ int scanf_va_13(char const * __restrict format, int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -388,7 +401,8 @@ int printf_va_13(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -403,8 +417,8 @@ int scanf_va_14(char const * __restrict format, int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -417,7 +431,8 @@ int printf_va_14(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -432,8 +447,8 @@ int scanf_va_15(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -446,7 +461,8 @@ int printf_va_15(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -461,8 +477,8 @@ int scanf_va_16(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -475,7 +491,8 @@ int printf_va_16(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -490,8 +507,8 @@ int scanf_va_17(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -504,7 +521,8 @@ int printf_va_17(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -519,8 +537,8 @@ int scanf_va_18(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -533,7 +551,8 @@ int printf_va_18(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -548,8 +567,8 @@ int scanf_va_19(char const * __restrict format, long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -562,7 +581,8 @@ int printf_va_19(char const * __restrict format, long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -577,8 +597,8 @@ int scanf_va_20(char const * __restrict format, long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -591,7 +611,8 @@ int printf_va_20(char const * __restrict format, long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -606,8 +627,8 @@ int scanf_va_21(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -620,7 +641,8 @@ int printf_va_21(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -635,8 +657,8 @@ int scanf_va_22(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -649,7 +671,8 @@ int printf_va_22(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -664,8 +687,8 @@ int scanf_va_23(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -678,7 +701,8 @@ int printf_va_23(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -693,8 +717,8 @@ int scanf_va_24(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -707,7 +731,8 @@ int printf_va_24(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -722,8 +747,8 @@ int scanf_va_25(char const * __restrict format, signed char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -736,7 +761,8 @@ int printf_va_25(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -751,8 +777,8 @@ int scanf_va_26(char const * __restrict format, signed char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -765,7 +791,8 @@ int printf_va_26(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -780,8 +807,8 @@ int scanf_va_27(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -794,7 +821,8 @@ int printf_va_27(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -809,8 +837,8 @@ int scanf_va_28(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -823,7 +851,8 @@ int printf_va_28(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -838,8 +867,8 @@ int scanf_va_29(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -852,7 +881,8 @@ int printf_va_29(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -867,8 +897,8 @@ int scanf_va_30(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -881,7 +911,8 @@ int printf_va_30(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -896,8 +927,8 @@ int scanf_va_31(char const * __restrict format, short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -910,7 +941,8 @@ int printf_va_31(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -925,8 +957,8 @@ int scanf_va_32(char const * __restrict format, short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -939,7 +971,8 @@ int printf_va_32(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -954,8 +987,8 @@ int scanf_va_33(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -968,7 +1001,8 @@ int printf_va_33(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -983,8 +1017,8 @@ int scanf_va_34(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -997,7 +1031,8 @@ int printf_va_34(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1012,8 +1047,8 @@ int scanf_va_35(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1026,7 +1061,8 @@ int printf_va_35(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1041,8 +1077,8 @@ int scanf_va_36(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1055,7 +1091,8 @@ int printf_va_36(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1070,8 +1107,8 @@ int scanf_va_37(char const * __restrict format, int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1084,7 +1121,8 @@ int printf_va_37(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1099,8 +1137,8 @@ int scanf_va_38(char const * __restrict format, int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1113,7 +1151,8 @@ int printf_va_38(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1128,8 +1167,8 @@ int scanf_va_39(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1142,7 +1181,8 @@ int printf_va_39(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1157,8 +1197,8 @@ int scanf_va_40(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1171,7 +1211,8 @@ int printf_va_40(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1186,8 +1227,8 @@ int scanf_va_41(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1200,7 +1241,8 @@ int printf_va_41(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1215,8 +1257,8 @@ int scanf_va_42(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1229,7 +1271,8 @@ int printf_va_42(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1244,8 +1287,8 @@ int scanf_va_43(char const * __restrict format, long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1258,7 +1301,8 @@ int printf_va_43(char const * __restrict format, long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1273,8 +1317,8 @@ int scanf_va_44(char const * __restrict format, long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1287,7 +1331,8 @@ int printf_va_44(char const * __restrict format, long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1302,8 +1347,8 @@ int scanf_va_45(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1316,7 +1361,8 @@ int printf_va_45(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1331,8 +1377,8 @@ int scanf_va_46(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1345,7 +1391,8 @@ int printf_va_46(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1360,8 +1407,8 @@ int scanf_va_47(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1374,7 +1421,8 @@ int printf_va_47(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1389,8 +1437,8 @@ int scanf_va_48(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1403,7 +1451,8 @@ int printf_va_48(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1418,8 +1467,8 @@ int scanf_va_49(char const * __restrict format, signed char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1432,7 +1481,8 @@ int printf_va_49(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1447,8 +1497,8 @@ int scanf_va_50(char const * __restrict format, signed char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1461,7 +1511,8 @@ int printf_va_50(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1476,8 +1527,8 @@ int scanf_va_51(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1490,7 +1541,8 @@ int printf_va_51(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1505,8 +1557,8 @@ int scanf_va_52(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1519,7 +1571,8 @@ int printf_va_52(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1534,8 +1587,8 @@ int scanf_va_53(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1548,7 +1601,8 @@ int printf_va_53(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1563,8 +1617,8 @@ int scanf_va_54(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1577,7 +1631,8 @@ int printf_va_54(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1592,8 +1647,8 @@ int scanf_va_55(char const * __restrict format, int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1606,7 +1661,8 @@ int printf_va_55(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1621,8 +1677,8 @@ int scanf_va_56(char const * __restrict format, int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1635,7 +1691,8 @@ int printf_va_56(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1650,8 +1707,8 @@ int scanf_va_57(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1664,7 +1721,8 @@ int printf_va_57(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1679,8 +1737,8 @@ int scanf_va_58(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1693,7 +1751,8 @@ int printf_va_58(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1708,8 +1767,8 @@ int scanf_va_59(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1722,7 +1781,8 @@ int printf_va_59(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1737,8 +1797,8 @@ int scanf_va_60(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1751,7 +1811,8 @@ int printf_va_60(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1766,8 +1827,8 @@ int scanf_va_61(char const * __restrict format, int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1780,7 +1841,8 @@ int printf_va_61(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1795,8 +1857,8 @@ int scanf_va_62(char const * __restrict format, int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1809,7 +1871,8 @@ int printf_va_62(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1824,8 +1887,8 @@ int scanf_va_63(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1838,7 +1901,8 @@ int printf_va_63(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1853,8 +1917,8 @@ int scanf_va_64(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1867,7 +1931,8 @@ int printf_va_64(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1882,8 +1947,8 @@ int scanf_va_65(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1896,7 +1961,8 @@ int printf_va_65(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1911,8 +1977,8 @@ int scanf_va_66(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1925,7 +1991,8 @@ int printf_va_66(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1940,8 +2007,8 @@ int scanf_va_67(char const * __restrict format, long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1954,7 +2021,8 @@ int printf_va_67(char const * __restrict format, long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1969,8 +2037,8 @@ int scanf_va_68(char const * __restrict format, long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1983,7 +2051,8 @@ int printf_va_68(char const * __restrict format, long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1998,8 +2067,8 @@ int scanf_va_69(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2012,7 +2081,8 @@ int printf_va_69(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2027,8 +2097,8 @@ int scanf_va_70(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2041,7 +2111,8 @@ int printf_va_70(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2056,8 +2127,8 @@ int scanf_va_71(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2070,7 +2141,8 @@ int printf_va_71(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2085,8 +2157,8 @@ int scanf_va_72(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2099,7 +2171,8 @@ int printf_va_72(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2114,8 +2187,8 @@ int scanf_va_73(char const * __restrict format, long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2128,7 +2201,8 @@ int printf_va_73(char const * __restrict format, long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2143,8 +2217,8 @@ int scanf_va_74(char const * __restrict format, long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2157,7 +2231,8 @@ int printf_va_74(char const * __restrict format, long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2172,8 +2247,8 @@ int scanf_va_75(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2186,7 +2261,8 @@ int printf_va_75(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2201,8 +2277,8 @@ int scanf_va_76(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2215,7 +2291,8 @@ int printf_va_76(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2230,8 +2307,8 @@ int scanf_va_77(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2244,7 +2321,8 @@ int printf_va_77(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2259,8 +2337,8 @@ int scanf_va_78(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2273,7 +2351,8 @@ int printf_va_78(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2288,8 +2367,8 @@ int scanf_va_79(char const * __restrict format, int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2302,7 +2381,8 @@ int printf_va_79(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2317,8 +2397,8 @@ int scanf_va_80(char const * __restrict format, int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2331,7 +2411,8 @@ int printf_va_80(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2346,8 +2427,8 @@ int scanf_va_81(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2360,7 +2441,8 @@ int printf_va_81(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2375,8 +2457,8 @@ int scanf_va_82(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2389,7 +2471,8 @@ int printf_va_82(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2404,8 +2487,8 @@ int scanf_va_83(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2418,7 +2501,8 @@ int printf_va_83(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2433,8 +2517,8 @@ int scanf_va_84(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), diff --git a/tests/libc/oracle/inttypes_h.5.res.oracle b/tests/libc/oracle/inttypes_h.5.res.oracle index a70f22663383c9b382e0ba42f879d9fb625fa700..0270a3902c68a7b8e1b9a34ab1efdd9f14cbb8cd 100644 --- a/tests/libc/oracle/inttypes_h.5.res.oracle +++ b/tests/libc/oracle/inttypes_h.5.res.oracle @@ -11,7 +11,8 @@ ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -26,8 +27,8 @@ int scanf_va_1(char const * __restrict format, signed char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -40,7 +41,8 @@ int printf_va_1(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -55,8 +57,8 @@ int scanf_va_2(char const * __restrict format, signed char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -69,7 +71,8 @@ int printf_va_2(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -84,8 +87,8 @@ int scanf_va_3(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -98,7 +101,8 @@ int printf_va_3(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -113,8 +117,8 @@ int scanf_va_4(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -127,7 +131,8 @@ int printf_va_4(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -142,8 +147,8 @@ int scanf_va_5(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -156,7 +161,8 @@ int printf_va_5(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -171,8 +177,8 @@ int scanf_va_6(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -185,7 +191,8 @@ int printf_va_6(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -200,8 +207,8 @@ int scanf_va_7(char const * __restrict format, short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -214,7 +221,8 @@ int printf_va_7(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -229,8 +237,8 @@ int scanf_va_8(char const * __restrict format, short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -243,7 +251,8 @@ int printf_va_8(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -258,8 +267,8 @@ int scanf_va_9(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -272,7 +281,8 @@ int printf_va_9(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -287,8 +297,8 @@ int scanf_va_10(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -301,7 +311,8 @@ int printf_va_10(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -316,8 +327,8 @@ int scanf_va_11(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -330,7 +341,8 @@ int printf_va_11(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -345,8 +357,8 @@ int scanf_va_12(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -359,7 +371,8 @@ int printf_va_12(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -374,8 +387,8 @@ int scanf_va_13(char const * __restrict format, int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -388,7 +401,8 @@ int printf_va_13(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -403,8 +417,8 @@ int scanf_va_14(char const * __restrict format, int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -417,7 +431,8 @@ int printf_va_14(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -432,8 +447,8 @@ int scanf_va_15(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -446,7 +461,8 @@ int printf_va_15(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -461,8 +477,8 @@ int scanf_va_16(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -475,7 +491,8 @@ int printf_va_16(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -490,8 +507,8 @@ int scanf_va_17(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -504,7 +521,8 @@ int printf_va_17(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -519,8 +537,8 @@ int scanf_va_18(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -533,7 +551,8 @@ int printf_va_18(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -548,8 +567,8 @@ int scanf_va_19(char const * __restrict format, long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -562,7 +581,8 @@ int printf_va_19(char const * __restrict format, long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -577,8 +597,8 @@ int scanf_va_20(char const * __restrict format, long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -591,7 +611,8 @@ int printf_va_20(char const * __restrict format, long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -606,8 +627,8 @@ int scanf_va_21(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -620,7 +641,8 @@ int printf_va_21(char const * __restrict format, unsigned long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -635,8 +657,8 @@ int scanf_va_22(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -649,7 +671,8 @@ int printf_va_22(char const * __restrict format, unsigned long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -664,8 +687,8 @@ int scanf_va_23(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -678,7 +701,8 @@ int printf_va_23(char const * __restrict format, unsigned long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -693,8 +717,8 @@ int scanf_va_24(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -707,7 +731,8 @@ int printf_va_24(char const * __restrict format, unsigned long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -722,8 +747,8 @@ int scanf_va_25(char const * __restrict format, signed char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -736,7 +761,8 @@ int printf_va_25(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -751,8 +777,8 @@ int scanf_va_26(char const * __restrict format, signed char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -765,7 +791,8 @@ int printf_va_26(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -780,8 +807,8 @@ int scanf_va_27(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -794,7 +821,8 @@ int printf_va_27(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -809,8 +837,8 @@ int scanf_va_28(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -823,7 +851,8 @@ int printf_va_28(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -838,8 +867,8 @@ int scanf_va_29(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -852,7 +881,8 @@ int printf_va_29(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -867,8 +897,8 @@ int scanf_va_30(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -881,7 +911,8 @@ int printf_va_30(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -896,8 +927,8 @@ int scanf_va_31(char const * __restrict format, short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -910,7 +941,8 @@ int printf_va_31(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -925,8 +957,8 @@ int scanf_va_32(char const * __restrict format, short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -939,7 +971,8 @@ int printf_va_32(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -954,8 +987,8 @@ int scanf_va_33(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -968,7 +1001,8 @@ int printf_va_33(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -983,8 +1017,8 @@ int scanf_va_34(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -997,7 +1031,8 @@ int printf_va_34(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1012,8 +1047,8 @@ int scanf_va_35(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1026,7 +1061,8 @@ int printf_va_35(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1041,8 +1077,8 @@ int scanf_va_36(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1055,7 +1091,8 @@ int printf_va_36(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1070,8 +1107,8 @@ int scanf_va_37(char const * __restrict format, int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1084,7 +1121,8 @@ int printf_va_37(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1099,8 +1137,8 @@ int scanf_va_38(char const * __restrict format, int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1113,7 +1151,8 @@ int printf_va_38(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1128,8 +1167,8 @@ int scanf_va_39(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1142,7 +1181,8 @@ int printf_va_39(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1157,8 +1197,8 @@ int scanf_va_40(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1171,7 +1211,8 @@ int printf_va_40(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1186,8 +1227,8 @@ int scanf_va_41(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1200,7 +1241,8 @@ int printf_va_41(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1215,8 +1257,8 @@ int scanf_va_42(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1229,7 +1271,8 @@ int printf_va_42(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1244,8 +1287,8 @@ int scanf_va_43(char const * __restrict format, long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1258,7 +1301,8 @@ int printf_va_43(char const * __restrict format, long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1273,8 +1317,8 @@ int scanf_va_44(char const * __restrict format, long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1287,7 +1331,8 @@ int printf_va_44(char const * __restrict format, long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1302,8 +1347,8 @@ int scanf_va_45(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1316,7 +1361,8 @@ int printf_va_45(char const * __restrict format, unsigned long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1331,8 +1377,8 @@ int scanf_va_46(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1345,7 +1391,8 @@ int printf_va_46(char const * __restrict format, unsigned long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1360,8 +1407,8 @@ int scanf_va_47(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1374,7 +1421,8 @@ int printf_va_47(char const * __restrict format, unsigned long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1389,8 +1437,8 @@ int scanf_va_48(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1403,7 +1451,8 @@ int printf_va_48(char const * __restrict format, unsigned long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1418,8 +1467,8 @@ int scanf_va_49(char const * __restrict format, signed char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1432,7 +1481,8 @@ int printf_va_49(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1447,8 +1497,8 @@ int scanf_va_50(char const * __restrict format, signed char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1461,7 +1511,8 @@ int printf_va_50(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1476,8 +1527,8 @@ int scanf_va_51(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1490,7 +1541,8 @@ int printf_va_51(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1505,8 +1557,8 @@ int scanf_va_52(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1519,7 +1571,8 @@ int printf_va_52(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1534,8 +1587,8 @@ int scanf_va_53(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1548,7 +1601,8 @@ int printf_va_53(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1563,8 +1617,8 @@ int scanf_va_54(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1577,7 +1631,8 @@ int printf_va_54(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1592,8 +1647,8 @@ int scanf_va_55(char const * __restrict format, int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1606,7 +1661,8 @@ int printf_va_55(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1621,8 +1677,8 @@ int scanf_va_56(char const * __restrict format, int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1635,7 +1691,8 @@ int printf_va_56(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1650,8 +1707,8 @@ int scanf_va_57(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1664,7 +1721,8 @@ int printf_va_57(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1679,8 +1737,8 @@ int scanf_va_58(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1693,7 +1751,8 @@ int printf_va_58(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1708,8 +1767,8 @@ int scanf_va_59(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1722,7 +1781,8 @@ int printf_va_59(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1737,8 +1797,8 @@ int scanf_va_60(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1751,7 +1811,8 @@ int printf_va_60(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1766,8 +1827,8 @@ int scanf_va_61(char const * __restrict format, int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1780,7 +1841,8 @@ int printf_va_61(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1795,8 +1857,8 @@ int scanf_va_62(char const * __restrict format, int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1809,7 +1871,8 @@ int printf_va_62(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1824,8 +1887,8 @@ int scanf_va_63(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1838,7 +1901,8 @@ int printf_va_63(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1853,8 +1917,8 @@ int scanf_va_64(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1867,7 +1931,8 @@ int printf_va_64(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1882,8 +1947,8 @@ int scanf_va_65(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1896,7 +1961,8 @@ int printf_va_65(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1911,8 +1977,8 @@ int scanf_va_66(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1925,7 +1991,8 @@ int printf_va_66(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1940,8 +2007,8 @@ int scanf_va_67(char const * __restrict format, long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1954,7 +2021,8 @@ int printf_va_67(char const * __restrict format, long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1969,8 +2037,8 @@ int scanf_va_68(char const * __restrict format, long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1983,7 +2051,8 @@ int printf_va_68(char const * __restrict format, long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1998,8 +2067,8 @@ int scanf_va_69(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2012,7 +2081,8 @@ int printf_va_69(char const * __restrict format, unsigned long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2027,8 +2097,8 @@ int scanf_va_70(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2041,7 +2111,8 @@ int printf_va_70(char const * __restrict format, unsigned long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2056,8 +2127,8 @@ int scanf_va_71(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2070,7 +2141,8 @@ int printf_va_71(char const * __restrict format, unsigned long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2085,8 +2157,8 @@ int scanf_va_72(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2099,7 +2171,8 @@ int printf_va_72(char const * __restrict format, unsigned long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2114,8 +2187,8 @@ int scanf_va_73(char const * __restrict format, long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2128,7 +2201,8 @@ int printf_va_73(char const * __restrict format, long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2143,8 +2217,8 @@ int scanf_va_74(char const * __restrict format, long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2157,7 +2231,8 @@ int printf_va_74(char const * __restrict format, long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2172,8 +2247,8 @@ int scanf_va_75(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2186,7 +2261,8 @@ int printf_va_75(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2201,8 +2277,8 @@ int scanf_va_76(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2215,7 +2291,8 @@ int printf_va_76(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2230,8 +2307,8 @@ int scanf_va_77(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2244,7 +2321,8 @@ int printf_va_77(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2259,8 +2337,8 @@ int scanf_va_78(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2273,7 +2351,8 @@ int printf_va_78(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2288,8 +2367,8 @@ int scanf_va_79(char const * __restrict format, long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2302,7 +2381,8 @@ int printf_va_79(char const * __restrict format, long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2317,8 +2397,8 @@ int scanf_va_80(char const * __restrict format, long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2331,7 +2411,8 @@ int printf_va_80(char const * __restrict format, long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2346,8 +2427,8 @@ int scanf_va_81(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2360,7 +2441,8 @@ int printf_va_81(char const * __restrict format, unsigned long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2375,8 +2457,8 @@ int scanf_va_82(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2389,7 +2471,8 @@ int printf_va_82(char const * __restrict format, unsigned long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2404,8 +2487,8 @@ int scanf_va_83(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2418,7 +2501,8 @@ int printf_va_83(char const * __restrict format, unsigned long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2433,8 +2517,8 @@ int scanf_va_84(char const * __restrict format, unsigned long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), diff --git a/tests/libc/oracle/inttypes_h.6.res.oracle b/tests/libc/oracle/inttypes_h.6.res.oracle index ee3b253caf33cceda5773e2ab7553f01ef3d5e2d..d369e0541c8787ae84964c5bb823d66898a27f47 100644 --- a/tests/libc/oracle/inttypes_h.6.res.oracle +++ b/tests/libc/oracle/inttypes_h.6.res.oracle @@ -11,7 +11,8 @@ ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -26,8 +27,8 @@ int scanf_va_1(char const * __restrict format, signed char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -40,7 +41,8 @@ int printf_va_1(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -55,8 +57,8 @@ int scanf_va_2(char const * __restrict format, signed char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -69,7 +71,8 @@ int printf_va_2(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -84,8 +87,8 @@ int scanf_va_3(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -98,7 +101,8 @@ int printf_va_3(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -113,8 +117,8 @@ int scanf_va_4(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -127,7 +131,8 @@ int printf_va_4(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -142,8 +147,8 @@ int scanf_va_5(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -156,7 +161,8 @@ int printf_va_5(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -171,8 +177,8 @@ int scanf_va_6(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -185,7 +191,8 @@ int printf_va_6(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -200,8 +207,8 @@ int scanf_va_7(char const * __restrict format, short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -214,7 +221,8 @@ int printf_va_7(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -229,8 +237,8 @@ int scanf_va_8(char const * __restrict format, short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -243,7 +251,8 @@ int printf_va_8(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -258,8 +267,8 @@ int scanf_va_9(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -272,7 +281,8 @@ int printf_va_9(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -287,8 +297,8 @@ int scanf_va_10(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -301,7 +311,8 @@ int printf_va_10(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -316,8 +327,8 @@ int scanf_va_11(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -330,7 +341,8 @@ int printf_va_11(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -345,8 +357,8 @@ int scanf_va_12(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -359,7 +371,8 @@ int printf_va_12(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -374,8 +387,8 @@ int scanf_va_13(char const * __restrict format, int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -388,7 +401,8 @@ int printf_va_13(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -403,8 +417,8 @@ int scanf_va_14(char const * __restrict format, int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -417,7 +431,8 @@ int printf_va_14(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -432,8 +447,8 @@ int scanf_va_15(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -446,7 +461,8 @@ int printf_va_15(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -461,8 +477,8 @@ int scanf_va_16(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -475,7 +491,8 @@ int printf_va_16(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -490,8 +507,8 @@ int scanf_va_17(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -504,7 +521,8 @@ int printf_va_17(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -519,8 +537,8 @@ int scanf_va_18(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -533,7 +551,8 @@ int printf_va_18(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -548,8 +567,8 @@ int scanf_va_19(char const * __restrict format, long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -562,7 +581,8 @@ int printf_va_19(char const * __restrict format, long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -577,8 +597,8 @@ int scanf_va_20(char const * __restrict format, long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -591,7 +611,8 @@ int printf_va_20(char const * __restrict format, long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -606,8 +627,8 @@ int scanf_va_21(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -620,7 +641,8 @@ int printf_va_21(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -635,8 +657,8 @@ int scanf_va_22(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -649,7 +671,8 @@ int printf_va_22(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -664,8 +687,8 @@ int scanf_va_23(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -678,7 +701,8 @@ int printf_va_23(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -693,8 +717,8 @@ int scanf_va_24(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -707,7 +731,8 @@ int printf_va_24(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -722,8 +747,8 @@ int scanf_va_25(char const * __restrict format, signed char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -736,7 +761,8 @@ int printf_va_25(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -751,8 +777,8 @@ int scanf_va_26(char const * __restrict format, signed char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -765,7 +791,8 @@ int printf_va_26(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -780,8 +807,8 @@ int scanf_va_27(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -794,7 +821,8 @@ int printf_va_27(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -809,8 +837,8 @@ int scanf_va_28(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -823,7 +851,8 @@ int printf_va_28(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -838,8 +867,8 @@ int scanf_va_29(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -852,7 +881,8 @@ int printf_va_29(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -867,8 +897,8 @@ int scanf_va_30(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -881,7 +911,8 @@ int printf_va_30(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -896,8 +927,8 @@ int scanf_va_31(char const * __restrict format, short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -910,7 +941,8 @@ int printf_va_31(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -925,8 +957,8 @@ int scanf_va_32(char const * __restrict format, short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -939,7 +971,8 @@ int printf_va_32(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -954,8 +987,8 @@ int scanf_va_33(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -968,7 +1001,8 @@ int printf_va_33(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -983,8 +1017,8 @@ int scanf_va_34(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -997,7 +1031,8 @@ int printf_va_34(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1012,8 +1047,8 @@ int scanf_va_35(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1026,7 +1061,8 @@ int printf_va_35(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1041,8 +1077,8 @@ int scanf_va_36(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1055,7 +1091,8 @@ int printf_va_36(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1070,8 +1107,8 @@ int scanf_va_37(char const * __restrict format, int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1084,7 +1121,8 @@ int printf_va_37(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1099,8 +1137,8 @@ int scanf_va_38(char const * __restrict format, int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1113,7 +1151,8 @@ int printf_va_38(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1128,8 +1167,8 @@ int scanf_va_39(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1142,7 +1181,8 @@ int printf_va_39(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1157,8 +1197,8 @@ int scanf_va_40(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1171,7 +1211,8 @@ int printf_va_40(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1186,8 +1227,8 @@ int scanf_va_41(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1200,7 +1241,8 @@ int printf_va_41(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1215,8 +1257,8 @@ int scanf_va_42(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1229,7 +1271,8 @@ int printf_va_42(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1244,8 +1287,8 @@ int scanf_va_43(char const * __restrict format, long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1258,7 +1301,8 @@ int printf_va_43(char const * __restrict format, long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1273,8 +1317,8 @@ int scanf_va_44(char const * __restrict format, long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1287,7 +1331,8 @@ int printf_va_44(char const * __restrict format, long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1302,8 +1347,8 @@ int scanf_va_45(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1316,7 +1361,8 @@ int printf_va_45(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1331,8 +1377,8 @@ int scanf_va_46(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1345,7 +1391,8 @@ int printf_va_46(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1360,8 +1407,8 @@ int scanf_va_47(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1374,7 +1421,8 @@ int printf_va_47(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1389,8 +1437,8 @@ int scanf_va_48(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1403,7 +1451,8 @@ int printf_va_48(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1418,8 +1467,8 @@ int scanf_va_49(char const * __restrict format, signed char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1432,7 +1481,8 @@ int printf_va_49(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1447,8 +1497,8 @@ int scanf_va_50(char const * __restrict format, signed char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1461,7 +1511,8 @@ int printf_va_50(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1476,8 +1527,8 @@ int scanf_va_51(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1490,7 +1541,8 @@ int printf_va_51(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1505,8 +1557,8 @@ int scanf_va_52(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1519,7 +1571,8 @@ int printf_va_52(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1534,8 +1587,8 @@ int scanf_va_53(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1548,7 +1601,8 @@ int printf_va_53(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1563,8 +1617,8 @@ int scanf_va_54(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1577,7 +1631,8 @@ int printf_va_54(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1592,8 +1647,8 @@ int scanf_va_55(char const * __restrict format, int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1606,7 +1661,8 @@ int printf_va_55(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1621,8 +1677,8 @@ int scanf_va_56(char const * __restrict format, int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1635,7 +1691,8 @@ int printf_va_56(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1650,8 +1707,8 @@ int scanf_va_57(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1664,7 +1721,8 @@ int printf_va_57(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1679,8 +1737,8 @@ int scanf_va_58(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1693,7 +1751,8 @@ int printf_va_58(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1708,8 +1767,8 @@ int scanf_va_59(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1722,7 +1781,8 @@ int printf_va_59(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1737,8 +1797,8 @@ int scanf_va_60(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1751,7 +1811,8 @@ int printf_va_60(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1766,8 +1827,8 @@ int scanf_va_61(char const * __restrict format, int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1780,7 +1841,8 @@ int printf_va_61(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1795,8 +1857,8 @@ int scanf_va_62(char const * __restrict format, int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1809,7 +1871,8 @@ int printf_va_62(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1824,8 +1887,8 @@ int scanf_va_63(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1838,7 +1901,8 @@ int printf_va_63(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1853,8 +1917,8 @@ int scanf_va_64(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1867,7 +1931,8 @@ int printf_va_64(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1882,8 +1947,8 @@ int scanf_va_65(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1896,7 +1961,8 @@ int printf_va_65(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1911,8 +1977,8 @@ int scanf_va_66(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1925,7 +1991,8 @@ int printf_va_66(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1940,8 +2007,8 @@ int scanf_va_67(char const * __restrict format, long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1954,7 +2021,8 @@ int printf_va_67(char const * __restrict format, long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1969,8 +2037,8 @@ int scanf_va_68(char const * __restrict format, long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1983,7 +2051,8 @@ int printf_va_68(char const * __restrict format, long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1998,8 +2067,8 @@ int scanf_va_69(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2012,7 +2081,8 @@ int printf_va_69(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2027,8 +2097,8 @@ int scanf_va_70(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2041,7 +2111,8 @@ int printf_va_70(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2056,8 +2127,8 @@ int scanf_va_71(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2070,7 +2141,8 @@ int printf_va_71(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2085,8 +2157,8 @@ int scanf_va_72(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2099,7 +2171,8 @@ int printf_va_72(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2114,8 +2187,8 @@ int scanf_va_73(char const * __restrict format, long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2128,7 +2201,8 @@ int printf_va_73(char const * __restrict format, long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2143,8 +2217,8 @@ int scanf_va_74(char const * __restrict format, long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2157,7 +2231,8 @@ int printf_va_74(char const * __restrict format, long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2172,8 +2247,8 @@ int scanf_va_75(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2186,7 +2261,8 @@ int printf_va_75(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2201,8 +2277,8 @@ int scanf_va_76(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2215,7 +2291,8 @@ int printf_va_76(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2230,8 +2307,8 @@ int scanf_va_77(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2244,7 +2321,8 @@ int printf_va_77(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2259,8 +2337,8 @@ int scanf_va_78(char const * __restrict format, unsigned long long *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2273,7 +2351,8 @@ int printf_va_78(char const * __restrict format, unsigned long long param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2288,8 +2367,8 @@ int scanf_va_79(char const * __restrict format, int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2302,7 +2381,8 @@ int printf_va_79(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2317,8 +2397,8 @@ int scanf_va_80(char const * __restrict format, int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2331,7 +2411,8 @@ int printf_va_80(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2346,8 +2427,8 @@ int scanf_va_81(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2360,7 +2441,8 @@ int printf_va_81(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2375,8 +2457,8 @@ int scanf_va_82(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2389,7 +2471,8 @@ int printf_va_82(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2404,8 +2487,8 @@ int scanf_va_83(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2418,7 +2501,8 @@ int printf_va_83(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2433,8 +2517,8 @@ int scanf_va_84(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), diff --git a/tests/libc/oracle/inttypes_h.7.res.oracle b/tests/libc/oracle/inttypes_h.7.res.oracle index 6a5939c36733097f68a48520a54e40a8899a5d42..3d0465864946bd5875dd922dbf133c2359f4c33a 100644 --- a/tests/libc/oracle/inttypes_h.7.res.oracle +++ b/tests/libc/oracle/inttypes_h.7.res.oracle @@ -11,7 +11,8 @@ ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -26,8 +27,8 @@ int scanf_va_1(char const * __restrict format, signed char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -40,7 +41,8 @@ int printf_va_1(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -55,8 +57,8 @@ int scanf_va_2(char const * __restrict format, signed char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -69,7 +71,8 @@ int printf_va_2(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -84,8 +87,8 @@ int scanf_va_3(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -98,7 +101,8 @@ int printf_va_3(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -113,8 +117,8 @@ int scanf_va_4(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -127,7 +131,8 @@ int printf_va_4(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -142,8 +147,8 @@ int scanf_va_5(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -156,7 +161,8 @@ int printf_va_5(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -171,8 +177,8 @@ int scanf_va_6(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -185,7 +191,8 @@ int printf_va_6(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -200,8 +207,8 @@ int scanf_va_7(char const * __restrict format, short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -214,7 +221,8 @@ int printf_va_7(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -229,8 +237,8 @@ int scanf_va_8(char const * __restrict format, short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -243,7 +251,8 @@ int printf_va_8(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -258,8 +267,8 @@ int scanf_va_9(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -272,7 +281,8 @@ int printf_va_9(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -287,8 +297,8 @@ int scanf_va_10(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -301,7 +311,8 @@ int printf_va_10(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -316,8 +327,8 @@ int scanf_va_11(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -330,7 +341,8 @@ int printf_va_11(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -345,8 +357,8 @@ int scanf_va_12(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -359,7 +371,8 @@ int printf_va_12(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -374,8 +387,8 @@ int scanf_va_13(char const * __restrict format, int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -388,7 +401,8 @@ int printf_va_13(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -403,8 +417,8 @@ int scanf_va_14(char const * __restrict format, int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -417,7 +431,8 @@ int printf_va_14(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -432,8 +447,8 @@ int scanf_va_15(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -446,7 +461,8 @@ int printf_va_15(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -461,8 +477,8 @@ int scanf_va_16(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -475,7 +491,8 @@ int printf_va_16(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -490,8 +507,8 @@ int scanf_va_17(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -504,7 +521,8 @@ int printf_va_17(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -519,8 +537,8 @@ int scanf_va_18(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -533,7 +551,8 @@ int printf_va_18(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -548,8 +567,8 @@ int scanf_va_19(char const * __restrict format, __int64 *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -562,7 +581,8 @@ int printf_va_19(char const * __restrict format, __int64 param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -577,8 +597,8 @@ int scanf_va_20(char const * __restrict format, __int64 *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -591,7 +611,8 @@ int printf_va_20(char const * __restrict format, __int64 param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -606,8 +627,8 @@ int scanf_va_21(char const * __restrict format, unsigned __int64 *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -620,7 +641,8 @@ int printf_va_21(char const * __restrict format, unsigned __int64 param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -635,8 +657,8 @@ int scanf_va_22(char const * __restrict format, unsigned __int64 *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -649,7 +671,8 @@ int printf_va_22(char const * __restrict format, unsigned __int64 param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -664,8 +687,8 @@ int scanf_va_23(char const * __restrict format, unsigned __int64 *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -678,7 +701,8 @@ int printf_va_23(char const * __restrict format, unsigned __int64 param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -693,8 +717,8 @@ int scanf_va_24(char const * __restrict format, unsigned __int64 *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -707,7 +731,8 @@ int printf_va_24(char const * __restrict format, unsigned __int64 param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -722,8 +747,8 @@ int scanf_va_25(char const * __restrict format, signed char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -736,7 +761,8 @@ int printf_va_25(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -751,8 +777,8 @@ int scanf_va_26(char const * __restrict format, signed char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -765,7 +791,8 @@ int printf_va_26(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -780,8 +807,8 @@ int scanf_va_27(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -794,7 +821,8 @@ int printf_va_27(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -809,8 +837,8 @@ int scanf_va_28(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -823,7 +851,8 @@ int printf_va_28(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -838,8 +867,8 @@ int scanf_va_29(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -852,7 +881,8 @@ int printf_va_29(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -867,8 +897,8 @@ int scanf_va_30(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -881,7 +911,8 @@ int printf_va_30(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -896,8 +927,8 @@ int scanf_va_31(char const * __restrict format, short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -910,7 +941,8 @@ int printf_va_31(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -925,8 +957,8 @@ int scanf_va_32(char const * __restrict format, short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -939,7 +971,8 @@ int printf_va_32(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -954,8 +987,8 @@ int scanf_va_33(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -968,7 +1001,8 @@ int printf_va_33(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -983,8 +1017,8 @@ int scanf_va_34(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -997,7 +1031,8 @@ int printf_va_34(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1012,8 +1047,8 @@ int scanf_va_35(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1026,7 +1061,8 @@ int printf_va_35(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1041,8 +1077,8 @@ int scanf_va_36(char const * __restrict format, unsigned short *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1055,7 +1091,8 @@ int printf_va_36(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1070,8 +1107,8 @@ int scanf_va_37(char const * __restrict format, int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1084,7 +1121,8 @@ int printf_va_37(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1099,8 +1137,8 @@ int scanf_va_38(char const * __restrict format, int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1113,7 +1151,8 @@ int printf_va_38(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1128,8 +1167,8 @@ int scanf_va_39(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1142,7 +1181,8 @@ int printf_va_39(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1157,8 +1197,8 @@ int scanf_va_40(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1171,7 +1211,8 @@ int printf_va_40(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1186,8 +1227,8 @@ int scanf_va_41(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1200,7 +1241,8 @@ int printf_va_41(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1215,8 +1257,8 @@ int scanf_va_42(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1229,7 +1271,8 @@ int printf_va_42(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1244,8 +1287,8 @@ int scanf_va_43(char const * __restrict format, __int64 *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1258,7 +1301,8 @@ int printf_va_43(char const * __restrict format, __int64 param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1273,8 +1317,8 @@ int scanf_va_44(char const * __restrict format, __int64 *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1287,7 +1331,8 @@ int printf_va_44(char const * __restrict format, __int64 param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1302,8 +1347,8 @@ int scanf_va_45(char const * __restrict format, unsigned __int64 *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1316,7 +1361,8 @@ int printf_va_45(char const * __restrict format, unsigned __int64 param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1331,8 +1377,8 @@ int scanf_va_46(char const * __restrict format, unsigned __int64 *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1345,7 +1391,8 @@ int printf_va_46(char const * __restrict format, unsigned __int64 param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1360,8 +1407,8 @@ int scanf_va_47(char const * __restrict format, unsigned __int64 *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1374,7 +1421,8 @@ int printf_va_47(char const * __restrict format, unsigned __int64 param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1389,8 +1437,8 @@ int scanf_va_48(char const * __restrict format, unsigned __int64 *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1403,7 +1451,8 @@ int printf_va_48(char const * __restrict format, unsigned __int64 param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1418,8 +1467,8 @@ int scanf_va_49(char const * __restrict format, signed char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1432,7 +1481,8 @@ int printf_va_49(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1447,8 +1497,8 @@ int scanf_va_50(char const * __restrict format, signed char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1461,7 +1511,8 @@ int printf_va_50(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1476,8 +1527,8 @@ int scanf_va_51(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1490,7 +1541,8 @@ int printf_va_51(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1505,8 +1557,8 @@ int scanf_va_52(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1519,7 +1571,8 @@ int printf_va_52(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1534,8 +1587,8 @@ int scanf_va_53(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1548,7 +1601,8 @@ int printf_va_53(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1563,8 +1617,8 @@ int scanf_va_54(char const * __restrict format, unsigned char *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1577,7 +1631,8 @@ int printf_va_54(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1592,8 +1647,8 @@ int scanf_va_55(char const * __restrict format, int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1606,7 +1661,8 @@ int printf_va_55(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1621,8 +1677,8 @@ int scanf_va_56(char const * __restrict format, int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1635,7 +1691,8 @@ int printf_va_56(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1650,8 +1707,8 @@ int scanf_va_57(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1664,7 +1721,8 @@ int printf_va_57(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1679,8 +1737,8 @@ int scanf_va_58(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1693,7 +1751,8 @@ int printf_va_58(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1708,8 +1767,8 @@ int scanf_va_59(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1722,7 +1781,8 @@ int printf_va_59(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1737,8 +1797,8 @@ int scanf_va_60(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1751,7 +1811,8 @@ int printf_va_60(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1766,8 +1827,8 @@ int scanf_va_61(char const * __restrict format, int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1780,7 +1841,8 @@ int printf_va_61(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1795,8 +1857,8 @@ int scanf_va_62(char const * __restrict format, int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1809,7 +1871,8 @@ int printf_va_62(char const * __restrict format, int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1824,8 +1887,8 @@ int scanf_va_63(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1838,7 +1901,8 @@ int printf_va_63(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1853,8 +1917,8 @@ int scanf_va_64(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1867,7 +1931,8 @@ int printf_va_64(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1882,8 +1947,8 @@ int scanf_va_65(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1896,7 +1961,8 @@ int printf_va_65(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1911,8 +1977,8 @@ int scanf_va_66(char const * __restrict format, unsigned int *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1925,7 +1991,8 @@ int printf_va_66(char const * __restrict format, unsigned int param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1940,8 +2007,8 @@ int scanf_va_67(char const * __restrict format, __int64 *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1954,7 +2021,8 @@ int printf_va_67(char const * __restrict format, __int64 param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1969,8 +2037,8 @@ int scanf_va_68(char const * __restrict format, __int64 *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -1983,7 +2051,8 @@ int printf_va_68(char const * __restrict format, __int64 param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -1998,8 +2067,8 @@ int scanf_va_69(char const * __restrict format, unsigned __int64 *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2012,7 +2081,8 @@ int printf_va_69(char const * __restrict format, unsigned __int64 param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2027,8 +2097,8 @@ int scanf_va_70(char const * __restrict format, unsigned __int64 *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2041,7 +2111,8 @@ int printf_va_70(char const * __restrict format, unsigned __int64 param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2056,8 +2127,8 @@ int scanf_va_71(char const * __restrict format, unsigned __int64 *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2070,7 +2141,8 @@ int printf_va_71(char const * __restrict format, unsigned __int64 param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2085,8 +2157,8 @@ int scanf_va_72(char const * __restrict format, unsigned __int64 *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2099,7 +2171,8 @@ int printf_va_72(char const * __restrict format, unsigned __int64 param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2114,8 +2187,8 @@ int scanf_va_73(char const * __restrict format, __int64 *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2128,7 +2201,8 @@ int printf_va_73(char const * __restrict format, __int64 param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2143,8 +2217,8 @@ int scanf_va_74(char const * __restrict format, __int64 *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2157,7 +2231,8 @@ int printf_va_74(char const * __restrict format, __int64 param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2172,8 +2247,8 @@ int scanf_va_75(char const * __restrict format, unsigned __int64 *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2186,7 +2261,8 @@ int printf_va_75(char const * __restrict format, unsigned __int64 param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2201,8 +2277,8 @@ int scanf_va_76(char const * __restrict format, unsigned __int64 *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2215,7 +2291,8 @@ int printf_va_76(char const * __restrict format, unsigned __int64 param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2230,8 +2307,8 @@ int scanf_va_77(char const * __restrict format, unsigned __int64 *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2244,7 +2321,8 @@ int printf_va_77(char const * __restrict format, unsigned __int64 param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2259,8 +2337,8 @@ int scanf_va_78(char const * __restrict format, unsigned __int64 *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2273,7 +2351,8 @@ int printf_va_78(char const * __restrict format, unsigned __int64 param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2288,8 +2367,8 @@ int scanf_va_79(char const * __restrict format, __int64 *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2302,7 +2381,8 @@ int printf_va_79(char const * __restrict format, __int64 param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2317,8 +2397,8 @@ int scanf_va_80(char const * __restrict format, __int64 *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2331,7 +2411,8 @@ int printf_va_80(char const * __restrict format, __int64 param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2346,8 +2427,8 @@ int scanf_va_81(char const * __restrict format, unsigned __int64 *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2360,7 +2441,8 @@ int printf_va_81(char const * __restrict format, unsigned __int64 param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2375,8 +2457,8 @@ int scanf_va_82(char const * __restrict format, unsigned __int64 *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2389,7 +2471,8 @@ int printf_va_82(char const * __restrict format, unsigned __int64 param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2404,8 +2487,8 @@ int scanf_va_83(char const * __restrict format, unsigned __int64 *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -2418,7 +2501,8 @@ int printf_va_83(char const * __restrict format, unsigned __int64 param0); ensures \initialized(param0); assigns \result, __fc_stdin->__fc_FILE_data, *param0; assigns \result - \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, + \from (indirect: __fc_stdin->__fc_FILE_id), + (indirect: __fc_stdin->__fc_FILE_data), (indirect: *(format + (0 ..))); assigns __fc_stdin->__fc_FILE_data \from (indirect: __fc_stdin->__fc_FILE_id), __fc_stdin->__fc_FILE_data, @@ -2433,8 +2517,8 @@ int scanf_va_84(char const * __restrict format, unsigned __int64 *param0); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), diff --git a/tests/metrics/oracle/libc.1.res.oracle b/tests/metrics/oracle/libc.1.res.oracle index 890b92c6ed6f4576aded31faf97765ab72a9cf68..8c8f0e6b9987c0efcc1d96fb117a3d40096d755c 100644 --- a/tests/metrics/oracle/libc.1.res.oracle +++ b/tests/metrics/oracle/libc.1.res.oracle @@ -4,31 +4,46 @@ bar (1 call); f (0 call); foo (1 call); g (address taken) (0 call); getopt (1 call); main (0 call); - Undefined functions (70) - ======================== - clearerr (0 call); clearerr_unlocked (0 call); fclose (0 call); - fdopen (0 call); feof (0 call); feof_unlocked (0 call); ferror (0 call); - ferror_unlocked (0 call); fflush (0 call); fgetc (0 call); fgetpos (0 call); - fgets (0 call); fileno (0 call); fileno_unlocked (0 call); - flockfile (0 call); fopen (0 call); fputc (0 call); fputs (0 call); + Undefined functions (120) + ========================= + _exit (0 call); access (0 call); chdir (0 call); chown (0 call); + chroot (0 call); clearerr (0 call); clearerr_unlocked (0 call); + close (0 call); dup (0 call); dup2 (0 call); execl (0 call); + execle (0 call); execlp (0 call); execv (0 call); execve (0 call); + execvp (0 call); fclose (0 call); fdopen (0 call); feof (0 call); + feof_unlocked (0 call); ferror (0 call); ferror_unlocked (0 call); + fflush (0 call); fgetc (0 call); fgetpos (0 call); fgets (0 call); + fileno (0 call); fileno_unlocked (0 call); flockfile (0 call); + fopen (0 call); fork (0 call); fputc (0 call); fputs (0 call); fread (0 call); freopen (0 call); fseek (0 call); fsetpos (0 call); ftell (0 call); ftrylockfile (0 call); funlockfile (0 call); fwrite (0 call); getc (0 call); getc_unlocked (0 call); getchar (1 call); - getchar_unlocked (0 call); getopt_long (0 call); getopt_long_only (0 call); - gets (0 call); isalnum (0 call); isalpha (1 call); isascii (0 call); + getchar_unlocked (0 call); getcwd (0 call); getegid (0 call); + geteuid (0 call); getgid (0 call); gethostname (0 call); + getopt_long (0 call); getopt_long_only (0 call); getpgid (0 call); + getpgrp (0 call); getpid (0 call); getppid (0 call); getresgid (0 call); + getresuid (0 call); gets (0 call); getsid (0 call); getuid (0 call); + isalnum (0 call); isalpha (1 call); isascii (0 call); isatty (0 call); isblank (1 call); iscntrl (0 call); isdigit (0 call); isgraph (0 call); islower (0 call); isprint (0 call); ispunct (0 call); isspace (0 call); - isupper (0 call); isxdigit (0 call); pclose (0 call); perror (0 call); - popen (0 call); putc (0 call); putc_unlocked (0 call); putchar (0 call); - putchar_unlocked (0 call); puts (0 call); remove (0 call); rename (0 call); - rewind (0 call); setbuf (0 call); setvbuf (0 call); tmpfile (0 call); - tmpnam (0 call); tolower (0 call); toupper (0 call); ungetc (0 call); - vfprintf (0 call); vfscanf (0 call); vprintf (0 call); vscanf (0 call); - vsnprintf (0 call); vsprintf (0 call); + isupper (0 call); isxdigit (0 call); lseek (0 call); pathconf (0 call); + pclose (0 call); perror (0 call); pipe (0 call); popen (0 call); + putc (0 call); putc_unlocked (0 call); putchar (0 call); + putchar_unlocked (0 call); puts (0 call); read (0 call); remove (0 call); + rename (0 call); rewind (0 call); setbuf (0 call); setegid (0 call); + seteuid (0 call); setgid (0 call); sethostname (0 call); setpgid (0 call); + setregid (0 call); setresgid (0 call); setresuid (0 call); + setreuid (0 call); setsid (0 call); setuid (0 call); setvbuf (0 call); + sync (0 call); sysconf (0 call); tmpfile (0 call); tmpnam (0 call); + tolower (0 call); toupper (0 call); ttyname (0 call); ungetc (0 call); + unlink (0 call); usleep (0 call); vfprintf (0 call); vfscanf (0 call); + vprintf (0 call); vscanf (0 call); vsnprintf (0 call); vsprintf (0 call); + write (0 call); - 'Extern' global variables (7) - ============================= - __fc_errno; __fc_stdin; __fc_stdout; optarg; opterr; optind; optopt + 'Extern' global variables (10) + ============================== + Frama_C_entropy_source; __fc_errno; __fc_hostname; __fc_stdin; __fc_stdout; + __fc_ttyname; optarg; opterr; optind; optopt Potential entry points (2) ========================== @@ -38,13 +53,13 @@ ============== Sloc = 17 Decision point = 0 - Global variables = 10 + Global variables = 15 If = 0 Loop = 0 Goto = 0 Assignment = 8 Exit point = 6 - Function = 76 + Function = 126 Function call = 7 Pointer dereferencing = 1 Cyclomatic complexity = 6 @@ -72,7 +87,7 @@ ---------------------------------------------------------------------------- [metrics] Eva coverage statistics ======================= - Syntactically reachable functions = 7 (out of 76) + Syntactically reachable functions = 7 (out of 126) Semantically reached functions = 7 Coverage estimation = 100.0% [metrics] References to non-analyzed functions diff --git a/tests/spec/clash_double_file_bts1598.c b/tests/spec/clash_double_file_bts1598.c index ca549981a5bf117bea05f296554329ef7ebe4e0d..b30f925efab799c5b1c0a2e6306285564e878cac 100644 --- a/tests/spec/clash_double_file_bts1598.c +++ b/tests/spec/clash_double_file_bts1598.c @@ -11,7 +11,7 @@ OPT: @PTEST_FILE@ -cpp-extra-args " -Ishare/libc -nostdinc" -print -then -ocode #include "errno.h" //#include "fenv.h" #include "float.h" -#include "getopt.h" +//#include "getopt.h" #include "inttypes.h" #include "iso646.h" #include "limits.h" diff --git a/tests/spec/oracle/clash_double_file_bts1598.res.oracle b/tests/spec/oracle/clash_double_file_bts1598.res.oracle index 0d80a00c1cdb044b88426c7bb655da8ae430b220..2728223ed5ea566f5b7b4c38f505e9c1c973a741 100644 --- a/tests/spec/oracle/clash_double_file_bts1598.res.oracle +++ b/tests/spec/oracle/clash_double_file_bts1598.res.oracle @@ -4,7 +4,6 @@ #include "assert.h" #include "ctype.h" #include "errno.h" -#include "getopt.h" #include "inttypes.h" #include "locale.h" #include "math.h" @@ -26,7 +25,6 @@ #include "assert.h" #include "ctype.h" #include "errno.h" -#include "getopt.h" #include "inttypes.h" #include "locale.h" #include "math.h" diff --git a/tests/syntax/oracle/copy_visitor_bts_1073.0.res.oracle b/tests/syntax/oracle/copy_visitor_bts_1073.0.res.oracle index 0300123cdfbf01077c59d4444adf412a34f2d27c..82356c88912a5399d65f6a83082fc020f5d4d65b 100644 --- a/tests/syntax/oracle/copy_visitor_bts_1073.0.res.oracle +++ b/tests/syntax/oracle/copy_visitor_bts_1073.0.res.oracle @@ -34,7 +34,8 @@ int g1(int y) assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))); + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))); @@ -46,8 +47,9 @@ int printf_va_1(char const * __restrict format); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - *(param1 + (0 ..)), param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: *(param1 + (0 ..))), + (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -59,8 +61,8 @@ int printf_va_2(char const * __restrict format, int param0, char *param1); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), diff --git a/tests/syntax/oracle/copy_visitor_bts_1073.1.res.oracle b/tests/syntax/oracle/copy_visitor_bts_1073.1.res.oracle index 1ec4c4a71b0e1cb79cb80015b4b33e280d12c0b7..36fe37928dee76890efb7194176a5371c20d82f9 100644 --- a/tests/syntax/oracle/copy_visitor_bts_1073.1.res.oracle +++ b/tests/syntax/oracle/copy_visitor_bts_1073.1.res.oracle @@ -24,7 +24,8 @@ int g(int y) assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))); + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))); @@ -36,8 +37,9 @@ int printf_va_1(char const * __restrict format); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - *(param1 + (0 ..)), param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: *(param1 + (0 ..))), + (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), @@ -49,8 +51,8 @@ int printf_va_2(char const * __restrict format, int param0, char *param1); assigns \result, __fc_stdout->__fc_FILE_data; assigns \result \from (indirect: __fc_stdout->__fc_FILE_id), - __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), - param0; + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); assigns __fc_stdout->__fc_FILE_data \from (indirect: __fc_stdout->__fc_FILE_id), __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))),